/** Adaptations transverses par largeur d'écran. */
@media (min-width: 1280px) {
    .container { padding: 0 var(--s8); }
    .hero { padding: var(--s16) 0 var(--s12); }
    .hero h1 { font-size: 3.4rem; }
    .hero-lead { font-size: 1.1rem; }
    .card-grid { grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
    .section { padding-top: var(--s12); padding-bottom: var(--s12); }
    .parcours-image { max-height: 320px; }
}
@media (max-width: 1080px) {
    .admin-header .site-header-inner { height: auto; min-height: 0; padding-top: var(--s2); }
    .admin-site-nav { width: 100%; }
    .admin-site-nav .nav-pills { flex-wrap: wrap; }
}
@media (max-width: 1024px) {
    .admin-main.container { padding: var(--s8) var(--s5) var(--s10); }
    .float-card-1 { left: -4px; }
    .float-card-2 { right: -4px; }
    .cta-band { grid-template-columns: 1fr; }
    .cta-band-photo { max-height: 210px; }
    .stat-grid { grid-template-columns: repeat(3, 1fr); }
    .structure-list { grid-template-columns: repeat(2, 1fr); }
    .admin-columns-3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
    html { font-size: 16px; }
    body { background-attachment: scroll; }
    .container { padding: 0 var(--s4); }
    .breadcrumb { margin-bottom: var(--s4); }
    .breadcrumb { min-height: 0; }
    .structure-detail-main, .parcours-header { padding: clamp(18px, 4vw, 30px); }
    .parcours-header { --parcours-header-pad: clamp(18px, 4vw, 30px); }
    .nav-toggle { display: block; }
    .admin-header .nav-toggle { display: block; color: #fff; }
    .admin-header .nav-toggle:hover { background: rgba(255,255,255,.12); }
    .site-nav {
        display: none; position: absolute; top: calc(100% + 8px); left: 0; right: 0;
        flex-direction: column; align-items: stretch; gap: var(--s1);
        background: rgba(14, 38, 43, .96);
        -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
        border: 1px solid rgba(255,255,255,.10);
        border-radius: var(--r);
        padding: var(--s2);
        box-shadow: var(--sh-lg);
        z-index: 200;
    }
    .site-nav.open { display: flex; }
    .nav-pills { flex-direction: column; background: none; border: none; padding: 0; border-radius: 0; }
    .nav-pill { display: block; width: 100%; padding: 10px 14px; border-radius: var(--r-sm); font-size: .94rem; color: rgba(255,255,255,.82); }
    .nav-pill:hover { color: #fff; background: rgba(255,255,255,.10); }
    .nav-pill.active { background: rgba(76,170,182,.22); color: #fff; }
    .nav-pill-pro { background: rgba(76,170,182,.18); color: #fff; }
    .nav-pill-pro:hover { background: rgba(76,170,182,.30); color: #fff; }
    .nav-admin-btn { color: rgba(255,255,255,.55); font-size: .88rem; }
    .nav-quit-btn { padding: 8px 14px; width: 100%; text-align: left; font-size: .88rem; color: rgba(255,255,255,.55); }
    .nav-quit-btn:hover { color: #fff; }
    .form-columns, .structure-detail-layout { grid-template-columns: 1fr; }
    .admin-columns, .admin-columns-3, .admin-taxonomy-grid, .codes-layout { grid-template-columns: 1fr; }
    .availability-layout { grid-template-columns: 1fr; }
    .availability-access-heading { flex-direction: column; }
    .taxonomy-panel-header-search { align-items: stretch; }
    .taxonomy-search { max-width: none; flex-basis: 100%; }
    .codes-form-panel { grid-column: 1; }
    .form-row { grid-template-columns: 1fr 1fr; }
    .form-row-4 { grid-template-columns: 1fr 1fr; }
    .stat-grid { grid-template-columns: repeat(3, 1fr); }
    .structure-list { grid-template-columns: repeat(2, 1fr); }
    .hero { padding: var(--s10) 0 var(--s8); }
    .hero h1 { font-size: 2.2rem; }
    .float-card { font-size: .82rem; padding: 10px 14px; }
    .float-card strong { font-size: 1.3rem; }
    .float-card-icon { width: 36px; height: 36px; }
    .cta-band-body { padding: var(--s5); }
    .search-toolbar { flex-wrap: wrap; border-radius: var(--r); }
    .search-toolbar .search-field { flex: 1 1 100%; border-bottom: 1px solid rgba(49,114,122,.12); }
    .search-toolbar-divider { display: none; }
    .search-filter-wrap { flex: 1 1 calc(50% - 8px); margin-top: 2px; }
    .search-filter-btn { width: 100%; justify-content: space-between; }
    .search-filter-dropdown { left: 0; right: 0; min-width: 0; }
    .search-toolbar .button { flex: 1 1 100%; justify-content: center; margin-top: 2px; align-self: auto; padding: 13px 28px; }
    .admin-main.container { padding: var(--s6) var(--s4) var(--s8); }
    .admin-page-header { flex-direction: column; align-items: flex-start; gap: var(--s3); }
    .admin-page-header > div { flex-wrap: wrap; }
    .admin-site-nav { flex-wrap: wrap; gap: var(--s1); }
    .admin-header .admin-site-nav .nav-pills { flex-direction: column; flex-wrap: nowrap; width: 100%; }
    .admin-header .admin-site-nav .nav-pill { min-height: 40px; padding: 10px 14px; }
    .admin-header-top { width: 100%; min-height: 48px; }
    .admin-brand-badge { display: none; }
    .admin-header .brand-mark { width: 32px; height: 32px; }
    .admin-header .admin-brand-name { font-size: .92rem; }
    .admin-header .admin-site-nav {
        position: absolute;
        display: none;
        width: auto;
        padding: var(--s2);
        border: 1px solid rgba(255,255,255,.10);
        background: rgba(14,38,43,.98);
        box-shadow: var(--sh-lg);
        max-height: calc(100dvh - 88px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .admin-header .admin-site-nav.open { display: flex; }
    .admin-nav-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
        width: 100%;
        margin-top: var(--s1);
        padding: var(--s2) 0 0;
        border-top: 1px solid rgba(255,255,255,.10);
        border-left: 0;
    }
    .admin-header .admin-nav-actions .nav-admin-btn { width: 100%; min-height: 40px; }
    .admin-header .admin-nav-actions .nav-logout-btn { width: 40px; }
    .admin-page-footer-inner {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--s3);
    }
    .step-edit-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .step-edit-actions .button {
        justify-content: center;
        width: 100%;
    }
    .step-edit-actions .button-danger-soft {
        margin-left: 0;
    }
    .button-editor-grid { grid-template-columns: 1fr; }
    .button-color-panel {
        align-items: flex-start;
        flex-direction: column;
    }
    .button-color-panel .color-swatches {
        justify-content: flex-start;
    }
    #section-links .resource-add-form {
        grid-template-columns: 1fr;
    }
    #section-links .resource-add-form .button {
        justify-self: flex-start;
    }
    .admin-table, .admin-table tbody { display: block; width: 100%; }
    .admin-table thead { display: none; }
    .admin-table tr { display: block; background: var(--glass); border-radius: var(--r-sm); margin-bottom: var(--s2); border: 1px solid var(--glass-border); box-shadow: var(--sh-xs); }
    .admin-table td { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); border-bottom: 1px solid rgba(49,114,122,.07); padding: var(--s2) var(--s3); font-size: .86rem; }
    .admin-table td:last-child { border-bottom: none; }
    .admin-table td::before { content: attr(data-label); font-weight: 600; color: var(--primary-dark); font-size: .76rem; white-space: nowrap; flex-shrink: 0; }
    .actions-col { text-align: left; justify-content: flex-end; }
    .admin-table td.actions-col::before { display: none; }
    .admin-table td { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
    .admin-table td > * { min-width: 0; max-width: 100%; }
    .admin-table td:not([data-label])::before { display: none; }
    .admin-table td[colspan] { justify-content: center; }
    .admin-table td.actions-col { justify-content: flex-end; flex-wrap: wrap; }
    .admin-table .select-inline { max-width: 100%; }
    .document-hub-table td { flex-wrap: wrap; }
    .document-hub-table td:first-child { min-width: 0; }
    .document-hub-table .document-rename-form { width: 100%; }
    .document-hub-table .document-rename-form input { min-width: 0; }
    .document-hub-panel { padding: 0; }
    .admin-list li { flex-wrap: wrap; }
    .admin-list a { min-width: 0; overflow-wrap: anywhere; }
    .availability-switch-row { align-items: flex-start; flex-direction: column; }
    .initial-items-grid, #section-links { grid-template-columns: minmax(0, 1fr); }
    .kw-tag-input-row { flex-wrap: wrap; }
    .kw-tag-text { width: 100%; min-width: 0; }
    .kw-tag-chip, .kw-chip { max-width: 100%; }
    .kw-tag-label { min-width: 0; overflow-wrap: anywhere; }
    .step-document-form { grid-template-columns: minmax(0, 1fr); }
    .step-document-list li { flex-wrap: wrap; }
    .toast-container { bottom: var(--s4); right: var(--s4); left: var(--s4); }
    .toast { max-width: 100%; min-width: 0; }
    .modal-backdrop { align-items: flex-end; padding: 0; }
    .modal-box {
        border-radius: var(--r-lg) var(--r-lg) 0 0;
        max-width: 100%;
        max-height: calc(100dvh - var(--s4));
        overflow-y: auto;
    }
    .modal-box-sm { border-radius: var(--r-lg) var(--r-lg) 0 0; }
    .keywords-field { flex-wrap: wrap; }
    .keywords-field input { min-width: 0; }
    .keywords-field .button { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
    h1 { font-size: 1.4rem; }
    .hero h1 { font-size: 1.8rem; }
    .hero { padding: var(--s8) 0 var(--s6); }
    .hero-photo-wrap { max-width: 100%; }
    .float-card-1, .float-card-2 { display: none; }
    .structure-list { grid-template-columns: 1fr; }
    .feature-grid { grid-template-columns: 1fr; }
    .card-grid { grid-template-columns: 1fr; }
    .form-row, .form-row-2, .form-row-4 { grid-template-columns: 1fr; }
    .stat-grid { grid-template-columns: repeat(2, 1fr); }
    .structure-detail-hero { grid-template-columns: 1fr; align-items: start; gap: var(--s3); }
    .structure-detail-logo { width: 100%; height: auto; aspect-ratio: 500 / 240; }
    .structure-detail-identity h1 { font-size: 1.25rem; }
    .contact-pill { font-size: .8rem; padding: 5px 10px; }
    .structure-contact-pills { gap: var(--s1); }
    .action-button { font-size: .85rem; padding: 9px 14px; }
    .structure-action-buttons { gap: var(--s2); }
    .breadcrumb { flex-direction: column; align-items: flex-start; gap: var(--s1); }
    .breadcrumb-current { white-space: normal; overflow: visible; text-overflow: clip; }
    .breadcrumb-actions { margin-left: 0; }
    .admin-main.container { padding: var(--s5) var(--s3) var(--s6); }
    .admin-panel { padding: var(--s4); }
    .admin-form fieldset { padding: var(--s3) var(--s4); }
    .fieldset-head { margin: calc(-1 * var(--s3)) calc(-1 * var(--s4)) var(--s3); padding: var(--s3) var(--s4); }
    .admin-brand-copy { gap: 5px; }
    .admin-nav-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-header .admin-nav-actions .nav-logout-btn { width: 100%; }
    .admin-header .admin-site-nav .nav-pill, .admin-header .admin-nav-actions .nav-admin-btn { min-height: 44px; }
    .form-inline-field { min-width: 0; flex-basis: 100%; }
    .admin-table td[data-label="Code"] { flex-wrap: wrap; }
    .add-doc-form { flex-direction: column; align-items: stretch; }
    .add-doc-form input, .add-doc-form .button { width: 100%; }
    .add-doc-form input[type="text"], .add-doc-form input[type="file"] { flex: 0 0 auto; width: 100%; }
    .pagination-btn { min-width: 30px; height: 30px; font-size: .8rem; }
    .results-toolbar { flex-direction: column; align-items: flex-start; gap: var(--s2); }
    .cta-band-body { padding: var(--s4) var(--s4); }
    .cta-band-actions { flex-direction: column; }
    .cta-band-actions .button { width: 100%; justify-content: center; }
    .modal-box { padding: var(--s5) var(--s4) var(--s4); }
    .structure-description { margin-top: var(--s5); }
}
