/* Horaires Fun Planet - rendu public. Tokens du theme (var(--fp-*)). */

.fp-horaires-widget { font-family: var(--fp-font-body, inherit); }

.fp-horaires-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--fp-font-heading, inherit);
	font-weight: 600;
	padding: 7px 16px;
	border-radius: var(--fp-pill, 999px);
	margin: 0 0 16px;
	font-size: .95rem;
}
.fp-horaires-badge.is-open { background: rgba(26, 167, 184, 0.12); color: var(--fp-secondary, #1aa7b8); }
.fp-horaires-badge.is-closed { background: rgba(24, 26, 42, 0.08); color: var(--fp-ink-soft, #5a5f72); }
.fp-horaires-dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 currentColor; }
.fp-horaires-badge.is-open .fp-horaires-dot { animation: fp-horaires-pulse 1.8s ease-out infinite; }
.fp-horaires-until { font-weight: 400; opacity: .85; }

@keyframes fp-horaires-pulse {
	0% { box-shadow: 0 0 0 0 rgba(26, 167, 184, 0.45); }
	70% { box-shadow: 0 0 0 8px rgba(26, 167, 184, 0); }
	100% { box-shadow: 0 0 0 0 rgba(26, 167, 184, 0); }
}

.fp-horaires-table {
	width: 100%;
	max-width: 460px;
	border-collapse: collapse;
}
.fp-horaires-table th,
.fp-horaires-table td {
	padding: 11px 6px;
	border-bottom: 1px solid var(--fp-line, rgba(24, 26, 42, 0.12));
	text-align: left;
}
.fp-horaires-table th { font-family: var(--fp-font-heading, inherit); font-weight: 600; }
.fp-horaires-table td { text-align: right; color: var(--fp-ink-soft, #5a5f72); }
.fp-horaires-table tr.is-today th,
.fp-horaires-table tr.is-today td { color: var(--fp-primary, #ff5a1f); font-weight: 700; }

.fp-horaires-exceptions { margin-top: 20px; }
.fp-horaires-exceptions-title {
	font-family: var(--fp-font-heading, inherit);
	font-weight: 600;
	margin: 0 0 8px;
}
.fp-horaires-exceptions ul { list-style: none; margin: 0; padding: 0; }
.fp-horaires-exceptions li { padding: 5px 0; color: var(--fp-ink-soft, #5a5f72); font-size: .95rem; }
