:root {
  --brand-gradient: linear-gradient(135deg, var(--bs-primary) 0%, #6f42c1 100%);
}

html { font-size: 15px; }
@media (min-width: 768px) { html { font-size: 16px; } }

/* Rounded UI + subtle shadows */
.card { border: none; border-radius: 1rem; box-shadow: 0 0.25rem 1rem rgba(0,0,0,.06); }
.card .card-header { border-bottom: 0; border-top-left-radius: 1rem; border-top-right-radius: 1rem; }
.modal-content { border-radius: 1rem; box-shadow: 0 0.25rem 1rem rgba(0,0,0,.15); }
.dropdown-menu { border-radius: .75rem; }
.btn { border-radius: .75rem; }

/* Focus styles aligned with theme */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-select:focus, .form-check-input:focus {
  box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .25);
}

/* Hero section */
.hero {
  background: var(--brand-gradient);
  color: #fff;
  padding: 3rem;
  border-radius: 1rem;
}
.hero .form-control, .hero .form-select { box-shadow: none; color: #212529; }
.hero .form-floating>label { color: #212529; }

/* Utilities */
.bg-soft { background-color: rgba(var(--bs-primary-rgb), .08) !important; }
.text-muted-sm { opacity: .85; }

/* Tables */
.table { --bs-table-bg: transparent; }
.table thead th { border-bottom-width: 2px; }
.table-hover tbody tr:hover { background-color: rgba(var(--bs-primary-rgb), .04); }

/* Forms */
.form-floating>.form-control::placeholder { color: transparent; }
.form-floating>.form-control:not(:placeholder-shown)~label { opacity: .75; }

/* Footer */
footer a:hover { text-decoration: underline; }

/* Guide thumbnails: adaptive cropping for portrait/landscape */
.guide-thumb { width: 100%; object-fit: cover; object-position: 50% 20%; aspect-ratio: 16/9; }
.guide-thumb.is-portrait { aspect-ratio: 4/5; object-position: 50% 20%; }
.guide-thumb.is-landscape { aspect-ratio: 16/9; object-position: 50% 50%; }

/* Small square thumbnail for horizontal list cards */
.guide-thumb-sm {
  width: 96px;       /* stała szerokość miniatury */
  height: auto;      /* wysokość wynika z proporcji obrazu */
  object-fit: contain; /* nie kadruj – dopasuj w poziomie */
  object-position: 50% 50%;
  border-radius: .75rem;
  flex: 0 0 96px;   /* rezerwuj stałą szerokość w układzie flex */
  display: block;
}

/* Zapobieganie wychodzeniu tekstu poza kafelek */
.card { overflow: hidden; }
.card .card-title, .card .card-text { overflow-wrap: anywhere; word-break: break-word; }

/* Wyróżnienie (błękitna poświata) */
.featured-glow {
  box-shadow:
    0 0 .75rem rgba(13,110,253,.45),
    0 0 1.25rem rgba(13,110,253,.35),
    0 0 .25rem rgba(13,110,253,.65);
  border: 1px solid rgba(13,110,253,.5);
}

/* Elevation contrast tuning (stronger separation for cards) */
/* Boost Bootstrap's shadow-sm everywhere to make cards stand out */
.shadow-sm {
  box-shadow:
    0 .35rem 1rem rgba(0,0,0,.16),          /* primary soft drop */
    0 0 0 1px rgba(0,0,0,.08) !important;   /* subtle outline ring */
}

/* Ensure base .card also has clearer separation when shadow utilities aren't used */
.card {
  box-shadow:
    0 .3rem .9rem rgba(0,0,0,.12),          /* slightly stronger than before */
    0 0 0 1px rgba(0,0,0,.06);               /* outline ring (survives border-0) */
}

/* Slightly stronger modal elevation to match the new scale */
.modal-content {
  box-shadow:
    0 .75rem 1.5rem rgba(0,0,0,.20),
    0 0 0 1px rgba(0,0,0,.08);
}

/* (reverted) removed mobile-specific mode switch sizing */
