/* ============================================================
   IFS Horaires — module site (bloc horaires + bandeau de garde).
   S'appuie sur les variables du template chenens (--accent, --ink…)
   avec des valeurs de repli pour d'autres templates.
   ============================================================ */

/* ---------- Bloc horaires ---------- */
.ifs-horaires { font-size: 15px; line-height: 1.55; color: var(--text, #1d3d49); }
.ifs-horaires-titre { font-weight: 700; margin-bottom: 8px; color: var(--ink, #123c4b); }
.ifs-horaires-statut { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 10px; color: var(--brand-green-dark, #7cb332); }
.ifs-horaires-statut.is-closed { color: var(--muted, #6f8b94); }
.ifs-horaires-liste { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; }
.ifs-horaires-ligne { display: contents; }
.ifs-horaires-liste dt { font-weight: 600; white-space: nowrap; }
.ifs-horaires-liste dd { margin: 0; }
.ifs-horaires-ligne.is-ferme dd { color: var(--muted, #6f8b94); }
.ifs-horaires-fermetures { list-style: none; margin: 12px 0 0; padding: 10px 12px; border-radius: var(--radius-sm, 12px); background: rgba(217, 130, 43, .08); border: 1px solid rgba(217, 130, 43, .25); }
.ifs-horaires-fermetures li { display: flex; flex-direction: column; gap: 1px; }
.ifs-horaires-fermetures li + li { margin-top: 8px; }
.ifs-horaires-fermetures strong { color: #b4651d; }
.ifs-horaires-fermetures small { color: var(--text-2, #4a6570); }
.ifs-horaires-footer .ifs-horaires-fermeture { color: #f3c98b; }

/* ---------- Bandeau de garde ---------- */
.ifs-garde {
	margin: 0 0 8px;
	background: linear-gradient(120deg, var(--deep, #0e7b96), var(--accent, #1799b8));
	color: #fff;
	border-radius: var(--radius-md, 20px);
	box-shadow: 0 10px 30px rgba(14, 123, 150, .25);
}
/* Pleine largeur sur toutes les pages : le module est rendu dans un conteneur centré, on le fait déborder jusqu'aux bords de la fenêtre. */
.ifs-garde { border-radius: 0; margin: 0 0 0 calc(50% - 50vw); width: 100vw; max-width: 100vw; }
/* 100vw inclut la barre de défilement verticale : on rogne le débordement horizontal sans bloquer le défilement. */
body:has(.ifs-garde) { overflow-x: clip; }
.ifs-garde-inner {
	max-width: var(--container, 1200px); margin: 0 auto; padding: 18px 32px;
	display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
}
.ifs-garde-icone {
	flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .18); color: #fff;
	animation: ifs-garde-pulse 2.4s ease-in-out infinite;
}
@keyframes ifs-garde-pulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .35); }
	50% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); }
}
.ifs-garde-texte { flex: 1 1 320px; min-width: 0; }
.ifs-garde-sur { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.ifs-garde-titre { font-family: 'Lora', Georgia, serif; font-size: 22px; font-weight: 600; line-height: 1.2; margin-top: 2px; }
.ifs-garde-periode { font-size: 15px; margin-top: 4px; opacity: .95; }
.ifs-garde-message { font-size: 14px; margin-top: 8px; opacity: .92; }
.ifs-garde-message p { margin: 0 0 4px; }
.ifs-garde-message p:last-child { margin-bottom: 0; }
.ifs-garde-tel {
	flex: 0 0 auto; display: inline-flex; flex-direction: column; align-items: center; gap: 1px;
	padding: 12px 22px; border-radius: var(--radius-pill, 999px);
	background: #fff; color: var(--deep, #0e7b96); text-decoration: none; font-weight: 700;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .12); transition: transform .15s ease, box-shadow .15s ease;
}
.ifs-garde-tel:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(0, 0, 0, .18); color: var(--deep, #0e7b96); }
.ifs-garde-tel-libelle { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .75; }
.ifs-garde-tel-numero { font-size: 17px; }

@media (max-width: 640px) {
	.ifs-garde-inner { padding: 16px 18px; gap: 12px; }
	.ifs-garde-icone { width: 44px; height: 44px; }
	.ifs-garde-titre { font-size: 19px; }
	.ifs-garde-tel { width: 100%; }
}
