/* GCA Après Sinistre : pied de page, barre mobile, motion, accessibilité, impression. Chargé en dernier.
   Construit sur les tokens de app.css (couleurs, --space-*, rayons, échelle typographique). */

/* ---------------------------------------------------------------------------
   7. FOOTER
   --------------------------------------------------------------------------- */
.footer {
    background: var(--navy-deep);
    color: rgb(255 255 255 / 0.72);
    font-size: var(--step--1);
    line-height: 1.5;
}
.footer a:not(.btn) { color: rgb(255 255 255 / 0.86); text-decoration: none; transition: color var(--dur-fast), text-decoration-color var(--dur-fast); }
.footer a:not(.btn):hover { color: var(--white); text-decoration: underline; text-decoration-color: rgb(255 255 255 / 0.4); text-underline-offset: 0.25em; }

.footer__main {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-10) var(--space-6);
    padding-block: var(--space-16) var(--space-12);
}
.footer__brand, .footer__col:last-child { grid-column: 1 / -1; }
@media (min-width: 720px) {
    .footer__main { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-12) var(--space-8); }
    .footer__col:last-child { grid-column: auto; }
    /* Marque sur toute la largeur : logo à gauche, présentation alignée sur la 2e colonne */
    .footer__brand { display: grid; grid-template-columns: subgrid; align-items: start; }
    .footer__brand .footer__logo { margin: 0; }
    .footer__brand .footer__pitch { grid-column: 2 / -1; max-width: 52ch; }
}
@media (min-width: 1040px) {
    .footer__main {
        grid-template-columns: minmax(0, 4fr) minmax(0, 2.5fr) minmax(0, 2.5fr) minmax(0, 3fr);
        gap: var(--space-12);
        padding-block: var(--space-20) var(--space-16);
    }
    .footer__brand { grid-column: auto; display: block; }
    .footer__brand .footer__logo { margin-bottom: var(--space-6); }
    .footer__brand .footer__pitch { max-width: 40ch; }
}

.footer__logo { display: inline-block; margin-bottom: var(--space-6); border-radius: var(--r-xs); }
.footer__logo img { width: 168px; height: auto; }
.footer__pitch { max-width: 40ch; margin: 0; color: rgb(255 255 255 / 0.72); }

/* Titres de colonnes : discrets, jamais confondus avec des liens */
.footer__title {
    margin: 0 0 var(--space-4);
    font-family: var(--font-body);
    font-size: var(--step--2);
    font-weight: 600;
    line-height: var(--eyebrow-h);
    letter-spacing: var(--tracking-eyebrow);
    text-transform: uppercase;
    color: rgb(255 255 255 / 0.56);
}

.footer__links { list-style: none; display: grid; gap: var(--space-1); margin-top: calc(-1 * var(--space-1)); }
.footer__links a { display: inline-block; padding-block: var(--space-1); }

/* Coordonnées : une icône, une ligne, une seule couleur */
.footer__contact { list-style: none; display: grid; gap: var(--space-3); }
.footer__contact li { display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: var(--space-3); align-items: start; color: rgb(255 255 255 / 0.86); }
.footer__contact .icon { width: 1rem; height: 1rem; margin-top: 0.125rem; color: var(--blue-light); }
.footer__contact a { overflow-wrap: anywhere; }
.footer__form { margin-top: var(--space-6); font-size: var(--step--1); }
.footer a.footer__form:not(.btn) { color: var(--white); }
.footer a.footer__form:not(.btn):hover { text-decoration-color: currentColor; }

.footer__legal {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: var(--space-2) var(--space-6);
    padding-block: var(--space-6);
    border-top: 1px solid var(--line-dark);
    font-size: var(--step--2);
    color: rgb(255 255 255 / 0.6);
}
.footer__legal p { margin: 0; }
.footer__legal ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-6); }
.footer__legal a:not(.btn) { color: rgb(255 255 255 / 0.78); }

/* Mobile : chaque lien du pied de page offre une cible de 44 px de haut */
@media (max-width: 767.98px) {
    .footer__links { gap: 0; margin-top: calc(-1 * var(--space-3)); }
    .footer__links a { display: flex; align-items: center; min-height: 44px; padding-block: var(--space-1); }
    .footer__contact { gap: var(--space-1); }
    .footer__contact li:has(> a) { align-items: center; }
    .footer__contact li:has(> a) .icon { margin-top: 0; }
    .footer__contact a { display: inline-flex; align-items: center; min-height: 44px; }
    .footer__form { margin-top: var(--space-3); }
    .footer__legal { padding-block: var(--space-4) var(--space-6); }
    .footer__legal ul { gap: 0 var(--space-4); } /* les trois liens légaux tiennent sur une ligne dès 320 px */
    .footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ---------------------------------------------------------------------------
   8. BARRE D'URGENCE MOBILE
   --------------------------------------------------------------------------- */
.mobile-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-mobile-bar);
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2);
    /* 7 + 48 + 8 + 1 px de filet = --mobile-bar-h (64 px), réservé en bas du <body> : rien n'est masqué */
    padding: calc(var(--space-2) - 1px) max(var(--gutter), env(safe-area-inset-right)) calc(var(--space-2) + env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));
    background: var(--white);
    border-top: 1px solid var(--line);
}
.mobile-bar .btn { min-width: 0; min-height: 48px; padding-inline: var(--space-3); font-size: 0.9375rem; }
.mobile-bar .btn--ghost { --btn-bd: var(--line-strong); }
@media (min-width: 960px) { .mobile-bar { display: none; } }

/* ---------------------------------------------------------------------------
   9. MOTION, A11Y, PRINT
   --------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
    .hero__content > * { animation: rise 0.6s var(--ease) both; }
    .hero__content > :nth-child(2) { animation-delay: 0.06s; }
    .hero__content > :nth-child(3) { animation-delay: 0.12s; }
    .hero__content > :nth-child(4) { animation-delay: 0.18s; }
    .triage { animation: rise 0.7s 0.2s var(--ease) both; }
}
@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (forced-colors: active) {
    .btn, .triage__choice label, .choice label, .nav__toggle { border: 1px solid ButtonText; }
    .nav__link::after, .nav__link::before { background: Highlight; }
}

@media print {
    .topbar, .header, .mobile-bar, .footer, .triage, .cta-final, .skip-link { display: none !important; }
    body { padding: 0; color: #000; }
    .hero, .page-hero, .page-head, .section--navy { background: none !important; color: #000 !important; }
    .section { padding-block: var(--space-8); }
}
