:root {
  --tamna: #12233b;
  --tamna-2: #1c3557;
  --tamna-3: #0d1a2c;
  --zelena: #8cc63f;
  --zelena-jaka: #9ad34c;
  --plava: #1f6fc4;
  --tekst: #23303d;
  --sivi-tekst: #5c6b7a;
  --linija: #dfe4e9;
  --pozadina: #f5f7f9;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: var(--tekst);
  background: #fff;
  -webkit-text-size-adjust: 100%;
}

img { max-width: 100%; display: block; }
figure { margin: 0; }
picture { display: block; }

a { color: var(--plava); }

h1, h2, h3 { line-height: 1.25; margin: 0 0 .5em; }

.omot {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 20px;
}

.skriveno {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

/* ---------- zaglavlje ---------- */

.vrh {
  border-bottom: 1px solid var(--linija);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 20;
}

.vrh-red {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 76px;
}

.marka {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  color: var(--tamna);
  margin-right: auto;
}

.marka img {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
}

.marka strong {
  display: block;
  font-size: 20px;
  letter-spacing: .04em;
}

.marka small {
  display: block;
  font-size: 12px;
  color: var(--sivi-tekst);
}

.meni { display: flex; gap: 22px; }

.meni a {
  color: var(--tekst);
  text-decoration: none;
  font-size: 15px;
}

.meni a:hover { color: var(--plava); text-decoration: underline; }

.tel-vrh {
  background: var(--tamna);
  color: #fff;
  text-decoration: none;
  padding: 10px 18px;
  border-radius: 4px;
  font-weight: 600;
  white-space: nowrap;
}

.tel-vrh:hover { background: var(--tamna-2); }

/* ---------- uvod ---------- */

.uvod {
  background: var(--tamna);
  color: #fff;
  padding: 86px 0 92px;
  text-align: center;
}

.nadnaslov {
  margin: 0 0 18px;
  font-size: 13px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--zelena);
  font-weight: 600;
}

.uvod h1 {
  font-size: 60px;
  letter-spacing: -.01em;
  margin: 0 0 20px;
}

.uvod-opis {
  color: #c3d0de;
  margin: 0 auto 32px;
  max-width: 58ch;
  font-size: 19px;
}

.uvod-dugmad {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.dugme {
  display: inline-block;
  background: var(--zelena);
  color: #14260a;
  font-weight: 700;
  text-decoration: none;
  padding: 15px 28px;
  border-radius: 5px;
}

.dugme:hover { background: var(--zelena-jaka); }

.dugme-prazno {
  background: rgba(255, 255, 255, .07);
  color: #fff;
  border: 1px solid #46607e;
  font-weight: 600;
}

.dugme-prazno:hover { background: rgba(255, 255, 255, .14); }

.uvod-sitno {
  margin: 20px 0 0;
  font-size: 14px;
  color: #93a5b8;
}

/* ---------- traka sa prednostima ---------- */

.trake {
  background: var(--pozadina);
  border-bottom: 1px solid var(--linija);
}

.trake-red {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  padding-top: 26px;
  padding-bottom: 26px;
  text-align: center;
}

.trake-red strong { display: block; font-size: 16px; }
.trake-red span { font-size: 14px; color: var(--sivi-tekst); }

/* ---------- odeljci ---------- */

.odeljak { padding: 66px 0; text-align: center; }
.odeljak-siv { background: var(--pozadina); }

.odeljak h2 {
  font-size: 30px;
  margin-bottom: 14px;
}

.odeljak h2::after {
  content: "";
  display: block;
  width: 46px;
  height: 3px;
  background: var(--zelena);
  margin: 14px auto 0;
  border-radius: 2px;
}

.podnaslov {
  color: var(--sivi-tekst);
  max-width: 62ch;
  margin: 0 auto 30px;
}

.galerija + .podnaslov { margin: 30px auto 0; }

/* ---------- usluge ---------- */

.usluge {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 34px 44px;
  max-width: 900px;
  margin: 0 auto;
}

.usluge h3 {
  font-size: 19px;
  margin-bottom: 10px;
}

.usluge h3::after {
  content: "";
  display: block;
  width: 28px;
  height: 2px;
  background: var(--zelena);
  margin: 9px auto 0;
}

.usluge p { margin: 0; color: var(--sivi-tekst); }

/* ---------- galerija ---------- */

.galerija {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 22px;
}

.galerija figure { grid-column: span 2; }

/* poslednji red ima 2 slike — centriramo ga */
.galerija figure:nth-child(4) { grid-column: 2 / span 2; }
.galerija figure:nth-child(5) { grid-column: 4 / span 2; }

.galerija figure {
  background: #fff;
  border: 1px solid var(--linija);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(18, 35, 59, .05);
  transition: box-shadow .18s ease, transform .18s ease;
}

.galerija figure:hover {
  box-shadow: 0 8px 22px rgba(18, 35, 59, .13);
  transform: translateY(-3px);
}

.galerija img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: #eef2f6;
}

.galerija figcaption {
  padding: 13px;
  font-size: 14px;
  color: var(--sivi-tekst);
  border-top: 1px solid var(--linija);
}

/* ---------- cenovnik ---------- */

.cene {
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
  border-collapse: collapse;
}

.cene th,
.cene td {
  padding: 14px 4px;
  border-bottom: 1px solid var(--linija);
}

.cene th {
  font-weight: 500;
  text-align: left;
}

.cene td {
  text-align: right;
  font-weight: 700;
  white-space: nowrap;
}

.cene-gratis td { color: #4f8c1f; }

.napomena {
  max-width: 580px;
  margin: 28px auto;
  padding: 18px 22px;
  background: #fff6d6;
  border: 2px solid #e8b423;
  border-radius: 5px;
  font-size: 17px;
  line-height: 1.55;
  text-align: left;
}

.napomena strong {
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #8a6100;
}

/* ---------- koraci ---------- */

.koraci {
  list-style: none;
  counter-reset: korak;
  margin: 0 auto;
  padding: 0;
  max-width: 980px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 34px 26px;
}

.koraci li {
  counter-increment: korak;
  position: relative;
}

/* linija koja povezuje korake */
.koraci li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 27px;
  left: calc(50% + 34px);
  right: calc(-50% + 34px);
  height: 2px;
  background: var(--linija);
}

.koraci li::before {
  content: counter(korak);
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--tamna);
  color: #fff;
  font-size: 21px;
  font-weight: 700;
  box-shadow: 0 0 0 6px var(--pozadina);
}

.koraci h3 { font-size: 17px; margin-bottom: 6px; }
.koraci p { margin: 0; font-size: 15px; color: var(--sivi-tekst); }

/* ---------- opštine ---------- */

.opstine {
  list-style: none;
  margin: 0 auto 24px;
  padding: 0;
  max-width: 840px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.opstine li {
  border: 1px solid var(--linija);
  border-radius: 40px;
  padding: 8px 17px;
  font-size: 15px;
  background: #fff;
}

/* ---------- česta pitanja ---------- */

.pitanja {
  max-width: 760px;
  margin: 0 auto;
  text-align: left;
  border-top: 1px solid var(--linija);
}

.pitanja details { border-bottom: 1px solid var(--linija); }

.pitanja summary {
  padding: 17px 40px 17px 0;
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  position: relative;
}

.pitanja summary::-webkit-details-marker { display: none; }

.pitanja summary::after {
  content: "+";
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  font-weight: 400;
  color: var(--sivi-tekst);
  line-height: 1;
}

.pitanja details[open] summary::after { content: "\2212"; }
.pitanja summary:hover { color: var(--plava); }

.pitanja p {
  margin: 0;
  padding: 0 40px 20px 0;
  color: var(--sivi-tekst);
}

/* ---------- kontakt ---------- */

.kontakt {
  background: var(--tamna);
  color: #fff;
  padding: 66px 0;
  text-align: center;
}

.kontakt h2 { font-size: 30px; margin-bottom: 12px; }

.kontakt p {
  color: #c3d0de;
  margin: 0 auto;
  max-width: 52ch;
}

.kontakt .radno {
  color: var(--zelena);
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 8px;
}

.kontakt-veze {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
  justify-content: center;
  margin-top: 30px;
}

.kontakt-veze a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 0 26px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  background: rgba(255, 255, 255, .07);
  border: 1px solid #46607e;
}

.kontakt-veze a:hover { background: rgba(255, 255, 255, .15); }

.veza-tel {
  background: var(--zelena) !important;
  border-color: var(--zelena) !important;
  color: #14260a !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
  padding: 0 34px !important;
}

.veza-tel:hover { background: var(--zelena-jaka) !important; }

/* ---------- dno ---------- */

.dno {
  background: var(--tamna-3);
  color: #8fa1b4;
  font-size: 14px;
  padding: 22px 0;
}

.dno-red {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 26px;
  justify-content: center;
  text-align: center;
}

.dno p { margin: 0; }
.dno a { color: #fff; }

/* ---------- dugme za poziv na telefonu ---------- */

.mob-poziv {
  display: none;
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 30;
  background: var(--zelena);
  color: #14260a;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  padding: 15px;
  border-radius: 5px;
  box-shadow: 0 3px 14px rgba(0, 0, 0, .3);
}

/* ---------- responzivno ---------- */

@media (max-width: 900px) {
  .uvod { padding: 62px 0 66px; }
  .uvod h1 { font-size: 44px; }
  .uvod-opis { font-size: 18px; }
  .galerija { grid-template-columns: repeat(4, 1fr); }
  .galerija figure:nth-child(4) { grid-column: span 2; }
  .galerija figure:nth-child(5) { grid-column: 2 / span 2; }
  .koraci { grid-template-columns: repeat(2, 1fr); }
  .koraci li:nth-child(2n)::after { display: none; }
  .trake-red { grid-template-columns: repeat(2, 1fr); }
  .meni { display: none; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  .vrh-red { min-height: 66px; }
  .marka img { width: 44px; height: 44px; }
  .marka strong { font-size: 18px; }
  .tel-vrh { display: none; }
  .uvod { padding: 46px 0 50px; }
  .uvod h1 { font-size: 34px; }
  .uvod-opis { font-size: 17px; }
  .uvod-dugmad { display: block; }
  .dugme { display: block; }
  .dugme + .dugme { margin-top: 10px; }
  .odeljak { padding: 44px 0; }
  .odeljak h2, .kontakt h2 { font-size: 25px; }
  .kontakt { padding: 46px 0; }
  .trake-red,
  .usluge { grid-template-columns: 1fr; }
  .galerija { grid-template-columns: 1fr; }
  .galerija figure,
  .galerija figure:nth-child(4),
  .galerija figure:nth-child(5) { grid-column: 1 / -1; }
  .koraci { grid-template-columns: 1fr; gap: 26px; }
  .koraci li::after { display: none; }
  .koraci li::before { width: 46px; height: 46px; font-size: 19px; margin-bottom: 12px; }
  .napomena { padding: 16px 18px; font-size: 16px; }
  .kontakt-veze a { flex: 1 1 100%; }
  .mob-poziv { display: block; }
  .dno { padding-bottom: 80px; }
}

/* ---------- pristupačnost ---------- */

a:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--plava);
  outline-offset: 2px;
}

.uvod a:focus-visible,
.kontakt a:focus-visible,
.dno a:focus-visible {
  outline-color: var(--zelena);
}

html { scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .galerija figure { transition: none; }
}
