
/* ---------- Accès rapides (accueil) — repliable via .h-quick-toggle ---------- */
.h-quick { padding: 28px 0 40px; }
.h-quick__panel { }
.h-quick__search { display: flex; gap: 10px; max-width: 760px; margin: 0 auto 28px; }
.h-quick__search input { flex: 1; min-width: 0; height: 52px; padding: 0 18px; border: 1.5px solid var(--line, #d9e2dd); border-radius: 999px; font-size: 16px; font-family: var(--font-texte); color: var(--ink); background: #fff; }
.h-quick__search input:focus { outline: 3px solid rgba(15,118,110,.18); border-color: var(--green-800, #0f766e); }
.h-quick__search button { height: 52px; padding: 0 26px; border: 0; border-radius: 999px; background: var(--green-800, #0f766e); color: #fff; font-weight: 600; font-size: 15px; cursor: pointer; font-family: var(--font-texte); }
.h-quick__search button:hover { filter: brightness(.92); }
.h-quick__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.h-quick__grid a { display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 18px 16px; border: 1px solid var(--line, #d9e2dd); border-radius: 14px; background: #f6f9f7; color: var(--ink); text-decoration: none; font-weight: 600; font-size: 15px; line-height: 1.3; transition: border-color .2s, box-shadow .2s, transform .2s, background .2s; }
.h-quick__grid a:hover, .h-quick__grid a:focus-visible { border-color: var(--green-800, #0f766e); background: #eef4f1; box-shadow: 0 10px 24px -14px rgba(0,0,0,.25); transform: translateY(-2px); }
.h-quick__grid i { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--green-800, #0f766e); color: #fff; font-size: 17px; }
.h-quick__grid small { font-weight: 400; color: var(--ink-2, #575756); font-size: 13.5px; }
/* Toggle : bloc caché par défaut, visible uniquement au clic (puis se replie) */
.h-quick-toggle { display: none; }
.has-quick-toggle .h-quick-toggle { display: inline-flex; align-items: center; gap: 10px; position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 50%); z-index: 10; margin: 0; padding: 10px 20px; border: 1.5px solid var(--line, #d9e2dd); border-radius: 999px; background: #fff; color: var(--ink); font: 600 14.5px var(--font-texte); cursor: pointer; box-shadow: 0 6px 18px -8px rgba(0,0,0,.25); }
.has-quick-toggle .h-quick-toggle:hover { border-color: var(--green-800, #0f766e); }
.has-quick-toggle .h-quick-toggle__icon { display: inline-flex; transition: transform .25s; }
.has-quick-toggle .h-quick-toggle[aria-expanded="true"] .h-quick-toggle__icon { transform: rotate(180deg); }
.has-quick-toggle .h-quick:not(.is-open) .h-quick__panel { max-height: 0 !important; overflow: hidden; opacity: 0; visibility: hidden; padding: 0; margin: 0; transition: max-height .35s ease, opacity .2s ease; }
.has-quick-toggle .h-quick.is-open .h-quick__panel { max-height: 1600px !important; opacity: 1; visibility: visible; transition: max-height .35s ease, opacity .25s ease; }
.has-quick-toggle .h-quick { padding: 0 !important; }
.has-quick-toggle .h-quick.is-open { padding: 28px 0 40px !important; }
.home .h-hero-wrap { position: relative; }
.home .h-hero-wrap .h-quick-toggle { position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 50%); margin: 0; z-index: 6; }
@media (max-width: 1080px) { .h-quick__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
  .has-quick-toggle .h-quick.is-open { padding-top: 20px; }
  .h-quick__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .h-quick__search button { padding: 0 18px; }
}
/* ==========================================================================
   Pied de page (pages intérieures) : bord supérieur horizontal, colonne
   d'identité et colonnes de liens. Couleur inchangée. L'accueil garde
   son pied de page.
   ========================================================================== */
body:not(.home) .footer {
    position: relative;
    z-index: 2;
    border-top: 3px solid rgba(255,255,255,.12);
}
body:not(.home) .footer .footer__grid {
    grid-template-columns: minmax(250px, 1.3fr) repeat(4, minmax(0, 1fr));
    gap: 40px 36px;
    padding-top: 72px;
    padding-bottom: 56px;
}
body:not(.home) .footer__brand { display: flex; flex-direction: column; align-items: flex-start; }
body:not(.home) .footer__logo { height: 56px; margin-bottom: 26px; }
body:not(.home) .footer .footer__addr { color: #fff; font-size: 15.5px; line-height: 1.6; margin: 0 0 26px; max-width: 26ch; font-weight: 400; }
body:not(.home) .footer .footer__phone {
    display: inline-flex; align-items: center; gap: 12px;
    padding: 0; border: 0; border-radius: 0;
    background: transparent; color: #fff;
    font-family: inherit; font-weight: 400; font-size: inherit; letter-spacing: 0;
    text-decoration: none; white-space: nowrap;
}
body:not(.home) .footer .footer__phone:hover, body:not(.home) .footer .footer__phone:focus-visible { background: transparent; color: #fff; text-decoration: underline; }
body:not(.home) .footer__phone svg { width: 18px; height: 18px; fill: #fff; stroke: none; }
body:not(.home) .footer .footer__contact { margin: 22px 0 18px; gap: 6px; font-size: 14.5px; }
body:not(.home) .footer .footer__contact li { display: block; }
body:not(.home) .footer h3 {
    font-family: var(--font-titre); text-transform: none; letter-spacing: 0;
    font-size: 19px; font-weight: 700; color: #fff; margin: 6px 0 26px;
}
body:not(.home) .footer__grid > div:not(.footer__brand) ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
body:not(.home) .footer .footer__grid > div:not(.footer__brand) a { color: #fff; font-size: 15.5px; padding: 0; line-height: 1.35; }
body:not(.home) .footer .footer__grid > div:not(.footer__brand) a:hover { color: inherit; }
@media (max-width: 1080px) {
    body:not(.home) .footer .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body:not(.home) .footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    body:not(.home) .footer .footer__grid { gap: 36px 20px; padding-top: 48px; padding-bottom: 44px; }
    body:not(.home) .footer__grid > div:not(.footer__brand) ul { gap: 16px; }
    body:not(.home) .footer h3 { font-size: 17px; margin-bottom: 18px; }
}

/* Titres des sections en gras (accueil) */
.home .h-heading, .home .fx-title, .home .h-hero__title, .home .h-hero__subtitle, .home .m-slide__title, .home .m-final h2, .home .newsletter h2 { font-weight: 700; }

/* Menus déroulants : survol */
@media (min-width: 1181px) {
    .nav__menu a:hover, .nav__menu a:focus-visible { background: #fff; color: #000; }
}
