/*
  CADIS – lastni CSS (čim manj, ker večino naredi Bootstrap).
  Tukaj so samo barve blagovne znamke in nekaj podrobnosti, ki jih Bootstrap nima.
*/

/* ---------- Barve blagovne znamke ----------
   Vijolična in rumena. Če je treba barvo popraviti, spremenite samo spodnje spremenljivke. */
:root {
  --cadis-purple: #862b94;       /* glavna vijolična */
  --cadis-purple-rgb: 134, 43, 148;
  --cadis-purple-dark: #3d1246;  /* temna vijolična (noga, ozadja) */
  --cadis-purple-light: #a64bb5; /* svetlejša vijolična za prelive */
  --cadis-purple-tint: #f8f0fa;  /* zelo svetla vijolična za ozadja sekcij */
  --cadis-yellow: #f4ce0e;       /* rumena (poudarki, gumbi) */
  --cadis-yellow-rgb: 244, 206, 14;
  --cadis-gradient: linear-gradient(135deg, var(--cadis-purple-dark) 0%, var(--cadis-purple) 65%, var(--cadis-purple-light) 100%);

  --bs-primary: var(--cadis-purple);
  --bs-primary-rgb: var(--cadis-purple-rgb);
  --bs-warning: var(--cadis-yellow);
  --bs-warning-rgb: var(--cadis-yellow-rgb);
  --bs-info: var(--cadis-yellow);   /* "text-info" uporabljamo za rumen tekst na temnem ozadju */
  --bs-info-rgb: var(--cadis-yellow-rgb);
  --bs-tertiary-bg: var(--cadis-purple-tint);
  --bs-tertiary-bg-rgb: 248, 240, 250;
  --bs-link-color: var(--cadis-purple);
  --bs-link-hover-color: var(--cadis-purple-dark);
  --bs-body-font-family: 'Manrope', system-ui, sans-serif;
  --bs-body-color: #2a2030;
}

/* Bootstrap gumbi uporabljajo svoje spremenljivke, zato jih prepišemo posebej */
.btn-primary {
  --bs-btn-bg: var(--cadis-purple);
  --bs-btn-border-color: var(--cadis-purple);
  --bs-btn-hover-bg: var(--cadis-purple-dark);
  --bs-btn-hover-border-color: var(--cadis-purple-dark);
  --bs-btn-active-bg: var(--cadis-purple-dark);
  --bs-btn-active-border-color: var(--cadis-purple-dark);
}
.btn-outline-primary {
  --bs-btn-color: var(--cadis-purple);
  --bs-btn-border-color: var(--cadis-purple);
  --bs-btn-hover-bg: var(--cadis-purple);
  --bs-btn-hover-border-color: var(--cadis-purple);
}
/* Rumen gumb z temnim besedilom (rumena ne prenese belega besedila) */
.btn-warning {
  --bs-btn-color: var(--cadis-purple-dark);
  --bs-btn-bg: var(--cadis-yellow);
  --bs-btn-border-color: var(--cadis-yellow);
  --bs-btn-hover-color: var(--cadis-purple-dark);
  --bs-btn-hover-bg: #ffe04a;
  --bs-btn-hover-border-color: #ffe04a;
  --bs-btn-active-bg: #ffe04a;
  --bs-btn-active-border-color: #ffe04a;
  font-weight: 700;
}
.list-group-item.active { background-color: var(--cadis-purple); border-color: var(--cadis-purple); }
h1, h2, h3, h4, h5 { color: inherit; letter-spacing: -0.01em; }
html { scroll-behavior: smooth; }
/*Fix za mobile interface ISL gumba*/
body { overflow-x: hidden; }
main, .site-footer { overflow-x: clip; }
/* ---------- Navigacija ---------- */
.navbar {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  transition: box-shadow 0.3s;
}
.navbar.scrolled { box-shadow: 0 2px 16px rgba(61, 18, 70, 0.12); }
.navbar .nav-link { font-weight: 600; }
.navbar .nav-link.active { color: var(--cadis-purple); }

/* ---------- Glavni del na domači strani ---------- */
.hero {
  position: relative;
  min-height: 100vh;
  padding-top: 5rem;
  background: var(--cadis-gradient);
  overflow: hidden;
}
/* Mehek rumen sij v kotu, da preliv ni plosk */
.hero::before {
  content: "";
  position: absolute;
  width: 640px; height: 640px;
  right: -180px; top: -160px;
  background: radial-gradient(circle, rgba(var(--cadis-yellow-rgb), 0.35), transparent 65%);
}
.hero .container { z-index: 1; }

/* Ob nalaganju se besedilo v hero-ju zaporedno prikaže */
.hero-anim {
  opacity: 0;
  transform: translateY(24px);
  animation: hero-in 0.8s ease forwards;
  animation-delay: var(--delay, 0s);
}
@keyframes hero-in { to { opacity: 1; transform: none; } }

.scroll-hint {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  z-index: 1;
  animation: bounce 2s infinite;
}
@keyframes bounce {
  0%, 100% { transform: translate(-50%, 0); }
  50% { transform: translate(-50%, 8px); }
}

/* ---------- Naslovni pas na notranjih straneh ---------- */
.page-header {
  padding: 9rem 0 3.5rem;
  background: var(--cadis-gradient);
}
.page-header a { color: var(--cadis-yellow); text-decoration: none; }
.page-header .breadcrumb-item.active,
.page-header .breadcrumb-item + .breadcrumb-item::before { color: rgba(255, 255, 255, 0.7); }

/* ---------- Kartice ---------- */
.section-intro { max-width: 720px; }

.solution-card { transition: transform 0.3s, box-shadow 0.3s; }
.solution-card:hover { transform: translateY(-6px); box-shadow: 0 1rem 2rem rgba(61, 18, 70, 0.15) !important; }
.card-img-wrap { overflow: hidden; }

.feature {
  background: #fff;
  border-radius: 1rem;
  padding: 1.75rem;
  box-shadow: 0 0.25rem 1rem rgba(61, 18, 70, 0.08);
}
.feature > .bi {
  display: grid; place-items: center;
  width: 3.25rem; height: 3.25rem; margin-bottom: 1rem;
  font-size: 1.6rem; color: var(--cadis-purple);
  background: rgba(var(--cadis-yellow-rgb), 0.35);
  border-radius: 50%;
}
.text-center.feature > .bi, .text-center .feature > .bi { margin-left: auto; margin-right: auto; }

.side-menu { position: sticky; top: 6.5rem; }

/* Seznam funkcij s kljukicami */
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { position: relative; padding-left: 1.75rem; margin-bottom: 0.6rem; }
.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  font-weight: 800;
  color: var(--cadis-purple);
}
@media (min-width: 768px) { .check-list.two-col { columns: 2; column-gap: 2rem; } }
.check-list.two-col li { break-inside: avoid; }

/* ---------- Ostale strani ---------- */
.notice-item { transition: padding-left 0.2s; }
.notice-item:hover { padding-left: 1.5rem !important; }
.notice-body img { max-width: 100%; height: auto; border-radius: 1rem; }

.steps li { display: flex; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid #e3e8ee; }
.steps span {
  flex: 0 0 2.5rem; height: 2.5rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--cadis-purple); color: #fff; font-weight: 800;
}

.contact-list li { display: flex; gap: 0.75rem; margin-bottom: 0.5rem; }
.contact-list .bi { color: var(--cadis-purple); }

/* ---------- Noga ---------- */
.site-footer { background: var(--cadis-purple-dark); }
.site-footer a { color: rgba(255, 255, 255, 0.75); text-decoration: none; }
.site-footer a:hover { color: #fff; }

/* ---------- Nadomestna mesta za slike ---------- */
.placeholder-box {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.5rem; height: 100%; padding: 1rem; text-align: center;
  color: var(--cadis-purple); font-weight: 700; font-size: 0.9rem;
  background: repeating-linear-gradient(45deg, rgba(var(--cadis-purple-rgb), 0.06) 0 14px, rgba(var(--cadis-purple-rgb), 0.12) 14px 28px);
  border: 2px dashed rgba(var(--cadis-purple-rgb), 0.35);
  border-radius: 1rem;
}
.placeholder-box .bi { font-size: 2rem; }
.placeholder-box.ph-card { border-radius: 0; border-width: 0 0 2px; }  /* v kartici: brez zaobljenih robov */
.placeholder-box.ph-small { padding: 0.25rem; font-size: 0.75rem; border-radius: 0.5rem; }
.placeholder-box.ph-small .bi { font-size: 1.1rem; }
.placeholder-box.on-dark { color: #fff; border-color: rgba(255, 255, 255, 0.45);
  background: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.05) 0 14px, rgba(255, 255, 255, 0.1) 14px 28px); }
.solution-card:hover .placeholder-box .bi { transform: scale(1.15); }
.placeholder-box .bi { transition: transform 0.4s; }

.btn-isl {
  --bs-btn-color: #1f2a00;
  --bs-btn-bg: #d0e45c;
  --bs-btn-border-color: #d0e45c;
  --bs-btn-hover-color: #1f2a00;
  --bs-btn-hover-bg: #dcec82;
  --bs-btn-hover-border-color: #dcec82;
  --bs-btn-active-color: #1f2a00;
  --bs-btn-active-bg: #bad632;
  --bs-btn-active-border-color: #bad632;
  font-weight: 700;
  transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s, border-color 0.2s;
}
.btn-isl:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(186, 214, 50, 0.45);
}
.btn-isl:active {
  transform: translateY(0);
  box-shadow: none;
}
.btn-isl .bi { transition: transform 0.3s; }
.btn-isl:hover .bi { transform: scale(1.2); }

@media (prefers-reduced-motion: reduce) {
  .hero-anim { animation: none; opacity: 1; transform: none; }
  .scroll-hint { animation: none; }
  html { scroll-behavior: auto; }
  .btn-isl, .btn-isl .bi { transition: none; }
  .btn-isl:hover, .btn-isl:hover .bi { transform: none; }
}

/* ---------- Jadrnica ob seznamu korakov ---------- */
.sail-wrap { position: relative; padding-left: 5rem; }

.sail-water {
  position: absolute;
  left: 0; top: 0;
  width: 4rem; height: 100%;
  overflow: visible;
}
.sail-line {
  fill: none;
  stroke: #3fa9e0;            /* modra voda kot na skici */
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sail-boat {
  position: absolute;
  left: 0; top: 0;
  width: 34px; height: 34px;
  line-height: 0;
  opacity: 0;                 /* pokaže jo JS */
  will-change: transform;
}
.sail-boat svg {
  transform-origin: 50% 85%;
  animation: sail-bob 1.6s ease-in-out infinite;
}
@keyframes sail-bob {
  0%, 100% { transform: rotate(-5deg); }
  50%      { transform: rotate(5deg); }
}

@media (prefers-reduced-motion: reduce) {
  .sail-boat svg { animation: none; }
}

.feed-card .feed-link {
  color: inherit;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.35;
}
.feed-card .feed-link:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}
.feed-card .list-group-item {
  padding-top: .85rem;
  padding-bottom: .85rem;
}

.isl-join {
  max-width: 420px;
  margin-inline: auto;
  --isl: var(--cadis-purple);
  --isl-dark: color-mix(in srgb, var(--cadis-purple) 85%, black);
}
.isl-label { display: block; margin-bottom: .35rem; text-align: center; color: var(--isl); font-weight: 700; font-size: 1rem; }
.isl-input {
  height: 3.5rem; border: 3px solid var(--isl); border-radius: 0;
  font-size: 1.5rem; letter-spacing: .15em; text-align: center;
}
.isl-input:focus { border-color: var(--isl); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--cadis-purple) 25%, transparent); }
.isl-input.is-invalid { border-color: #dc3545; background-image: none; }
.isl-message { margin-top: .5rem; text-align: center; font-size: .9rem; color: #dc3545; }
.isl-message.is-info { color: var(--isl); }
.isl-btn {
  margin-top: 1.5rem; height: 3.5rem; border: 0; border-radius: 0;
  background: var(--isl); color: #fff; font-size: 1.5rem; font-weight: 700;
}
.isl-btn:hover, .isl-btn:focus-visible { background: var(--isl-dark); color: #fff; }
.isl-btn:disabled { opacity: .7; }
.isl-note { margin: .75rem 0 0; text-align: center; font-size: .85rem; color: var(--bs-secondary-color); }
.isl-note a { color: inherit; }

.back-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1070;                       /* pod obvestilom o piškotkih (1080) */
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: var(--cadis-purple);
  color: #fff;
  font-size: 1.4rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity .25s, visibility .25s, transform .25s, bottom .25s, background-color .2s;
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover,
.back-to-top:focus-visible {
  background: color-mix(in srgb, var(--cadis-purple) 85%, black);
}
.back-to-top:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--cadis-purple) 40%, white);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top { transition: none; }
}