.carousel-inner.rounded {
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.carousel-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/5;
  object-fit: cover;
}
@media (min-width: 1200px) { .carousel-item img { aspect-ratio: 21/6; } }
@media (max-width: 575.98px) { .carousel-item img { aspect-ratio: 4/3; } }

@media print {
  .frontend-header, .admin-sidebar, .admin-topbar, .site-footer,
  .sidebar-toggle, .btn-icon-svg, .back-to-top,
  .toast-container, .offcanvas, .offcanvas-backdrop {
    display: none !important;
  }
  .page-body { padding: 0 !important; }
  .card { border: 1px solid #ddd !important; break-inside: avoid; }
}

.back-to-top {
  position: fixed;
  bottom: 1.5rem; right: 1.5rem;
  z-index: var(--z-toast);
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--muted-foreground);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base), color var(--transition-base), border-color var(--transition-base);
  box-shadow: var(--shadow-md);
}
.back-to-top:hover { color: var(--color-primary); border-color: var(--color-primary); }
.back-to-top.visible { opacity: 1; pointer-events: auto; }
.back-to-top svg { width: 18px; height: 18px; }

/* ── Tailwind-compatible grid utilities (minimal subset) ── */
.grid { display: grid; }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.items-start { align-items: flex-start; }
.gap-10 { gap: 2.5rem; }
.max-w-6xl { max-width: 72rem; }
.mx-auto { margin-left: auto; margin-right: auto; }
@media (min-width: 1024px) {
  .lg\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .lg\:gap-6 { gap: 1.5rem; }
  .lg\:col-span-7 { grid-column: span 7 / span 7; }
  .lg\:col-span-5 { grid-column: span 5 / span 5; }
  .lg\:col-span-6 { grid-column: span 6 / span 6; }
}
@media (min-width: 640px) {
  .sm\:hidden { display: none !important; }
}
