/*
 * footer/marine — transposition de `.pied` (maquette Astro ADJ) : un fond plein, trois
 * colonnes bornees a 1080 px (la marque et sa phrase, les pages, le contact), puis la
 * barre du bas du fragment `footer_bottom` (copyright, liens legaux, signature).
 * Derive de `maison`. Engagement 5 : aucun hexadecimal, replis compris.
 */
.ivy-footer--marine {
	--ivy-page-gutter: clamp( 20px, 5vw, 64px );
	box-sizing: border-box;
	padding: clamp( 64px, 7vw, 96px ) max( var( --ivy-page-gutter ), calc( ( 100% - 1280px ) / 2 ) ) 0;
	background: var( --ivy-deep, currentcolor );
	color: var( --ivy-on-deep-muted, currentcolor );
	font-size: var( --ivy-font-body );
	line-height: 1.6;
}

.ivy-footer--marine .ivy-footer__inner {
	display: grid;
	grid-template-columns: minmax( 0, 1.4fr ) repeat( 2, minmax( 0, 1fr ) );
	gap: 48px;
	max-width: 1080px;
	margin-inline: auto;
}
.ivy-footer--marine .ivy-footer__inner > * { min-inline-size: 0; }

.ivy-footer--marine .ivy-footer__brand { display: grid; gap: 16px; align-content: start; }
.ivy-footer--marine .ivy-footer__logo { display: inline-flex; align-items: center; }
.ivy-footer--marine .ivy-footer__logo img { display: block; width: auto; height: 96px; max-width: 100%; }
.ivy-footer--marine .ivy-footer__brand-text { margin: 0; color: var( --ivy-brand_text-color, inherit ); }
.ivy-footer--marine .ivy-footer__brand-text p { margin: 0; font-size: inherit; }

.ivy-footer--marine .ivy-footer__column-title {
	display: block;
	margin: 0 0 14px;
	font-family: var( --ivy-font-titre, inherit );
	font-size: var( --ivy-font-h5 );
	font-weight: 400;
	line-height: 1.3;
	-webkit-text-stroke: var( --ivy-title-stroke, 0 ) currentcolor;
	paint-order: stroke fill;
}
.ivy-footer--marine .ivy-footer__nav .ivy-footer__column-title { color: var( --ivy-nav_title-color, var( --ivy-on-deep, currentcolor ) ); }
.ivy-footer--marine .ivy-footer__contact .ivy-footer__column-title { color: var( --ivy-contact_title-color, var( --ivy-on-deep, currentcolor ) ); }
.ivy-footer--marine .ivy-footer__nav { color: var( --ivy-menu-color, inherit ); }
.ivy-footer--marine .ivy-footer__contact { color: var( --ivy-contact-color, inherit ); font-style: normal; }

.ivy-footer--marine .ivy-footer__nav > .ivy-footer__menu,
.ivy-footer--marine .ivy-footer__contact-lines { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ivy-footer--marine .ivy-footer__menu li { margin: 0; font: inherit; }
.ivy-footer--marine :is( .ivy-footer__menu a, .ivy-footer__contact a ) { display: inline-flex; align-items: center; min-height: 32px; color: inherit; text-decoration: none; }
.ivy-footer--marine a:hover { color: var( --ivy-on-deep, currentcolor ); }
.ivy-footer--marine a:focus-visible { outline: 2px solid currentcolor; outline-offset: 3px; }
.ivy-footer--marine .ivy-footer__contact-line { display: flex; align-items: center; gap: 8px; }
.ivy-footer--marine .ivy-footer__contact-icon { display: inline-flex; flex: none; width: var( --ivy-contact-icon-size, 18px ); height: var( --ivy-contact-icon-size, 18px ); color: var( --ivy-contact_icon-color, currentcolor ); }
.ivy-footer--marine .ivy-footer__contact-icon :is( svg, i ) { width: 100%; height: 100%; font-size: inherit; }

/* Le filet du haut de la barre du bas : celui de la maquette, sans marge avec les colonnes. */
.ivy-footer--marine .ivy-footer__rule { margin: 0; border-block-start: 1px solid var( --ivy-rule-border-color, var( --ivy-line-deep, currentcolor ) ); }
.ivy-footer--marine .ivy-footer__bottom { padding-block: 24px 28px; font-size: var( --ivy-font-label ); line-height: 1.6; }
.ivy-footer--marine .ivy-footer__bottom .ivy-footer__copyright { order: 1; text-align: start; }
.ivy-footer--marine .ivy-footer__bottom .ivy-footer__legal-links { order: 2; }
.ivy-footer--marine .ivy-footer__bottom .ivy-footer__agency { order: 3; gap: 10px; }
.ivy-footer--marine .ivy-footer__bottom .ivy-footer__legal-links > .ivy-footer__legal-menu { gap: 4px 20px; }
.ivy-footer--marine .ivy-footer__bottom a { display: inline-flex; align-items: center; min-height: 32px; color: inherit; text-decoration: none; }
/* La cible de 32 px de la maquette (WCAG 2.2 : 24 px minimum) passe devant le plancher de 44 px du fragment. */
.ivy-footer--marine .ivy-footer__bottom :is( .ivy-footer__legal-menu a, .ivy-footer__agency-link ) { min-height: 32px; }
.ivy-footer--marine .ivy-footer__agency-logo { display: block; width: auto; height: 18px; }

@media ( max-width: 960px ) {
	.ivy-footer--marine .ivy-footer__inner { grid-template-columns: 1fr; gap: 36px; text-align: center; }
	.ivy-footer--marine .ivy-footer__brand { justify-items: center; }
	.ivy-footer--marine .ivy-footer__nav > .ivy-footer__menu,
	.ivy-footer--marine .ivy-footer__contact-lines { justify-items: center; }
	.ivy-footer--marine .ivy-footer__contact-line { justify-content: center; }
	.ivy-footer--marine .ivy-footer__bottom { justify-content: center; text-align: center; }
	.ivy-footer--marine .ivy-footer__bottom .ivy-footer__copyright { text-align: center; }
	.ivy-footer--marine .ivy-footer__bottom .ivy-footer__agency { flex-wrap: nowrap; justify-content: center; text-align: center; }
	.ivy-footer--marine .ivy-footer__bottom .ivy-footer__legal-links > .ivy-footer__legal-menu { justify-content: center; }
}
