/* ============================================================
   NetFormat — brend tema za Bootstrap 5
   Ovde je SAMO ono što Bootstrap utility klase ne mogu:
   paleta boja, font, pozadina hero sekcije, hover overlay na
   karticama portfolija, tamna varijanta akordeona i sticky offset.
   Nema layouta: raspored gradi Bootstrap grid i utility klase.
   ============================================================ */

/* --- 1. Brend paleta i Bootstrap tema ---------------------- */

:root {
  --nf-purple: #6223de;
  --nf-purple-dark: #5624c1;
  --nf-purple-light: #8d73ff;
  --nf-purple-pale: #a192ff;
  --nf-mint: #00e18d;
  --nf-green: #007e4b;
  --nf-dark: #0e0a1b;
  --nf-footer: #201c2f;
  --nf-light: #f5f4fa;
  --nf-ink: #2e2b3c;
  --nf-muted: #5d5c68;
  --nf-border: #dcdbe6;
  --bs-primary: #6223de;
  --bs-primary-rgb: 98, 35, 222;
  --bs-body-font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
  --bs-body-color: #2e2b3c;
  --bs-border-color: #dcdbe6;
  --bs-link-color: #6223de;
  --bs-link-hover-color: #8d73ff;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 92px;
}

body {
  font-family: var(--bs-body-font-family);
  color: var(--nf-ink);
}

.text-primary {
  color: var(--nf-purple) !important;
}

.bg-nf-light {
  background-color: var(--nf-light) !important;
}

.bg-nf-dark {
  background-color: var(--nf-dark) !important;
}

.bg-nf-footer {
  background-color: var(--nf-footer) !important;
}

.text-nf-mint {
  color: var(--nf-mint) !important;
}

.text-nf-green {
  color: var(--nf-green) !important;
}

.text-nf-muted {
  color: var(--nf-muted) !important;
}

.tracked {
  letter-spacing: 1px;
}

.tracked-lg {
  letter-spacing: 3px;
}

.btn-primary {
  --bs-btn-bg: var(--nf-purple);
  --bs-btn-border-color: var(--nf-purple);
  --bs-btn-hover-bg: var(--nf-purple-pale);
  --bs-btn-hover-border-color: var(--nf-purple-pale);
  --bs-btn-active-bg: var(--nf-purple-dark);
  --bs-btn-active-border-color: var(--nf-purple-dark);
  --bs-btn-disabled-bg: var(--nf-purple);
  --bs-btn-disabled-border-color: var(--nf-purple);
}

.form-control:focus {
  border-color: var(--nf-purple);
  box-shadow: none;
}

.form-check-input:checked {
  background-color: var(--nf-purple);
  border-color: var(--nf-purple);
}

.form-check-input:focus {
  border-color: var(--nf-purple-light);
  box-shadow: none;
}

/* --- 2. Sekcije -------------------------------------------- */

.nf-sec {
  padding-top: 7.5rem;
  padding-bottom: 6.25rem;
}

.nf-rule {
  display: inline-block;
  width: 36px;
  height: 2px;
  background: var(--nf-purple-light);
}

@media (max-width: 767.98px) {
  .nf-sec {
    padding-top: 5rem;
    padding-bottom: 4rem;
  }
}

/* --- 3. Navbar (staklasta pozadina) ------------------------- */

.nf-navbar {
  background: rgba(23, 20, 37, .55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.nf-navbar .nav-link {
  color: rgba(255, 255, 255, .85);
}

.nf-navbar .nav-link:hover, .nf-navbar .nav-link:focus, .nf-navbar .nav-link.show {
  color: var(--nf-purple-light);
}

.nf-navbar .navbar-toggler:focus {
  box-shadow: none;
}

@media (max-width: 991.98px) {
  .nf-navbar .navbar-collapse {
    background: rgba(14, 11, 26, .97);
    border-radius: 14px;
    padding: .75rem 1rem;
    margin-top: .75rem;
  }
}

/* --- 4. Hero (pozadinska fotografija + gradijent) ----------- */

.nf-hero {
  min-height: 100vh;
  background: url('../../assets/img/hero-luka.webp') center 30% / cover no-repeat;
  position: relative;
}

.nf-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14,11,26,.05) 0%, rgba(14,11,26,.25) 45%, rgba(14,11,26,.92) 100%);
}

.nf-hero > * {
  position: relative;
  z-index: 1;
}

/* --- 5. Portfolio kartice ----------------------------------- */

.nf-tile {
  cursor: pointer;
}

.nf-tile img {
  object-fit: cover;
  object-position: top center;
}

.nf-tile-ov {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .7);
  opacity: 0;
  transition: opacity .18s ease;
}

.nf-tile:hover .nf-tile-ov, .nf-tile:focus-within .nf-tile-ov {
  opacity: 1;
}

.offcanvas.nf-proj {
  --bs-offcanvas-width: 100vw;
}

@media (min-width: 992px) {
  .offcanvas.nf-proj {
    --bs-offcanvas-width: 50vw;
  }
}

/* --- 6. Paketi i kalkulator --------------------------------- */

.nf-pkg-icon {
  height: 176px;
  width: auto;
  object-fit: contain;
}

.nf-pick {
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.nf-pick:hover {
  border-color: var(--nf-purple) !important;
}

.nf-pick.active {
  border-color: var(--nf-purple) !important;
  box-shadow: 0 0 0 2px var(--nf-purple);
}

.nf-sticky {
  top: 96px;
}

.nf-num {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  background: var(--nf-purple);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.accordion-nf {
  --bs-accordion-btn-bg: #edecff;
  --bs-accordion-active-bg: #edecff;
  --bs-accordion-active-color: var(--nf-ink);
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-border-color: var(--nf-border);
}

.nf-choice {
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease;
}

.nf-choice:hover {
  border-color: var(--nf-purple-light) !important;
}

.nf-choice:has(.form-check-input:checked) {
  border-color: var(--nf-purple) !important;
  background-color: #edecff;
}

/* Pitanja u kalkulatoru: svako pitanje je zasebna kartica sa razmakom */

.accordion-nf .accordion-item {
  border-top: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color) !important;
  border-radius: var(--bs-accordion-border-radius) !important;
  overflow: hidden;
}

.accordion-nf .accordion-item + .accordion-item {
  margin-top: .75rem;
}

.accordion-nf .accordion-button {
  border-radius: 0 !important;
}

/* Naslov grupe pitanja ima fiksnu visinu, pa kartica sa cenom (margin-top 3rem) počinje u visini prvog pitanja */

.nf-qhead {
  height: 2rem;
}

@media (min-width: 992px) {
  .nf-calc-aside {
    margin-top: calc(var(--bs-gutter-y) + 3rem);
  }
}

/* --- 7. Tamni akordeon (FAQ) -------------------------------- */

.accordion-dark {
  --bs-accordion-bg: rgba(255, 255, 255, .04);
  --bs-accordion-color: #fff;
  --bs-accordion-border-color: rgba(255, 255, 255, .10);
  --bs-accordion-btn-color: #fff;
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-active-bg: rgba(255, 255, 255, .06);
  --bs-accordion-active-color: #fff;
  --bs-accordion-btn-focus-box-shadow: none;
  --bs-accordion-body-color: rgba(255, 255, 255, .72);
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2300e18d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2300e18d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.accordion-dark .accordion-body p:last-child {
  margin-bottom: 0;
}

/* --- 8. Sitnice --------------------------------------------- */

.nf-social {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--nf-purple-dark);
  color: var(--nf-purple-dark);
  border-radius: 50%;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
}

.nf-social:hover {
  background: var(--nf-purple);
  border-color: var(--nf-purple);
  color: #fff;
}

.nf-badge-dot {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1.5px solid var(--nf-purple-dark);
  color: var(--nf-purple-dark);
  border-radius: 50%;
  font-weight: 700;
  font-size: 12px;
}

/* Akordeon: padding tela, jer Bootstrap Studio sam generiše .accordion-body */

.accordion-dark .accordion-body {
  padding: 0 1.5rem 1.5rem;
}

.accordion-nf .accordion-body {
  padding: .25rem 1rem 1rem 3.4rem;
}

.accordion-button.collapsed .nf-num, .accordion-button .nf-num {
  margin-right: .75rem;
}

.nf-proj-shot {
  display: block;
  max-width: 70%;
  margin-left: auto;
  margin-right: auto;
}

