
/* related to the full screen modal (bootstrap 4.3 does not have modal-fullscreen class natively) */
  /* Custom class for full-screen modal */
.modal-fullscreen .modal-dialog {
    max-width: 100%;
    margin: 0;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100vh;
    height: 100dvh; /* dynamic viewport height - updates as URL bar shows/hides - fix glitch on android . Ignored if not supp. */
    display: flex;
}

.modal-fullscreen .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
}

.modal-fullscreen .modal-body {
    overflow-y: auto;
}

/* Force the modal container to ignore dynamic padding injections */
.modal-fullscreen.modal {
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Ensure the backdrop still covers 100% of the screen */
.modal-fullscreen + .modal-backdrop {
    width: 100vw;
    height: 100vh;
}

/* =========================================================== */
.site-card {
    width: 140px;
    height: 100px;
    margin: 8px;
    border-radius: 6px;
    background-color: white; /* fallback behind transparent PNG areas */
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transition: transform 0.15s ease-out, box-shadow 0.15s ease-out;
    border: none;
}

.site-card:hover {
    transform: translateY(-2px);
    /*box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);*/
    cursor: pointer;
}

.site-card .card-body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    transition: background 0.15s ease-out;
}

.site-card a {
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    text-shadow: 0 1px 2px rgba(88, 44, 24, 0.85), 0 0 6px rgba(74, 36, 16, 0.6);
}

.card-bounce {
    animation: cardBreathe 3s ease-in-out infinite;
}

@keyframes cardBreathe {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-3px) scale(1.015);
    }
}

.card-sway {
    animation: cardSway 4s ease-in-out infinite;
    transform-origin: center bottom;
}

@keyframes cardSway {
    0%, 100% {
        transform: rotate(-1.5deg);
    }
    50% {
        transform: rotate(1.5deg);
    }
}

.brick-1 { background-image: url('/img/sitemap/brick1.png'); }
.brick-2 { background-image: url('/img/sitemap/brick2.png'); }
.brick-3 { background-image: url('/img/sitemap/brick3.png'); }

/* Flex adjustments to keep 3 cols */
@media (max-width: 576px) {
    .site-card {
        width: calc(33.333% - 8px); /* 8px = 2 * 4px margin */
        margin: 4px;
    }
}