/* Custom utility classes extracted from inline styles */
.max-w-800 {
    max-width: 800px;
}

.page-hero-img {
    max-height: 250px;
    object-fit: cover;
}

.card-img-custom {
    height: 200px;
    object-fit: cover;
}

.card-placeholder {
    height: 200px;
}

.card-title-container {
    container-type: inline-size;
}

.dynamic-title {
    white-space: nowrap;
    display: block;
    font-size: min(1.25rem, calc(100cqi / var(--title-len) * 1.0));
}

/* Ensure long titles wrap within article content (iOS Safari compatible) */
.fs-1.text-break {
    word-break: break-all;
    overflow-wrap: anywhere;
}

.navbar-brand {
    white-space: normal !important;
    word-break: break-all !important;
    overflow-wrap: break-word !important;
    max-width: calc(100% - 70px) !important;
    display: inline-block !important;
}

/* Navbar toggler custom fixes */
.navbar-toggler {
    position: relative;
    z-index: 1055;
    cursor: pointer;
    touch-action: manipulation;
    pointer-events: auto !important;
}

/* Card hover effect */
.transition-hover {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.transition-hover:hover {
    transform: translateY(-5px);
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important;
}
