html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* Lazy Loading Styles - not for blog images */
img.lazy-loading:not(.no-lazy):not(.blog-card-image) {
    background: #f0f0f0;
    background-image: linear-gradient(90deg, #f0f0f0 0%, #f8f8f8 50%, #f0f0f0 100%);
    background-size: 200% 100%;
    animation: lazy-loading-skeleton 1.5s ease-in-out infinite;
    filter: blur(5px);
    transition: filter 0.3s ease-out;
}

img.lazy-loaded:not(.no-lazy):not(.blog-card-image) {
    filter: blur(0);
    animation: none;
    background: none;
}

/* Force blog images to display normally */
.blog-card-image,
.no-lazy {
    filter: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    animation: none !important;
}

@keyframes lazy-loading-skeleton {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

/* Aspect ratio containers para evitar layout shift */
.image-container {
    position: relative;
    overflow: hidden;
    background-color: #f0f0f0;
}

.image-container img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Aspect ratios comuns */
.aspect-ratio-16-9 {
    padding-bottom: 56.25%;
}

.aspect-ratio-4-3 {
    padding-bottom: 75%;
}

.aspect-ratio-1-1 {
    padding-bottom: 100%;
}

.aspect-ratio-3-2 {
    padding-bottom: 66.67%;
}