/* Responsive transversal de la plateforme. */
:root {
    --platform-navy: #0c2d57;
    --platform-orange: #e6735f;
    --platform-gutter: clamp(14px, 3vw, 32px);
}

html { -webkit-text-size-adjust: 100%; }
body { min-width: 0; }
img, video, iframe, canvas, svg { max-width: 100%; }
.container, .container-fluid, .row, [class*="col-"] { min-width: 0; }
.container, .container-fluid { padding-left: var(--platform-gutter); padding-right: var(--platform-gutter); }
.card, .modal-content, .dropdown-menu { overflow-wrap: anywhere; }
.table-responsive { border-radius: 10px; -webkit-overflow-scrolling: touch; }
table { max-width: 100%; }
input, select, textarea, .form-control, .form-select { max-width: 100%; }
.nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.nav-tabs .nav-link { white-space: nowrap; }

/* Carrousels du pied de page. */
.footer-carousel-box {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid rgba(255,255,255,.12);
    background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.045));
    backdrop-filter: blur(5px);
}
.footer-carousel-box .carousel { flex: 1; padding-bottom: 45px; }
.footer-carousel-box .carousel-inner, .footer-carousel-box .carousel-item { height: 100%; }
.footer-news-card { display: flex; flex-direction: column; height: 100%; }
.footer-news-image-wrap {
    position: relative;
    height: 180px;
    margin-bottom: 16px;
    overflow: hidden;
    border-radius: 14px;
    background: linear-gradient(135deg, #173f70, #275b91);
}
.footer-news-image-wrap .footer-news-img { height: 100%; margin: 0; border-radius: 0; transition: transform .45s ease; }
.footer-news-card:hover .footer-news-img { transform: scale(1.035); }
.footer-news-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: rgba(255,255,255,.72); font-size: 2rem; }
.footer-news-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; color: rgba(255,255,255,.72); font-size: .78rem; }
.footer-news-meta .footer-news-category { padding: 3px 8px; border-radius: 999px; background: rgba(255,193,7,.16); color: #ffd767; font-weight: 700; }
.footer-news-content { display: flex; flex: 1; flex-direction: column; }
.footer-news-desc { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.footer-read-more { margin-top: auto; padding-top: 4px; }
.footer-carousel-box .carousel-indicators { right: auto; bottom: 2px; left: 0; justify-content: flex-start; margin: 0; }
.footer-carousel-box .carousel-indicators button { width: 8px; height: 8px; margin: 0 4px; border: 0; border-radius: 50%; background-color: rgba(255,255,255,.45); }
.footer-carousel-box .carousel-indicators .active { width: 23px; border-radius: 8px; background-color: #ffc107; }

@media (max-width: 991.98px) {
    h1 { font-size: clamp(1.8rem, 7vw, 2.5rem); }
    h2 { font-size: clamp(1.5rem, 6vw, 2.1rem); }
    h3 { font-size: clamp(1.25rem, 5vw, 1.7rem); }
    p { margin-bottom: 1rem; }
    .section-padding, [class*="pt---"], [class*="pb---"] { padding-top: 48px !important; padding-bottom: 48px !important; }
    .row { --bs-gutter-x: 1.25rem; }
    .card-body { padding: 1.15rem; }
    .modal-dialog { margin: .75rem; }
    .modal-body { max-height: calc(100vh - 150px); overflow-y: auto; }
    .footer-carousel-box { max-width: 680px; min-height: 0; margin-inline: auto; }
    .footer-news-card { min-height: 0 !important; }
    .footer-news-image-wrap { height: clamp(190px, 48vw, 300px); }
    #react-footer .footer-top { padding-top: 48px; padding-bottom: 24px; }
    #react-footer .copyright .container { flex-direction: column; justify-content: center !important; gap: 22px !important; text-align: center; }
}

@media (max-width: 767.98px) {
    body { font-size: 15px; }
    .container, .container-fluid { --platform-gutter: 15px; }
    .btn { min-height: 42px; white-space: normal; }
    .d-flex > .btn, .btn-group { max-width: 100%; }
    form .row > [class*="col-"] { margin-bottom: .35rem; }
    .table:not(.table-responsive .table) { display: block; width: 100%; overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
    .pagination { flex-wrap: wrap; gap: 4px; }
    .breadcrumb { flex-wrap: wrap; }
    .search-result-card { align-items: flex-start; min-height: 0 !important; padding: 16px !important; }
    .search-result-card img { flex: 0 0 48px; width: 48px !important; height: 48px !important; }
    .search-result-body { min-width: 0; }
    .search-result-body h5 { font-size: 1rem; overflow-wrap: anywhere; }
    .footer-carousel-box { padding: 18px !important; }
    .footer-carousel-box .footer-title { margin-bottom: 18px !important; font-size: 1.35rem; }
    .footer-news-image-wrap { height: 210px; }
}

@media (max-width: 479.98px) {
    .container, .container-fluid { --platform-gutter: 12px; }
    .card { border-radius: 12px; }
    .card-header, .card-body, .card-footer { padding-left: 14px !important; padding-right: 14px !important; }
    .alert { padding: .85rem; }
    .d-flex.flex-md-row, .d-flex.flex-sm-row { align-items: stretch !important; }
    .d-flex.flex-md-row > form, .d-flex.flex-sm-row > form,
    .d-flex.flex-md-row > form .btn, .d-flex.flex-sm-row > form .btn { width: 100%; }
    .footer-news-image-wrap { height: 180px; }
    .footer-carousel-box .carousel { padding-bottom: 48px; }
    .footer-carousel-control { bottom: -3px !important; }
    .follow-text { display: block; width: 100%; padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
