/* ==========================================================================
   assets/css/entete-pied.css
   --------------------------------------------------------------------------
   [idh_header] (.entete + #idh-menu-mobile) et [idh_footer] (.pied).
   Repris de la maquette « idhotes-maquette-3-styles ». Zéro couleur/rayon en
   dur : tout passe par var(--idh-*) (includes/tokens.php).

   NB : .entete est position:fixed. Sur une page SANS bandeau plein cadre
   ([idh_hero]) au-dessus, prévoir un padding-top sur le contenu.
   ========================================================================== */

/* ==========================================================================
   EN-TÊTE
   ========================================================================== */
.entete {
	position: fixed;
	inset: 0 0 auto;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px var(--idh-cadre, var(--rail));
	color: #fff;
	transition: background-color .5s, color .5s, padding .5s;
}
.entete.pose {
	background: var(--idh-bg);
	color: var(--idh-ink);
	padding-block: 14px;
	border-bottom: 1px solid var(--idh-line);
}
.entete .lien { color: inherit; }

.entete .marque {
	display: inline-flex;
	align-items: center;
	font-family: var(--idh-font-display);
	font-size: 1.3rem;
	font-weight: 700;
	font-variation-settings: "wdth" 84;
	letter-spacing: -0.025em;
	text-decoration: none;
	white-space: nowrap;
	color: inherit;
}
.entete .marque .jalon { width: .78em; height: .78em; margin-right: .5em; color: var(--idh-accent); flex-shrink: 0; }
/* Hauteur plafonnée : !important pour battre « .elementor img { height:auto } »
   (le shortcode est souvent dans un widget Elementor). --idh-entete-logo-h
   surchargeable via un style inline sur .entete si besoin. */
.marque__logo {
	display: block;
	height: auto !important;
	max-height: var(--idh-entete-logo-h, 72px) !important;
	width: auto !important;
	max-width: 240px;
	object-fit: contain;
}
.entete.pose .marque__logo { max-height: calc(var(--idh-entete-logo-h, 72px) - 8px) !important; }
/* Bascule des deux logos : bandeau (fond foncé) / au scroll (fond blanc). */
.marque__logo--pose { display: none; }
.entete.pose .marque__logo--bandeau { display: none; }
.entete.pose .marque__logo--pose { display: block; }

.nav { display: flex; gap: 26px; align-items: center; font-size: .92rem; }
.nav > a, .nav .nav__item > a { text-decoration: none; opacity: .88; }
.nav > a:hover, .nav .nav__item > a:hover { opacity: 1; }
.nav .bouton { padding: 11px 22px; }
.entete:not(.pose) .nav .bouton { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.entete:not(.pose) .nav .bouton:hover { background: #fff; color: var(--idh-ink); border-color: #fff; }

/* --- Sous-menu --------------------------------------------------------- */
.nav__item { position: relative; }
/* Pont invisible link → sous-menu : sans lui, la souris traverse un « trou »
   entre le lien et le panneau, le survol se perd et le sous-menu se referme
   avant qu'on ait pu cliquer. Ne décale rien (position:absolute). */
.nav__item::after { content: ""; position: absolute; left: -14px; right: -14px; top: 100%; height: 20px; }
.sous-menu {
	position: absolute; top: calc(100% + 14px); left: 50%; min-width: 210px;
	transform: translate(-50%, 4px);
	background: var(--idh-bg); color: var(--idh-ink);
	border-radius: var(--idh-radius); box-shadow: 0 24px 46px -24px rgba(0,0,0,.4);
	padding: 8px; display: grid; gap: 2px;
	opacity: 0; pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}
.nav__item:hover .sous-menu, .nav__item:focus-within .sous-menu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.sous-menu__lien { display: flex; align-items: baseline; gap: 10px; padding: 9px 12px; border-radius: var(--idh-radius); font-size: .87rem; text-decoration: none; color: var(--idh-ink); opacity: 1; }
.sous-menu__lien:hover { background: var(--idh-bg-alt); }
.sous-menu__lien span { margin-left: auto; font-size: .76rem; opacity: .56; }

/* --- Bouton + réseaux/langues empilés dessous ------------------------- */
.nav__droite { position: relative; display: flex; align-items: center; }
.nav__utilitaires {
	position: absolute; top: 100%; left: 50%;
	transform: translateX(-50%);
	margin-top: 16px;
	display: flex; align-items: center; gap: 10px; white-space: nowrap;
	width: max-content;
}
.nav__reseau { flex: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; color: inherit; opacity: .78; }
.nav__reseau:hover { opacity: 1; background: rgba(255,255,255,.16); }
.entete.pose .nav__reseau:hover { background: var(--idh-bg-alt); }
.nav__reseau svg { width: 16px; height: 16px; flex: none; }
.nav__separateur-vertical { flex: none; width: 1px; height: 15px; background: currentColor; opacity: .3; }
.nav__langues { display: flex; align-items: center; gap: 8px; font-size: .82rem; letter-spacing: .02em; }
/* GTranslate & consorts : neutralise leur mise en forme par défaut + drapeaux
   un peu plus grands (par défaut GTranslate rend des png ~16px). */
.idh-langues .gtranslate_wrapper, .idh-langues .gt_selector, .idh-langues select { font: inherit; color: inherit; background: transparent; border: 0; }
.idh-langues img { height: 20px !important; width: auto !important; vertical-align: middle; }
.idh-langues a { display: inline-flex; align-items: center; }

/* #idh-burger (ID, pas .burger) : nécessaire pour battre en spécificité le
   CSS du kit global Elementor (.elementor-kit-11 button { background /
   border-radius en dur }), qui s'applique sinon à N'IMPORTE QUEL <button>
   de la page, y compris celui-ci — d'où des angles/couleurs qui ignoraient
   la charte (idh_charte_rayon_bouton, idh_charte_couleur_primaire…). */
#idh-burger {
	display: none;
	align-items: center;
	padding: 11px 22px;
	font: inherit;
	font-size: .92rem;
	font-weight: 500;
	letter-spacing: .01em;
	cursor: pointer;
	border: 1px solid var(--idh-primary);
	border-radius: var(--idh-radius-btn);
	background: var(--idh-primary);
	color: var(--idh-on-primary);
	transition: background-color .3s, border-color .3s, color .3s;
}
#idh-burger:hover { background: var(--idh-primary-dark); border-color: var(--idh-primary-dark); }
.entete:not(.pose) #idh-burger { background: transparent; border-color: rgba(255,255,255,.55); color: #fff; }
.entete:not(.pose) #idh-burger:hover { background: #fff; color: var(--idh-ink); border-color: #fff; }

/* --- Menu mobile plein écran ----------------------------------------- */
.menu-mobile {
	position: fixed; inset: 0; z-index: 50;
	background: var(--idh-primary); color: var(--idh-on-primary);
	display: flex; flex-direction: column;
	padding: 20px var(--idh-cadre, var(--rail)) clamp(28px, 5vh, 46px);
	transform: translateY(-100%);
	transition: transform .45s cubic-bezier(.2,.7,.2,1);
	overflow-y: auto;
}
.menu-mobile.est-ouvert { transform: none; }
.menu-mobile__tete { display: flex; align-items: center; justify-content: space-between; }
.menu-mobile__tete .marque { display: inline-flex; align-items: center; color: inherit; font-family: var(--idh-font-display); font-size: 1.2rem; font-weight: 700; }
.menu-mobile__tete .marque .jalon { width: .78em; height: .78em; margin-right: .5em; color: var(--idh-accent); }
.menu-mobile__tete .marque__logo { height: 30px; width: auto; }
/* #idh-menu-mobile-fermer (ID) : même raison que #idh-burger ci-dessus —
   battre le CSS du kit Elementor qui posait un bouton noir plein, avec des
   angles ignorant la charte, sur ce panneau déjà teinté --idh-primary. */
#idh-menu-mobile-fermer {
	display: inline-flex;
	align-items: center;
	background: none;
	border: 1px solid currentColor;
	border-radius: var(--idh-radius-btn);
	color: inherit;
	font: inherit;
	font-size: .92rem;
	font-weight: 500;
	padding: 8px 18px;
	cursor: pointer;
	opacity: .85;
	transition: opacity .2s, background-color .2s;
}
#idh-menu-mobile-fermer:hover { opacity: 1; background: rgba(255,255,255,.12); }
.menu-mobile__nav { display: flex; flex-direction: column; gap: 4px; margin: auto 0; }
.menu-mobile__nav a { padding: 12px 0; font-family: var(--idh-font-display); font-size: 1.6rem; font-weight: 600; text-decoration: none; opacity: .92; background: none; }
.menu-mobile__nav a:hover { opacity: 1; }
.menu-mobile__nav .menu-mobile__sous { font-size: 1.05rem; opacity: .7; padding: 6px 0 6px 18px; }
.menu-mobile__nav .menu-mobile__sous span { opacity: .6; font-weight: 400; }
.menu-mobile__cta { text-align: center; background: var(--idh-accent); border-color: var(--idh-accent); color: var(--idh-on-accent); margin-top: 8px; }
.menu-mobile__cta:hover { background: var(--idh-on-primary); border-color: var(--idh-on-primary); color: var(--idh-ink); }
.menu-mobile__bas { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.22); font-size: .9rem; }
.menu-mobile__bas .lien { color: inherit; }
.menu-mobile__reseaux { display: flex; gap: 10px; }
.menu-mobile__reseaux a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: inherit; }
.menu-mobile__reseaux svg { width: 16px; height: 16px; }
.menu-mobile__langues { flex-basis: 100%; }
body.menu-ouvert { overflow: hidden; }

@media (max-width: 860px) {
	.nav { display: none; }
	#idh-burger { display: inline-flex; }
}

/* ==========================================================================
   PIED DE PAGE
   ========================================================================== */
.pied {
	background: var(--idh-foot-bg, var(--idh-primary-dark));
	color: var(--idh-foot-ink, rgba(242,243,238,.78));
	padding: 0 0 34px;
	position: relative;
	z-index: 1;
	overflow: hidden;
}
/* Tous les liens du pied = couleur du texte du pied (idh_charte_pied_texte →
   --idh-foot-ink). !important : bat .lien:not(.bouton){color:--idh-link} de
   base.css et le kit Elementor — sur le fond foncé, le lien or de la charte
   est illisible. */
.pied a:not(.bouton) { color: var(--idh-foot-ink, rgba(242,243,238,.82)) !important; }

/* --- Bandeau d'appel fusionné --------------------------------------- */
.pied__cta {
	position: relative;
	min-height: 46vh;
	display: flex; align-items: center;
	color: #fff; overflow: hidden;
	margin-bottom: clamp(50px, 7vh, 86px);
}
.pied__cta-media { position: absolute; inset: -12% 0 -12%; }
/* !important sur height : même parade que .marque__logo plus haut, contre
   « .elementor img { height:auto } » (même spécificité, 0-1-1, donc c'est
   l'ordre de chargement qui décide sans !important) — sans ça l'image
   retombe à son ratio naturel au lieu de remplir le bandeau, écart d'autant
   plus visible que le bandeau est haut (mobile/tablette). */
.pied__cta-media img { width: 100%; height: 100% !important; object-fit: cover; }
.pied__cta::after { content: ""; position: absolute; inset: 0; background: rgba(24,34,29,.55); }
.pied__cta-corps { position: relative; z-index: 2; padding: 60px var(--idh-cadre, var(--rail)); }
.pied__cta h2 { color: #fff; }
.pied__cta .section-kicker { color: #fff; }
.pied__cta .section-sub { color: rgba(255,255,255,.8); }
.pied__cta p { margin: 20px 0 32px; max-width: 40ch; color: rgba(255,255,255,.92); }
.pied__cta .bouton { background: var(--idh-bg); color: var(--idh-ink); border-color: var(--idh-bg); }
.pied__cta .bouton:hover { background: #fff; border-color: #fff; }

/* --- Corps ----------------------------------------------------------- */
.pied__corps { padding-inline: var(--idh-cadre, var(--rail)); }
.pied__cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; }
/* Titres de colonnes : <h3> (et non <h4>) — placés après un <h2>, un <h4>
   saute un niveau (audit « ordre des titres »). Look de simple étiquette :
   on neutralise donc explicitement les styles de titre (base.css h1,h2,h3 :
   couleur --idh-title illisible sur fond foncé, chasse, interligne) et ceux du
   thème, qui varient (Twenty Twenty-One / Hello Elementor). */
.pied .pied__titre {
	font-family: var(--idh-font-body); font-size: .82rem; font-weight: 500;
	font-variation-settings: normal; line-height: 1.3; letter-spacing: .02em;
	text-wrap: wrap; text-transform: none; color: inherit;
	margin: 0 0 16px; opacity: .6;
}
.pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; font-size: .93rem; }
/* Liens du pied = couleur du texte du pied (idh_charte_pied_texte → --idh-foot-ink),
   pas --idh-link : sur le fond foncé, le lien or/vert de la charte est illisible. */
.pied ul a { text-decoration: none; opacity: .82; color: var(--idh-foot-ink, rgba(242,243,238,.78)); }
.pied ul a:hover { opacity: 1; }
/* Nom + baseline : couleur du texte du pied (idh_charte_pied_texte).
   .marque est un <a> (lien vers l'accueil, comme dans l'en-tête) : on
   retire le soulignement par défaut et on pose un survol discret. */
.pied .marque { display: flex; align-items: center; font-family: var(--idh-font-display); font-size: 1.4rem; font-weight: 600; margin: 0; color: var(--idh-foot-ink, rgba(242,243,238,.9)); text-decoration: none; transition: opacity .2s; }
.pied .marque:hover { opacity: .8; }
.pied .marque .jalon { width: .7em; height: .7em; margin-right: .45em; color: var(--idh-accent); }
.pied__mot { margin-top: 14px; font-size: .9rem; opacity: .78; max-width: 30ch; color: var(--idh-foot-ink, rgba(242,243,238,.78)); }

.pied__reseaux { display: flex; gap: 10px; margin-top: 16px; }
.pied__reseaux a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid rgba(242,243,238,.28); border-radius: 50%; color: inherit; transition: background-color .25s, border-color .25s; }
.pied__reseaux a:hover { background: rgba(242,243,238,.12); border-color: rgba(242,243,238,.5); }
.pied__reseaux svg { width: 15px; height: 15px; }

/* Logos de confiance : petites pastilles CARRÉES sur fond blanc, angles = charte
   (--idh-radius). Uniformes, logo en couleur (ils doivent rassurer, pas se fondre). */
.pied__logos { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: clamp(36px, 5vh, 60px); padding-top: 24px; border-top: 1px solid rgba(242,243,238,.16); }
.pied__logo {
	flex: none;
	display: inline-flex; align-items: center; justify-content: center;
	width: 73px; height: 73px; padding: 10px; /* x1.4 (52px/7px d'origine) */
	background: #fff; border-radius: var(--idh-radius);
	transition: transform .2s ease;
}
.pied__logo:hover { transform: translateY(-2px); }
.pied__logo img { max-width: 100% !important; max-height: 100% !important; width: auto !important; height: auto !important; object-fit: contain; filter: none; }

/* Bloc marque du bas : le logo « fond foncé » (idh_marque_logo_inverse),
   remplace l'ancienne signature typographique géante. */
.pied__marque { margin-top: clamp(40px, 6vh, 72px); }
/* Lien vers l'accueil autour du logo-signature : inline-block pour un
   survol propre (pas de soulignement, léger fondu), sans toucher au
   gabarit de l'image (toujours portée par .pied__marque img). */
.pied__marque a { display: inline-block; transition: opacity .2s; }
.pied__marque a:hover { opacity: .82; }
.pied__marque img { height: auto !important; max-height: clamp(78px, 12.6vw, 146px) !important; width: auto !important; max-width: 364px; object-fit: contain; }

/* Repli texte (pas de logo foncé renseigné) : maintenant un <a> cliquable
   vers l'accueil (auparavant un <p aria-hidden>, purement décoratif). */
.pied__signature {
	display: block;
	margin-top: clamp(48px, 8vh, 96px);
	font-family: var(--idh-font-display);
	font-weight: 700;
	font-variation-settings: "wdth" 78;
	font-size: clamp(3.2rem, 15.2vw, 13rem);
	line-height: .82;
	letter-spacing: -0.05em;
	/* !important : .pied__signature est maintenant un <a>, donc concerné par
	   « .pied a:not(.bouton) { color: --idh-foot-ink !important } » ci-dessus
	   — sans ça le texte perdrait son effet contour (couleur pleine au lieu
	   de transparent + -webkit-text-stroke). */
	color: transparent !important;
	text-decoration: none;
	-webkit-text-stroke: 1px rgba(242,243,238,.42);
	transition: -webkit-text-stroke-color .2s;
}
.pied__signature:hover { -webkit-text-stroke-color: rgba(242,243,238,.75); }
.pied__bas { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; font-size: .8rem; opacity: .7; }
.pied__bas .lien, .pied__bas span { color: var(--idh-foot-ink, rgba(242,243,238,.78)); }
/* Crédit « Site internet réalisé par Idhôtes » : poussé à droite. */
.pied__credit { margin-left: auto; opacity: .8; }
@media (max-width: 640px) { .pied__credit { margin-left: 0; } }
.pied__bas .lien { text-decoration: none; }

@media (max-width: 1040px) {
	.pied__cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.pied__cols { grid-template-columns: 1fr; gap: 32px; }
}
