/* ============================================================================
   Ciljani pregledaci
   Tekuca i prethodna glavna verzija: Chrome, Edge, Firefox, Safari,
   plus tekuci iOS Safari i Android Chrome.

   Funkcije koje zavise od te matrice i gde se koriste:
   - native CSS nesting ............. kroz ceo fajl uz `&`
   - `clamp()` ...................... tipografija naslova i footer teksta
   - `:where()` ..................... podrazumevani stil pasusa, bez specificnosti
   - `min-block-size: 2lh` .......... rezervisana visina uz `-webkit-line-clamp`
   - `scroll-padding-top` ........... odmicanje sidara od fiksnog header-a
   - `scrollbar-gutter: stable` ..... bez horizontalnog skoka kod klasicnih traka
   - `100svh` ....................... uvek uz `100vh` kao rezervu
   - `appearance: base-select` ...... samo iza `@supports`; van Chromium-a se
                                      koristi nativni popup uz stilizovano polje
   Bez PostCSS-a je: prefiksi se pisu rucno (-webkit-mask, -webkit-backdrop-filter,
   -webkit-line-clamp, -webkit-box-orient).
   ============================================================================ */

/* ---------- Osnova ---------- */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/montserrat/montserrat-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/assets/fonts/montserrat/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body {
  margin: 0;
  background: #fff;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
  color: #0e2a47;
}
html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  /* Header je fiksan, pa odrediste sidra i skip linka mora da se spusti
     za njegovu visinu — inace zavrsi ispod njega. */
  scroll-padding-top: var(--hdr-h);
}
img { max-width: 100%; }

a {
  color: #3b9cfd;
  text-decoration: none;

  &:hover { color: #1d7de0; }
}

/* Inline display:flex bi pregazio [hidden] — vracamo ocekivano ponasanje. */
[hidden] { display: none !important; }

/* ---------- Animacije ---------- */
@keyframes stepFade { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes lbFade { from { opacity: 0; } to { opacity: 1; } }

/* ---------- Header ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  background: rgba(238, 241, 244, .85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 14px rgba(14, 42, 71, .13);
  transition: background .35s ease, box-shadow .35s ease, backdrop-filter .35s ease;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;

  /* transparent = active 'pocetna' && !scrolled */
  &.is-home:not(.is-scrolled) {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;

    & .nav-link { color: #fff; }
    & .nav-link.is-active { color: #8cc5ff; }
    & .lang-off { color: rgba(255, 255, 255, .65); }
    & .theme-icon { background: #fff; }
  }

  &.menu-open {
    background: #eef1f4;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

.header-logo {
  width: 180px;
  height: auto;
  display: block;
}

.nav-link {
  color: #0e2a47;
  text-decoration: none;
  font-weight: 400;
  transition: color .35s ease;

  &.is-active { color: #3b9cfd; }
  &:hover { color: #3b9cfd; }
}

.lang-off {
  color: #5b7a99;
  padding: 4px 6px;
  cursor: default;
  transition: color .35s ease;
}

.theme-icon {
  width: 18px;
  height: 18px;
  display: block;
  background: #3b9cfd;
  mask: url('/assets/icons/moon.svg') center/contain no-repeat;
  -webkit-mask: url('/assets/icons/moon.svg') center/contain no-repeat;
}

html[data-theme="dark"] .theme-icon {
  mask-image: url('/assets/icons/sun.svg');
  -webkit-mask-image: url('/assets/icons/sun.svg');
}

/* Padajuci meni usluga */
.svc-caret {
  display: inline-block;
  margin-left: 6px;
  width: 11px;
  height: 11px;
  flex: 0 0 auto;
  background: currentColor;
  mask: url('/assets/icons/caret-down.svg') center/contain no-repeat;
  -webkit-mask: url('/assets/icons/caret-down.svg') center/contain no-repeat;
  transition: transform .25s ease;
}

.svc-panel {
  position: fixed;
  top: 62px;
  left: 50%;
  width: min(1132px, calc(100vw - 48px));
  transform: translateX(-50%) translateY(8px);
  padding-top: 10px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, transform .25s cubic-bezier(.22,.61,.36,1), visibility .25s;
  z-index: 60;
}

.svc-wrap.is-open {
  & .svc-panel {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  & .svc-caret { transform: rotate(180deg); }
}


/* ---------- Dugmad ---------- */
.btn-amber {
  background: #ffb547;
  color: #0e2a47;
  border-radius: 999px;
  text-decoration: none;
  transition: background .25s ease;

  &:hover { background: #f5a52e; color: #0e2a47; }
}

.btn-ghost {
  border: 2px solid rgba(255, 255, 255, .7);
  color: #fff;
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 999px;
  transition: background .25s ease, color .25s ease;

  &:hover { background: rgba(255, 255, 255, .9); color: #0e2a47; }
}

/* ---------- Footer ---------- */
/* Jedna kolona na mobilnom podnosi krupniji tekst nego cetiri na desktopu. */
.site-footer-shell {
  position: relative;
  overflow: hidden;
  padding-top: 80px;
  padding-bottom: 0;
  background: linear-gradient(135deg, #1a3f66 0%, #0e2a47 46%, #07182c 100%);
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
}

/* Dekorativni slojevi; `.footer-pointer-glow` pomera main.js na pokazivac. */
.footer-orb-left,
.footer-orb-right,
.footer-pointer-glow {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
}
.footer-orb-left {
  top: -160px;
  left: -120px;
  width: 640px;
  height: 640px;
  background: radial-gradient(circle, rgba(59, 156, 253, .18), transparent 68%);
}
.footer-orb-right {
  bottom: -200px;
  right: -120px;
  width: 560px;
  height: 560px;
  background: radial-gradient(circle, rgba(41, 110, 180, .16), transparent 66%);
}
.footer-pointer-glow {
  top: 0;
  left: 0;
  width: 520px;
  height: 520px;
  background: radial-gradient(circle, rgba(90, 175, 255, .09), transparent 62%);
  opacity: 0;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity .22s ease;
  will-change: transform, opacity;
}

.footer-inner {
  position: relative;
  z-index: 1;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  gap: 44px;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1.2fr 1.3fr;
  gap: 32px;
}

/* Kolona drzi vise blokova (naslov + lista); blok drzi jedan naslov. */
.footer-col,
.footer-brand { display: flex; flex-direction: column; }
.footer-col { gap: 18px; }

.footer-block,
.legal-section { display: flex; flex-direction: column; gap: 10px; }

.foot-head {
  margin: 0 0 2px;
  color: #fff;
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.footer-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.foot-link {
  text-decoration: none;
  transition: color .2s ease;

  &:hover { color: #fff; }
}

.foot-link,
.footer-hours {
  color: #a9c4e2;
  font-size: clamp(0.6875rem, 0.825rem - 0.186vw, 0.78125rem);
}

.footer-logo {
  display: block;
  width: 195px;
  height: auto;
  margin-bottom: 50px;
}

.footer-tagline {
  margin: 0;
  color: #3b9cfd;
  font-size: .9375rem;
  font-style: italic;
  line-height: 1.5;
}

.footer-socials {
  margin: auto 0 0;
  padding: 40px 0 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 18px;
}

.footer-social-icon {
  color: #3b9cfd;
}

/* <address> podrazumevano ide u kurziv — vracamo na normalan rez. */
.footer-address {
  display: flex;
  flex-direction: column;
  gap: 18px;
  font-style: normal;
  line-height: 1.6;

  & .footer-list { gap: 0; }
}

.footer-hours {
  margin: 0;
  line-height: 1.6;
}

.footer-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  padding: 38px 0;
  border-top: 1px solid rgba(169, 196, 226, .2);
}

.footer-meta-copy,
.footer-credit { color: #7a99bd; font-size: .78125rem; }
.footer-credit { margin-left: auto; }


/* ---------- Kolekcije kao liste ----------
   Raspored (grid/flex) zivi na <ul>/<ol>; <li> je fleks omotac koji clana
   rasteze na celu celiju, pa vizuelni rezultat ostaje isti kao pre. */
.brand-marquee__group,
.contact-details,
.faq-list,
.gallery-grid,
.hero-pagination,
.home-gallery-grid,
.mnav-list,
.mnav-sub-list,
.nav-list,
.not-found-links,
.process-steps,
.service-grid,
.service-menu-grid,
.side-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gallery-grid > li,
.hero-pagination > li,
.home-gallery-grid > li,
.nav-list > li,
.not-found-links > li,
.process-steps > li,
.service-grid > li,
.service-menu-grid > li {
  display: flex;
}
.nav-list > li { align-items: center; }

.gallery-grid > li > .gal-item,
.home-gallery-grid > li > .gal-item,
.not-found-links > li > .btn-ghost,
.process-steps > li > .proc-step,
.service-grid > li > a,
.service-menu-grid > li > .svc-item {
  flex: 1;
  min-width: 0;
}

.nav-list { display: flex; align-items: center; gap: 20px; }
.mnav-list { display: flex; flex-direction: column; gap: 2px; }
.side-list { display: flex; flex-direction: column; gap: 6px; }
.process-steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }

/* ---------- Tamni rezim ---------- */
html[data-theme="dark"] {
  & body { background: #0f1720; color: #e8f1fb; }

  & .site-header:not(.is-home),
  & .site-header.is-scrolled { background: rgba(12, 20, 32, .9); }
  & .site-header.menu-open { background: #0c1420; }
  & .site-header:not(.is-home) .nav-link:not(.is-active),
  & .site-header.is-scrolled .nav-link:not(.is-active) { color: #e8f1fb; }

  /* svetle povrsine -> tamne */
  & .diagnostic-icon-box,
  & .process-dot-layout,
  & .process-panel,
  & .service-menu-panel,
  & .service-overview-icon,
  & .service-sidebar { background: #16212f !important; }
  & .brand-section { background: #18212e !important; }
  /* Neke sekcije koriste `background-color:` uz `background-image` sa tackicama;
     skraceni `background:` ih ne pokriva pa bi ostale svetle sa svetlim tekstom. */
  & .booking-hero,
  & .page-hero,
  & .section-soft { background: #14273f !important; }
  & .page-hero-dotted,
  & .page-hero-dotted-spacious { background-color: #14273f !important; }

  /* navy povrsine -> dublje */
  & .feature-section-dark { background: #0a1626 !important; }
  & .cta-panel {
    background: #14273f !important;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .22);
  }
  & .service-menu-panel { border: 0; }
  /* taman tekst -> svetao (osim navy teksta na narandzastom dugmetu) */
  & .content-emphasis,
  & .contact-detail-title,
  & .faq-title,
  & .price-note-title,
  & .service-menu-title,
  & .story-emphasis-end { color: #e8f1fb !important; }
  & .team-profile__emphasis { background:#16253a; }
  & .consent-label,
  & .faq-hero-inner p,
  & .contact-card-copy,
  & .service-content-grid p,
  & .story-container p,
  & .legal-section p,
  & .price-intro p,
  & .legal-updated,
  & .page-lead,
  & .process-copy,
  & .section-lead,
  & .service-overview-copy,
  & .services-lead,
  & .team-member-copy p { color: #c2d1e2 !important; }
  & .breadcrumb,
  & .faq-footer,
  & .founder-caption,
  & .price-note-item,
  & .proc-label,
  & .process-label,
  & .service-menu-description { color: #95aabf !important; }
  & .faq-answer p { color: #9fb0c2 !important; }
  & .footer-credit,
  & .footer-meta-copy { color: #9fb6cf !important; }

  /* svetli borderi -> tamni */
  & .border-page-soft { border-color: #2b3d52 !important; }

  & .btn-amber { color: #0e2a47 !important; }
  & .badge,
  & .language-current,
  & .story-stat-card { color: #0e2a47; }
  & .lang-off { color: #9fb0c2; }
  & .gallery-story-link,
  & .gallery-story-link .gallery-link-content,
  & .gallery-story-link .arrow-up-right-icon { color: #0e2a47; }

  /* Cenovnik je stilizovan klasama, pa ga gornja pravila po inline-atributu ne hvataju */
  & .price-group-title { color: #e8f1fb; }
  & .price-ico { background: #14273f; }
  & .price-card {
    background: #16212f;
    border-color: #2b3d52;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .32);
  }
  & .price-table {
    & th[scope="row"] { color: #e8f1fb; }
    & td { color: #e8f1fb; }
    & tbody tr:nth-child(even) { background: #1a2735; }
  }
  & .price-note { color: #95aabf; }
}

/* Lightbox dugmad */
.lb-btn {
  position: absolute;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  background: rgba(255,255,255,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .25s ease;
}
.lb-btn:hover { background: rgba(255, 255, 255, .28) !important; }

/* Kartice na pregledu usluga */
.usl-card:hover { box-shadow: 0 14px 34px rgba(59, 156, 253, .18); color: #0e2a47; }
.usl-card:hover img { transform: scale(1.08); }

/* ---------- Tablet ---------- */

/* iPad i touch: fixed background attachment ne radi — vracamo scroll */
@media (hover: none), (max-width: 1024px) {
  .page-hero-dotted,
  .page-hero-dotted-spacious { background-attachment: scroll !important; }
  .background-cover-fixed { background-attachment: scroll !important; }
}

@media (max-width: 1100px) {
  /* Header: kompaktniji da 6 stavki + CTA stane */
  .header-logo { width: 150px; }
  .site-header nav { gap: 12px !important; }
  .site-header > div { gap: 16px !important; }
}

@media (max-width: 1024px) {
  /* Padajuci meni Usluge: 4 -> 2 kolone */
  .svc-panel .service-menu-columns { grid-template-columns: repeat(2, 1fr) !important; }

  /* Mreze od 4 kolone -> 2 (male usluge, kontakt kartice) */
  section .service-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Galerija na pocetnoj: 5 -> 3 kolone */
  #galerija .gallery-columns { grid-template-columns: repeat(3, 1fr) !important; }

  /* Zasto mi: kartice preko cele sirine umesto leve polovine */
  #zasto .content-half-width { max-width: 100% !important; }

  /* Dijagnostika kartica: uza da ne pokriva sadrzaj */
  #diagCard { max-width: 320px !important; }
}

/* Naslov tabele — samo za citace ekrana, vizuelno se ne prikazuje */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ---------- Cenovnik ---------- */
.price-group { display: flex; flex-direction: column; gap: 14px; }

.price-group-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(1.25rem, 1.204rem + .19vw, 1.375rem);
  font-weight: 600;
  color: #0e2a47;
  margin: 0;
}

/* Zajedničko centriranje okvira ikonica; dimenzije ostaju po komponenti. */
.price-ico,
.diagnostic-icon-box,
.service-overview-icon,
.service-card-icon-frame,
.svc-item__icon-box {
  display: flex;
  align-items: center;
  justify-content: center;
}

.price-ico,
.service-overview-icon,
.service-card-icon-frame,
.svc-item__icon-box {
  border-radius: 50%;
}

/* Ikonica grupe — ista plocica kao u meniju usluga */
.price-ico {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  background: #eaf4ff;
  &::after {
    content: '';
    width: 19px;
    height: 19px;
    background: #3b9cfd;
    mask: var(--icon) center/contain no-repeat;
    -webkit-mask: var(--icon) center/contain no-repeat;
  }
}

.price-card {
  background: #fff;
  border-radius: 18px;
  border: 1px solid #eef1f4;
  box-shadow: 0 10px 30px rgba(8, 26, 45, .06);
  overflow: hidden;
}

.price-table {
  width: 100%;
  border-collapse: collapse;
  font-weight: 500;

  & th[scope="row"] {
    text-align: left;
    font-weight: inherit;
    font-size: .9375rem;
    line-height: 1.5;
    color: #0e2a47;
    padding: 15px 24px;
    overflow-wrap: anywhere;
    transition: box-shadow .2s ease;
  }

  & td {
    text-align: right;
    vertical-align: top;
    font-size: .9375rem;
    color: #0e2a47;
    white-space: nowrap;
    padding: 15px 24px;
    font-variant-numeric: tabular-nums;
    transition: color .2s ease;
  }

  /* Zebra — parni redovi diskretno tonirani */
  & tbody tr:nth-child(even) { background: #f4f8fc; }

  & tbody tr { transition: background .2s ease; }
}

.price-note {
  display: block;
  font-size: .8125rem;
  font-weight: 400;
  line-height: 1.5;
  color: #5b7a99;
  margin-top: 4px;
}

/* Hover samo tamo gde stvarno postoji pokazivac */
@media (hover: hover) {
  .price-table tbody tr:hover {
    background: #eaf4ff;

    & th[scope="row"] { box-shadow: inset 3px 0 0 #3b9cfd; }
    & td { color: #3b9cfd; }
  }

  html[data-theme="dark"] .price-table tbody tr:hover {
    background: #182c48;

    & td { color: #8cc5ff; }
  }
}

@media (max-width: 1000px) {
  /* Servisne strane: sadrzaj + sidebar -> jedna kolona, sidebar ispod */
  section .service-content-grid {
    grid-template-columns: 1fr !important;
  }
  section .service-content-grid > aside {
    position: static !important;
    top: auto !important;
  }
}

@media (max-width: 900px) {
  /* Mreze od 3 kolone -> 2 (velike usluge, utisci, galerije nase price) */
  section .gallery-grid,
  section .media-grid,
  section .service-grid,
  section .not-found-links { grid-template-columns: repeat(2, 1fr) !important; }

  /* Hero band servisnih strana i nasa prica: tekst + slika -> jedna kolona */
  section .page-hero-grid { grid-template-columns: 1fr !important; }
  section .service-hero-image { height: 320px; min-height: 0; }

  /* Nasa prica na pocetnoj: dve kolone teksta -> jedna */
  #prica-kolone { grid-template-columns: 1fr !important; }

  /* Pristup radu: manji koraci da 6 stane u red */
  .proc-dot { width: 52px !important; height: 52px !important; border-radius: 15px !important; }
  .proc-icon { width: 22px !important; height: 22px !important; }
  #procPanel { width: 100% !important; }

  /* Footer: 4 kolone -> 2 */
  #siteFooter .footer-columns {
    grid-template-columns: repeat(2, 1fr) !important;
  }

}

@media (max-width: 860px) {
  /* Nema mesta za CTA + jezike u headeru na 768: CTA ostaje u hero-u,
     dropdown-u i na svakoj strani; jezicki prekidac je ionako "Uskoro". */
  .site-header > div > .btn-amber { display: none !important; }
  .site-header > div > .language-switcher { display: none !important; }
  .site-header nav { gap: 14px !important; }
}

/* ---------- Mobilni raspored ---------- */

/* Hamburger dugme — skriveno na desktopu */
#navToggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  flex-direction: column;
  gap: 5px;

  & span {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background: #0e2a47;
    transition: transform .3s ease, opacity .3s ease, background .35s ease;
  }
}

.site-header.is-home:not(.is-scrolled) #navToggle span { background: #fff; }
html[data-theme="dark"] #navToggle span { background: #e8f1fb; }

.site-header.menu-open #navToggle {
  & span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  & span:nth-child(2) { opacity: 0; }
  & span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}

/* Mobilni panel — zatvoreno stanje drzi [hidden] atribut */
#mobileNav {
  display: flex;
  position: fixed;
  top: 60px;
  left: 0;
  right: 0;
  max-height: calc(100vh - 60px);
  max-height: calc(100svh - 60px);
  overflow: auto;
  background: #eef1f4;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 18px 40px rgba(14, 42, 71, .18);
  padding: 14px 20px 22px;
  flex-direction: column;
  gap: 2px;
  font-family: Montserrat, 'Helvetica Neue', Arial, sans-serif;
}

.mnav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  justify-content: center;
  text-align: center;
  font-size: .875rem;
  font-weight: 600;
  color: #0e2a47;
  text-decoration: none;
  padding: 13px 6px;
  border-bottom: 1px solid rgba(14, 42, 71, .08);

  &.is-active { color: #3b9cfd; }
}

.mnav-link[href="/kontakt"] { border-bottom: 0; }

.mnav-sub {
  display: block;
  font-size: .8125rem;
  font-weight: 500;
  color: #33506f;
  text-decoration: none;
  padding: 10px 6px;
  text-align: center;
  border-bottom: 1px solid rgba(14, 42, 71, .05);

  &.is-active { color: #3b9cfd; font-weight: 600; }
}

.mobile-nav-utilities {
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px solid rgba(14, 42, 71, .08);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.mobile-language-switcher {
  order: 2;
  justify-content: flex-end;
}

.mobile-language-switcher,
.mobile-theme-toggle {
  min-height: 44px;
  padding: 3px;
  border-radius: 12px;
  background: #e8f1fb;
  display: flex;
  align-items: center;
  gap: 2px;
}

.mobile-language-option,
.mobile-theme-option {
  min-height: 34px;
  padding: 0 10px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.mobile-language-option {
  min-width: 34px;
  color: #5b7a99;
  font-size: .75rem;

  &.is-active { background: #3b9cfd; color: #fff; }
}

.mobile-theme-toggle {
  order: 1;
  border: 0;
  color: #33506f;
  font-family: inherit;
  font-size: .75rem;
  cursor: pointer;
}

.mobile-theme-option {
  transition: background-color .16s ease-out, color .16s ease-out;
}

.mobile-theme-toggle:not([aria-pressed="true"]) .mobile-theme-option--light,
.mobile-theme-toggle[aria-pressed="true"] .mobile-theme-option--dark {
  background: #3b9cfd;
  color: #fff;
}

#mnavSvcToggle[aria-expanded="true"] .svc-caret { transform: rotate(180deg); }

html[data-theme="dark"] {
  & #mobileNav { background: #0c1420; }
  & .mnav-link { color: #e8f1fb; border-color: rgba(232, 241, 251, .1); }
  & .mnav-link.is-active { color: #8cc5ff; }
  & .mnav-sub { color: #c2d1e2; border-color: rgba(232, 241, 251, .06); }
  & .mnav-sub.is-active { color: #8cc5ff; }
  & .mobile-nav-utilities { border-color: rgba(232, 241, 251, .1); }
  & .mobile-language-option { color: #9fb0c2; }
  & .mobile-language-option.is-active { color: #fff; }
  & .mobile-language-switcher,
  & .mobile-theme-toggle { background: #172638; }
  & .mobile-theme-toggle { color: #9fb0c2; }
}

@media (max-width: 700px) {
  .site-header > div > nav { display: none !important; }
  #navToggle { display: flex; }
  #pocetna .hero-pagination { display: none; }
  #pocetna .hero-actions { width: 100%; }
  #pocetna .hero-actions > a { width: 100%; box-sizing: border-box; justify-content: center; text-align: center; }
  #pocetna .hero-proof-list { justify-content: center; row-gap: 14px; }
  #siteFooter .footer-meta { flex-direction: column; justify-content: center; text-align: center; }
  #siteFooter .footer-credit { margin-left: 0; }
  /* CTA i jezici vec skriveni <=860 */
}

@media (max-width: 600px) {
  /* Sekcije: manji vertikalni ritam */
  section.faq-home-container,
  section.section-container-wide { padding: 64px 20px !important; }
  section.section-soft { padding: 64px 0 !important; }
  section.feature-section-dark { padding: 72px 0 !important; }
  section#zasto.feature-section-dark {
    padding-top:122px !important;
    padding-bottom:122px !important;
  }
  section.content-container,
  section.faq-container,
  section.story-container { padding: 56px 20px !important; }

  /* Sve dvokolone mreze -> 1 kolona */
  section .gallery-grid,
  section .media-grid,
  section .service-grid,
  section .not-found-links,
  section .values-grid { grid-template-columns: 1fr !important; }
  section .form-grid,
  section .story-columns { grid-template-columns: 1fr !important; }

  /* Galerije: 2 kolone (thumbovi) */
  #galerija .gallery-columns { grid-template-columns: repeat(2, 1fr) !important; }
  section .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }

  /* Zasto mi kartice ostaju kompaktne */
  #zasto .values-grid { grid-template-columns: 1fr !important; }

  /* Pristup radu: 3x2 koraka, bez linije */
  .process-steps { grid-template-columns: repeat(3, 1fr) !important; row-gap: 18px !important; }
  #procNav > .process-track, #procBar { display: none !important; }

  /* Dijagnostika kartica smeta na malom ekranu */
  #diagCard { display: none !important; }

  /* Footer: 1 kolona */
  #siteFooter .footer-columns { grid-template-columns: 1fr !important; }

  /* Servisne strane: manja hero slika, kartice/paddinzi */
  section .service-hero-image { height: 240px !important; }
  .cta-panel { padding: 26px 20px !important; }
  .process-panel { padding: 26px 20px 24px !important; }

  /* Tim: slika preko cele sirine */
  .team-photo-width { width: 100% !important; }

  /* Lightbox: manja dugmad uz ivice */
  .lb-btn { width: 42px !important; height: 42px !important; }
  #lbPrev { left: 10px !important; }
  #lbNext { right: 10px !important; }
  #lbClose { top: 14px !important; right: 14px !important; }
}

/* ============================================================
   UI/UX ispravke mobilnog header-a (mereno u browseru)
   1) hamburger+tema bili levo (118–358px prazno desno)
   2) touch mete 30x30 / 38x32 — ispod minimuma 44x44
   3) razmak header→sadrzaj 9px na mobilnom vs 0px na desktopu
   ============================================================ */

/* Deterministicna visina header-a po breakpointu. Promenljiva stoji na :root
   da je pored header-a i #mobileNav vidi i `html` za scroll-padding-top. */
:root { --hdr-h: 65px; }
.site-header > div { min-height: var(--hdr-h); box-sizing: border-box; }

@media (max-width: 700px) {
  :root { --hdr-h: 60px; }
  .site-header > div {
    padding: 8px 16px 8px 26px !important;
    gap: 8px !important;
  }

  /* Zatvoren mobilni header ostaje samo logo + hamburger. */
  #themeToggle { display:none; }
  #navToggle { margin-left:auto; }

  /* Touch mete 44x44 (UX pravilo: Touch Target Size, High) */
  #navToggle {
    width: 44px;
    height: 44px;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
  }
  #navToggle { display: flex; }

  /* Panel krece tacno od dna header-a, bez proreza */
  #mobileNav {
    position: absolute;
    top: 100%;
    max-height: calc(100svh - var(--hdr-h));
  }

  /* Sve stavke menija tacno 44px (min-height + padding se sabiraju bez border-box) */
  #mobileNav .mnav-link,
  #mobileNav .mnav-sub,
  #mobileNav .btn-amber {
    box-sizing: border-box;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  #mobileNav .mnav-link { padding: 10px 6px !important; }
  #mobileNav .mnav-sub { padding: 10px 6px 10px 22px !important; }
  #mobileNav .btn-amber { justify-content: center; padding: 12px 24px !important; }

  /* Logo je link — tap meta puna visina header-a */
  .site-header > div > a:first-child {
    min-height: 44px;
    align-items: center;
  }

  /* Footer linkovi: 11px tekst = red od 14px. Dizu se na 32px sa 8px razmaka
     (WCAG 2.5.8 minimum 24x24 + pravilo Touch Spacing 8px). */
  #siteFooter .foot-link {
    box-sizing: border-box;
    min-height: 32px;
    display: flex;
    align-items: center;
  }
  #siteFooter .footer-block > .footer-list { gap: 4px !important; }

  /* Cenovnik: dve kolone su preuske za prst — naziv gore, cena ispod */
  .price-ico { width: 34px; height: 34px; }

  .price-table {
    & tbody tr,
    & th[scope="row"],
    & td { display: block; }

    & th[scope="row"] { padding: 14px 18px 0; }

    /* Cena je na mobilnom sama u redu — plava je nosi kao akcenat u obe teme */
    & td {
      text-align: left;
      padding: 2px 18px 14px;
      font-size: 1.0625rem;
      color: #3b9cfd !important;
      white-space: normal;
    }
  }

  /* Mrvica (breadcrumb) je navigacija — mora da se pogodi prstom */
  .breadcrumb > a[href="/usluge/"] {
    display: inline-block;
    padding: 6px 0;
  }

  /* Telefon i mejl su glavna akcija na mobilnom — vece tap zone */
  a[href^="tel:"], a[href^="mailto:"] {
    display: inline-block;
    padding: 7px 0;
  }

  /* Hero tackice: vizuelno iste, tap zona prosirena po visini (43px)
     i razmaknute da zone ne naleze jedna na drugu. */
  /* `#pocetna` prefiks je nuzan: bazno `.hero-dot::after` stoji nize u fajlu
     i pri istoj specificnosti bi pobedilo ovaj mobilni override. */
  #pocetna .hero-controls-position { gap: 16px !important; }
  #pocetna .hero-dot { position: relative; }
  #pocetna .hero-dot::after {
    content: '';
    position: absolute;
    inset: -17px -8px;
  }

  /* Sadrzaj pocinje tacno ispod header-a — isti ritam kao na desktopu */
  body > div.page-header-offset { padding-top: 60px !important; }
}

/* Tablet: header je 58px, inline padding-top je 65px */
@media (min-width: 701px) and (max-width: 860px) {
  :root { --hdr-h: 58px; }
  body > div.page-header-offset { padding-top: 58px !important; }
}

/* Hamburger linije centrirane unutar vece mete */
#navToggle { justify-content: center; }

/* ---------- Externalized component declarations ---------- */
.page-hero-dotted { background-color:#bfe0ff;background-image:url(/assets/icons/dots.svg);background-attachment:fixed;padding:64px 0; }
.page-hero-dotted-spacious { background-color:#bfe0ff;background-image:url(/assets/icons/dots.svg);background-attachment:fixed;padding:72px 0; }
.cta-panel { margin-top:40px;background:#0e2a47;border-radius:18px;padding:36px;display:flex;align-items:center;gap:24px;flex-wrap:wrap; }
/* Kontejneri koji vec imaju svoj gap ne dodaju jos jedan razmak. */
:where(.not-found-container, .faq-container) > .cta-panel { margin-top:0; }
.feature-section-dark { background:#0e2a47;padding:120px 0;position:relative;overflow:hidden; }
#zasto { padding-top:170px; padding-bottom:170px; }
.language-current { background:#3b9cfd;color:#fff;padding:4px 8px;border-radius:6px; }
.page-hero { background:#bfe0ff;padding:64px 0; }
.booking-hero { background:#bfe0ff;padding:64px 0 96px; }
.contact-page-hero { background:#fff; }
.section-soft { background:#bfe0ff;padding:96px 0; }
.process-panel { background:#fff;border-radius:20px;padding:38px 40px 34px;display:flex;flex-direction:column;gap:10px;box-shadow:0 10px 30px rgba(14,42,71,.06); }
.brand-section { background:#eef1f4;padding:64px 0;overflow:hidden; }
.theme-toggle { background:none;border:none;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center; }
.map-frame { border:0;border-radius:16px;display:block; }
.contact-detail-title,
.price-note-title { color:#0e2a47; }
.text-link-emphasis { color:#3b9cfd;font-weight:400; }
:where(.page-hero, .story-container, .team-profile, .team-member-copy, .service-content-grid) :where(p, .cta-copy) > a[target="_blank"][href^="/usluge/"] {
  color: inherit;
  text-decoration-line: underline;
  text-decoration-color: #3b9cfd;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  text-decoration-skip-ink: auto;

  &:hover { color: inherit;text-decoration-color:#1d7de0; }
}
.cta-copy { color:#a9c4e2;font-size:.875rem;line-height:1.4rem; }
.diagnostic-copy { color:#dbe9f7;font-size:.75rem;line-height:1.5; }
.diagnostic-title { margin:0;color:#fff;font-size:1.125rem;font-weight:600;line-height:1.15; }
.cta-title { margin:0;color:#fff;font-size:1.1875rem;font-weight:600; }
.hero-proof { display:flex;align-items:center;gap:8px;color:#fff;font-size:.8125rem;font-weight:300; }
.consent-label {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  font-size: .8125rem;
  line-height: 1.6;
  color: #33506f;
  cursor: pointer;

  /* Nativni control ostaje u DOM-u zbog validacije i citaca ekrana, samo je
     providan i lezi tacno preko iscrtane kutije. */
  & > .consent-checkbox,
  & > .consent-box {
    grid-column: 1;
    grid-row: 1;
    width: 16px;
    height: 16px;
    margin: 3px 0 0;
  }

  & > .consent-checkbox {
    z-index: 1;
    -webkit-appearance: none;
    appearance: none;
    opacity: 0;
    cursor: pointer;

    &:focus-visible + .consent-box {
      outline: 3px solid #ffb547;
      outline-offset: 3px;
    }
    &:user-invalid + .consent-box { border-color: #c0392b; }
    &:checked + .consent-box {
      border-color: #3b9cfd;
      background: #3b9cfd;

      &::after { opacity: 1; animation: consent-check .8s ease both; }
    }
  }

  & > .consent-box {
    position: relative;
    border: 1px solid #c3d5e6;
    border-radius: 5px;
    background: #fff;
    pointer-events: none;
    transition: border-color .16s ease-out, background-color .16s ease-out;

    /* Kvacica: dve ivice rotirane u znak, pa animacija sirine i visine
       "iscrtava" prvo kratki, pa dugi krak. Osnovne mere su vec pun oblik. */
    &::after {
      content: "";
      position: absolute;
      top: 9px;
      left: 3px;
      width: 5px;
      height: 9px;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      opacity: 0;
      transform: scaleX(-1) rotate(135deg);
      transform-origin: left top;
    }
  }

  & > .consent-copy { grid-column: 2; grid-row: 1; }
}

@media (hover: hover) and (pointer: fine) {
  .consent-label:hover > .consent-box { border-color: #3b9cfd; }
}

@keyframes consent-check {
  0% { width: 0; height: 0; }
  25% { width: 5px; height: 0; }
  50% { width: 5px; height: 9px; }
}
.faq-group { display:flex;flex-direction:column;gap:0; }
.service-content-grid .faq-group { margin-top:48px; }
.faq-group .faq-group-title { font-size:1.6rem;font-weight:600;color:#3b9cfd;margin:0 0 30px; }
.faq-group .faq-item { border-bottom:1px solid #eef1f4; }
.faq-group .faq-item:last-of-type { border-bottom:0; }
.faq-group .faq-item.is-open { margin:20px 0;border:0;border-radius:16px;background:#e9f0ff; }
.faq-group .faq-toggle-layout { width:100%;background:none;border:none;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left; }
.faq-group .faq-toggle { padding:20px 25px 20px 6px; }
.faq-group .faq-item.is-open .faq-toggle { padding:22px 25px 6px 26px; }
.faq-group .faq-title { font-size:1rem;font-weight:500;color:#0e2a47; }
.faq-group .faq-mark { font-size:1.625rem;line-height:1;color:#3b9cfd;font-weight:300;flex-shrink:0; }
.faq-group .faq-answer-layout { overflow:hidden;max-height:0;opacity:0; }
.faq-group .faq-answer:not([hidden]) { max-height:none;opacity:1; }
:where(.faq-answer) p { font-size:.90625rem;line-height:1.7;color:#5b6b7d;margin:0;padding:0 26px 24px;white-space:pre-line; }
.faq-group .faq-footer { text-align:center;font-size:.875rem;color:#5b7a99;margin-top:28px; }
.process-panel-content { display:flex;flex-direction:column;gap:10px;width:70%;align-self:center;animation:stepFade .42s cubic-bezier(.22,.61,.36,1); }
.submit-stack { display:flex;flex-direction:column;gap:12px; }
.glass-card { display:flex;flex-direction:column;gap:14px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid transparent;border-radius:20px;padding:26px 24px;box-shadow:0 6px 16px rgba(8,26,45,.12);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease; }
.stack-large { display:flex;flex-direction:column;gap:18px; }
.service-menu-copy { display:flex;flex-direction:column;gap:3px;min-width:0; }
.team-list { display:flex;flex-direction:column;gap:56px; }
.team-list--profiles { gap:0; }
.team-profile { padding:0 0 40px;border-bottom:0; }
.team-profile + .team-profile { padding-top:56px; }
.team-profile:last-child { border-bottom:0; }
.team-profile__main { display:grid;grid-template-columns:minmax(420px,500px) minmax(0,1fr);gap:clamp(48px,4vw,64px);align-items:start; }
.team-profile .team-profile__photo { width:100%; }
.team-profile .team-profile__copy { min-width:0;max-width:580px;gap:24px; }
.team-profile--reverse .team-profile__main { grid-template-columns:minmax(0,1fr) minmax(420px,500px); }
.team-profile--reverse .team-profile__photo { grid-column:2;grid-row:1; }
.team-profile--reverse .team-profile__copy { grid-column:1;grid-row:1; }
.team-profile .team-profile__emphasis { margin:48px 0 0;padding:30px clamp(32px,5vw,72px);border-radius:12px;background:#f3f7ff; }
@media (min-width:901px) {
  #tamara-ristic .team-profile__copy { padding-top:22px;gap:30px; }
  #rastko-ristic .team-profile__copy { padding-top:16px;gap:20px; }
}
@media (max-width:900px) {
  .team-profile__main,
  .team-profile--reverse .team-profile__main { grid-template-columns:1fr;gap:40px; }
  .team-profile .team-profile__photo,
  .team-profile--reverse .team-profile__photo { grid-column:1;grid-row:1;max-width:500px;margin:0 auto; }
  .team-profile__copy,
  .team-profile--reverse .team-profile__copy { grid-column:1;grid-row:2;max-width:none; }
}
@media (max-width:700px) {
  .team-profile { padding-bottom:42px; }
  .team-profile + .team-profile { padding-top:48px; }
  .team-profile__main,
  .team-profile--reverse .team-profile__main { grid-template-columns:1fr;gap:32px; }
  .team-profile .team-profile__photo,
  .team-profile--reverse .team-profile__photo { grid-column:1;grid-row:1;width:100%;max-width:440px;margin:0 auto; }
  .team-profile__copy,
  .team-profile--reverse .team-profile__copy { grid-column:1;grid-row:2;max-width:none; }
  .team-profile .team-profile__emphasis { margin-top:32px;padding:22px 24px; }
}
.stack-tight { display:flex;flex-direction:column;gap:6px; }
.form-field { display:flex;flex-direction:column;gap:8px; }
.hero-actions { display:flex;gap:14px;flex-wrap:wrap;margin-top:6px; }
.desktop-nav { display:flex;justify-content:center;flex:1;font-size:clamp(0.6875rem, 0.596rem + 0.208vw, 0.75rem);font-weight:400;text-transform:uppercase;letter-spacing:.04em; }
.hero-proof-list { display:flex;gap:26px;margin-top:14px;flex-wrap:wrap; }
.team-member { display:flex;gap:48px;align-items:center;flex-wrap:wrap; }
.service-doctor { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:32px;margin:50px 0 8px;background:#bfe0ff;border-radius:20px;overflow:hidden; }
.service-doctor .team-photo { width:100%; }
.service-doctor-photo { display:block;text-decoration:none; }
.service-doctor .service-doctor-photo { border-radius:20px 0 0 20px; }
.service-doctor-link { color:inherit;text-decoration:none; }
.service-doctor-link:hover { color:#3b9cfd; }
.language-switcher { display:flex;gap:4px;font-size:.6875rem;font-weight:400; }
.site-logo-link { display:flex;text-decoration:none; }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px; }
.story-columns { position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:34px; }
.service-content-grid { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:44px;align-items:start; }
.values-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:50%; }
.gallery-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px; }
.media-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0; }
.not-found-links { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.service-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px; }
.service-menu-grid { display:grid;grid-template-columns:repeat(4,1fr);column-gap:10px;row-gap:4px; }
.home-gallery-grid { display:grid;grid-template-columns:repeat(5,1fr);gap:16px; }
.diagnostic-icon-box { flex-shrink:0;width:60px;height:60px;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(8,26,45,.18); }
.team-member-copy { flex:1;min-width:280px;display:flex;flex-direction:column;gap:14px; }
.service-menu-description { font-size:.6875rem;line-height:1.45;min-block-size:2lh;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:#5b7a99; }
.breadcrumb { font-size:.78125rem;font-weight:400;color:#000;margin-bottom:30px; }
.stat-label { font-size:.78125rem;font-weight:600;opacity:.9;margin-top:4px; }
.section-eyebrow { font-size:.78125rem;font-weight:600;letter-spacing:.14em;color:#3b9cfd;text-transform:uppercase; }
.section-eyebrow-light { font-size:.78125rem;font-weight:700;letter-spacing:.14em;color:#8cc5ff;text-transform:uppercase; }
.service-card-copy { margin:0;font-size:.78125rem;font-weight:400;line-height:1.55;min-block-size:2lh;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;color:rgba(255,255,255,.86); }
.service-overview-copy { font-size:.78125rem;line-height:1.6;color:#33506f;font-weight:400;margin:0; }
.badge { background:#3b9cfd;color:#fff;font-size:.9375rem;font-weight:600;letter-spacing:.01em;padding:12px 30px 12px 22px;clip-path:polygon(0 0,100% 0,calc(100% - 18px) 100%,0 100%); }
.service-sidebar .badge { align-self:flex-start;margin:10px 0 30px -34px;padding-left:46px;padding-right:40px;text-transform:none;filter:drop-shadow(-5px 4px 5px rgba(14,42,71,.22)); }
.subsection-eyebrow { font-size:.75rem;font-weight:500;letter-spacing:.14em;color:#3b9cfd;text-transform:uppercase; }
.glass-card-copy { font-size:.75rem;line-height:1.65;color:#c9def5;margin:0; }
.contact-card-copy { font-size:.84375rem;line-height:1.55;color:#33506f; }
.process-label { font-size:clamp(0.6875rem, 0.629rem + 0.248vw, 0.8125rem);font-weight:600;color:#5b7a99;text-align:center;line-height:1.3;transition:color .3s ease; }
.service-menu-title { font-size:clamp(.6875rem, .6667rem + .0926vw, .75rem);font-weight:500;color:#0e2a47; }
.process-copy { font-size:.8125rem;line-height:1.7;color:#33506f;margin:0;text-wrap:pretty; }
:where(.team-member-copy) p { font-size:.90625rem;line-height:1.7;color:#33506f;margin:0; }
.legal-updated { font-size:.875rem;line-height:1.7;color:#33506f;margin:0; }
.price-note-item { font-size:.875rem;line-height:1.7;color:#5b7a99; }
.story-emphasis-end { font-size:.96875rem;line-height:1.75;color:#0e2a47;font-weight:600;margin:auto 0 0; }
.page-lead { font-size:.96875rem;line-height:1.75;color:#33506f;margin:0; }
.section-lead { font-size:.96875rem;line-height:1.7;color:#33506f;margin:0; }
.content-emphasis { font-size:.96875rem;line-height:1.7;color:#0e2a47;font-weight:500;margin:0; }
:where(.service-content-grid, .story-container) p { font-size:.96875rem;line-height:1.7;color:#33506f;margin:0; }
.team-role-large { font-size:.9375rem;color:#3b9cfd;font-weight:600;margin-bottom:30px; }
:where(.legal-section, .price-intro) p { font-size:.9375rem;line-height:1.7;color:#33506f;margin:0; }
:where(.faq-hero-inner) p { font-size:.9375rem;line-height:1.7;color:#33506f;margin:0;max-width:620px; }
.glass-card-title { font-size:1rem;font-weight:700;margin:0;color:#8cc5ff;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.2); }
.gallery-link-title { font-size:1rem;font-weight:500;letter-spacing:-.01em; }
.services-lead { font-size:1rem;line-height:1.7;color:#33506f;margin:0;max-width:640px; }
.hero-lead { font-size:1.0625rem;line-height:1.65;color:#d7e8fa;margin:0 0 30px;text-wrap:pretty; }
.service-overview-title { font-size:1.125rem;font-weight:700;margin:0; }
.service-card-title { font-size:1.1875rem;font-weight:600;margin:0;letter-spacing:-.01em;text-shadow:0 1px 14px rgba(0,0,0,.32); }
.process-title { font-size:1.25rem;font-weight:600;margin:0; }
.legal-section-title { font-size:1.375rem;font-weight:800;margin:0; }
.content-title { font-size:1.5rem;font-weight:600;margin:24px 0 0; }
/* Prvi naslov u koloni nema gornji razmak; naslov posle slike/splita dobija manji. */
:where(.stack-large) > .content-title:first-child { margin-top:0; }
.stack-large > .breadcrumb + .content-title { margin-top:0; }
.content-split + .content-title { margin-top:8px; }
.brand-title { font-size:clamp(1.375rem, 1.259rem + 0.497vw, 1.625rem);font-weight:600;margin:0;text-wrap:pretty; }
.content-subtitle { font-size:clamp(1.375rem, 1.259rem + 0.497vw, 1.625rem);font-weight:700;margin:8px 0 0; }
.story-stat { font-size:clamp(1.4375rem, 1.292rem + 0.621vw, 1.75rem);font-weight:800;line-height:1; }
.team-name { font-size:clamp(1.4375rem, 1.292rem + 0.621vw, 1.75rem);font-weight:700;margin:0; }
.section-title { font-size:clamp(1.5625rem, 1.359rem + 0.87vw, 2rem);font-weight:700;margin:0;text-wrap:pretty; }
:where(.feature-section-dark) .section-title { color:#fff; }
.page-title { font-size:clamp(1.8125rem, 1.55rem + 1.118vw, 2.375rem);font-weight:700;letter-spacing:-0.5px;margin:0 0 30px;text-wrap:pretty; }
:where(.page-hero-stack) .page-title { max-width:720px; }
.hero-title { font-size:clamp(2.125rem, 1.601rem + 2.236vw, 3.25rem);font-weight:600;line-height:1.1;color:#fff;margin:0;text-wrap:pretty;letter-spacing:-.01em; }
.ghost-button-layout { font-weight:400;font-size:.9375rem;padding:12px 26px;text-decoration:none; }
.hero-primary-action { font-weight:400;font-size:.9375rem;padding:14px 28px;white-space:nowrap; }
.inline-strong-link { font-weight:500; }
.mobile-cta { display:flex;justify-content:center;font-weight:600;font-size:.875rem;padding:13px 24px;text-align:center;margin-top:10px; }
.page-hero-cta { font-weight:500;font-size:.90625rem;padding:13px 26px;align-self:flex-start; }
.service-phone-cta { display:none; }
@media (min-width: 701px) { .page-hero-dotted .page-hero-cta[href="/zakazivanje"] { display:none; } }
@media (min-width: 701px) {
  .cta-panel { flex-wrap:nowrap; }
  .cta-panel .stack-tight { min-width:0; }
  .cta-panel .cta-button { flex:0 0 auto;white-space:nowrap; }
}
.cta-button { margin-left:auto;font-weight:500;font-size:.9375rem;padding:14px 28px;white-space:nowrap; }
.form-status { margin:0;font-size:.875rem;line-height:1.6;text-align:center; }
.note-list { margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px; }
.media-group { margin:20px 0;display:flex;flex-direction:column;gap:14px; }
.section-container,
.brand-heading,
.page-hero-stack,
.page-hero-grid,
.feature-container,
.header-inner,
.content-container,
.section-container-wide {
  max-width: 1180px;
  margin: 0 auto;
  padding-inline: 24px;
}
.section-container { padding-block:0; }
.brand-heading { padding-block:0 30px;text-align:center;display:flex;flex-direction:column;gap:12px; }
.page-hero-stack { padding-block:0;display:flex;flex-direction:column;gap:14px; }
.page-hero-grid { padding-block:0;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center; }
.feature-container { padding-block:0;position:relative;z-index:1; }
.header-inner { padding-block:14px;display:flex;align-items:center;gap:26px; }
.content-container { padding-block:72px; }
.section-container-wide { padding-block:96px; }
.story-heading { max-width:600px;display:flex;flex-direction:column;gap:16px; }
.hero-content { max-width:640px;display:flex;flex-direction:column;gap:22px; }
.services-heading { max-width:640px;margin:0 auto 48px;text-align:center;display:flex;flex-direction:column;gap:14px;align-items:center; }
.contact-page-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:stretch; }
.contact-page-copy { display:flex;flex-direction:column;justify-content:space-between;min-height:450px; }
.contact-page-copy .section-heading { margin-bottom:40px; }
.contact-details { position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)); }
/* Linije stoje tacno na trecinama trake, a sadrzaj kolona 2 i 3 se centrira
   u svojoj celiji — pa je linija na sredini izmedju susednih blokova, umesto
   zalepljena uz sledecu kolonu. Prva kolona ostaje uz levu ivicu. */
.contact-details::before,
.contact-details::after { content:"";position:absolute;top:0;bottom:0;width:1px;background:#d9e1e9; }
.contact-details::before { left:33.33%; }
.contact-details::after { left:66.66%; }
.contact-detail { display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:0;justify-self:center; }
.contact-detail:first-child { justify-self:start; }
.contact-detail-title { margin:0;font-size:inherit; }
.contact-detail address,
.contact-detail p { margin:0;font-style:normal; }
.contact-page-map { width:100%;height:100%;min-height:450px; }
.section-heading { max-width:660px;margin-bottom:44px;display:flex;flex-direction:column;gap:14px; }
.gallery-heading { max-width:660px;margin:0 auto 40px;display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center; }
#galerija { padding-top:146px; padding-bottom:146px; }
#galerija .section-lead { margin-top:20px; }
.faq-home-container { max-width:720px;margin:0 auto;padding:96px 24px; }
.booking-form-wrap { max-width:760px;margin:0 auto; }
.booking-heading { max-width:760px;margin:0 auto 44px;display:flex;flex-direction:column;gap:14px;text-align:center;align-items:center; }
.legal-hero-inner { max-width:860px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;gap:14px; }
.legal-container { max-width:860px;margin:0 auto;padding:64px 24px;display:flex;flex-direction:column;gap:26px; }
.story-container { max-width:860px;margin:0 auto;padding:72px 24px;display:flex;flex-direction:column;gap:18px; }
.faq-hero-inner { max-width:900px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;gap:14px; }
.price-groups { max-width:900px;margin:0 auto;padding:40px 24px 72px;display:flex;flex-direction:column;gap:34px; }
.price-intro { max-width:900px;margin:0 auto;padding:56px 24px 0;display:flex;flex-direction:column;gap:14px; }
.not-found-container { max-width:900px;margin:0 auto;padding:56px 24px 72px;display:flex;flex-direction:column;gap:26px; }
.faq-container { max-width:900px;margin:0 auto;padding:72px 24px;display:flex;flex-direction:column;gap:40px; }
.process-container { max-width:980px;margin:0 auto;padding:0 24px; }
.home-page { min-height:100vh;min-height:100svh; }
.overflow-hidden { overflow:hidden; }
.site-page { padding-top:65px; }
.service-card-body { padding:36px 24px 24px;display:flex;flex-direction:column;gap:10px; }
.lightbox-counter { position:absolute;bottom:26px;left:50%;transform:translateX(-50%);color:#fff;font-size:.875rem;font-weight:600;letter-spacing:.04em;background:rgba(255,255,255,.12);padding:7px 16px;border-radius:999px; }
.service-card-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(9,24,43,.95) 0%,rgba(9,24,43,.82) 22%,rgba(9,24,43,.5) 45%,rgba(9,24,43,.12) 70%,rgba(9,24,43,0) 88%); }
.gallery-link-content { position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;text-align:center;padding:18px; }
.team-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.team-image--top { object-position:center top; }
.feature-background {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(4, 25, 45, .96) 0%, rgba(4, 25, 45, .82) 38%, rgba(4, 25, 45, .50) 72%, rgba(4, 25, 45, .60) 100%),
    url(/assets/images/interior/loby/smile-design-stomatoloska-ordinacija-vozdovac-05.webp) center / cover fixed;
  opacity: 1;
  pointer-events: none;
}
.hero-overlay { position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(4,25,45,.96) 0%,rgba(4,25,45,.82) 38%,rgba(4,25,45,.5) 72%,rgba(4,25,45,0) 100%); }
.honeypot-field { position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden; }
.team-photo .badge { position:absolute;left:0;bottom:34px; }
.service-card-content { position:absolute;left:0;right:0;bottom:0;padding:22px;display:flex;flex-direction:column;gap:7px;transition:transform .55s cubic-bezier(.22,.61,.36,1); }
.service-overview-icon { position:absolute;left:22px;bottom:-22px;width:46px;height:46px;border-radius:50px;background:#fff;box-shadow:0 6px 16px rgba(14,42,71,.18); }
.hero-pagination { position:absolute;left:24px;bottom:30px;display:flex;gap:10px; }
.lightbox-previous { left:24px;top:50%;transform:translateY(-50%);width:54px;height:54px; }
.process-track { position:absolute;left:calc((100% - 50px) / 12);right:calc((100% - 50px) / 12);top:32px;height:3px;background:#9fbad6;border-radius:2px; }
.process-progress { position:absolute;left:calc((100% - 50px) / 12);top:32px;height:3px;background:#3b9cfd;border-radius:2px;width:0; }
.hero-scroll-link { position:absolute;left:calc(50% - 22px);bottom:26px;z-index:4;width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease; }
.story-stat-card { position:absolute;right:-20px;bottom:-24px;background:#3b9cfd;color:#fff;border-radius:16px;padding:18px 24px;box-shadow:0 14px 34px rgba(14,42,71,.28); }
.lightbox-next { right:24px;top:50%;transform:translateY(-50%);width:54px;height:54px; }
.service-card-icon-frame { position:absolute;top:16px;left:16px;width:46px;height:46px;border-radius:50px;background:rgba(255,255,255,.18);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);border:0; }
.service-card-arrow { position:absolute;top:18px;right:18px;width:40px;height:40px;border-radius:50%;background:#3b9cfd;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-8px) scale(.8);transition:opacity .45s ease,transform .45s cubic-bezier(.22,.61,.36,1); }
.lightbox-close { top:24px;right:24px;width:48px;height:48px; }
.lightbox-shell { position:fixed;inset:0;z-index:220;background:rgba(6,17,31,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:5vw;box-sizing:border-box;animation:lbFade .3s ease; }
.diagnostic-anchor { position:absolute;inset:0 0 auto;height:0;z-index:4; }
.diagnostic-card { position:fixed;right:max(24px, calc((100vw - 1180px)/2 + 24px));bottom:80px;z-index:4;max-width:400px;display:flex;align-items:center;gap:18px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid transparent;border-radius:18px;padding:18px 22px;box-shadow:0 6px 16px rgba(8,26,45,.12);text-decoration:none;transition:background-color .35s ease,border-color .35s ease,box-shadow .35s ease; }
/* Sidro je vec siroko koliko i sadrzaj kontejnera, pa dokovana kartica ide
   na right:0 — inace se, u odnosu na fiksirano stanje, pomeri 24px ulevo. */
.diagnostic-card.is-docked { position:absolute;top:-80px;right:0;bottom:auto;transform:translateY(-100%); }
.diagnostic-card.is-on-light { background:rgba(255,255,255,.94);border-color:rgba(14,42,71,.06);box-shadow:0 12px 30px rgba(8,26,45,.12); }
.diagnostic-card.is-on-light .diagnostic-title { color:#0e2a47; }
.diagnostic-card.is-on-light .diagnostic-copy { color:#33506f; }
.positioned { position:relative; }
.gallery-story-link { position:relative;border-radius:14px;overflow:hidden;aspect-ratio:4 / 3;display:block;background:#3b9cfd;box-shadow:0 2px 10px rgba(14,42,71,.08); }
.service-menu-wrap { position:relative;display:flex;align-items:center; }
.process-navigation { position:relative;margin-bottom:36px; }
.team-photo { position:relative;flex-shrink:0;width:340px;max-width:100%;aspect-ratio:3 / 4;border-radius:20px;overflow:hidden;box-shadow:0 22px 50px rgba(14,42,71,.2); }
.home-hero { position:relative;min-height:100vh;min-height:100svh;overflow:hidden; }
.process-dot-layout { position:relative;z-index:1;width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 2px 10px rgba(14,42,71,.08);transition:transform .2s ease-out,background-color .2s ease-out,box-shadow .2s ease-out; }
.hero-inner { position:relative;z-index:3;max-width:1180px;margin:0 auto;padding:96px 24px;width:100%;box-sizing:border-box;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center; }
.service-sidebar { position:sticky;top:90px;display:flex;flex-direction:column;gap:6px;background:#fff;border-radius:18px;padding:30px 24px 24px;box-shadow:0 2px 12px rgba(14,42,71,.08);font-family:Montserrat,'Helvetica Neue',Arial,sans-serif; }
.founder-caption { text-align:center;font-size:.8125rem;color:#5b7a99;margin:36px 0 0; }
.faq-heading { text-align:center;margin-bottom:40px;display:flex;flex-direction:column;gap:14px; }
.team-heading { text-align:left;max-width:660px;margin:0 0 44px;display:flex;flex-direction:column;gap:14px;align-items:flex-start; }
.not-found-action { text-align:center;padding:14px 20px;font-weight:600;font-size:.875rem; }
.service-menu-panel { width:100%;background:#fff;border-radius:20px;box-shadow:0 24px 60px rgba(8,26,45,.22);border:1px solid #eef2f6;padding:24px 26px;text-transform:none;letter-spacing:normal; }
.content-image { width:100%;height:auto;border-radius:16px;display:block;margin:16px 0; }
.content-split { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;margin:16px 0; }
.content-split .content-split-image { height:100%;min-height:320px;object-fit:cover;margin:0; }
.service-overview-image { width:100%;height:200px;object-fit:cover;border-radius:14px;display:block; }
.service-hero-image { width:100%;height:100%;min-height:460px;object-fit:cover;border-radius:0;display:block; }

/* Hero usluga: sadrzaj ostaje u originalnoj 1180px mrezi; samo slika se
   produzava desno do ivice ekrana i preko cele visine sekcije. */
@media (min-width: 901px) {
  .service-hero {
    position: relative;
    min-height: 460px;
    padding: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
  }
  .service-hero .page-hero-grid { width: 100%; }
  .service-hero .page-hero-grid > .stack-large { padding: 48px 0; }
  /* Slika je van toka, pa svojom proporcijom ne moze da razvuce sekciju.
     Visinu drzi sekcija, a slika je popunjava preko object-fit: cover. */
  .service-hero .service-hero-image {
    /* <img> je zamenljiv element: uz `width: auto` apsolutno pozicioniranje
       uzima prirodnu sirinu slike i ignorise `right`, pa se sirina racuna
       eksplicitno iz iste vrednosti koja odredjuje levu ivicu. */
    --hero-img-left: min(calc(50% + 78px), calc(55% + 19.2px));
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--hero-img-left);
    width: calc(100% - var(--hero-img-left));
    height: 100%;
    min-height: 0;
    max-width: none;
  }
}
.founder-image { width:100%;height:420px;object-fit:cover;border-radius:20px;display:block;box-shadow:0 20px 50px rgba(14,42,71,.15); }
.chevron-down { width:11px;height:11px;border-right:2px solid #fff;border-bottom:2px solid #fff;margin-top:-3px;transform:rotate(45deg); }
.arrow-icon-small,
.arrow-up-right-icon { color:#fff;--icon:url(/assets/icons/arrow-up-right.svg); }
.arrow-icon-small { width:17px;height:17px; }
.proof-location-icon,
.proof-shield-icon,
.proof-smiley-icon { width:18px;height:18px;color:#fff; }
.proof-location-icon { --icon:url(/assets/icons/map-pin.svg); }
.proof-shield-icon { --icon:url(/assets/icons/shield-check.svg); }
.proof-smiley-icon { --icon:url(/assets/icons/smiley.svg); }
.contact-clock-icon,
.contact-map-icon,
.contact-phone-icon { width:20px;height:20px;color:#3b9cfd;flex-shrink:0;margin-top:2px; }
.contact-clock-icon { --icon:url(/assets/icons/clock.svg); }
.contact-map-icon { --icon:url(/assets/icons/map-pin.svg); }
.contact-phone-icon { --icon:url(/assets/icons/phone.svg); }
.close-icon { width:20px;height:20px;color:#fff;--icon:url(/assets/icons/close.svg); }
.arrow-up-right-icon { width:22px;height:22px;transition:transform .16s cubic-bezier(.23,1,.32,1); }
.previous-icon,
.next-icon { width:24px;height:24px;color:#fff;--icon:url(/assets/icons/chevron-left.svg); }
.next-icon { transform:scaleX(-1); }
.diagnostic-icon-glyph { width:32px;height:32px;color:#3b9cfd; }
.gallery-link-icon { width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center; }

/* ---------- Semantičke komponente i stanja ---------- */
*, *::before, *::after { box-sizing: border-box; }

body.menu-locked,
body.modal-open { overflow: hidden; }

:focus-visible {
  outline: 3px solid #ffb547;
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 12px;
  z-index: 500;
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff;
  color: #0e2a47;
  font-weight: 700;
  transform: translateY(-160%);
  transition: transform .15s ease-out;

  &:focus { transform: translateY(0); }
}

.svc-trigger {
  display: flex;
  align-items: center;
}

.svc-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  text-decoration: none;
  transition: background-color .18s ease-out;
}

.svc-item__icon-box {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50px;
  background: #eaf4ff;
}

.svc-item__icon { display: block; width: 20px; height: 20px; color: #3b9cfd; }

.svc-item--active {
  background: #f4f8fc;

  & .service-menu-title { color: #3b9cfd; }
}

.side-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #0e2a47;
  text-decoration: none;
  font-size: .8125rem;
  font-weight: 400;
  transition: background-color .18s ease-out, color .18s ease-out;
}

.side-link__icon { width: 20px; height: 20px; flex-shrink: 0; color:#8cc5ff; }
.side-link:hover,
.side-link--active { background:#f4f8fc; color:#3b9cfd; }

.masked-icon,
.icon-mask {
  display: block;
  background: currentColor;
  mask: var(--icon) center / contain no-repeat;
  -webkit-mask: var(--icon) center / contain no-repeat;
}
.masked-icon { width: 24px; height: 24px; }
.masked-icon--chat, .masked-icon-parent--chat { --icon: url('/assets/icons/chat.svg'); }
.masked-icon--calendar, .masked-icon-parent--calendar { --icon: url('/assets/icons/calendar.svg'); }
.masked-icon--clock, .masked-icon-parent--clock { --icon: url('/assets/icons/clock.svg'); }
.masked-icon--first-aid, .masked-icon-parent--first-aid { --icon: url('/assets/icons/first-aid.svg'); }
.masked-icon--shield-check, .masked-icon-parent--shield-check { --icon: url('/assets/icons/shield-check.svg'); }
.masked-icon--smiley, .masked-icon-parent--smiley { --icon: url('/assets/icons/smiley.svg'); }
.masked-icon--sparkle, .masked-icon-parent--sparkle { --icon: url('/assets/icons/sparkle.svg'); }
.masked-icon--tooth, .masked-icon-parent--tooth { --icon: url('/assets/icons/tooth.svg'); }
.masked-icon--screwdriver, .masked-icon-parent--screwdriver { --icon: url('/assets/icons/screwdriver.svg'); }
.masked-icon--syringe, .masked-icon-parent--syringe { --icon: url('/assets/icons/syringe.svg'); }
.masked-icon--crown, .masked-icon-parent--crown { --icon: url('/assets/icons/crown.svg'); }
.masked-icon--target, .masked-icon-parent--target { --icon: url('/assets/icons/target.svg'); }
.masked-icon--arrows-out-line-horizontal, .masked-icon-parent--arrows-out-line-horizontal { --icon: url('/assets/icons/arrows-out-line-horizontal.svg'); }
.masked-icon--magnifying-glass, .masked-icon-parent--magnifying-glass { --icon: url('/assets/icons/magnifying-glass.svg'); }
.masked-icon--scan, .masked-icon-parent--scan { --icon: url('/assets/icons/scan.svg'); }
.masked-icon--instagram { --icon: url('/assets/icons/instagram.svg'); }
.masked-icon--facebook-logo { --icon: url('/assets/icons/facebook-logo.svg'); }
.masked-icon--linkedin { --icon: url('/assets/icons/linkedin.svg'); }
.price-ico::after { mask-image: var(--icon); -webkit-mask-image: var(--icon); }

.svc-card {
  position: relative;
  display: block;
  border-radius: 20px;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 4px 18px rgba(14,42,71,.12);
  transition: transform .2s ease-out, box-shadow .2s ease-out;
}
.svc-card { height: 250px; }
.cover-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease-out;
}
.svc-card .masked-icon { color:#fff; }

.usl-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  color: #0e2a47;
  box-shadow: 0 2px 10px rgba(14,42,71,.08);
  transition: box-shadow .2s ease-out;
}
.usl-card__image {
  width: 100%;
  object-fit: cover;
  display: block;
  transition: transform .25s ease-out;
}
.usl-card__image { height: 200px; }
.usl-card .masked-icon { width: 25px; height: 25px; color: #3b9cfd; }

@media (hover: hover) and (pointer: fine) {
  .svc-item:hover { background: #f4f8fc; }
  .svc-card:hover { transform: translateY(-6px); box-shadow: 0 20px 42px rgba(14,42,71,.26); color: #fff; }
  .svc-card:hover .cover-image { transform: scale(1.06); }
  .usl-card:hover .usl-card__image { transform: scale(1.05); }
  .gal-item:hover .cover-image { transform: scale(1.05); }
  .gallery-story-link:hover .arrow-up-right-icon { transform: translate(2px,-2px); }
}

.gallery-story-link:focus-visible .arrow-up-right-icon { transform: translate(2px,-2px); }

.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  z-index: 0;
  transition: opacity .35s ease-out;
}
.hero-slide.is-active { opacity: 1; z-index: 1; }
.hero-slide--01 { background-image: url('/assets/images/interior/loby/smile-design-stomatoloska-ordinacija-vozdovac-01.webp'); }
.hero-dot {
  position: relative;
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: rgba(255,255,255,.34);
  transition: width .2s ease-out, background-color .2s ease-out;
}
.hero-dot[aria-current="true"] { width: 28px; background: rgba(255,255,255,.78); }
.hero-dot::after { content: ''; position: absolute; inset: -18px -6px; }
#heroArrow.is-hidden { opacity: 0; pointer-events: none; }

.proc-step {
  background: none;
  border: 0;
  cursor: pointer;
  font-family: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 0;
}
.proc-icon { width: 28px; height: 28px; color: #3b9cfd; transition: color .2s ease-out; }
.proc-step.is-active .proc-dot {
  background: #3b9cfd;
  box-shadow: 0 12px 26px rgba(59,156,253,.38);
  transform: translateY(-4px) scale(1.05);
}
.proc-step.is-active .proc-icon { color: #fff; }
.proc-step.is-active .proc-label { color: #0e2a47; font-weight: 600; }
#procBar { transition: width .2s ease-out; }
#procBar[data-step="0"] { width: 0; }
#procBar[data-step="1"] { width: 20%; }
#procBar[data-step="2"] { width: 40%; }
#procBar[data-step="3"] { width: 60%; }
#procBar[data-step="4"] { width: 80%; }
#procBar[data-step="5"] { width: 100%; }

.gal-item--button,
.gal-item--compact {
  position: relative;
  padding: 0;
  border: 0;
  cursor: pointer;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #dfeaf5;
  display: block;
  box-shadow: 0 2px 10px rgba(14,42,71,.08);
}
.gal-item--button { border-radius: 14px; }
.gal-item--compact { border-radius: 12px; }
.lightbox__image {
  display: block;
  width: auto;
  height: min(82vh, calc(90vw * .75));
  max-width: 90vw;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.5);
}


.brand-marquee {
  --brand-marquee-gap: 56px;
  --brand-marquee-logo-width: 132px;
  --brand-marquee-logo-height: 40px;
  --brand-marquee-slot-height: 64px;
  --brand-marquee-duration: 60s;
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 15px 24px;
}
.brand-marquee__track {
  display: flex;
  width: max-content;
  min-width: 200%;
  animation: brand-marquee-scroll var(--brand-marquee-duration) linear infinite;
  will-change: transform;
}
.brand-marquee.is-js-marquee .brand-marquee__track { animation: none; }
.brand-marquee__group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  height: var(--brand-marquee-slot-height);
  gap: var(--brand-marquee-gap);
  min-width: max-content;
  padding-right: var(--brand-marquee-gap);
}
.brand-marquee__item {
  display: flex;
  flex: 0 0 160px;
  height: var(--brand-marquee-slot-height);
  align-items: center;
  justify-content: center;
}
.brand-marquee__logo {
  display: block;
  width: var(--brand-marquee-logo-width);
  height: var(--brand-marquee-logo-height);
  object-fit: contain;
  object-position: center;
  filter: brightness(0) saturate(100%) invert(63%) sepia(77%) saturate(1614%) hue-rotate(180deg) brightness(101%) contrast(98%);
}

@keyframes brand-marquee-scroll {
  to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .brand-marquee__track { animation: none; transform: translate3d(0, 0, 0); }
  .mobile-theme-option { transition: none; }
}

/* ---------- Privatnost i opcioni spoljni sadržaji ---------- */
.privacy-consent {
  position: fixed;
  z-index: 1200;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: flex;
  max-width: 1180px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-inline: auto;
  padding: 24px;
  border: 1px solid rgba(59, 156, 253, .2);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(11, 40, 70, .2);

  &[hidden] { display: none; }
}

.privacy-consent__copy {
  max-width: 720px;

  & p { margin: 8px 0 0;line-height: 1.6; }
  & a { color: inherit;text-decoration-color: #3b9cfd;text-decoration-thickness: 1px;text-underline-offset: .2em; }
}

.privacy-consent__title { margin: 0;color: #0c2d50;font-size: 1.125rem;font-weight: 600; }
.privacy-consent__actions { display: flex;flex: 0 0 auto;gap: 12px; }
.privacy-consent__button,
.privacy-settings-button {
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: inherit;
  font-weight: 500;
  cursor: pointer;
}
.privacy-consent__button--primary { background: #ffb543;color: #0c2d50; }
.privacy-consent__button--secondary,
.privacy-settings-button { border-color: #b8d7f5;background: #eef6ff;color: #0c2d50; }

.contact-map-shell { position: relative;min-height: 520px; }
.contact-map-placeholder {
  display: flex;
  min-height: 520px;
  box-sizing: border-box;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 40px;
  border-radius: 30px;
  background: #eef6ff;
  color: #31577e;
  text-align: center;

  &[hidden] { display: none; }
  & p { max-width: 430px;margin: 0;line-height: 1.6; }
  & .contact-map-icon { width: 36px;height: 36px;background-color: #3b9cfd; }
}
.contact-map-shell .contact-page-map { width: 100%;height: 100%;min-height: 520px; }

html[data-theme="dark"] {
  & .privacy-consent { border-color: rgba(140, 197, 255, .24);background: #16212f;color: #c2d1e2;box-shadow: 0 24px 70px rgba(0, 0, 0, .4); }
  & .privacy-consent__title { color: #eef6ff; }
  & .privacy-consent__button--secondary,
  & .privacy-settings-button { border-color: #41556d;background: #1d3046;color: #eef6ff; }
  & .contact-map-placeholder { background: #16212f;color: #c2d1e2; }
}

@media (max-width: 700px) {
  .privacy-consent { right: 12px;bottom: 12px;left: 12px;align-items: stretch;flex-direction: column;padding: 20px;border-radius: 20px; }
  .privacy-consent__actions { flex-direction: column; }
  .privacy-consent__button { width: 100%; }
  .contact-map-shell,
  .contact-map-placeholder,
  .contact-map-shell .contact-page-map { min-height: 420px; }
}

.booking-form {
  background: #fff;
  border-radius: 22px;
  padding: 40px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  box-shadow: 0 10px 30px rgba(14,42,71,.06);
}
input, textarea, button, select { font-family: inherit; }
.form-label { font-size: .75rem; font-weight: 700; color: #0e2a47; }
.form-label__optional { color: #8aa0b6; font-weight: 500; }
.zk-input {
  width: 100%;
  font-size: max(1rem, 16px);
  padding: 14px 16px;
  border: 1.5px solid transparent;
  border-radius: 12px;
  outline: none;
  color: #0e2a47;
  background-color: #f4f8fc;
  transition: border-color .18s ease-out, background-color .18s ease-out;
}
.zk-input:focus { border-color: #3b9cfd; background-color: #fff; }
.zk-input:user-invalid { border-color: #c0392b; }
.zk-select:has(> option[value=""]:checked) { color: #8aa0b6; }
.zk-select {
  cursor: pointer;
  padding-right: 44px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6 8 10l4-4' fill='none' stroke='%230e2a47' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 16px 16px;
}
.booking-form__message { resize: vertical; }
.zk-submit {
  background: #ffb547;
  color: #0e2a47;
  font-weight: 700;
  font-size: .9375rem;
  padding: 16px 30px;
  border-radius: 999px;
  border: 0;
  cursor: pointer;
  align-self: flex-end;
  transition: background-color .18s ease-out;
}
.zk-submit:hover { background: #f5a52e; }
.zk-submit:disabled { opacity: .6; cursor: default; }
#zkStatus[data-kind="ok"] { color: #1f7a4d; font-weight: 600; }
#zkStatus[data-kind="error"] { color: #c0392b; font-weight: 600; }
#zkStatus[data-kind="info"] { color: #5b7a99; }

html[data-theme="dark"] {
  & .svc-item__icon-box { background: #14273f; }
  & .svc-item--active { background: #182c48; }
  & .svc-item--active .service-menu-title { color: #8cc5ff !important; }
  & .side-link { color: #e8f1fb; }
  & .svc-item:hover { background: #1f2f42; }
  & .svc-item:hover .service-menu-title { color: #8cc5ff !important; }
  & .side-link:hover,
  & .side-link--active { background: #182c48; color: #8cc5ff; }
  & .usl-card,
  & .booking-form { background: #16212f; color: #e8f1fb; }
  & .booking-form {
    border: 1px solid #2b3d52;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .28);
  }
  & .service-doctor {
    background: #16212f;
  }
  & .form-label { color: #e8f1fb; }
  & .form-label__optional { color: #9fb0c2; }
  & .zk-input { color: #e8f1fb; background-color: #1a2735; border-color: #2b3d52; }
  & .zk-input::placeholder { color: #9fb0c2; opacity: 1; }
  & .zk-input:focus { background-color: #16212f; border-color: #3b9cfd; }
  & .zk-select:has(> option[value=""]:checked) { color: #9fb0c2; }
  & .consent-label > .consent-box { border-color: #2b3d52; background: #1a2735; }
  & .consent-checkbox:checked + .consent-box { border-color: #3b9cfd; background: #3b9cfd; }
  & .zk-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6 8 10l4-4' fill='none' stroke='%23c2d1e2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
  & .faq-group .faq-item { border-color: #2b3d52; }
  & .faq-group .faq-item.is-open { background: #182c48; }
  & .proc-step.is-active .proc-label { color: #e8f1fb; }
}

@supports (appearance: base-select) {
  .zk-select {
    appearance: base-select;
    display: flex;
    align-items: center;
    padding-right: 16px;
    background-image: none;
    text-align: left;

    &::picker-icon {
      content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6 8 10l4-4' fill='none' stroke='%230e2a47' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      width: 16px;
      height: 16px;
      margin-left: auto;
      padding-left: 10px;
      transition: transform .18s ease-out;
    }
    &:open::picker-icon { transform: rotate(180deg); }

    &::picker(select) {
      appearance: base-select;
      box-sizing: border-box;
      max-height: 320px;
      margin-block: 8px;
      padding: 6px;
      overflow-y: auto;
      border: 1px solid #dbe7f3;
      border-radius: 14px;
      background: #fff;
      box-shadow: 0 18px 40px rgba(14, 42, 71, .16);
      opacity: 0;
      translate: 0 -6px;
      transition: opacity .16s ease-out, translate .16s ease-out,
                  display .16s allow-discrete, overlay .16s allow-discrete;
    }
    &:open::picker(select) { opacity: 1; translate: 0 0; }

    & option {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 11px 14px;
      border-radius: 10px;
      color: #0e2a47;
      font-size: .9375rem;
      line-height: 1.35;
      cursor: pointer;
      transition: background-color .14s ease-out;
    }
    & option::checkmark { display: none; }
    & option:hover,
    & option:focus { background-color: #f4f8fc; }
    & option:checked { background-color: #e6f1fe; font-weight: 600; }
    & option:disabled,
    & option:disabled:hover,
    & option:disabled:checked {
      background-color: transparent;
      color: #8aa0b6;
      font-weight: 400;
      cursor: default;
    }

    /* Prazan `.opt-icon` (usluga bez maske, placeholder) drzi istu kolonu
       kao ikonice, da se tekst svih opcija poravna. */
    & .opt-icon {
      flex: 0 0 auto;
      width: 18px;
      height: 18px;
      color: #3b9cfd;
    }
  }

  @starting-style {
    .zk-select:open::picker(select) { opacity: 0; translate: 0 -6px; }
  }

  html[data-theme="dark"] {
    /* Tamna strelica iz osnovnog fallback-a nije potrebna uz ::picker-icon. */
    & .zk-select { background-image: none; }
    & .zk-select::picker-icon { content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M4 6 8 10l4-4' fill='none' stroke='%23c2d1e2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
    & .zk-select::picker(select) {
      border-color: #2b3d52;
      background: #16212f;
      box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
    }
    & .zk-select option { color: #e8f1fb; }
    & .zk-select option:hover,
    & .zk-select option:focus { background-color: #1f2f42; }
    & .zk-select option:checked { background-color: #182c48; }
    & .zk-select option:disabled,
    & .zk-select option:disabled:hover,
    & .zk-select option:disabled:checked { background-color: transparent; color: #9fb0c2; }
    & .zk-select .opt-icon { color: #6fb6ff; }
  }
}

@media (max-width: 700px) {
  .page-hero-dotted { padding:30px 0; }
  .service-hero .service-hero-image {
    width:calc(100% + 48px);
    max-width:none;
    margin:0 -24px -30px;
  }
  .service-booking-cta { display:none; }
  .page-hero-dotted a.service-phone-cta[href^="tel:"] {
    display:inline-flex;
    width:100%;
    min-height:44px;
    padding:13px 26px;
    box-sizing:border-box;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
  }
  .content-split { grid-template-columns:1fr;gap:20px; }
  .content-split .content-split-image { min-height:0;height:auto; }
  .service-doctor { grid-template-columns:1fr;gap:0; }
  .service-doctor .team-photo { width:100%; }
  .service-doctor .service-doctor-photo { border-radius:20px 20px 0 0; }
  .service-doctor .team-member-copy { padding:30px; }
  .hero-slide--01 { background-image: url('/assets/images/interior/loby/smile-design-stomatoloska-ordinacija-vozdovac-01.webp'); }
  .brand-marquee { --brand-marquee-gap: 28px; --brand-marquee-logo-width: 108px; --brand-marquee-logo-height: 34px; --brand-marquee-slot-height: 48px; padding-inline: 16px; }
  .brand-marquee__item { flex-basis: 124px; }
  .contact-page-layout { grid-template-columns:1fr;gap:32px; }
  .contact-page-copy { min-height:0; }
  .contact-page-copy .section-heading { margin-bottom:0; }
  .contact-details { margin-top:32px; }
  .contact-page-map { height:380px;min-height:0; }
}

@media (min-width: 701px) and (max-width: 860px) {
  .contact-page-layout { grid-template-columns:1fr;gap:32px; }
  .contact-page-copy { min-height:0; }
  .contact-page-copy .section-heading { margin-bottom:0; }
  .contact-details { margin-top:32px; }
  .contact-page-map { height:450px;min-height:0; }
}

@media (max-width: 600px) {
  .booking-form { padding: 24px 18px; }
  .svc-card { height: 230px; }

  .contact-details { grid-template-columns:1fr; }
  .contact-details::before,
  .contact-details::after { content:none; }
  .contact-detail { padding:20px 0;justify-self:stretch; }
  .contact-detail + .contact-detail { border-top:1px solid #d9e1e9; }
}

/* ---------- Status stranice: 404 i potvrda zakazivanja ---------- */
.status-page {
  min-height: calc(100svh - var(--hdr-h));
  padding: 72px 24px 96px;
  background:
    radial-gradient(circle at 12% 16%, rgba(59, 156, 253, .14), transparent 28%),
    radial-gradient(circle at 88% 84%, rgba(140, 197, 255, .2), transparent 30%),
    #f4f8fc;
  display: grid;
  align-items: center;
}

.status-shell {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr);
  overflow: hidden;
  border: 1px solid rgba(14, 42, 71, .08);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(14, 42, 71, .14);
}

.status-visual {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background:
    linear-gradient(145deg, rgba(59, 156, 253, .22), transparent 46%),
    linear-gradient(155deg, #173f68 0%, #0e2a47 58%, #07182c 100%);
  color: #fff;

  &::before {
    position: absolute;
    width: 330px;
    height: 330px;
    border: 1px solid rgba(140, 197, 255, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 50px rgba(140, 197, 255, .04), 0 0 0 100px rgba(140, 197, 255, .025);
    content: '';
  }
}

.status-code {
  position: relative;
  z-index: 1;
  max-width: 90%;
  color: rgba(255, 255, 255, .1);
  font-size: clamp(4.5rem, 9vw, 8rem);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.07em;
  text-align: center;
  text-transform: uppercase;
}

.status-icon {
  position: absolute;
  z-index: 2;
  width: 92px;
  height: 92px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 28px;
  background: rgba(255, 255, 255, .12);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .2);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: grid;
  place-items: center;

  & .masked-icon { width:46px;height:46px;color:#8cc5ff; }
}

.status-content {
  min-width: 0;
  padding: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.status-title {
  max-width: 620px;
  margin: 16px 0 22px;
  color: #0e2a47;
  font-size: clamp(1.8125rem, 1.55rem + 1.118vw, 2.375rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.5px;
  text-wrap: balance;
}

.status-copy {
  max-width: 620px;
  margin: 0;
  color: #33506f;
  font-size: .96875rem;
  line-height: 1.7;
  text-wrap: pretty;
}

.status-actions {
  margin-top: 34px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.status-primary,
.status-secondary {
  padding: 14px 24px;
  font-size: .90625rem;
  font-weight: 500;
}

.status-secondary {
  border-color: rgba(14, 42, 71, .2);
  color: #0e2a47;
  background: rgba(14, 42, 71, .03);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;

  &:hover { border-color:#3b9cfd;background:#edf6ff;color:#0e2a47; }
}

.status-meta {
  margin: 28px 0 0;
  color: #5b7a99;
  font-size: .8125rem;
  line-height: 1.6;

  & a {
    color: inherit;
    font-weight: 500;
    text-decoration-color: #3b9cfd;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
  }
}

html[data-theme="dark"] {
  & .status-page { background:#0f1720; }
  & .status-shell { border-color:#2b3d52;background:#16212f;box-shadow:0 28px 70px rgba(0,0,0,.32); }
  & .status-title { color:#e8f1fb; }
  & .status-copy { color:#c2d1e2; }
  & .status-meta { color:#9fb4ca; }
  & .status-secondary { border-color:#41556d;color:#e8f1fb;background:rgba(255,255,255,.04); }
  & .status-secondary:hover { border-color:#6fb6ff;background:#1d3046;color:#fff; }
}

@media (max-width: 760px) {
  .status-page { min-height:0;padding:32px 16px 56px; }
  .status-shell { grid-template-columns:1fr;border-radius:24px; }
  .status-visual { min-height:220px; }
  .status-visual::before { width:230px;height:230px; }
  .status-code { font-size:clamp(4rem, 22vw, 6.25rem); }
  .status-icon { width:78px;height:78px;border-radius:24px; }
  .status-icon .masked-icon { width:38px;height:38px; }
  .status-content { padding:36px 26px 40px; }
  .status-actions { width:100%;align-items:stretch;flex-direction:column; }
  .status-primary,
  .status-secondary { width:100%;box-sizing:border-box;text-align:center; }
}

/* ---------- Vrednosti: postojeci feature layout + promenljiv sadrzaj ---------- */
#zasto .values-switcher {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 320px);
  align-content: start;
  align-items: start;
  gap: clamp(48px, 8vw, 120px);
}

#zasto .values-switcher__panels {
  display: grid;
  width: 100%;
  max-width: 566px;
  align-self: end;
}

#zasto .values-switcher__panel {
  grid-area: 1 / 1;
  align-self: start;
  will-change: opacity, transform;
}

#zasto .values-switcher__panel[hidden] {
  display: block !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}

#zasto .values-switcher__panel.is-active {
  visibility: visible;
  opacity: 1;
}

#zasto .values-switcher__panel.is-leaving {
  visibility: visible;
  animation: values-panel-out 630ms cubic-bezier(.4, 0, 1, 1) forwards;
}

#zasto .values-switcher__panel.is-entering {
  visibility: visible;
  animation: values-panel-in 1080ms 270ms cubic-bezier(.22, .61, .36, 1) both;
}

#zasto .values-switcher__title {
  margin: 0 0 14px;
  color: #8cc5ff;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.015em;
}

#zasto .values-switcher__copy {
  max-width: 560px;
  margin: 0;
  color: #c9def5;
  font-size: clamp(.8125rem, .73rem + .28vw, .9375rem);
  line-height: 1.7;
  text-wrap: pretty;
}

#zasto .values-switcher__nav {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-self: start;
  gap: 8px;
}

#zasto .values-switcher__tab {
  display: grid;
  min-height: 48px;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: rgba(201, 222, 245, .68);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: color .35s ease;
}

#zasto .values-switcher__dot {
  position: relative;
  display: block;
  width: 22px;
  height: 22px;
  border: 2px solid #3b9cfd;
  border-radius: 50%;
  opacity: .7;
  transition: opacity 1350ms ease, border-color 1350ms ease, box-shadow 1350ms ease;
}

#zasto .values-switcher__dot::after {
  position: absolute;
  inset: 3px;
  border-radius: inherit;
  background: #3b9cfd;
  content: '';
  opacity: 0;
  transform: scale(0);
  transition: opacity 1350ms ease, transform 1350ms ease;
}

#zasto .values-switcher__tab.is-active {
  color: #fff;
}

#zasto .values-switcher__tab.is-active .values-switcher__dot {
  border-color: #8cc5ff;
  box-shadow: 0 0 0 5px rgba(59, 156, 253, .11);
  opacity: 1;
}

#zasto .values-switcher__tab.is-active .values-switcher__dot::after {
  opacity: 1;
  transform: scale(0);
}

#zasto .values-switcher.is-running .values-switcher__tab.is-active .values-switcher__dot::after {
  animation: values-dot-fill 4s linear both;
}

#zasto .values-switcher__label {
  font-size: clamp(.8125rem, .74rem + .28vw, .9375rem);
  font-weight: 300;
  line-height: 1.35;
  opacity: .78;
  transition: color .35s ease, opacity .35s ease;
}

#zasto .values-switcher__tab.is-active .values-switcher__label {
  font-weight: 400;
  opacity: 1;
}

#zasto .values-switcher__tab:focus-visible {
  outline: none;
}

#zasto .values-switcher__tab:focus-visible .values-switcher__dot {
  outline: 2px solid #8cc5ff;
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  #zasto .values-switcher__tab:hover { color: #fff; }
}

@keyframes values-dot-fill {
  from { transform: scale(0); }
  to { transform: scale(1); }
}

@keyframes values-panel-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(10px); }
}

@keyframes values-panel-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 700px) {
  #zasto .values-switcher {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 38px;
  }
  #zasto .values-switcher__panels { min-height: 126px; }
  #zasto .values-switcher__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 20px;
  }
}

@media (max-width: 440px) {
  #zasto .values-switcher__nav { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
  .gallery-story-link:hover .arrow-up-right-icon,
  .gallery-story-link:focus-visible .arrow-up-right-icon { transform: none; }
  /* Univerzalni `*` selektor ne hvata ::picker pseudo-elemente <select>-a. */
  .zk-select::picker(select),
  .zk-select::picker-icon { transition-duration: .01ms !important; }
}
