/* ==========================================================================
   Pied de page (fond encre, texte blanc à 70 %, mêmes marges que tout le site)
   ========================================================================== */

/* Astra : on ne garde que notre pied de page */
.site-footer { background: var(--ink); border: 0; }
.site-footer > :not(.ccn-ft), .site-footer .site-above-footer-wrap, .site-footer .site-primary-footer-wrap, .site-footer .site-below-footer-wrap { display: none !important; }

.ccn-ft { background: var(--ink); color: rgba(255, 255, 255, .7); font-family: var(--font); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.ccn-ft-in { max-width: calc(var(--content-max) + 2 * var(--gutter)); margin-inline: auto; padding: var(--sec-pad) var(--gutter) var(--s-6); box-sizing: border-box; }
.ccn-ft a { color: rgba(255, 255, 255, .7); text-decoration: none; transition: color .15s var(--ease); }
.ccn-ft a:hover { color: #fff; }

/* Haut : logo + phrase, appel à l'action */
.ccn-ft-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--s-6) var(--col-gap); padding-bottom: var(--s-8); border-bottom: 1px solid rgba(255, 255, 255, .12); }
.ccn-ft .ccn-logo { color: #fff; }
.ccn-ft .ccn-logo-img { max-height: 72px; width: auto; display: block; }
.ccn-ft-claim { margin: var(--s-5) 0 0; max-width: 42ch; font-size: 1.0625rem; color: rgba(255, 255, 255, .8); }
.ccn-ft-cta-t { margin: 0 0 var(--s-4); font-size: clamp(2rem, 1.4rem + 2vw, 3rem); font-weight: 300; line-height: 1.1; letter-spacing: var(--title-tracking-h2); color: #fff; }
.ccn-ft-btns { display: flex; flex-wrap: wrap; gap: var(--s-3); }
.ccn-ft .ccn-b--ghost { color: #fff; }
.ccn-ft .ccn-b--ghost:hover { color: var(--ink); }
.ccn-ft .ccn-b--acc, .ccn-ft .ccn-b--acc:hover { color: #fff; }

/* Colonnes */
.ccn-ft-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-7) var(--grid-gap); padding-block: var(--s-8); }
.ccn-ft-h { margin: 0 0 var(--s-4); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.ccn-ft ul { list-style: none; margin: 0; padding: 0; }
.ccn-ft-col li { margin: 0 0 10px; }
.ccn-ft address { display: grid; gap: 10px; font-style: normal; }
.ccn-ft-soc { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: var(--s-5); }
.ccn-ft-soc > a, .ccn-ft-soc > span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .08); color: #fff; }
.ccn-ft-soc a:hover { background: rgba(255, 255, 255, .18); }
.ccn-ft-soc svg { width: 19px; height: 19px; stroke: currentColor; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ccn-ft-soc a.ccn-ft-wa { width: auto; display: inline-flex; gap: 8px; padding: 0 16px; border-radius: var(--radius-btn); background: #25D366; font-weight: 500; }
.ccn-ft-soc a.ccn-ft-wa:hover { background: #1EBE5A; color: #fff; }
.ccn-ft-soc .is-empty { opacity: .4; }

/* Partenaire */
.ccn-ft-partner { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; padding-block: var(--s-5); border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }
.ccn-ft-partner span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.ccn-ft-partner a { color: #fff; font-weight: 500; }

/* Bas */
.ccn-ft-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3) var(--s-6); padding-top: var(--s-5); border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; color: rgba(255, 255, 255, .5); }
.ccn-ft-bottom p { margin: 0; }
.ccn-ft-bottom ul { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); }
.ccn-ft-bottom a { color: rgba(255, 255, 255, .5); }

.ccn-ft :focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 4px; }

@media (max-width: 1023px) { .ccn-ft-cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 639px) {
	.ccn-ft-cols { grid-template-columns: 1fr; gap: var(--s-6); padding-block: var(--s-7); }
	.ccn-ft-top { padding-bottom: var(--s-7); }

}

.ccn-ft-soc a.ccn-ft-wa span { width: auto; height: auto; background: none; display: inline; }
@media (min-width: 1024px) { .ccn-ft-bottom { padding-right: 64px; } }

.ccn-ft-zones { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; padding-block: var(--s-5); border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }
.ccn-ft-zones span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.ccn-ft-zones ul { display: flex; flex-wrap: wrap; gap: 6px 20px; }

/* Villes : repliées derrière un intitulé (liens toujours présents dans la page, ouverts au clic) */
.ccn-ft-zones { display: block; }
.ccn-ft-zones details > summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255, 255, 255, .5); }
.ccn-ft-zones details > summary::-webkit-details-marker { display: none; }
.ccn-ft-zones details > summary::after { content: "+"; font-size: 16px; letter-spacing: 0; }
.ccn-ft-zones details[open] > summary::after { content: "−"; }
.ccn-ft-zones details > summary:hover { color: #fff; }
.ccn-ft-zones details[open] ul { margin-top: var(--s-3); }
.ccn-ft-partner a + a::before { content: "·"; margin-right: 16px; color: rgba(255, 255, 255, .4); }
