/* Agenda collaboratif – Ville de Thouars
   Tailles en px (le thème réduit la taille de base), couleurs reprises du site. */
.tac-module,
.tac-agenda,
.tac-form-wrap,
.tac-single,
.tac-carte {
	--tac-rose: #e2007a;
	--tac-rose-fonce: #b30061;
	--tac-rose-pale: #fde6f2;
	--tac-noir: #111;
	--tac-gris: #e6e6e6;
	--tac-gris-clair: #f4f4f4;
	--tac-texte: #2b2b2b;
	--tac-rayon: 10px;
	--tac-ombre: 0 6px 18px rgba(0, 0, 0, .18);
	--tac-ombre-forte: 0 18px 38px rgba(0, 0, 0, .32);
	box-sizing: border-box;
	color: var(--tac-texte);
	font-size: 16px;
	line-height: 1.45;
}
.tac-module *, .tac-agenda *, .tac-form-wrap *, .tac-single *, .tac-carte * { box-sizing: border-box; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.tac-svg { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }

/* ---------- Boutons ---------- */
.tac-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 12px 22px; border: 2px solid var(--tac-noir); border-radius: 999px;
	background: #fff; color: var(--tac-noir); font-weight: 700; text-decoration: none; text-transform: uppercase;
	font-size: 14px; letter-spacing: .04em; line-height: 1.2; cursor: pointer;
	transition: background .2s, color .2s, transform .2s, box-shadow .2s;
}
.tac-btn:hover, .tac-btn:focus-visible { background: var(--tac-noir); color: #fff; transform: translateY(-2px); }
.tac-btn--rose { background: var(--tac-rose); border-color: var(--tac-rose); color: #fff; box-shadow: 0 6px 16px rgba(226, 0, 122, .35); }
.tac-btn--rose:hover, .tac-btn--rose:focus-visible { background: #fff; border-color: #fff; color: var(--tac-rose); }
.tac-btn--noir { background: var(--tac-noir); color: #fff; }
.tac-btn--noir:hover, .tac-btn--noir:focus-visible { background: var(--tac-rose); border-color: var(--tac-rose); }
.tac-btn--grand { padding: 15px 30px; font-size: 15px; }
.tac-module a:focus-visible, .tac-module button:focus-visible, .tac-agenda a:focus-visible,
.tac-form-wrap :focus-visible, .tac-carrousel__piste:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.tac-agenda a:focus-visible, .tac-form-wrap :focus-visible { outline-color: var(--tac-rose); }

/* ---------- Module accueil ---------- */
.tac-module {
	position: relative; width: 100%; margin: 0 0 32px; overflow: hidden;
	background:
		radial-gradient(circle at 92% 8%, rgba(255, 255, 255, .16) 0 120px, transparent 121px),
		radial-gradient(circle at 4% 96%, rgba(0, 0, 0, .12) 0 160px, transparent 161px),
		linear-gradient(135deg, #e2007a 0%, #c4006a 100%);
}
.tac-module__tete {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	background: var(--tac-noir); color: #fff; padding: 14px 24px; border-bottom: 4px solid var(--tac-rose);
}
.tac-module__titres { display: flex; flex-direction: column; gap: 2px; }
.tac-module__titre {
	margin: 0 !important; padding: 0 !important; color: #fff !important; font-size: 26px !important; line-height: 1.1 !important;
	font-weight: 800 !important; text-transform: uppercase; letter-spacing: .06em;
}
.tac-module__actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tac-module .tac-btn { padding: 10px 18px; font-size: 13px; }
.tac-module__sous { color: #bbb; font-size: 14px; letter-spacing: .02em; }

/* Carrousel */
.tac-carrousel { position: relative; padding: 0 12px; }
.tac-carrousel__piste {
	display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	padding: 22px 62px 16px; scroll-padding-inline: 62px; scrollbar-width: none; overscroll-behavior-x: contain;
}
.tac-carrousel__piste::-webkit-scrollbar { display: none; }
.tac-carrousel__piste > .tac-card { flex: 0 0 calc((100% - 72px) / 5); min-width: 0; scroll-snap-align: start; }
.tac-carrousel.is-statique .tac-carrousel__piste { justify-content: center; }
.tac-carrousel.is-statique .tac-carrousel__fleche { display: none; }
.tac-carrousel__fleche {
	position: absolute; top: 40%; z-index: 2; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; cursor: pointer;
	background: #fff; color: var(--tac-rose); box-shadow: var(--tac-ombre); font-size: 26px;
	transition: transform .2s, background .2s, color .2s, opacity .2s;
}
.tac-carrousel__fleche:hover { background: var(--tac-noir); color: #fff; transform: scale(1.08); }
.tac-carrousel__fleche[disabled] { opacity: .35; cursor: default; transform: none; background: #fff; color: var(--tac-rose); }
.tac-carrousel__fleche--prec { left: 8px; }
.tac-carrousel__fleche--suiv { right: 8px; }
.tac-carrousel__points { display: flex; justify-content: center; gap: 10px; padding: 0 0 16px; min-height: 12px; }
.tac-carrousel__points button {
	width: 12px; height: 12px; padding: 0; border: 2px solid #fff; border-radius: 999px; background: transparent; cursor: pointer;
	transition: width .25s, background .25s;
}
.tac-carrousel__points button[aria-current="true"] { width: 34px; background: #fff; }

.tac-module__pied { display: flex; justify-content: center; padding: 0 32px 28px; }
.tac-lien-agenda {
	display: inline-flex; gap: 8px; align-items: center; padding: 8px 16px; border: 2px solid rgba(255, 255, 255, .6); border-radius: 999px;
	color: #fff; text-decoration: none; text-transform: uppercase; font-size: 13px; font-weight: 700; letter-spacing: .04em; transition: background .2s, color .2s;
}
.tac-lien-agenda:hover, .tac-lien-agenda:focus-visible { background: #fff; color: var(--tac-rose); }
.tac-module .tac-vide { color: #fff; padding: 40px 32px; margin: 0; font-size: 18px; text-align: center; }
.tac-module .tac-vide a { color: #fff; font-weight: 700; }

/* ---------- Carte affiche ---------- */
.tac-card {
	--tac-cat: var(--tac-rose);
	background: #fff; border-radius: var(--tac-rayon); overflow: hidden; box-shadow: var(--tac-ombre);
	transition: transform .25s, box-shadow .25s;
}
.tac-card:hover, .tac-card:focus-within { transform: translateY(-6px); box-shadow: var(--tac-ombre-forte); }
.tac-card__lien { display: flex; flex-direction: column; height: 100%; color: inherit; text-decoration: none; }
.tac-card__affiche { position: relative; aspect-ratio: 5 / 7; background: var(--tac-gris); overflow: hidden; }
.tac-card__affiche img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s; }
.tac-card:hover .tac-card__affiche img { transform: scale(1.05); }
.tac-card__affiche::after {
	content: ""; position: absolute; inset: 55% 0 0; pointer-events: none; opacity: 0; transition: opacity .3s;
	background: linear-gradient(to top, rgba(0, 0, 0, .65), transparent);
}
.tac-card:hover .tac-card__affiche::after, .tac-card:focus-within .tac-card__affiche::after { opacity: 1; }
.tac-card__voir {
	position: absolute; left: 50%; bottom: 18px; z-index: 1; transform: translate(-50%, 12px); opacity: 0;
	display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
	padding: 9px 18px; border-radius: 999px; background: #fff; color: var(--tac-rose);
	font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
	transition: opacity .3s, transform .3s;
}
.tac-card:hover .tac-card__voir, .tac-card:focus-within .tac-card__voir { opacity: 1; transform: translate(-50%, 0); }
.tac-card__placeholder {
	display: flex; align-items: center; justify-content: center; height: 100%; padding: 16px; text-align: center;
	font-weight: 800; font-size: 20px; color: #fff; background: linear-gradient(160deg, var(--tac-noir), var(--tac-rose));
}

.tac-badge {
	position: absolute; top: 12px; left: 12px; z-index: 1; display: flex; align-items: center; gap: 6px;
	background: #fff; color: var(--tac-noir); border-radius: 8px; padding: 8px 11px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, .25); line-height: 1; border-bottom: 4px solid var(--tac-cat);
}
.tac-badge__d { display: flex; flex-direction: column; align-items: center; }
.tac-badge__j { font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
.tac-badge__m { font-size: 13px; font-weight: 800; text-transform: uppercase; color: var(--tac-rose); margin-top: 3px; }
.tac-badge__sep { color: var(--tac-rose); font-weight: 800; font-size: 16px; }

.tac-card__corps {
	padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1;
	border-top: 5px solid var(--tac-cat);
}
.tac-card__titre {
	margin: 0 !important; padding: 0 !important; font-size: 21px !important; line-height: 1.25 !important;
	color: var(--tac-noir) !important; font-weight: 800 !important; text-transform: none !important;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.tac-card:hover .tac-card__titre { color: var(--tac-rose) !important; }
.tac-card__meta { display: flex; flex-direction: column; gap: 6px; }
.tac-card__info { display: flex; align-items: flex-start; gap: 9px; font-size: 17px; line-height: 1.35; color: #3a3a3a; }
.tac-card__info .tac-svg { color: var(--tac-rose); margin-top: 1px; }
.tac-card__intro { font-size: 16px; color: #555; }

.tac-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.tac-cat {
	display: inline-block; padding: 4px 11px; border-radius: 999px; background: var(--tac-gris-clair);
	color: var(--tac-noir); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; line-height: 1.4;
}
/* Couleurs des rubriques du site (bandeau du menu). */
.tac-cat--culture, .tac-cat--patrimoine { background: #8c7b6b; color: #fff; }
.tac-cat--sport { background: #3bb4e5; color: #fff; }
.tac-cat--solidarite { background: #e8533f; color: #fff; }
.tac-cat--vie-associative { background: #f6b800; color: #111; }
.tac-cat--jeunesse { background: #a8c414; color: #111; }
.tac-cat--environnement { background: #2e9d4f; color: #fff; }
.tac-cat--vie-municipale { background: var(--tac-rose); color: #fff; }

.tac-acc { list-style: none; margin: 4px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; font-size: 14px; }
.tac-acc li { background: var(--tac-rose-pale); color: var(--tac-rose-fonce); font-weight: 700; border-radius: 6px; padding: 3px 9px; margin: 0 !important; list-style: none; }
.tac-acc--compact { margin-top: auto !important; }

/* ---------- Page agenda ---------- */
.tac-agenda__barre {
	display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; justify-content: space-between;
	margin-bottom: 28px; padding: 20px; background: var(--tac-gris-clair); border-radius: var(--tac-rayon); border-top: 5px solid var(--tac-rose);
}
.tac-filtres { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; flex: 1; }
.tac-filtres select, .tac-filtres input[type="search"] {
	height: 46px; padding: 0 14px; border: 2px solid #d5d5d5; border-radius: 999px; font: inherit; font-size: 15px; background: #fff;
}
.tac-filtres__recherche input { min-width: 260px; }
.tac-filtres__cats { flex-basis: 100%; border: 2px solid #d5d5d5; border-radius: var(--tac-rayon); background: #fff; }
.tac-filtres__cats summary { padding: 12px 16px; cursor: pointer; font-weight: 700; font-size: 15px; }
.tac-filtres__cats .tac-checks { padding: 0 16px 16px; }
.tac-compteur { font-weight: 400; color: #777; font-size: 14px; margin-left: 8px; }
.tac-reset { align-self: center; color: var(--tac-rose); font-size: 15px; }
.tac-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 28px; }
.tac-agenda__pied { text-align: center; margin: 36px 0; }
.tac-agenda__compte { color: #666; font-size: 15px; }
.tac-agenda.is-loading .tac-grille { opacity: .5; }
.tac-agenda .tac-vide { font-size: 17px; text-align: center; padding: 40px 0; }

/* ---------- Formulaire ---------- */
.tac-form-wrap { max-width: 880px; font-size: 16px; }
.tac-form fieldset {
	border: 0; border-radius: var(--tac-rayon); background: var(--tac-gris-clair);
	padding: 52px 26px 10px; margin: 0 0 26px; position: relative; border-top: 5px solid var(--tac-rose);
}
.tac-form legend {
	position: absolute; top: 0; left: 0; right: 0; background: var(--tac-noir); color: #fff; padding: 9px 18px;
	font-weight: 800; text-transform: uppercase; font-size: 15px; letter-spacing: .04em;
}
.tac-field { margin: 0 0 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.tac-field label, .tac-label { font-weight: 700; font-size: 16px; }
.tac-form input[type="text"], .tac-form input[type="email"], .tac-form input[type="tel"], .tac-form input[type="url"],
.tac-form input[type="date"], .tac-form input[type="time"], .tac-form select, .tac-form textarea {
	width: 100%; padding: 11px 14px; border: 2px solid #ccc; border-radius: 8px; font: inherit; font-size: 16px; background: #fff;
}
.tac-form input:focus, .tac-form select:focus, .tac-form textarea:focus { border-color: var(--tac-rose); outline: none; box-shadow: 0 0 0 4px var(--tac-rose-pale); }
.tac-row { display: flex; gap: 16px; flex-wrap: wrap; }
.tac-row > .tac-field { min-width: 220px; }
.tac-req { color: var(--tac-rose); }
.tac-help { color: #666; font-size: 14px; }
.tac-help--bloc { display: block; margin: 8px 0 16px; }
.tac-check { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 18px; font-size: 15px; }
.tac-check input { margin-top: 4px; width: 20px; height: 20px; flex: none; accent-color: var(--tac-rose); }
.tac-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.tac-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: #fff; border: 2px solid #ccc; border-radius: 999px; cursor: pointer; font-weight: 400 !important; font-size: 15px; }
.tac-chip input { accent-color: var(--tac-rose); }
.tac-chip:has(input:checked) { border-color: var(--tac-rose); background: var(--tac-rose-pale); }
.tac-upload { display: flex; gap: 22px; align-items: flex-start; margin-bottom: 18px; }
.tac-upload__preview {
	width: 160px; flex: none; aspect-ratio: 5 / 7; border: 2px dashed #bbb; border-radius: 8px;
	display: flex; align-items: center; justify-content: center; text-align: center; color: #999; font-size: 13px; background: #fff; overflow: hidden;
}
.tac-upload__preview img { width: 100%; height: 100%; object-fit: cover; }
.tac-upload__champ { display: flex; flex-direction: column; gap: 8px; }
.tac-upload__champ label { font-weight: 700; }
.tac-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tac-form__submit { text-align: center; margin: 26px 0 10px; }
.tac-form__intro { font-size: 18px; }
.tac-notice { padding: 16px 20px; border-radius: 8px; margin: 0 0 24px; border-left: 6px solid; font-size: 16px; }
.tac-notice--ok { background: #e8f6ec; border-color: #2e8b4a; }
.tac-notice--err { background: #fdecef; border-color: #c4002f; }
.tac-notice ul { margin: 8px 0 0 20px; }

/* ---------- Fiche événement ---------- */
.tac-single { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 36px; margin-bottom: 32px; }
.tac-single__affiche img { width: 100%; height: auto; border-radius: var(--tac-rayon); box-shadow: var(--tac-ombre-forte); }
.tac-single__liste { list-style: none; padding: 20px !important; margin: 18px 0 !important; display: grid; gap: 10px; font-size: 18px !important; background: var(--tac-gris-clair); border-radius: var(--tac-rayon); border-left: 5px solid var(--tac-rose); }
.tac-single__liste li { margin: 0 !important; list-style: none; }
.tac-single__intro { font-size: 19px; font-weight: 600; }
.tac-single__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.tac-single__retour a { color: var(--tac-rose); }

/* ---------- Protection contre les styles du thème ---------- */
.tac-module .tac-btn, .tac-agenda .tac-btn, .tac-form-wrap .tac-btn, .tac-single .tac-btn, .tac-carte .tac-btn { text-decoration: none !important; font-family: inherit; }
.tac-carte .tac-btn--rose { color: #fff !important; }
.tac-carte .tac-btn--rose:hover { color: var(--tac-rose) !important; background: #fff; border-color: #fff; }
.tac-carte__tete .tac-btn:not(.tac-btn--rose) { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.tac-carte__tete .tac-btn:not(.tac-btn--rose):hover { background: #fff; color: var(--tac-noir); }
.tac-module .tac-btn--rose, .tac-agenda .tac-btn--rose, .tac-form-wrap .tac-btn--rose, .tac-single .tac-btn--rose,
.tac-module .tac-btn--noir, .tac-agenda .tac-btn--noir { color: #fff !important; }
.tac-module .tac-btn--rose:hover, .tac-module .tac-btn--rose:focus-visible { color: var(--tac-rose) !important; }
.tac-agenda .tac-btn--rose:hover, .tac-single .tac-btn--rose:hover, .tac-form-wrap .tac-btn--rose:hover { color: var(--tac-rose) !important; }
.tac-module .tac-lien-agenda { color: #fff !important; text-decoration: none !important; }
.tac-module .tac-lien-agenda:hover, .tac-module .tac-lien-agenda:focus-visible { color: var(--tac-rose) !important; }
.tac-card .tac-card__lien, .tac-card .tac-card__lien:hover { color: inherit !important; text-decoration: none !important; }
.tac-card .tac-card__voir { color: var(--tac-rose) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.tac-carrousel__piste > .tac-card { flex-basis: calc((100% - 54px) / 4); }
}
@media (max-width: 820px) {
	.tac-carrousel__piste > .tac-card { flex-basis: calc((100% - 36px) / 3); }
	.tac-module__tete { justify-content: center; text-align: center; }
	.tac-module__titres { align-items: center; }
	.tac-single { grid-template-columns: 1fr; }
	.tac-upload { flex-direction: column; }
}
@media (max-width: 560px) {
	.tac-carrousel { padding: 0; }
	.tac-carrousel__piste { padding: 18px 16px 14px; gap: 14px; scroll-padding: 0 16px; }
	.tac-carrousel__piste > .tac-card { flex-basis: 62%; }
	.tac-carrousel__fleche { display: none; }
	.tac-module__titre { font-size: 24px !important; }
	.tac-module__actions { justify-content: center; }
	.tac-module__actions { gap: 8px; flex-wrap: nowrap; }
	.tac-module .tac-btn, .tac-module .tac-lien-agenda { padding: 8px 12px; font-size: 11px; gap: 5px; white-space: nowrap; }
	.tac-lien-agenda { font-size: 14px; padding: 12px 20px; text-align: center; }
	.tac-filtres__recherche input { min-width: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.tac-card, .tac-card__affiche img, .tac-card__voir, .tac-btn { transition: none; }
	.tac-card:hover { transform: none; }
	.tac-carrousel__piste { scroll-behavior: auto; }
}

/* ---------- Événements qui se répètent ---------- */
.tac-badge__rec { display: flex; align-items: center; color: var(--tac-rose); font-size: 18px; padding-left: 6px; margin-left: 2px; border-left: 2px solid var(--tac-gris); }
.tac-card__info--rec { font-weight: 700; color: var(--tac-noir); }
.tac-rec { background: #fff; border: 2px solid var(--tac-rose-pale); border-left: 5px solid var(--tac-rose); border-radius: 8px; padding: 16px 18px 4px; margin: 0 0 18px; }
.tac-rec > .tac-help { display: block; margin-bottom: 12px; }
.tac-rec[hidden], [data-tac-rec-type][hidden], [data-tac-date-fin][hidden] { display: none !important; }

/* ---------- Carrousel d'accueil compact ---------- */
.tac-module .tac-card__corps { padding: 12px 14px 14px; gap: 6px; border-top-width: 4px; }
.tac-module .tac-card__titre { font-size: 17px !important; line-height: 1.25 !important; }
.tac-module .tac-card__info { font-size: 15px; gap: 7px; }
.tac-module .tac-cat { font-size: 11px; padding: 3px 9px; }
.tac-module .tac-acc { font-size: 12px; gap: 4px; }
.tac-module .tac-badge { top: 8px; left: 8px; padding: 6px 8px; border-bottom-width: 3px; }
.tac-module .tac-badge__j { font-size: 22px; }
.tac-module .tac-badge__m { font-size: 11px; }
.tac-module .tac-card__voir { font-size: 12px; padding: 7px 13px; bottom: 12px; }
.tac-module .tac-card:hover { transform: translateY(-4px); }

/* ---------- Entrée gratuite / payante ---------- */
.tac-card__info--gratuit { color: #1f7a3a; font-weight: 800; }
.tac-card__info--gratuit .tac-svg { color: #1f7a3a; }
.tac-card__tarif { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
[data-tac-tarif][hidden] { display: none !important; }

/* ---------- Partage ---------- */
.tac-partage { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 20px; }
.tac-partage__titre { font-weight: 700; font-size: 15px; margin-right: 4px; }
.tac-partage__btn {
	display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 999px; border: 0; cursor: pointer;
	font: inherit; font-size: 14px; font-weight: 700; color: #fff !important; text-decoration: none !important; transition: transform .2s, opacity .2s;
}
.tac-partage__btn:hover { transform: translateY(-2px); opacity: .9; }
.tac-partage__btn--facebook { background: #1877f2; }
.tac-partage__btn--whatsapp { background: #1fa855; }
.tac-partage__btn--courriel { background: #555; }
.tac-partage__btn--copier { background: var(--tac-noir); }
.tac-partage__btn--copier.is-ok { background: #1f7a3a; }

/* ---------- Carte du lieu ---------- */
.tac-carte { margin: 8px 0 36px; border-radius: var(--tac-rayon); overflow: hidden; box-shadow: var(--tac-ombre); background: #fff; }
.tac-carte__tete { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 20px; background: var(--tac-noir); }
.tac-carte__titre { margin: 0 !important; color: #fff !important; font-size: 20px !important; font-weight: 800 !important; }
.tac-carte__actions { display: flex; gap: 8px; }
.tac-carte__actions .tac-btn { padding: 9px 16px; font-size: 13px; }
.tac-carte__cadre { position: relative; height: 460px; background: #e9eef2; }
.tac-carte__cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tac-carte__accord {
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px; text-align: center;
	background:
		repeating-linear-gradient(0deg, transparent 0 38px, rgba(255, 255, 255, .7) 38px 46px),
		repeating-linear-gradient(90deg, transparent 0 58px, rgba(255, 255, 255, .7) 58px 66px),
		linear-gradient(135deg, #dfe8df, #e3e9f1);
}
.tac-carte__accord p { margin: 0; font-size: 17px; background: rgba(255, 255, 255, .9); padding: 4px 12px; border-radius: 6px; }
.tac-carte__accord .tac-carte__mention { font-size: 13px; color: #555; }
.tac-carte:fullscreen { border-radius: 0; display: flex; flex-direction: column; }
.tac-carte:fullscreen .tac-carte__cadre { flex: 1; height: auto; }
@media (max-width: 560px) { .tac-carte__cadre { height: 340px; } .tac-carte__titre { font-size: 17px !important; } }

/* ---------- Périodes rapides (Aujourd'hui / Ce week-end / Cette semaine) ---------- */
.tac-quand { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.tac-quand__label { font-weight: 800; font-size: 16px; margin-right: 4px; }
.tac-quand__btn {
	display: inline-flex; align-items: baseline; gap: 6px; padding: 10px 18px; border-radius: 999px;
	border: 2px solid var(--tac-rose); background: #fff; color: var(--tac-rose) !important; text-decoration: none !important;
	font-weight: 800; font-size: 15px; transition: background .2s, color .2s, transform .2s;
}
.tac-quand__btn small { font-weight: 600; font-size: 12px; opacity: .8; }
.tac-quand__btn:hover { transform: translateY(-2px); background: var(--tac-rose-pale); }
.tac-quand__btn.is-actif { background: var(--tac-rose); color: #fff !important; box-shadow: 0 6px 16px rgba(226, 0, 122, .35); }

/* ---------- Boutons : protection contre les styles <button> du thème ---------- */
.tac-carte .tac-carte__accord .tac-btn--rose,
.tac-carte .tac-carte__accord .tac-btn--rose:visited {
	background: var(--tac-rose) !important; border: 2px solid var(--tac-rose) !important; color: #fff !important; opacity: 1 !important;
}
.tac-carte .tac-carte__accord .tac-btn--rose:hover { background: var(--tac-noir) !important; border-color: var(--tac-noir) !important; }
.tac-carte__tete button.tac-btn {
	background: transparent !important; border: 2px solid rgba(255, 255, 255, .75) !important; color: #fff !important;
	border-radius: 999px !important; padding: 9px 16px !important; font-size: 13px !important; line-height: 1.2 !important;
	box-shadow: none !important; opacity: 1 !important; text-transform: uppercase; font-weight: 700; letter-spacing: .04em;
}
.tac-carte__tete button.tac-btn:hover { background: #fff !important; color: var(--tac-noir) !important; }
button.tac-partage__btn--copier { background: var(--tac-noir) !important; color: #fff !important; opacity: 1 !important; font-size: 14px !important; font-weight: 700 !important; border: 0 !important; border-radius: 999px !important; padding: 8px 14px !important; line-height: 1.4 !important; box-shadow: none !important; }
button.tac-partage__btn--copier.is-ok { background: #1f7a3a !important; }
.tac-module button.tac-carrousel__fleche { background: #fff !important; color: var(--tac-rose) !important; border: 0 !important; border-radius: 50% !important; padding: 0 !important; box-shadow: var(--tac-ombre) !important; }
.tac-module button.tac-carrousel__fleche:hover { background: var(--tac-noir) !important; color: #fff !important; }
.tac-module .tac-carrousel__points button { background: transparent !important; border: 2px solid #fff !important; border-radius: 999px !important; padding: 0 !important; min-width: 0 !important; box-shadow: none !important; }
.tac-module .tac-carrousel__points button[aria-current="true"] { background: #fff !important; }
.tac-form-wrap button.tac-btn--rose { background: var(--tac-rose) !important; border: 2px solid var(--tac-rose) !important; color: #fff !important; border-radius: 999px !important; }
.tac-form-wrap button.tac-btn--rose:hover { background: #fff !important; color: var(--tac-rose) !important; }
