/* ===== Reviews carousel — arrows on the sides, hidden on mobile (swipe) ===== */
.testimonial-carousel { position: relative; }

.testimonial-carousel .owl-nav {
  margin: 0;
  position: static;
}

.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #fff !important;
  border: 2px solid rgba(77, 101, 249, 0.25) !important;
  color: var(--bs-primary) !important;
  font-size: 1.05rem !important;
  box-shadow: 0 6px 18px rgba(77, 101, 249, 0.16);
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  position: absolute;
  top: 50%;
  margin-top: -24px;
  z-index: 5;
}

.testimonial-carousel .owl-nav .owl-prev { left: -22px; }
.testimonial-carousel .owl-nav .owl-next { right: -22px; }

.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover {
  background: var(--bs-primary) !important;
  color: #fff !important;
  border-color: var(--bs-primary) !important;
  box-shadow: 0 8px 22px rgba(77, 101, 249, 0.28);
}

.testimonial-carousel .owl-nav .owl-prev.disabled,
.testimonial-carousel .owl-nav .owl-next.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

@media (max-width: 767.98px) {
  .testimonial-carousel .owl-nav { display: none !important; }
}

.testimonial-carousel .owl-dots {
  margin-top: 1rem !important;
}

.testimonial-carousel .owl-dots .owl-dot span {
  background: rgba(77, 101, 249, 0.25) !important;
  width: 9px;
  height: 9px;
  margin: 0 3px;
  transition: all .25s ease;
}

.testimonial-carousel .owl-dots .owl-dot.active span,
.testimonial-carousel .owl-dots .owl-dot:hover span {
  background: var(--bs-primary) !important;
  width: 24px;
  border-radius: 6px;
}


/* ===== Plans tile grid (program.html) ===== */
.plans-year-group {
  margin-bottom: 2.4rem;
}

.plans-year-group:last-child { margin-bottom: 0; }

.plans-year-label {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  color: var(--bs-primary);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  letter-spacing: 0.5px;
}

.plans-year-label::before {
  content: "";
  width: 8px;
  height: 28px;
  background: linear-gradient(180deg, var(--bs-primary), #6b7ffb);
  border-radius: 4px;
}

.plans-year-label::after {
  content: "";
  flex: 1;
  height: 2px;
  background: linear-gradient(90deg, rgba(77, 101, 249, 0.25), transparent);
}

.plans-year-label .count {
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #6c757d;
  background: rgba(77, 101, 249, 0.10);
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
}

/* Collapsible <details> for archive year groups */
details.plans-year-group > summary.plans-year-label {
  cursor: pointer;
  list-style: none;
}
details.plans-year-group > summary.plans-year-label::-webkit-details-marker { display: none; }

.plans-year-toggle {
  font-size: 1rem;
  color: var(--bs-primary);
  transition: transform 0.18s ease;
}
details.plans-year-group[open] .plans-year-toggle { transform: rotate(180deg); }

details.plans-year-group > summary.plans-year-label:hover { color: #2a3eb6; }
details.plans-year-group > summary.plans-year-label:focus-visible {
  outline: 2px solid rgba(77, 101, 249, 0.45);
  outline-offset: 4px;
  border-radius: 6px;
}

.plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1.1rem;
}

.plan-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 1.4rem 1.3rem;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.14);
  border-radius: 22px;
  box-shadow: 0 8px 22px rgba(77, 101, 249, 0.08);
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.plan-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--tile-from, #eaf0ff), var(--tile-to, #ffe7ee));
  opacity: 0;
  transition: opacity .35s ease;
  z-index: 0;
}

.plan-tile > * { position: relative; z-index: 1; }

.plan-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(77, 101, 249, 0.16);
  border-color: var(--bs-primary);
  color: inherit;
  text-decoration: none;
}

.plan-tile:hover::before { opacity: 0.55; }

.plan-tile-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--tile-icon-from, var(--bs-primary)), var(--tile-icon-to, #6b7ffb));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  box-shadow: 0 4px 14px rgba(77, 101, 249, 0.25);
}

.plan-tile-month {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.45rem;
  color: var(--bs-primary);
  line-height: 1;
  letter-spacing: 0.3px;
}

.plan-tile-year {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: #6c757d;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.plan-tile-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.4rem;
  padding-top: 0.5rem;
  border-top: 1px dashed rgba(77, 101, 249, 0.20);
  width: 100%;
  font-size: 0.82rem;
  color: var(--bs-primary);
  font-weight: 600;
}

.plan-tile-cta i { transition: transform .25s ease; }
.plan-tile:hover .plan-tile-cta i { transform: translateX(4px); }

/* Seasonal tile color schemes */
.plan-tile.season-spring  { --tile-from: #e9fbe6; --tile-to: #fff7d6; --tile-icon-from: #5cb85c; --tile-icon-to: #88d18a; }
.plan-tile.season-summer  { --tile-from: #fff3cf; --tile-to: #ffe1b3; --tile-icon-from: #ff9f43; --tile-icon-to: #ffc371; }
.plan-tile.season-autumn  { --tile-from: #ffe7d1; --tile-to: #ffd7d7; --tile-icon-from: #d97312; --tile-icon-to: #ff8e3c; }
.plan-tile.season-winter  { --tile-from: #e1ecff; --tile-to: #f5e8ff; --tile-icon-from: #4d65f9; --tile-icon-to: #7b8af9; }

.plan-tile.season-spring  .plan-tile-month { color: #2d8a4f; }
.plan-tile.season-summer  .plan-tile-month { color: #c75a06; }
.plan-tile.season-autumn  .plan-tile-month { color: #b54f0a; }
.plan-tile.season-winter  .plan-tile-month { color: var(--bs-primary); }

/* ===== Plans-hint (one-liner above featured grid) ===== */
.plans-hint {
  text-align: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.95rem;
  color: #6c757d;
  max-width: 760px;
  margin: 0 auto 1.6rem;
  line-height: 1.5;
}

.plans-hint i {
  color: var(--bs-primary);
  margin-right: 0.4rem;
}

.plans-hint strong {
  color: var(--bs-primary);
  font-weight: 700;
}

/* ===== Featured plans (current year, with both PDFs) ===== */
.plans-featured {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.4rem;
  margin-bottom: 3rem;
}

.plan-featured {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.18);
  border-radius: 24px;
  padding: 1.6rem 1.5rem 1.4rem;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.plan-featured::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--feat-from, #eaf0ff), var(--feat-to, #ffe7ee));
  opacity: 0.42;
  z-index: 0;
}

.plan-featured > * { position: relative; z-index: 1; }

.plan-featured:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgba(77, 101, 249, 0.18);
  border-color: var(--bs-primary);
}

.plan-featured-badge {
  align-self: flex-start;
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: rgba(77, 101, 249, 0.16);
  color: var(--bs-primary);
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  margin-bottom: 0.85rem;
}

/* PDF first-page thumbnail at top of featured card */
.plan-featured-thumb {
  width: calc(100% + 3rem);
  margin: -1.6rem -1.5rem 1.1rem;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #f4f6fb;
  border-bottom: 1px solid rgba(77, 101, 249, 0.14);
}

.plan-featured-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform .4s ease;
}

.plan-featured:hover .plan-featured-thumb img {
  transform: scale(1.03);
}

.plan-featured-header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.1rem;
}

.plan-featured-icon {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--feat-icon-from, var(--bs-primary)), var(--feat-icon-to, #6b7ffb));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}

.plan-featured-month {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1;
  color: var(--bs-primary);
  letter-spacing: 0.3px;
}

.plan-featured-year {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  color: #6c757d;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 5px;
}

.plan-featured-actions {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: auto;
}

.plan-featured-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
  padding: 0.72rem 0.95rem;
  border-radius: 12px;
  background: #fff;
  border: 1.5px solid rgba(77, 101, 249, 0.22);
  color: var(--bs-primary);
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 0.88rem;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.plan-featured-link.is-primary {
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
}

.plan-featured-link:hover {
  transform: translateX(3px);
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
  text-decoration: none;
}

.plan-featured-link.is-primary:hover {
  background: #3a52e3;
  border-color: #3a52e3;
}

.plan-featured-link i { font-size: 0.78rem; }

.plan-featured-link-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.plan-featured-link-label i { font-size: 0.95rem; }

.plan-featured-note {
  font-size: 0.78rem;
  color: #6c757d;
  margin: 0.7rem 0 0;
  font-style: italic;
  line-height: 1.4;
}

/* Featured season variants */
.plan-featured.season-spring { --feat-from: #e9fbe6; --feat-to: #fff7d6; --feat-icon-from: #5cb85c; --feat-icon-to: #88d18a; }
.plan-featured.season-summer { --feat-from: #fff3cf; --feat-to: #ffe1b3; --feat-icon-from: #ff9f43; --feat-icon-to: #ffc371; }
.plan-featured.season-autumn { --feat-from: #ffe7d1; --feat-to: #ffd7d7; --feat-icon-from: #d97312; --feat-icon-to: #ff8e3c; }
.plan-featured.season-winter { --feat-from: #e1ecff; --feat-to: #f5e8ff; --feat-icon-from: #4d65f9; --feat-icon-to: #7b8af9; }
.plan-featured.season-spring .plan-featured-month { color: #2d8a4f; }
.plan-featured.season-summer .plan-featured-month { color: #c75a06; }
.plan-featured.season-autumn .plan-featured-month { color: #b54f0a; }
.plan-featured.season-winter .plan-featured-month { color: var(--bs-primary); }

/* ===== Archive (older years, compact tiles) ===== */
.plans-archive {
  margin-top: 2.5rem;
  padding-top: 2.2rem;
  border-top: 1px dashed rgba(77, 101, 249, 0.22);
}

.plans-archive-label {
  text-align: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #6c757d;
  margin-bottom: 1.6rem;
}

.plans-archive .plans-year-group { margin-bottom: 1.6rem; }
.plans-archive .plans-year-group:last-child { margin-bottom: 0; }

.plans-archive .plans-year-label {
  font-size: 1.1rem;
  margin-bottom: 0.7rem;
}

.plans-archive .plans-year-label::before {
  width: 6px;
  height: 22px;
}

.plans-archive .plans-year-label .count {
  font-size: 0.7rem;
  padding: 0.18rem 0.55rem;
}

.plans-archive .plans-grid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 0.7rem;
}

.plans-archive .plan-tile {
  padding: 0.85rem 0.95rem;
  border-radius: 16px;
  border-width: 1.5px;
  gap: 0.35rem;
}

.plans-archive .plan-tile-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  font-size: 0.85rem;
}

.plans-archive .plan-tile-month {
  font-size: 1.02rem;
}

.plans-archive .plan-tile-year {
  font-size: 0.7rem;
}

.plans-archive .plan-tile-cta {
  font-size: 0.7rem;
  padding-top: 0.4rem;
  margin-top: 0.25rem;
}


/* ===== Gallery filter (room.html) ===== */
.gallery-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 2rem;
}

.gallery-filter .filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.15rem;
  border-radius: 999px;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.20);
  color: var(--bs-primary);
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 0.92rem;
  cursor: pointer;
  transition: all .25s ease;
}

.gallery-filter .filter-btn:hover {
  border-color: var(--bs-primary);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(77, 101, 249, 0.14);
}

.gallery-filter .filter-btn.is-active {
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
  box-shadow: 0 8px 20px rgba(77, 101, 249, 0.30);
}

.gallery-filter .filter-btn .count {
  font-size: 0.75rem;
  background: rgba(0, 0, 0, 0.1);
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
}

.gallery-filter .filter-btn.is-active .count {
  background: rgba(255, 255, 255, 0.25);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.85rem;
}

.gallery-grid .gallery-item {
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid rgba(77, 101, 249, 0.12);
  box-shadow: 0 6px 18px rgba(77, 101, 249, 0.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  background: #f4f6fb;
}

.gallery-grid .gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

.gallery-grid .gallery-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(77, 101, 249, 0.18);
  border-color: var(--bs-primary);
}

.gallery-grid .gallery-item:hover img {
  transform: scale(1.04);
}

.gallery-grid .gallery-item.is-hidden {
  display: none;
}


/* ===== Tuition / školarina (prices.html) ===== */
.tuition-hero {
  background: linear-gradient(135deg, #ffffff 0%, #f4f7ff 100%);
  border: 2px solid rgba(77, 101, 249, 0.18);
  border-radius: 32px;
  padding: 2.5rem 2rem;
  text-align: center;
  box-shadow: 0 20px 50px rgba(77, 101, 249, 0.10);
  max-width: 720px;
  margin: 0 auto;
}

.tuition-hero .tuition-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 1.5px;
  color: var(--bs-secondary);
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.tuition-hero .tuition-amount {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: clamp(2.6rem, 6vw, 4rem);
  color: var(--bs-primary);
  line-height: 1;
  letter-spacing: -1px;
}

.tuition-hero .tuition-amount small {
  font-size: 0.45em;
  color: #6c757d;
  font-weight: 500;
  letter-spacing: 0;
  margin-left: 0.25rem;
}

.tuition-hero .tuition-context {
  margin-top: 1rem;
  color: #5a6478;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.tuition-hero .tuition-footnote {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px dashed rgba(77, 101, 249, 0.22);
  font-size: 0.88rem;
  color: #5a6478;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.45;
}

/* Family steps — per-child average, descending stair */
.family-steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin: 0 auto;
  max-width: 1100px;
}

.fs-card {
  flex: 1 1 180px;
  min-width: 160px;
  max-width: 220px;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.16);
  border-radius: 22px;
  padding: 1.4rem 1rem 1.2rem;
  text-align: center;
  box-shadow: 0 12px 28px rgba(77, 101, 249, 0.10);
  position: relative;
  transition: transform 0.2s, box-shadow 0.2s;
}

.fs-card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(77, 101, 249, 0.16); }

.fs-pill {
  display: inline-block;
  padding: 0.32rem 0.85rem;
  background: var(--fs-bg, rgba(77, 101, 249, 0.10));
  color: var(--fs-color, var(--bs-primary));
  border-radius: 999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 0.7rem;
}

.fs-amount {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 2.3rem;
  color: var(--fs-color, var(--bs-primary));
  line-height: 1;
  letter-spacing: -0.5px;
}

.fs-amount small {
  font-size: 0.42em;
  color: #6c757d;
  font-weight: 500;
  margin-left: 0.2rem;
}

.fs-sub {
  margin-top: 0.4rem;
  font-size: 0.82rem;
  color: #8893b0;
  letter-spacing: 0.04em;
}

.fs-arrow {
  color: rgba(77, 101, 249, 0.35);
  font-size: 1.1rem;
  flex: 0 0 auto;
}

.fs-card.fs-1 { --fs-color: #4d65f9; --fs-bg: rgba(77, 101, 249, 0.10); }
.fs-card.fs-2 { --fs-color: #b54f8a; --fs-bg: rgba(181, 79, 138, 0.12); }
.fs-card.fs-3 { --fs-color: #d97312; --fs-bg: rgba(217, 115, 18, 0.12); }
.fs-card.fs-4 { --fs-color: #2fa566; --fs-bg: rgba(47, 165, 102, 0.14); }

@media (max-width: 720px) {
  .family-steps { gap: 0.5rem; }
  .fs-arrow { transform: rotate(90deg); width: 100%; text-align: center; flex-basis: 100%; }
  .fs-card { flex: 1 1 calc(50% - 0.5rem); max-width: none; }
}

@media (max-width: 480px) {
  .fs-card { flex: 1 1 100%; }
  .fs-amount { font-size: 2rem; }
}

/* Tuition options — clean two-panel layout */
.tuition-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.5rem;
  max-width: 980px;
  margin: 2.5rem auto 0;
}

.tuition-option {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.15);
  border-radius: 22px;
  padding: 2rem 1.8rem;
  box-shadow: 0 10px 28px rgba(77, 101, 249, 0.08);
  transition: transform .25s ease, box-shadow .25s ease;
  display: flex;
  flex-direction: column;
}

.tuition-option:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(77, 101, 249, 0.14);
}

.tuition-option.preferred {
  border-color: var(--bs-primary);
  background: linear-gradient(180deg, #f7f9ff 0%, #ffffff 100%);
}

.tuition-option header {
  border-bottom: 1px solid rgba(77, 101, 249, 0.12);
  padding-bottom: 1.1rem;
  margin-bottom: 1.2rem;
}

.tuition-option h3 {
  font-family: 'Shantell Sans', sans-serif;
  color: var(--bs-primary);
  font-size: 1.35rem;
  margin-bottom: 0.4rem;
}

.tuition-option .lede {
  color: #5a6478;
  font-size: 0.92rem;
  margin: 0;
  line-height: 1.5;
}

.tuition-option .amount {
  margin-bottom: 1.2rem;
}

.tuition-option .amount-num {
  display: block;
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 2.6rem;
  color: var(--bs-primary);
  line-height: 1;
  letter-spacing: -0.5px;
}

.tuition-option .amount-period {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.85rem;
  color: #6c757d;
  margin-top: 0.4rem;
  letter-spacing: 0.3px;
}

.tuition-option .benefits {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tuition-option .benefits li {
  position: relative;
  padding: 0.4rem 0 0.4rem 1.6rem;
  font-size: 0.95rem;
  color: #3d4a64;
  border-bottom: 1px dashed rgba(77, 101, 249, 0.10);
}

.tuition-option .benefits li:last-child { border-bottom: none; }

.tuition-option .benefits li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.85rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bs-primary);
}

.tuition-option.preferred .benefits li::before {
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
}


/* Sibling discount cards (family pricing) */
.sibling-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  max-width: 1100px;
  margin: 0 auto;
}

@media (max-width: 900px) { .sibling-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .sibling-cards { grid-template-columns: 1fr; } }

.sibling-card {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.15);
  border-radius: 22px;
  padding: 1.6rem 1.3rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(77, 101, 249, 0.08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.sibling-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  background: linear-gradient(90deg, var(--sib-color, var(--bs-primary)), var(--sib-color2, #6b7ffb));
}

.sibling-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 44px rgba(77, 101, 249, 0.16);
}

.sibling-card .sib-num {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 3.2rem;
  color: var(--sib-color, var(--bs-primary));
  line-height: 1;
  margin-top: 0.5rem;
  letter-spacing: -2px;
  opacity: 0.9;
}

.sibling-card .sib-label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #6c757d;
  margin-top: 0.4rem;
  margin-bottom: 0.85rem;
}

.sibling-card .sib-discount {
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  background: var(--sib-discount-bg, rgba(77, 101, 249, 0.10));
  color: var(--sib-color, var(--bs-primary));
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  margin-bottom: 0.85rem;
  letter-spacing: 0.3px;
}

.sibling-card .sib-price {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.85rem;
  color: var(--sib-color, var(--bs-primary));
  line-height: 1;
}

.sibling-card .sib-period {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  color: #6c757d;
  margin-top: 0.4rem;
  letter-spacing: 0.5px;
}

.sibling-card.sib-1 { --sib-color: #4d65f9;  --sib-color2: #6b7ffb; --sib-discount-bg: rgba(77, 101, 249, 0.10); }
.sibling-card.sib-2 { --sib-color: #b54f8a;  --sib-color2: #d672a0; --sib-discount-bg: rgba(181, 79, 138, 0.12); }
.sibling-card.sib-3 { --sib-color: #d97312;  --sib-color2: #ff8e3c; --sib-discount-bg: rgba(217, 115, 18, 0.12); }
.sibling-card.sib-4 {
  --sib-color: #2d8a4f;
  --sib-color2: #5cb85c;
  --sib-discount-bg: rgba(45, 138, 79, 0.14);
  background: linear-gradient(180deg, #f1fbed 0%, #ffffff 100%);
  border-color: rgba(45, 138, 79, 0.25);
}

/* Included grid */
.included-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 0.85rem;
  max-width: 980px;
  margin: 2rem auto 0;
}

.included-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.10);
  border-radius: 16px;
  padding: 0.85rem 1rem;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.included-item:hover {
  border-color: rgba(77, 101, 249, 0.30);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(77, 101, 249, 0.10);
}

.included-item .ii-check {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #5cb85c, #88d18a);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.78rem;
  margin-top: 2px;
  box-shadow: 0 3px 10px rgba(92, 184, 92, 0.30);
}

.included-item .ii-text {
  font-size: 0.95rem;
  line-height: 1.4;
  color: #3d4a64;
}

.included-item .ii-text strong { color: var(--bs-primary); }

.included-callout {
  max-width: 720px;
  margin: 1.6rem auto 0;
  padding: 1.1rem 1.3rem;
  background: linear-gradient(135deg, #fff8ef 0%, #fff 100%);
  border: 2px dashed #ffd6a8;
  border-radius: 18px;
  font-size: 0.95rem;
  color: #b56612;
  text-align: center;
}

.included-callout i { color: #ff8e3c; margin-right: 0.4rem; }

/* Family discount table */
.family-table {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  border: 2px solid rgba(77, 101, 249, 0.15);
  box-shadow: 0 14px 38px rgba(77, 101, 249, 0.10);
}

.family-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  border-bottom: 1px solid rgba(77, 101, 249, 0.10);
  transition: background .25s ease;
}

.family-row:last-child { border-bottom: none; }

.family-row:hover { background: #f7f9ff; }

.family-row.free-row {
  background: linear-gradient(135deg, #e9fbe6 0%, #fff7d6 100%);
  border-bottom: none;
}

.family-row .fr-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}

.family-row.free-row .fr-icon {
  background: linear-gradient(135deg, #5cb85c, #88d18a);
}

.family-row .fr-label {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--bs-primary);
  line-height: 1.1;
}

.family-row.free-row .fr-label { color: #2d8a4f; }

.family-row .fr-sub {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.82rem;
  color: #6c757d;
}

.family-row .fr-discount {
  background: rgba(77, 101, 249, 0.10);
  color: var(--bs-primary);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  margin-right: 0.5rem;
  white-space: nowrap;
}

.family-row.free-row .fr-discount {
  background: rgba(92, 184, 92, 0.18);
  color: #2d8a4f;
}

.family-row .fr-amount {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--bs-primary);
  white-space: nowrap;
}

.family-row.free-row .fr-amount { color: #2d8a4f; }

@media (max-width: 600px) {
  .family-row {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "icon label"
      "icon disc"
      "amount amount";
    row-gap: 0.3rem;
    padding: 1rem 1.1rem;
  }
  .family-row .fr-icon { grid-area: icon; }
  .family-row .fr-content { grid-area: label; }
  .family-row .fr-discount { grid-area: disc; justify-self: start; margin-right: 0; }
  .family-row .fr-amount { grid-area: amount; justify-self: end; }
}

/* 4-children example callout */
.example-card {
  max-width: 780px;
  margin: 2.5rem auto 0;
  background: linear-gradient(135deg, #fff7d6 0%, #ffe7d1 100%);
  border: 2px solid #ffd6a8;
  border-radius: 24px;
  padding: 1.8rem;
  box-shadow: 0 14px 38px rgba(255, 142, 60, 0.18);
  text-align: center;
}

.example-card .ec-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 1.2px;
  color: #b56612;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}

.example-card h3 {
  color: #d97312;
  font-family: 'Shantell Sans', sans-serif;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.example-card .ec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.example-card .ec-stat {
  background: rgba(255, 255, 255, 0.7);
  border-radius: 16px;
  padding: 1rem;
}

.example-card .ec-stat-num {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.7rem;
  color: #d97312;
  line-height: 1;
}

.example-card .ec-stat-label {
  font-size: 0.82rem;
  color: #b56612;
  margin-top: 0.3rem;
}

.example-card .ec-savings {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.55rem 1.2rem;
  background: #2d8a4f;
  color: #fff;
  border-radius: 999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  box-shadow: 0 6px 18px rgba(45, 138, 79, 0.30);
}

@media (max-width: 480px) {
  .example-card .ec-grid { grid-template-columns: 1fr; }
}


/* ===== Diet redesign (diet.html) ===== */
.diet-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  max-width: 980px;
  margin: 0 auto 2.5rem;
}

.diet-meal-card {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.12);
  border-radius: 22px;
  padding: 1.4rem 1.2rem;
  text-align: center;
  box-shadow: 0 8px 22px rgba(77, 101, 249, 0.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.diet-meal-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(77, 101, 249, 0.16);
  border-color: var(--bs-primary);
}

.diet-meal-card .dmc-icon {
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: linear-gradient(135deg, var(--meal-from, #eaf0ff), var(--meal-to, #ffe7ee));
  color: var(--bs-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 0.7rem;
  box-shadow: 0 4px 14px rgba(77, 101, 249, 0.18);
}

.diet-meal-card .dmc-time {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.82rem;
  color: #6c757d;
  letter-spacing: 1.2px;
}

.diet-meal-card h5 {
  font-family: 'Shantell Sans', sans-serif;
  color: var(--bs-primary);
  font-size: 1.25rem;
  margin: 0.3rem 0 0.5rem;
}

.diet-meal-card p {
  font-size: 0.9rem;
  color: #5a6478;
  line-height: 1.5;
  margin: 0;
}

.diet-meal-card.morning  { --meal-from: #fff3cf; --meal-to: #ffe1b3; }
.diet-meal-card.morning  .dmc-icon { color: #c75a06; }
.diet-meal-card.snack    { --meal-from: #e9fbe6; --meal-to: #fff7d6; }
.diet-meal-card.snack    .dmc-icon { color: #2d8a4f; }
.diet-meal-card.lunch    { --meal-from: #ffe7d1; --meal-to: #ffd7d7; }
.diet-meal-card.lunch    .dmc-icon { color: #d97312; }
.diet-meal-card.afternoon { --meal-from: #e1ecff; --meal-to: #f5e8ff; }

.diet-principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  max-width: 1080px;
  margin: 0 auto;
}

.diet-principle {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.10);
  border-radius: 18px;
  padding: 1.2rem 1.1rem;
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
}

.diet-principle .dp-icon {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  box-shadow: 0 3px 10px rgba(77, 101, 249, 0.20);
}

.diet-principle h6 {
  font-family: 'Shantell Sans', sans-serif;
  font-size: 1.05rem;
  color: var(--bs-primary);
  margin-bottom: 0.3rem;
}

.diet-principle p {
  font-size: 0.88rem;
  color: #5a6478;
  margin: 0;
  line-height: 1.45;
}

.menu-table-wrap {
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.12);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 14px 38px rgba(77, 101, 249, 0.10);
}

.menu-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
}

.menu-table thead th {
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
  color: #fff;
  font-family: 'Shantell Sans', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  padding: 1rem 1.1rem;
  letter-spacing: 0.5px;
  border: none;
}

.menu-table tbody td {
  padding: 0.85rem 1.1rem;
  font-size: 0.95rem;
  color: #3d4a64;
  border-bottom: 1px solid rgba(77, 101, 249, 0.08);
}

.menu-table tbody tr:nth-child(odd) td { background: #f8faff; }
.menu-table tbody tr:hover td { background: #f0f4ff; }
.menu-table tbody tr:last-child td { border-bottom: none; }


/* ===== Stričekov kutak (about-us male caretaker emphasis) ===== */
.male-edge {
  background: linear-gradient(135deg, #ffffff 0%, #eef2ff 100%);
  border: 2px solid rgba(77, 101, 249, 0.18);
  border-radius: 28px;
  padding: 2rem;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.5rem;
  align-items: center;
  max-width: 920px;
  margin: 0 auto;
  box-shadow: 0 16px 40px rgba(77, 101, 249, 0.10);
}

.male-edge .me-icon {
  width: 84px;
  height: 84px;
  border-radius: 50% 20% / 10% 40%;
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.4rem;
  flex-shrink: 0;
  box-shadow: 0 8px 24px rgba(77, 101, 249, 0.30);
}

.male-edge .me-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 1.2px;
  color: var(--bs-secondary);
  text-transform: uppercase;
  margin-bottom: 0.3rem;
}

.male-edge h3 {
  font-family: 'Shantell Sans', sans-serif;
  color: var(--bs-primary);
  margin-bottom: 0.6rem;
}

.male-edge p {
  margin: 0;
  color: #3d4a64;
  line-height: 1.55;
}

@media (max-width: 600px) {
  .male-edge { grid-template-columns: 1fr; text-align: center; }
  .male-edge .me-icon { margin: 0 auto; }
}


/* ===== All-inclusive ribbon (home + prices) ===== */
.all-inclusive-ribbon {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.1rem;
  background: linear-gradient(135deg, #5cb85c, #88d18a);
  color: #fff;
  border-radius: 999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
  box-shadow: 0 6px 18px rgba(92, 184, 92, 0.30);
}


/* ===== Trips / izleti grid ===== */
.trips-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.4rem;
  max-width: 1280px;
  margin: 0 auto;
}

.trip-card {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.14);
  border-radius: 22px;
  padding: 0;
  text-align: center;
  box-shadow: 0 8px 22px rgba(77, 101, 249, 0.08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: hidden;
}

.trip-card:hover {
  transform: translateY(-3px);
  border-color: var(--bs-primary);
  box-shadow: 0 18px 40px rgba(77, 101, 249, 0.18);
}

.trip-card .trip-image {
  width: 100%;
  aspect-ratio: 5 / 4;
  background: linear-gradient(135deg, var(--trip-from, #eaf0ff), var(--trip-to, #ffe7ee));
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  border-bottom: 2px solid #eef1ff;
}

.trip-card .trip-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.trip-card .trip-image .placeholder-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #6c757d;
  background: rgba(255, 255, 255, 0.85);
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
}

.trip-card .trip-body {
  padding: 0 0.9rem 0.85rem;
  position: relative;
}

.trip-card .trip-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--trip-icon-from, var(--bs-primary)), var(--trip-icon-to, #6b7ffb));
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  margin-top: -24px;
  margin-bottom: 0.4rem;
  box-shadow: 0 4px 14px rgba(77, 101, 249, 0.25);
  border: 4px solid #fff;
}

.trip-card .trip-name {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--bs-primary);
  line-height: 1.15;
  margin: 0;
}

.trip-card .trip-meta {
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  color: #6c757d;
  margin-top: 0.3rem;
  letter-spacing: 0.3px;
}

.trip-card.t-zoo       { --trip-from: #ffeed1; --trip-to: #ffd6a8; --trip-icon-from: #d97312; --trip-icon-to: #ff9f43; }
.trip-card.t-farm      { --trip-from: #e9fbe6; --trip-to: #d6f5d2; --trip-icon-from: #5cb85c; --trip-icon-to: #88d18a; }
.trip-card.t-bakery    { --trip-from: #fff3cf; --trip-to: #ffe1b3; --trip-icon-from: #c75a06; --trip-icon-to: #ff9f43; }
.trip-card.t-market    { --trip-from: #ffe7d1; --trip-to: #ffd7d7; --trip-icon-from: #b54f8a; --trip-icon-to: #d672a0; }
.trip-card.t-library   { --trip-from: #e1ecff; --trip-to: #f5e8ff; --trip-icon-from: #4d65f9; --trip-icon-to: #7b8af9; }
.trip-card.t-theatre   { --trip-from: #f3e8ff; --trip-to: #ffd6e8; --trip-icon-from: #8b5cf6; --trip-icon-to: #c084fc; }
.trip-card.t-park      { --trip-from: #d6f5d2; --trip-to: #cfeeff; --trip-icon-from: #2d8a4f; --trip-icon-to: #5cb85c; }
.trip-card.t-parkic    { --trip-from: #e9fbe6; --trip-to: #fff7d6; --trip-icon-from: #4ca352; --trip-icon-to: #88d18a; }
.trip-card.t-police    { --trip-from: #cfdfff; --trip-to: #e8e8e8; --trip-icon-from: #2c4ed4; --trip-icon-to: #5b75e6; }
.trip-card.t-minipolis { --trip-from: #fff3cf; --trip-to: #ffe1d1; --trip-icon-from: #e8a02b; --trip-icon-to: #ff6b6b; }

.trip-card.t-zoo       .trip-name { color: #b54f0a; }
.trip-card.t-farm      .trip-name { color: #2d8a4f; }
.trip-card.t-bakery    .trip-name { color: #c75a06; }
.trip-card.t-market    .trip-name { color: #b54f8a; }
.trip-card.t-library   .trip-name { color: var(--bs-primary); }
.trip-card.t-theatre   .trip-name { color: #7c3aed; }
.trip-card.t-park      .trip-name { color: #2d8a4f; }
.trip-card.t-parkic    .trip-name { color: #2d8a4f; }
.trip-card.t-police    .trip-name { color: #2c4ed4; }
.trip-card.t-minipolis .trip-name { color: #d97312; }

/* When trip-card is an <a> (external link, e.g. Mini polis), don't underline */
a.trip-card { text-decoration: none; color: inherit; }
a.trip-card:hover { text-decoration: none; color: inherit; }
.trip-card .trip-meta i.fa-external-link-alt { font-size: 0.7rem; margin-left: 0.2rem; opacity: 0.65; }


/* ===== Tipičan dan narrative ===== */
.day-narrative {
  max-width: 880px;
  margin: 0 auto;
  background: linear-gradient(180deg, #f7f9ff 0%, #ffffff 100%);
  border: 2px solid rgba(77, 101, 249, 0.12);
  border-radius: 28px;
  padding: 2rem 2.2rem;
  box-shadow: 0 14px 38px rgba(77, 101, 249, 0.08);
}

.day-narrative .dn-block {
  display: grid;
  grid-template-columns: minmax(120px, max-content) 1fr;
  gap: 1.2rem;
  align-items: start;
  padding: 1rem 0;
  border-bottom: 1px dashed rgba(77, 101, 249, 0.18);
}

.day-narrative .dn-block:last-child { border-bottom: none; }

.day-narrative .dn-time {
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--bs-primary);
  background: rgba(77, 101, 249, 0.08);
  padding: 0.35rem 0.8rem;
  border-radius: 12px;
  text-align: center;
  white-space: nowrap;
  width: fit-content;
}

.day-narrative .dn-text {
  font-size: 1rem;
  color: #3d4a64;
  line-height: 1.65;
}

.day-narrative .dn-text strong { color: var(--bs-primary); }

@media (max-width: 600px) {
  .day-narrative { padding: 1.4rem 1.3rem; }
  .day-narrative .dn-block { grid-template-columns: 1fr; gap: 0.5rem; }
  .day-narrative .dn-time { justify-self: start; }
}


/* ===== FAQ accordion ===== */
.faq-list {
  max-width: 880px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.faq-item {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.12);
  border-radius: 18px;
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease;
}

.faq-item[open] {
  border-color: var(--bs-primary);
  box-shadow: 0 12px 30px rgba(77, 101, 249, 0.12);
}

.faq-item summary {
  padding: 1.1rem 1.4rem;
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--bs-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  list-style: none;
}

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

.faq-item summary::after {
  content: "\f067";
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  color: var(--bs-primary);
  background: rgba(77, 101, 249, 0.10);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  flex-shrink: 0;
  transition: transform .25s ease, background .25s ease;
}

.faq-item[open] summary::after {
  content: "\f068";
  background: var(--bs-primary);
  color: #fff;
}

.faq-item .faq-body {
  padding: 0 1.4rem 1.3rem;
  color: #3d4a64;
  font-size: 0.98rem;
  line-height: 1.65;
}

.faq-item .faq-body p { margin-bottom: 0.7rem; }
.faq-item .faq-body p:last-child { margin-bottom: 0; }
.faq-item .faq-body strong { color: var(--bs-primary); }


/* ===== Adaptacija (10-day timeline) ===== */
.adapt-week-label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--bs-secondary);
  text-align: center;
  margin: 1.5rem 0 0.8rem;
  padding: 0.5rem 1.2rem;
  background: rgba(255, 72, 128, 0.08);
  border-radius: 999px;
  display: inline-block;
}

.adapt-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem;
  max-width: 1280px;
  margin: 0 auto;
}
@media (max-width: 1199px) { .adapt-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px)  { .adapt-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479px)  { .adapt-grid { grid-template-columns: 1fr; } }

.adapt-card {
  background: #fff;
  border: 2px solid rgba(77, 101, 249, 0.12);
  border-radius: 20px;
  padding: 1.3rem 1.2rem;
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.adapt-card:hover {
  transform: translateY(-2px);
  border-color: var(--bs-primary);
  box-shadow: 0 14px 32px rgba(77, 101, 249, 0.14);
}

.adapt-card .adapt-day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50% 20% / 10% 40%;
  background: linear-gradient(135deg, var(--bs-primary), #6b7ffb);
  color: #fff;
  font-family: 'Shantell Sans', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  box-shadow: 0 4px 12px rgba(77, 101, 249, 0.25);
  margin-bottom: 0.7rem;
}

.adapt-card.week-2 .adapt-day {
  background: linear-gradient(135deg, var(--bs-secondary), #ff7aa2);
  box-shadow: 0 4px 12px rgba(255, 72, 128, 0.25);
}

.adapt-card .adapt-arrival {
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  color: var(--bs-primary);
  background: rgba(77, 101, 249, 0.10);
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  margin-bottom: 0.6rem;
  letter-spacing: 0.3px;
  white-space: nowrap;
  vertical-align: middle;
  margin-left: 0.5rem;
}

.adapt-card.week-2 .adapt-arrival {
  color: var(--bs-secondary);
  background: rgba(255, 72, 128, 0.10);
}

.adapt-card h5 {
  font-family: 'Shantell Sans', sans-serif;
  font-size: 1.05rem;
  color: var(--bs-primary);
  margin-bottom: 0.4rem;
}

.adapt-card.week-2 h5 { color: var(--bs-secondary); }

.adapt-card p {
  font-size: 0.92rem;
  color: #3d4a64;
  line-height: 1.5;
  margin: 0;
}


/* ===== Resources stub ===== */
.resources-stub {
  max-width: 720px;
  margin: 0 auto;
  background: linear-gradient(135deg, #f4f7ff 0%, #ffffff 100%);
  border: 2px dashed rgba(77, 101, 249, 0.30);
  border-radius: 22px;
  padding: 2rem;
  text-align: center;
}

.resources-stub i {
  font-size: 2rem;
  color: var(--bs-primary);
  margin-bottom: 0.7rem;
}

.resources-stub h5 {
  font-family: 'Shantell Sans', sans-serif;
  color: var(--bs-primary);
  margin-bottom: 0.5rem;
}

.resources-stub p {
  color: #5a6478;
  margin: 0;
}


/* ===== Live badge + status line (skupina.html) ===== */
.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 1rem;
  background: rgba(255, 255, 255, 0.16);
  border: 1.5px solid rgba(255, 255, 255, 0.35);
  border-radius: 999px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #fff;
  text-transform: uppercase;
}

.live-badge .live-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #2fd47a;
  box-shadow: 0 0 0 0 rgba(47, 212, 122, 0.7);
  animation: live-pulse 1.6s ease-out infinite;
  flex-shrink: 0;
}

@keyframes live-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(47, 212, 122, 0.7); }
  70%  { box-shadow: 0 0 0 12px rgba(47, 212, 122, 0); }
  100% { box-shadow: 0 0 0 0 rgba(47, 212, 122, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .live-badge .live-dot { animation: none; }
}

.opening-notice {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 1.1rem;
  background: rgba(255, 198, 80, 0.18);
  border: 1.5px solid rgba(255, 198, 80, 0.55);
  border-radius: 999px;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9rem;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.opening-notice .fa-bell { color: #ffd76a; }
.opening-notice a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.opening-notice a:hover { color: #ffe6a1; }

@media (max-width: 480px) {
  .opening-notice { font-size: 0.82rem; padding: 0.5rem 0.9rem; gap: 0.4rem; }
}

.contact-availability-cta {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  background: rgba(255, 198, 80, 0.12);
  border: 1.5px solid rgba(255, 198, 80, 0.55);
  border-radius: 14px;
  padding: 0.85rem 1rem;
  color: #5a4a1d;
  line-height: 1.5;
}

.contact-availability-cta .fa-bell {
  color: #d97706;
  font-size: 1rem;
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.contact-availability-cta a {
  color: var(--bs-primary);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact-availability-cta a:hover { color: #2a3eb6; }

.status-line {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.6rem 1rem;
  padding: 0.7rem 1.2rem;
  background: rgba(47, 212, 122, 0.08);
  border: 1.5px solid rgba(47, 212, 122, 0.30);
  border-radius: 14px;
  margin: 0 auto 1.2rem;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.92rem;
  color: #2a7a4a;
}

.status-line .status-pulse {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #2fd47a;
  box-shadow: 0 0 0 0 rgba(47, 212, 122, 0.6);
  animation: live-pulse 1.6s ease-out infinite;
  flex-shrink: 0;
}

.status-line .status-label { font-weight: 600; }
.status-line .status-cap   { font-weight: 600; padding-left: 0.7rem; border-left: 1px solid rgba(47, 212, 122, 0.30); }

@media (max-width: 480px) {
  .status-line { font-size: 0.85rem; padding: 0.55rem 0.9rem; }
  .status-line .status-cap { padding-left: 0; border-left: none; width: 100%; text-align: center; }
  .live-badge { font-size: 0.7rem; letter-spacing: 0.08em; padding: 0.4rem 0.85rem; }
}


/* ===== Mobile polish — apply across pages ===== */

/* Page header — scale display-2 down on mobile so "Cjelodnevni boravak..." doesn't break */
@media (max-width: 600px) {
  .page-header h1.display-2 { font-size: 2.4rem; line-height: 1.15; }
  .hero-header .display-1 { font-size: 2.6rem; line-height: 1.1; }
  .hero-header h1.text-primary { font-size: 1.05rem; }
  .display-5 { font-size: 1.7rem; line-height: 1.2; }
  .display-3 { font-size: 1.9rem; }
}

/* Top contact strip — already hidden on mobile via d-none d-lg-block. Good. */

/* Phone + "Imate pitanja? Kontakt" block in navbar — keep visible on mobile, but compact */
@media (max-width: 575px) {
  .navbar .d-flex.me-4 { margin-right: 0 !important; gap: 0.4rem; }
  .navbar .fa-phone-alt.fa-2x { font-size: 1.4em !important; }
  .navbar .border-primary span.text-primary { font-size: 0.78rem; }
  .navbar .border-primary span.text-secondary { font-size: 0.85rem; font-weight: 600; }
}

/* Hero CTA buttons — full width on small phones for easier tap */
@media (max-width: 480px) {
  .hero-header .btn { display: block; width: 100%; margin-right: 0 !important; padding: 0.9rem 1.2rem !important; font-size: 1rem; }
}

/* Tap-target minimum (44px Apple guideline / 48dp Material) */
@media (pointer: coarse) {
  .btn, .nav-link, a.text-body, .filter-btn, .start-mode-btn { min-height: 44px; }
  .feature-icon, .benefit-icon { transform: none; }
}

/* iOS form zoom prevention — inputs need ≥16px to avoid auto-zoom on focus */
@media (max-width: 768px) {
  input, select, textarea, .form-control, .form-select { font-size: 16px !important; }
}

/* Diet menu table — switch to stacked card-like rows on mobile (no horizontal scroll) */
@media (max-width: 600px) {
  .menu-table-wrap { border-radius: 18px; overflow: visible; }
  .menu-table { border-collapse: separate; border-spacing: 0 0.5rem; }
  .menu-table thead { display: none; }
  .menu-table tbody, .menu-table tr, .menu-table td { display: block; width: 100%; }
  .menu-table tr {
    background: #fff;
    border: 1.5px solid rgba(77, 101, 249, 0.14);
    border-radius: 14px;
    padding: 0.85rem 1rem;
    box-shadow: 0 4px 12px rgba(77, 101, 249, 0.06);
  }
  .menu-table td {
    padding: 0.4rem 0;
    border: none;
    position: relative;
    padding-left: 6.5rem;
    min-height: 1.6rem;
  }
  .menu-table td::before {
    position: absolute;
    left: 0;
    top: 0.4rem;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bs-primary);
  }
  .menu-table td:nth-child(1)::before { content: "DORUČAK"; }
  .menu-table td:nth-child(2)::before { content: "UŽINA"; }
  .menu-table td:nth-child(2) { padding-top: 0.6rem; border-top: 1px dashed rgba(77, 101, 249, 0.18); margin-top: 0.4rem; }
}

/* Tuition options — stack on mobile, smaller amount text */
@media (max-width: 600px) {
  .tuition-options { grid-template-columns: 1fr; }
  .tuition-amount { font-size: 3rem !important; }
  .tuition-hero { padding: 1.6rem 1.3rem !important; }
}

/* Sibling cards — single column on small phones, 2 cols on medium */
@media (max-width: 480px) {
  .sibling-cards { grid-template-columns: 1fr 1fr; gap: 0.7rem; }
  .sibling-card { padding: 1rem 0.8rem; }
  .sib-price { font-size: 1.3rem; }
  .sib-period { font-size: 0.75rem; }
}

/* Story stats — 2 cols on mobile instead of 4 */
@media (max-width: 600px) {
  .story-stats { grid-template-columns: 1fr 1fr; gap: 0.8rem; }
  .story-stat-num { font-size: 1.8rem; }
}

/* Theme pills wrap nicely already; ensure padding on mobile */
@media (max-width: 480px) {
  .theme-grid { gap: 0.4rem; }
  .theme-pill { padding: 0.45rem 0.85rem; font-size: 0.85rem; }
}

/* Trip cards grid — 2 col on mobile */
@media (max-width: 600px) {
  .trips-grid { grid-template-columns: 1fr 1fr; gap: 0.8rem; }
}

/* Adapt cards (enrollment) — 1 col on phones */
@media (max-width: 600px) {
  .adapt-grid { grid-template-columns: 1fr; gap: 0.85rem; }
}

/* Plans grid — 1 col on small phones for easier tap */
@media (max-width: 480px) {
  .plans-grid { grid-template-columns: 1fr; }
}

/* Footer — center align text on mobile so it doesn't look ragged */
@media (max-width: 768px) {
  .footer-item { text-align: center; }
  .footer-item .d-flex.flex-column.align-items-start { align-items: center !important; }
  .footer-item .d-flex.flex-column.p-4.ps-5 { padding-left: 1.5rem !important; align-items: center; text-align: center; }
}

/* Page section padding on mobile — tighten so content fills better */
@media (max-width: 600px) {
  .container-fluid.py-5 .container.py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
  .container-fluid.py-5 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
}

/* Reviews carousel — make item readable on phones */
@media (max-width: 480px) {
  .testimonial-item { padding: 1rem !important; }
  .testimonial-item .p-4 { padding: 1rem !important; }
}

/* Prevent any rogue horizontal overflow */
html, body { overflow-x: hidden; }

/* Testimonial carousel — give border breathing room so the card outline
   isn't clipped on the first/last visible item (Vjencislav left edge) */
.testimonial .testimonial-carousel .owl-stage-outer { padding: 4px 0; }
.testimonial .testimonial-carousel .owl-item { padding: 4px; }
.testimonial .testimonial-carousel .testimonial-item { margin: 0; }

/* Compact section spacing: template doubles py-5 (3rem+3rem=6rem stack).
   Tighten inner container so sections breathe but don't sprawl. */
.container-fluid.py-5 > .container.py-5 {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}
.container-fluid.page-header.py-5 .container.py-5 {
  padding-top: 0.75rem !important;
  padding-bottom: 0.75rem !important;
}
.container-fluid.page-header + .container-fluid.py-5 {
  padding-top: 2rem !important;
}
section .mb-5,
.container-fluid .mx-auto.text-center.mb-5 { margin-bottom: 1.75rem !important; }
@media (max-width: 575px) {
  .container-fluid.py-5 > .container.py-5 {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
  }
}

/* 404, fully custom error page (only place brand illustration appears) */
.error404 {
  background: radial-gradient(ellipse at top, #fff7eb 0%, #ffffff 55%);
  padding: 3.5rem 1rem 4.5rem;
  min-height: 70vh;
}
.error404 .container { max-width: 1100px; }

/* Illustration with floating 404 badge */
.error404-illust {
  position: relative;
  margin: 0 auto 2.5rem;
  max-width: 760px;
}
.error404-illust img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 28px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.08);
  border: 6px solid #fff;
  outline: 1px solid rgba(0, 0, 0, 0.04);
}
.error404-badge {
  position: absolute;
  top: -1.4rem;
  right: -1.4rem;
  width: 132px;
  height: 132px;
  border-radius: 50%;
  background: var(--bs-primary);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 14px 36px rgba(255, 138, 64, 0.35), 0 0 0 6px #fff;
  transform: rotate(-8deg);
  font-family: 'Shantell Sans', system-ui, sans-serif;
  font-weight: 800;
  animation: badge-wobble 4s ease-in-out infinite;
}
.error404-badge .num { font-size: 2.4rem; line-height: 1; letter-spacing: -0.02em; }
.error404-badge .bee { font-size: 0.85rem; opacity: 0.95; margin-top: 0.2rem; }
@keyframes badge-wobble {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  50%      { transform: rotate(-4deg) translateY(-6px); }
}

/* Message block */
.error404-message {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 2.5rem;
}
.error404-heading {
  font-family: 'Shantell Sans', system-ui, sans-serif;
  font-weight: 700;
  color: #2c2c2c;
  font-size: clamp(1.7rem, 4vw, 2.6rem);
  line-height: 1.2;
  margin: 0 0 0.9rem;
}
.error404-lead {
  font-size: 1.08rem;
  color: #555;
  margin: 0 0 0.4rem;
}
.error404-en {
  font-size: 0.95rem;
  color: #888;
  margin: 0;
}

/* Quick navigation links */
.error404-links {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.9rem;
  max-width: 1000px;
  margin: 0 auto 2.5rem;
}
.error404-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.3rem 0.8rem 1.1rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 18px;
  text-decoration: none;
  color: #2c2c2c;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}
.error404-link:hover {
  transform: translateY(-4px);
  border-color: var(--bs-primary);
  box-shadow: 0 14px 30px rgba(255, 138, 64, 0.18);
  color: var(--bs-primary);
  text-decoration: none;
}
.error404-link i {
  font-size: 1.55rem;
  color: var(--bs-primary);
  margin-bottom: 0.55rem;
  transition: transform 0.22s ease;
}
.error404-link:hover i { transform: scale(1.1); }
.error404-link .label {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
}
.error404-link .sub {
  font-size: 0.75rem;
  color: #999;
  margin-top: 0.15rem;
  letter-spacing: 0.02em;
}

/* Footer note */
.error404-foot {
  text-align: center;
  color: #777;
  font-size: 0.95rem;
  border-top: 1px dashed rgba(0, 0, 0, 0.08);
  padding-top: 1.5rem;
  max-width: 540px;
  margin: 0 auto;
}
.error404-mail {
  display: inline-flex;
  align-items: center;
  color: var(--bs-primary);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}
.error404-mail:hover { border-bottom-color: var(--bs-primary); color: var(--bs-primary); }

/* Responsive */
@media (max-width: 991px) {
  .error404-links { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px) {
  .error404 { padding: 2rem 0.75rem 3rem; }
  .error404-illust { margin-bottom: 2rem; }
  .error404-illust img { border-radius: 18px; border-width: 4px; }
  .error404-badge {
    width: 88px; height: 88px;
    top: -0.6rem; right: -0.6rem;
    box-shadow: 0 8px 22px rgba(255, 138, 64, 0.35), 0 0 0 4px #fff;
  }
  .error404-badge .num { font-size: 1.5rem; }
  .error404-badge .bee { font-size: 0.7rem; }
  .error404-links { grid-template-columns: repeat(2, 1fr); gap: 0.7rem; }
  .error404-link { padding: 1rem 0.5rem 0.85rem; border-radius: 14px; }
  .error404-link i { font-size: 1.3rem; }
  .error404-link .label { font-size: 0.88rem; }
  .error404-link .sub { font-size: 0.7rem; }
}

/* Language switcher (HR / EN) — text with a globe icon prefix so non-Croatian
   visitors instantly recognize it as a language toggle. */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 1.05rem;
  line-height: 1;
  margin: 0 0.85rem 0 0;
  align-self: center;
  padding: 0.25rem 0.7rem;
  border: 1.5px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}
.lang-switch .lang-globe {
  color: #fff;
  font-size: 0.95rem;
  margin-right: 0.15rem;
  opacity: 0.9;
}
.lang-switch a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 2px 0;
  transition: color 0.15s ease;
}
.lang-switch a:hover { color: #fff; }
.lang-switch a.active {
  color: #fff;
  font-weight: 800;
  border-bottom: 2.5px solid #fff;
}
.lang-switch .lang-sep {
  color: rgba(255, 255, 255, 0.55);
  font-weight: 400;
  user-select: none;
}
.lang-switch .flag { display: none; }

@media (max-width: 991.98px) {
  .lang-switch { font-size: 1.05rem; gap: 0.6rem; padding: 0.3rem 0.75rem; }
}

/* Economic price visual highlight (prices.html) */
.economic-price-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 1.5rem auto 0;
  padding: 1.8rem 2rem 1.6rem;
  background: linear-gradient(135deg, #fff 0%, #fff7ed 100%);
  border: 1px solid rgba(255, 138, 64, 0.18);
  border-radius: 22px;
  box-shadow: 0 14px 32px rgba(255, 138, 64, 0.08);
  max-width: 540px;
}
.economic-price-card .ep-eyebrow {
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bs-primary);
  font-weight: 700;
  margin-bottom: 0.6rem;
}
.economic-price-card .ep-amount {
  font-family: 'Shantell Sans', system-ui, sans-serif;
  font-weight: 800;
  color: #2c2c2c;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  margin-bottom: 0.7rem;
}
.economic-price-card .ep-num { font-size: clamp(3rem, 8vw, 4.6rem); letter-spacing: -0.02em; }
.economic-price-card .ep-currency { font-size: clamp(1.1rem, 3vw, 1.6rem); color: var(--bs-primary); font-weight: 700; }
.economic-price-card .ep-sub { color: #4a4a4a; font-size: 1rem; margin-bottom: 1rem; max-width: 380px; }
.economic-price-card .ep-foot {
  font-size: 0.86rem;
  color: #777;
  border-top: 1px dashed rgba(0,0,0,0.1);
  padding-top: 0.85rem;
  width: 100%;
  max-width: 460px;
}

.example-card .ec-headline {
  font-family: 'Shantell Sans', system-ui, sans-serif;
  font-size: clamp(2.4rem, 6vw, 3.4rem);
  color: var(--bs-primary);
  margin-top: 0.35rem;
}

/* Footer working hours: keep time range on one line */
.footer-item p strong + br,
.footer-item p:has(strong) { white-space: normal; }
.footer-item p strong { white-space: nowrap; }
.footer-item .working-hours-time {
  white-space: nowrap;
  display: inline-block;
}

/* Reviews title with inline Google rating chip */
.reviews-title {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  justify-content: center;
}
.google-rating-mini {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.95rem;
  line-height: 1;
  color: #2c2c2c;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
  white-space: nowrap;
}
.google-rating-mini:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.10);
  transform: translateY(-1px);
  color: #2c2c2c;
}
.google-rating-mini .google-g-mini { display: inline-flex; align-items: center; }
.google-rating-mini .rating-num { font-weight: 700; color: #202124; }
.google-rating-mini .rating-stars { color: #f5b400; letter-spacing: 1px; font-size: 0.85rem; }
@media (max-width: 575px) {
  .google-rating-mini { padding: 0.3rem 0.6rem; font-size: 0.85rem; }
}

/* Reviews translate toggle (index-en.html) */
.btn-translate-reviews {
  display: inline-flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid var(--bs-primary);
  color: var(--bs-primary);
  padding: 6px 16px;
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.btn-translate-reviews:hover {
  background: var(--bs-primary);
  color: #fff;
}

/* Zvončica inline reference links (FB + Maps) */
.zvoncica-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin: 0 1px;
  border-radius: 50%;
  color: var(--bs-primary);
  background: rgba(255, 138, 64, 0.1);
  text-decoration: none;
  font-size: 0.78rem;
  vertical-align: middle;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
.zvoncica-link:hover {
  background: var(--bs-primary);
  color: #fff;
  transform: translateY(-1px);
}

/* Inline brand-logo image variant of zvoncica-link — pill becomes shaped to logo */
.zvoncica-link.zvoncica-logo-link {
  width: auto;
  height: auto;
  background: transparent;
  padding: 0;
  border-radius: 6px;
  margin: 0 0.15em;
  vertical-align: -0.7em;
}
.zvoncica-link.zvoncica-logo-link:hover {
  background: transparent;
  transform: translateY(-1px);
}

.inline-logo-zvoncica {
  height: 2.8em;
  width: auto;
  vertical-align: -0.55em;
  display: inline-block;
  margin: 0 0.2em;
}

.inline-logo-zvoncek {
  height: 1.7em;
  width: auto;
  vertical-align: -0.45em;
  display: inline-block;
  margin: 0 0.15em;
}

/* International families note (O nama page) */
.intl-note {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  margin-top: 1.25rem;
  padding: 1rem 1.1rem;
  background: linear-gradient(135deg, rgba(var(--bs-primary-rgb, 255, 138, 64), 0.08) 0%, rgba(var(--bs-primary-rgb, 255, 138, 64), 0.03) 100%);
  border-left: 4px solid var(--bs-primary);
  border-radius: 0 10px 10px 0;
  color: #2c2c2c;
  line-height: 1.55;
}
.intl-note .intl-flag { font-size: 1.6rem; line-height: 1; flex: 0 0 auto; }
.intl-note strong { color: var(--bs-primary); display: block; margin-bottom: 0.15rem; }
@media (max-width: 575px) {
  .intl-note { padding: 0.85rem; gap: 0.7rem; font-size: 0.92rem; }
  .intl-note .intl-flag { font-size: 1.3rem; }
}

/* ===== Compact tuition pills (no descriptions under amount) ===== */
.economic-price-card {
  max-width: 360px;
  padding: 1.1rem 1.6rem 1rem;
  border-radius: 999px;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  box-shadow: 0 8px 22px rgba(255, 138, 64, 0.10);
}
.economic-price-card .ep-eyebrow {
  margin-bottom: 0;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-align: left;
  white-space: nowrap;
}
.economic-price-card .ep-amount {
  margin-bottom: 0;
  align-items: baseline;
  gap: 0.25rem;
}
.economic-price-card .ep-num {
  font-size: clamp(1.8rem, 4vw, 2.2rem);
}
.economic-price-card .ep-currency {
  font-size: clamp(0.9rem, 2vw, 1.05rem);
}

.tuition-hero {
  max-width: 420px;
  padding: 1.5rem 1.8rem 1.4rem;
  border-radius: 28px;
}
.tuition-hero .tuition-eyebrow {
  margin-bottom: 0.35rem;
}
.tuition-hero .tuition-amount {
  font-size: clamp(2.2rem, 5vw, 3rem);
}
.tuition-hero .tuition-amount small {
  font-size: 0.5em;
}

@media (max-width: 540px) {
  .economic-price-card {
    flex-direction: column;
    border-radius: 22px;
    gap: 0.35rem;
    padding: 1rem 1.4rem;
  }
  .economic-price-card .ep-eyebrow { text-align: center; }
}

/* ===== Mobile polish — 2026-05-16 ===== */

/* Footer copyright: "Zaštita privatnosti" u novom redu na mobilnoj verziji */
@media (max-width: 575px) {
  .copyright a[href*="privatnost"] {
    display: inline-block;
    margin-left: 0 !important;
    margin-top: 0.45rem;
  }
}

/* Home feature cards — vertikalni stack na mobile (sve kartice jedna ispod druge) */
@media (max-width: 767.98px) {
  .features-grid {
    gap: 0.8rem;
  }

  .features-grid .col-feature {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100%;
  }
  .features-grid .feature-card.has-image {
    flex-direction: column;
    text-align: center;
    height: 100%;
    box-shadow: 0 10px 28px rgba(77, 101, 249, 0.10);
    border-radius: 22px;
  }
  .features-grid .feature-card.has-image .feature-image {
    width: 100%;
    flex: initial;
    aspect-ratio: 1 / 1;
    border-bottom: 2px solid #eef1ff;
    border-right: none;
  }
  /* Komunikacija (WhatsApp grupa screenshot) — portrait, da se vidi tekst */
  .features-grid .feature-card[data-slot="komunikacija"] .feature-image {
    aspect-ratio: 3 / 4;
  }
  .features-grid .feature-card.has-image .feature-card-body {
    flex: 1;
    padding: 0.25rem 0.8rem 0.45rem !important;
    text-align: center;
    align-items: center;
    justify-content: flex-start;
    flex-direction: column;
    gap: 0;
  }
  .features-grid .feature-card.has-image .feature-icon {
    width: 42px !important;
    height: 42px !important;
    font-size: 0.95rem !important;
    margin: -21px auto 0.15rem !important;
    flex: initial;
    border-width: 3px;
    align-self: center;
  }
  .features-grid .feature-card.has-image h6 {
    font-size: 1.05rem !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center;
    line-height: 1.2;
  }
  .features-grid .feature-card.has-image .feature-cta {
    display: inline-flex !important;
    margin-top: 0.1rem;
    font-size: 0.7rem;
  }
  /* Clones (JS infinite loop) — ne triggeraju wow animacije */
  .features-grid .col-feature.is-clone {
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
  }
}

.features-swipe-hint { display: none !important; }

/* Hero CTA — auto width na mobile (umjesto full-width block) */
@media (max-width: 480px) {
  .hero-header .hero-cta-row .btn,
  .hero-cta-row .btn {
    display: inline-block !important;
    width: auto !important;
    padding: 0.75rem 1.4rem !important;
    font-size: 0.95rem !important;
  }
  .hero-cta-row { display: flex; flex-wrap: wrap; gap: 0.6rem; }
}

/* Izleti — Mini polis sakriven na mobile (ne reklamiramo external service) */
@media (max-width: 767.98px) {
  .trip-card.t-minipolis { display: none; }
}

/* Skupina (age-timeline) — fix card-head order na mobile (sve cards isti layout) */
@media (max-width: 720px) {
  .age-timeline .tl-row-left .tl-card-head,
  .age-timeline .tl-row-right .tl-card-head {
    flex-direction: row;
    justify-content: flex-start;
    white-space: normal;
    flex-wrap: wrap;
  }
  .age-timeline .tl-name { font-size: 1.15rem; }
}

/* Dnevni ritam — veći prikaz vertikalne lente na mobile */
@media (max-width: 1140px) {
  .horizontal-timeline {
    max-width: 520px;
    margin: 0 auto;
  }
  .horizontal-timeline .items {
    gap: 0.5rem;
  }
  .horizontal-timeline .items .items-list {
    padding-top: 78px;
    padding-bottom: 0.8rem;
  }
  .horizontal-timeline .items .items-list:before {
    height: 44px;
    top: -4px;
  }
  .horizontal-timeline .items .items-list .event-date {
    width: 92px;
    font-size: 1rem;
    padding: 0.45rem 0.6rem;
    top: 30px;
  }
  .horizontal-timeline .items .items-list h5 {
    font-size: 1.15rem;
    line-height: 1.3;
  }
}

/* Diet menu-table — labela "Doručak / Užina" iznad stavke (bez preklapanja) */
@media (max-width: 600px) {
  .menu-table td {
    padding: 0.55rem 0 0.25rem;
    padding-left: 0;
    min-height: 0;
    font-size: 0.95rem;
    line-height: 1.4;
  }
  .menu-table td::before {
    position: static;
    display: block;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--bs-primary);
    margin-bottom: 0.2rem;
  }
  .menu-table td:nth-child(1)::before { content: "Doručak"; }
  .menu-table td:nth-child(2)::before { content: "Užina"; }
  .menu-table td:nth-child(2) {
    padding-top: 0.7rem;
    margin-top: 0.45rem;
  }
}
