/* Ciné Tarascon – séances. Couleurs reprises du site ; à ajuster ici si besoin. */
.cts-prog, .cts-film, .cts-films {
	--cts-accent: #e5466e;      /* rose : onglet actif */
	--cts-accent-text: #c2274f; /* rose plus soutenu pour le texte sur blanc (contraste 5,7:1 au lieu de 3,9:1) */
	--cts-ink: #2c4359;         /* bleu nuit : titres, séparateurs */
	--cts-text: #2d728f;        /* bleu : textes secondaires */
	--cts-soft: #77b7d1;        /* bleu clair : onglets inactifs */
	--cts-card: #fff;
	--cts-on-dark: #fff;        /* titre et bouton « semaine suivante », posés sur le fond bleu du site */
	--cts-font-title: "Fira Sans", sans-serif;
	--cts-font-text: Lato, sans-serif;
	--cts-radius: 6px;
}

.cts-prog { font-family: var(--cts-font-text); }
.cts-week[hidden], .cts-panel[hidden] { display: none !important; }

.cts-prog .cts-week__title {
	font-family: var(--cts-font-title);
	font-weight: 700;
	line-height: 1.15;
	color: var(--cts-on-dark) !important;
	text-align: center;
	margin: 0 0 1rem;
}

/* Onglets : 7 jours sur une ligne, y compris sur mobile */
.cts-tabs {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
	margin: 0;
}
.cts-tab {
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	text-align: center;
	padding: .6em .2em;
	border-radius: var(--cts-radius) var(--cts-radius) 0 0;
	background: var(--cts-ink);
	color: var(--cts-soft);
	font-family: var(--cts-font-title);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.15;
	text-transform: capitalize;
	transition: background .15s, color .15s;
}
.cts-tab:hover { color: #fff; }
.cts-tab:focus-visible { outline: 3px solid var(--cts-accent); outline-offset: 2px; }
.cts-tab[aria-selected="true"] { background: var(--cts-card); color: var(--cts-accent-text); }
.cts-tab.is-past:not([aria-selected="true"]) { opacity: .55; }
.cts-tab.is-today .cts-tab__num::after {
	content: ""; display: inline-block; width: .4em; height: .4em; margin-left: .25em;
	border-radius: 50%; background: var(--cts-accent); vertical-align: middle;
}

.cts-panel {
	background: var(--cts-card);
	border-radius: 0 0 var(--cts-radius) var(--cts-radius);
	padding: .5rem 1.25rem 1rem;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}
.cts-panel__date {
	margin: .5rem 0 .25rem;
	text-align: center;
	color: var(--cts-accent-text);
	font-family: var(--cts-font-title);
	font-weight: 700;
}
.cts-panel__done { margin: .5rem 0 1rem; text-align: center; color: var(--cts-text); font-family: var(--cts-font-title); font-style: italic; }
.cts-panel__empty { margin: 1rem 0; text-align: center; color: var(--cts-text); font-style: italic; }

/* Lignes : film à gauche, horaire à droite */
.cts-list { list-style: none; margin: 0; padding: 0; }
.cts-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: .15rem 1rem;
	align-items: center;
	padding: .75rem 0;
	border-bottom: 2px dotted var(--cts-ink);
}
.cts-row:last-child { border-bottom: 0; }
.cts-row__film {
	font-family: var(--cts-font-title);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--cts-ink);
}
.cts-row__film a { color: inherit; text-decoration: none; }
.cts-row__film a:hover { color: var(--cts-accent); }
.cts-row__time {
	font-family: var(--cts-font-title);
	font-weight: 300;
	font-size: 1.1em;
	white-space: nowrap;
	text-align: right;
}
.cts-row__version { font-size: .8em; font-weight: 700; letter-spacing: .03em; }
.cts-row__film { grid-column: 1; grid-row: 1; }
.cts-row__time { grid-column: 2; grid-row: 1 / span 2; }
/* Ligne d'info sous le titre du film (info web, mention) : rose, en italique, comme sur l'ancien bloc. */
.cts-row__info { grid-column: 1; grid-row: 2; font-size: .9em; font-style: italic; color: var(--cts-accent-text); }
.cts-row__mention {
	display: inline-block;
	padding: .1em .55em;
	margin-right: .35em;
	border-radius: 999px;
	background: var(--cts-accent-text);
	color: #fff;
	font-family: var(--cts-font-title);
	font-size: .8em;
	font-weight: 700;
	white-space: nowrap;
}
.cts-row.is-past { opacity: .65; }
.cts-panel.is-past .cts-row { opacity: .7; }

/* Pictos */
.cts-pictos { display: inline-flex; gap: .25em; vertical-align: middle; margin-left: .2em; }
.cts-picto { display: inline-block; width: 1.35em; height: 1.35em; color: var(--cts-ink); }
.cts-picto svg { display: block; width: 100%; height: 100%; }

/* Semaine suivante */
.cts-nav { text-align: center; margin: 1rem 0 0; }
.cts-nav__btn {
	all: unset;
	cursor: pointer;
	font-family: var(--cts-font-title);
	font-weight: 700;
	color: var(--cts-on-dark);
	padding: .35em .8em;
	border-radius: 999px;
	border: 2px solid currentColor;
}
/* Forcé : les styles de boutons du thème / d'Elementor passent sinon devant. */
.cts-nav .cts-nav__btn,
.cts-nav .cts-nav__btn:visited {
	color: var(--cts-on-dark) !important;
	background: transparent !important;
	border: 2px solid var(--cts-on-dark) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	text-transform: none !important;
}
.cts-nav .cts-nav__btn:hover,
.cts-nav .cts-nav__btn:focus-visible {
	background: var(--cts-on-dark) !important;
	color: var(--cts-ink) !important;
}

/* [cine_seances_film] */
.cts-film { list-style: none; margin: 0; padding: 0; color: inherit; }
.cts-film__day { padding: .4rem 0; border-bottom: 1px dotted currentColor; }
.cts-film__day:last-child { border-bottom: 0; }
.cts-film__date { font-weight: 700; text-transform: capitalize; display: inline-block; min-width: 5.5em; }
.cts-film__info { font-size: .875em; opacity: .85; }

/* [cine_film_par_film] */
.cts-films { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem; }
.cts-card { background: var(--cts-card); border-radius: var(--cts-radius); overflow: hidden; box-shadow: 0 6px 18px rgba(0, 0, 0, .08); }
.cts-card__img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.cts-card__body { padding: .85rem 1rem 1rem; color: var(--cts-ink); }
.cts-films .cts-card__title { font-family: var(--cts-font-title); font-size: 1.05rem; font-weight: 700; line-height: 1.2; letter-spacing: 0; margin: 0 0 .5rem; text-transform: uppercase; color: var(--cts-ink); }
.cts-card__times .cts-row__mention { margin: 0 0 0 .35em; }
.cts-card__title a { color: inherit; text-decoration: none; }
.cts-card__times { list-style: none; margin: 0; padding: 0; font-size: .92em; }

@media (max-width: 600px) {
	.cts-tab { font-size: .8rem; padding: .5em 0; }
	.cts-tab__day, .cts-tab__num { display: block; }
	.cts-panel { padding: .25rem .75rem .75rem; }
	.cts-row { grid-template-columns: 1fr; }
	.cts-row__time { text-align: left; }
}

/* Protection contre les styles de boutons du thème (Hello Elementor, kit Elementor…) */
.cts-prog button.cts-tab,
.cts-prog button.cts-tab:hover,
.cts-prog button.cts-tab:focus,
.cts-prog button.cts-tab:active {
	border: 0;
	box-shadow: none;
	text-decoration: none;
	min-height: 0;
	margin: 0;
	letter-spacing: 0;
	background: var(--cts-ink);
	color: var(--cts-soft);
}
.cts-prog button.cts-tab:hover { color: #fff; }
.cts-prog button.cts-tab[aria-selected="true"],
.cts-prog button.cts-tab[aria-selected="true"]:hover,
.cts-prog button.cts-tab[aria-selected="true"]:focus {
	background: var(--cts-card);
	color: var(--cts-accent-text);
}
.cts-prog button.cts-nav__btn,
.cts-prog button.cts-nav__btn:hover,
.cts-prog button.cts-nav__btn:focus {
	background: transparent;
	box-shadow: none;
	text-decoration: none;
	border: 2px solid currentColor;
	color: inherit;
}
.cts-prog button.cts-nav__btn:hover,
.cts-prog button.cts-nav__btn:focus-visible { color: var(--cts-accent); }

/* Accessibilité */
.cts-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cts-prog a:focus-visible, .cts-nav .cts-nav__btn:focus-visible { outline: 3px solid var(--cts-accent-text) !important; outline-offset: 3px; }
.cts-row__film a:hover, .cts-row__film a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.cts-nav .cts-nav__btn { min-height: 44px; display: inline-flex; align-items: center; }
/* Titre et bouton blancs posés sur une photo : léger ombrage pour rester lisibles sur les zones claires */
.cts-prog .cts-week__title, .cts-nav .cts-nav__btn { text-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
.cts-nav .cts-nav__btn:hover, .cts-nav .cts-nav__btn:focus-visible { text-shadow: none; }
