/* ===== Sekcije naslovne: podloga, naslovi, pojavljivanje, komfor, slogan, poziv na akciju ===== */

/* Slogan (traka pri dnu prvog ekrana) je uvek vidljiv: ne animira se ulaskom */

/* --- Svetla podloga: jedna boja na korenu strane (nema šavova), sekcije su providne, a velike imaju meka svetla
       (mint levo, lavanda desno) koja smeju da pređu ivicu sekcije --- */
.nz-field { position: relative; isolation: isolate; overflow-x: clip; background: var(--nz-base); }
.nz-aurora { background: transparent !important; margin-block: 0 !important; position: relative; }
.nz-aurora--p  { padding-block: 64px !important; }
.nz-aurora--pt { padding-top: 56px !important; }
.nz-aurora--pb { padding-bottom: 48px !important; }
.nz-aurora--a::before, .nz-aurora--a::after, .nz-aurora--b::before, .nz-aurora--b::after {
  content: ''; position: absolute; z-index: -1; pointer-events: none; border-radius: 50%;
}
.nz-aurora--a::before, .nz-aurora--b::after {          /* mint / tirkiz */
  background: radial-gradient(closest-side, rgba(41, 185, 205, .24), rgba(41, 185, 205, .10) 55%, rgba(41, 185, 205, 0));
}
.nz-aurora--a::after, .nz-aurora--b::before {          /* lavanda / plava */
  background: radial-gradient(closest-side, rgba(99, 123, 200, .20), rgba(99, 123, 200, .09) 55%, rgba(99, 123, 200, 0));
}
.nz-aurora--a::before { left: -200px; top: 4%;  width: 720px; height: 480px; }
.nz-aurora--a::after  { right: -220px; bottom: 0; width: 760px; height: 500px; }
.nz-aurora--b::before { right: -220px; top: 6%;  width: 760px; height: 500px; }
.nz-aurora--b::after  { left: -200px; bottom: 0; width: 720px; height: 480px; }

/* --- Pojavljivanje blokova (svaki put kad uđu u vidno polje) --- */
.nz-js .nz-rise {
  opacity: 0; transform: translate3d(var(--nz-dx, 0), var(--nz-dy, 22px), 0);
  transition: opacity .8s var(--nz-ease), transform .8s var(--nz-ease);
}
.nz-rise--left  { --nz-dx: -36px; --nz-dy: 0px; }
.nz-rise--right { --nz-dx: 36px;  --nz-dy: 0px; }
.nz-js .nz-rise.nz-in { opacity: 1; transform: none; }

/* --- Naslovi sekcija: tamno plavi, linija koja se ucrta; podnaslov mekši --- */
.nz-js .nz-h { opacity: 0; transform: translate3d(0, 20px, 0); transition: opacity .8s var(--nz-ease), transform .8s var(--nz-ease); }
.nz-js .nz-h.nz-in { opacity: 1; transform: none; }
.nz-h--title h1, .nz-h--title h2, .nz-h--title h3, .nz-h--title h4, .nz-h--title p { color: var(--nz-ink); letter-spacing: -.2px; }
.nz-h--title h1::after, .nz-h--title h2::after, .nz-h--title h3::after, .nz-h--title h4::after, .nz-h--title p::after {
  content: ''; display: block; width: 0; height: 4px; margin-top: 14px; border-radius: 4px;
  background: linear-gradient(90deg, var(--nz-teal), var(--nz-blue)); transition: width 1s var(--nz-ease) .35s;
}
.nz-h--title.nz-in h1::after, .nz-h--title.nz-in h2::after, .nz-h--title.nz-in h3::after, .nz-h--title.nz-in h4::after, .nz-h--title.nz-in p::after { width: 68px; }
.nz-h--center h1::after, .nz-h--center h2::after, .nz-h--center h3::after, .nz-h--center h4::after, .nz-h--center p::after { margin-inline: auto; }
.nz-h--sub p, .nz-h--sub { color: var(--nz-text); }

/* --- Staklena kartica (komfor tekst) --- */
.nz-glass {
  background: var(--nz-glass) !important;
  border: var(--nz-border) !important;
  border-radius: 28px !important;
  padding: 40px 46px !important;
  box-shadow: var(--nz-shadow-soft);
}
.nz-glass p { color: var(--nz-text); line-height: 1.7; }
.nz-glass strong, .nz-glass strong * { color: var(--nz-teal-dark) !important; }   /* žuta na svetloj podlozi je nečitljiva */

/* --- Slika u okviru: zaobljena, beli rub, senka, pomerena pozadinska kartica u gradijentu --- */
.nz-frame { position: relative; isolation: isolate; }
.nz-frame::before {
  content: ''; position: absolute; z-index: -1; inset: 22px -16px -16px 22px; border-radius: 32px;
  background: linear-gradient(135deg, rgba(41, 185, 205, .30), rgba(99, 123, 200, .26));
}
.nz-frame img {
  border-radius: 28px; border: 4px solid rgba(255, 255, 255, .95); box-shadow: 0 22px 50px rgba(25, 85, 125, .20);
  transition: transform .8s var(--nz-ease);
}
@media (hover: hover) { .nz-frame:hover img { transform: scale(1.02); } }

/* --- Traka sa sloganom i poziv na akciju: meka svetla koja lebde na plavoj pozadini --- */
.nz-band, .nz-cta { position: relative; overflow: hidden; isolation: isolate; }
.nz-band::before, .nz-band::after, .nz-cta::before, .nz-cta::after {
  content: ''; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; filter: blur(6px);
  background: radial-gradient(circle, rgba(255, 255, 255, .26), transparent 66%);
}
.nz-band::before { width: 340px; height: 340px; left: -80px; top: -150px; animation: nz-drift-a 16s ease-in-out infinite alternate; }
.nz-band::after  { width: 300px; height: 300px; right: -60px; bottom: -150px; animation: nz-drift-b 19s ease-in-out infinite alternate; }
.nz-cta::before  { width: 460px; height: 460px; left: -140px; bottom: -220px; animation: nz-drift-a 18s ease-in-out infinite alternate; }
.nz-cta::after   { width: 420px; height: 420px; right: -120px; top: -200px; animation: nz-drift-b 21s ease-in-out infinite alternate; }
.nz-cta .elementor-heading-title { font-weight: 500; letter-spacing: -.3px; text-shadow: 0 2px 22px rgba(10, 60, 110, .20); }


/* ===== Slogan ("Svako zaslužuje zdrav i lep osmeh...") ===== */
.nz-band {
  background: linear-gradient(90deg, rgba(40, 187, 202, .90), rgba(97, 122, 183, .90)) !important;
  min-height: 120px;
}
.nz-band .e-con-inner { align-items: center; justify-content: center; }
.nz-band .elementor-heading-title {
  font-family: var(--nz-font-display); font-weight: 500; font-style: italic; letter-spacing: .2px; line-height: 1.45;
  font-size: clamp(20px, 1.85vw, 27px); text-align: center; color: #fff; text-wrap: balance;
  text-shadow: 0 2px 20px rgba(10, 50, 100, .30);
}
.nz-band .elementor-heading-title::before, .nz-band .elementor-heading-title::after {   /* stilizovani navodnici (kao u kartici), samo ukras */
  font-family: Georgia, 'Times New Roman', serif; font-style: normal; font-weight: 700; line-height: 0; opacity: .85;
  background: linear-gradient(135deg, #fff, #b9f1f6); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent;
}
.nz-band .elementor-heading-title::before { content: '\201C'; font-size: 2.6em; vertical-align: -.32em; margin-right: .12em; }
.nz-band .elementor-heading-title::after  { content: '\201D'; font-size: 2em;   vertical-align: -.34em; margin-left: .06em; }

/* Kad postoji video: traka prekriva dno videa kao staklo (providna, ali tekst ostaje čitljiv) */
.nz-hero-video-on .nz-band {
  margin-top: -120px !important; position: relative; z-index: 3;
  /* bez backdrop-filter: zamućenje preko VIDEA koji se vrti računa se iznova za svaki kadar (usporava skrol); malo gušća boja čuva čitljivost */
  background: linear-gradient(90deg, rgba(40, 187, 202, .68), rgba(97, 122, 183, .68)) !important;
  border-top: 1px solid rgba(255, 255, 255, .45);
}
.nz-hero-video-on .nz-band::before, .nz-hero-video-on .nz-band::after { display: none; }

/* --- Staklena ploča na plavoj pozadini (poziv na akciju) --- */
.nz-panel {
  background: linear-gradient(135deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .08)) !important;
  border: 1px solid rgba(255, 255, 255, .5) !important; border-radius: 28px !important;
  padding: 32px 36px !important;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  box-shadow: 0 22px 54px rgba(15, 50, 100, .26);
}

/* red "Zakažite online / ili / Nazovite" se lomi u dva reda ako ne staje */
.nz-panel .e-con-inner { flex-wrap: wrap !important; row-gap: 14px !important; column-gap: 14px !important; align-items: center !important; }
.nz-panel .e-con-inner > .elementor-widget { flex: none; }

@media (max-width: 1024px) {
  .nz-glass { padding: 32px 30px !important; flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; }
}
@media (max-width: 767px) {
  .nz-glass { padding: 26px 22px !important; }
  /* dve staklene kolone (npr. Dentalni turizam: "NAŠA SPECIJALNOST" / "ZIGOMATIČNI IMPLANTI") na telefonu jedna ispod druge, ne stisnute u pola širine */
  .nz-glass--col { flex: 0 0 100% !important; width: 100% !important; min-width: 100% !important; }
  .nz-glass--col + .nz-glass--col { margin-top: 18px; }
  .nz-panel { padding: 24px 20px !important; }
  .nz-frame::before { inset: 16px -8px -10px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .nz-js .nz-rise, .nz-js .nz-h { opacity: 1; transform: none; transition: none; }
  .nz-h--title h1::after, .nz-h--title h2::after, .nz-h--title h3::after, .nz-h--title h4::after, .nz-h--title p::after { width: 68px; transition: none; }
  .nz-band::before, .nz-band::after, .nz-cta::before, .nz-cta::after { animation: none; }
}

/* Elementi koji tek ulaze: unapred izdvojen sloj, da se prvi prelaz ne iseckа */
.nz-js .nz-rise:not(.nz-in), .nz-js .nz-h:not(.nz-in), .nz-js .nz-hero-card:not(.nz-in), .nz-js .nz-fcard:not(.nz-in) { will-change: opacity, transform; }

/* ===== Pomoć za prvo crtanje naslovne (NIJE potrebna za ispravan izgled) =====
   Razmaci i veličine koje inače postavljaju klase iz sections.js (nz-aurora, nz-band, nz-glass, nz-panel) ponovljeni su ovde po ID-u Elementor elemenata,
   da se raspored ne pomera dok se skripta učitava (inače se strana "pomeri" za nekoliko desetina piksela pri učitavanju).
   Ako se neka sekcija u Elementoru ponovo napravi (nov ID), ovo pravilo se jednostavno više ne primenjuje na nju: stil svejedno dolazi preko klasa iz JS-a,
   samo prvo crtanje može malo da "skoči". Pravilo se može obrisati bez posledica po izgled. */
.nz-home :is(.elementor-element-32fd4829, .elementor-element-3b6114e6, .elementor-element-7fa6871d, .elementor-element-6d1b92df, .elementor-element-7853b44c,
             .elementor-element-ce21ca8, .elementor-element-5ee512a, .elementor-element-25eb7e66, .elementor-element-233b9be8) { margin-block: 0 !important; }
.nz-home .elementor-element-32fd4829 { padding-block: 64px !important; }
.nz-home :is(.elementor-element-3b6114e6, .elementor-element-7853b44c, .elementor-element-25eb7e66) { padding-top: 56px !important; }
.nz-home :is(.elementor-element-6d1b92df, .elementor-element-5ee512a, .elementor-element-233b9be8) { padding-bottom: 48px !important; }
.nz-home .elementor-element-701a260b { min-height: 120px; }
.nz-home .elementor-element-701a260b > .e-con-inner { align-items: center; justify-content: center; }
.nz-home.nz-hero-video-on .elementor-element-701a260b { margin-top: -120px !important; position: relative; z-index: 3; }
.nz-home .elementor-element-da02cde { padding: 38px 44px !important; border-radius: 28px !important; }
.nz-home .elementor-element-69466d1 { padding: 32px 36px !important; }
@media (max-width: 1024px) { .nz-home .elementor-element-da02cde { padding: 32px 30px !important; } }
@media (max-width: 767px) {
  .nz-home .elementor-element-da02cde { padding: 26px 22px !important; }
  .nz-home .elementor-element-69466d1 { padding: 24px 20px !important; }
}
