/* ==========================================================================
   Tamniès – Site · feuille de style de l'accueil V2
   Tous les sélecteurs commencent par .tm- pour ne jamais toucher au reste du site.
   ========================================================================== */

:root {
	--tm-nuit: #0B2340;
	--tm-nuit-2: #071A30;
	--tm-nuit-hero: #0A1D33;
	--tm-jaune: #FCC820;
	--tm-orange: #E8762C;
	--tm-brique: #E2502E;
	--tm-brique-f: #C8402A;
	--tm-bleu: #1E4E8C;
	--tm-bleu-2: #1E5AA0;
	--tm-creme: #FFF4DF;
	--tm-vert: #2F7D46;
	--tm-texte: #1B2433;
	--tm-gris: #4A5568;
	--tm-ocre: #A8530C;
	--tm-max: 1240px;
	--tm-gut: clamp(16px, 4vw, 40px);
	--tm-titre: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
	--tm-sans: Barlow, system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* --- Neutralisation des marges BeBuilder dans les sections « tm-section » --- */
.mcb-section.tm-section { padding-top: 0 !important; padding-bottom: 0 !important; background: none !important; }
.tm-section .mcb-wrap,
.tm-section .mcb-wrap-inner,
.tm-section .mcb-column,
.tm-section .mcb-column-inner,
.tm-section .column_attr { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.tm-section .mcb-wrap, .tm-section .mcb-column { width: 100% !important; float: none !important; }
body.tm-accueil { overflow-x: hidden; overflow-x: clip; }

/* --- Bloc pleine largeur et remise à zéro des styles du thème --- */
.tm-block { position: relative; width: 100vw; left: 50%; margin-left: -50vw; font-family: var(--tm-sans); font-size: 17px; line-height: 1.55; color: var(--tm-texte); text-align: left; }
.tm-block *, .tm-block *::before, .tm-block *::after { box-sizing: border-box; }
.tm-block h1, .tm-block h2, .tm-block h3, .tm-block p, .tm-block figure { margin: 0; padding: 0; letter-spacing: normal; }
.tm-block :where(h1, h2, h3) { color: inherit; font-weight: 700; text-transform: none; }
.tm-block ul, .tm-block ol, .tm-block li { margin: 0 !important; padding: 0 !important; list-style: none !important; color: inherit !important; }
.tm-block li::before { content: none; }
.tm-block img { display: block; max-width: none; }
.tm-block a { text-decoration: none; }
.tm-block button { font: inherit; text-transform: none; letter-spacing: normal; text-shadow: none; min-height: 0; margin: 0; cursor: pointer; -webkit-appearance: none; appearance: none; }
.tm-wrap { width: 100%; max-width: var(--tm-max); margin: 0 auto; padding: 0 var(--tm-gut); }

/* --- Typographie commune --- */
.tm-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-family: var(--tm-sans); font-weight: 700; font-size: 15px; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; color: var(--tm-ocre); }
.tm-eyebrow::before { content: ""; flex: 0 0 36px; width: 36px; height: 12px; background: var(--tm-orn, var(--tm-orange)); -webkit-mask: var(--tm-m-vague2) center / contain no-repeat; mask: var(--tm-m-vague2) center / contain no-repeat; }
.tm-eyebrow--jaune { color: var(--tm-jaune); --tm-orn: var(--tm-jaune); }
.tm-eyebrow--nuit { color: var(--tm-nuit); --tm-orn: var(--tm-nuit); }
.tm-h2 { font-family: var(--tm-titre); font-weight: 700; font-size: clamp(44px, 5vw, 68px); line-height: .95; text-transform: uppercase; color: var(--tm-nuit); }
.tm-h2--blanc { color: #FFFFFF; }
.tm-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 30px; }
.tm-head__titres { display: flex; flex-direction: column; gap: 8px; }
.tm-head__actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* --- Icônes (dessinées en CSS) --- */
.tm-ico { display: inline-block; flex: 0 0 auto; width: 1em; height: 1em; background-color: currentColor; -webkit-mask: var(--tm-i) center / contain no-repeat; mask: var(--tm-i) center / contain no-repeat; }
.tm-ico-arrow { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.tm-ico-chev-l { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E"); }
.tm-ico-chev-r { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E"); }
.tm-ico-phone { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 005 5L15 13l5 2v4a1 1 0 01-1 1A16 16 0 014 5a1 1 0 011-1z'/%3E%3C/svg%3E"); }
.tm-ico-search { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E"); }
.tm-ico-pin { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0114 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.tm-ico-clock { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.tm-ico-doc { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l4 4v14H7z'/%3E%3Cpath d='M14 3v4h4'/%3E%3Cpath d='M10 12h5M10 16h5'/%3E%3C/svg%3E"); }
.tm-ico-hall { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10l9-6 9 6'/%3E%3Cpath d='M5 10v8M9.5 10v8M14.5 10v8M19 10v8M3 20h18'/%3E%3C/svg%3E"); }
.tm-ico-people { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.2'/%3E%3Cpath d='M3 20c0-3.3 2.7-6 6-6s6 2.7 6 6'/%3E%3Ccircle cx='17' cy='9' r='2.4'/%3E%3Cpath d='M16 14c2.8 0 5 2.2 5 5'/%3E%3C/svg%3E"); }
.tm-ico-book { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5c3-1 6-1 8 1 2-2 5-2 8-1v14c-3-1-6-1-8 1-2-2-5-2-8-1z'/%3E%3Cpath d='M12 6v14'/%3E%3C/svg%3E"); }
.tm-ico-cross { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 8h10'/%3E%3Cpath d='M5 21h14'/%3E%3C/svg%3E"); }
.tm-ico-bolt { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L5 14h6l-1 8 8-12h-6z'/%3E%3C/svg%3E"); }
.tm-ico-mega { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10v4h3l7 4V6L7 10z'/%3E%3Cpath d='M17.5 9a4 4 0 010 6'/%3E%3C/svg%3E"); }
.tm-ico-wave { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8c2-1.5 4-1.5 6 0s4 1.5 6 0 4-1.5 6 0M3 13c2-1.5 4-1.5 6 0s4 1.5 6 0 4-1.5 6 0M3 18c2-1.5 4-1.5 6 0s4 1.5 6 0 4-1.5 6 0'/%3E%3C/svg%3E"); }
.tm-ico-star { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c.8 5 3.2 7.6 8 8.4-4.8.8-7.2 3.4-8 8.4-.8-5-3.2-7.6-8-8.4 4.8-.8 7.2-3.4 8-8.4z' fill='%23000'/%3E%3C/svg%3E"); }
.tm-ico-menu { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M4 12h11M4 17h16'/%3E%3C/svg%3E"); }
.tm-ico-partage { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='2.6'/%3E%3Ccircle cx='6' cy='12' r='2.6'/%3E%3Ccircle cx='18' cy='19' r='2.6'/%3E%3Cpath d='M8.3 10.8l7.4-4.4M8.3 13.2l7.4 4.4'/%3E%3C/svg%3E"); }
.tm-ico-message { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19l1.4-4A8 8 0 1112 20a8 8 0 01-3.9-1z'/%3E%3Cpath d='M9 11h.01M12 11h.01M15 11h.01'/%3E%3C/svg%3E"); }
.tm-ico-mail { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18v12H3z'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.tm-ico-lien { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 14a4 4 0 005.7 0l3-3a4 4 0 00-5.7-5.7L11.5 6.8'/%3E%3Cpath d='M14 10a4 4 0 00-5.7 0l-3 3a4 4 0 005.7 5.7l1.5-1.5'/%3E%3C/svg%3E"); }
.tm-ico-bulle { --tm-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v11H9l-5 4z'/%3E%3Cpath d='M8 9.5h8M8 12.5h5'/%3E%3C/svg%3E"); }

:root {
	--tm-m-vague2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 14'%3E%3Cpath d='M2 4c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0M2 10c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
	--tm-m-vague2-fin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 14'%3E%3Cpath d='M2 4c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0M2 10c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0' fill='none' stroke='%23000' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
	--tm-m-vagues4: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 30'%3E%3Cg fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M2 6c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0'/%3E%3Cpath d='M2 13c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0'/%3E%3Cpath d='M2 20c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0'/%3E%3Cpath d='M2 27c3-3 6-3 9 0s6 3 9 0 6-3 9 0 6 3 9 0'/%3E%3C/g%3E%3C/svg%3E");
	--tm-m-etoile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c.8 5 3.2 7.6 8 8.4-4.8.8-7.2 3.4-8 8.4-.8-5-3.2-7.6-8-8.4 4.8-.8 7.2-3.4 8-8.4z' fill='%23000'/%3E%3C/svg%3E");
	--tm-m-vague-a: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 70' preserveAspectRatio='none'%3E%3Cpath d='M0 44C160 10 320 10 480 40S800 74 960 42S1280 6 1440 36V70H0Z' fill='%23000'/%3E%3C/svg%3E");
	--tm-m-vague-haut: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 34C180 4 360 4 540 30S900 62 1080 30S1320 8 1440 24V60H0Z' fill='%23000'/%3E%3C/svg%3E");
	--tm-m-eglise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 110'%3E%3Cg fill='none' stroke='%23fff' stroke-width='2.4' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M48 104V44h30v60'/%3E%3Cpath d='M44 46L63 8l19 38'/%3E%3Cpath d='M57 72V62a6 6 0 0112 0v10z'/%3E%3Cpath d='M20 104V70a14 14 0 0128 0'/%3E%3Cpath d='M16 72l18-16 14 12'/%3E%3Cpath d='M78 104V64h44v40'/%3E%3Cpath d='M76 66l24-14 24 14'/%3E%3Cpath d='M30 86v-8M100 86v-10'/%3E%3Cpath d='M4 104h122'/%3E%3C/g%3E%3C/svg%3E");
}


/* --- Boutons --- */
.tm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 13px 22px; border: 2px solid transparent; border-radius: 999px; font-family: var(--tm-titre); font-weight: 700; font-size: 18px; line-height: 1.1; letter-spacing: .07em; text-transform: uppercase; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.tm-btn .tm-ico { font-size: 18px; transition: transform .25s ease; }
.tm-btn:hover .tm-ico { transform: translateX(4px); }
.tm-block .tm-btn--jaune, .tm-btn--jaune { background: var(--tm-jaune); color: var(--tm-nuit); }
.tm-block .tm-btn--jaune:hover { background: #FFD94F; color: var(--tm-nuit); }
.tm-block .tm-btn--nuit { background: var(--tm-nuit); color: #FFFFFF; }
.tm-block .tm-btn--nuit:hover { background: #17396A; color: #FFFFFF; }
.tm-block .tm-btn--contour { border-color: var(--tm-nuit); color: var(--tm-nuit); background: transparent; }
.tm-block .tm-btn--contour:hover { background: var(--tm-nuit); color: #FFFFFF; }
.tm-block .tm-btn--contour-blanc { border-color: #FFFFFF; color: #FFFFFF; background: transparent; }
.tm-block .tm-btn--contour-blanc:hover { background: #FFFFFF; color: var(--tm-nuit); }
.tm-block .tm-btn--blanc { background: #FFFFFF; color: #8E2A12; }
.tm-block .tm-btn--blanc:hover { background: #FFF1EC; color: #8E2A12; }
.tm-btn--plein { display: flex; width: 100%; }
.tm-lien-fort { font-weight: 700; color: var(--tm-nuit) !important; text-decoration: underline !important; text-underline-offset: 3px; }

.tm-block .tm-rond { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 50px; height: 50px; padding: 0 !important; border: 2px solid transparent !important; border-radius: 999px !important; box-shadow: none !important; font-size: 20px; line-height: 1; transition: transform .25s ease, opacity .2s ease, background-color .2s ease; }
.tm-block .tm-rond--contour { background: #FFFFFF !important; border-color: var(--tm-nuit) !important; color: var(--tm-nuit) !important; }
.tm-block .tm-rond--nuit { background: var(--tm-nuit) !important; border-color: var(--tm-nuit) !important; color: #FFFFFF !important; }
.tm-block .tm-rond--jaune { background: var(--tm-jaune) !important; color: var(--tm-nuit) !important; }
.tm-block .tm-rond--blanc { background: #FFFFFF !important; color: var(--tm-bleu) !important; }
.tm-block .tm-rond--contour-blanc { background: transparent !important; border-color: #FFFFFF !important; color: #FFFFFF !important; }
.tm-block .tm-rond:disabled { opacity: .35; cursor: default; }
.tm-block .tm-rond--s { width: 46px; height: 46px; font-size: 18px; }

/* --- Focus clavier --- */
.tm-block a:focus-visible, .tm-block button:focus-visible, .tm-block [tabindex]:focus-visible, .tm-alerte a:focus-visible { outline: 3px solid var(--tm-jaune); outline-offset: 3px; }
.tm-agenda a:focus-visible, .tm-agenda button:focus-visible, .tm-block .tm-btn--jaune:focus-visible, .tm-actus a:focus-visible, .tm-actus button:focus-visible, .tm-actus [tabindex]:focus-visible, .tm-bref a:focus-visible { outline-color: var(--tm-nuit); }

/* --- Utilitaires --- */
.tm-only-mob { display: none !important; }
.tm-ete-only { display: none !important; }
body.tm-ete .tm-ete-only { display: block !important; }
.tm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --- Étoiles scintillantes --- */
@keyframes tm-scintille { 0%, 100% { opacity: .25; transform: scale(.75); } 50% { opacity: 1; transform: scale(1.1); } }
.tm-star { position: absolute; z-index: 1; width: var(--s, 16px); height: var(--s, 16px); background: var(--c, var(--tm-jaune)); -webkit-mask: var(--tm-m-etoile) center / contain no-repeat; mask: var(--tm-m-etoile) center / contain no-repeat; animation: tm-scintille 3.4s ease-in-out infinite; pointer-events: none; }
.tm-star--blanc { --c: #FFFFFF; }
/* Ciel étoilé animé (créé par tamnies.js dans [data-tm-ciel]) */
/* BeTheme ajoute 30 px au-dessus du contenu : on les retire sur l'accueil */
.tm-accueil #Content { padding-top: 0 !important; }
.tm-ciel { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
/* Bouton pour arrêter l'animation (RGAA 13.8) */
.tm-block .tm-ciel__pause { position: absolute; z-index: 3; top: 18px; right: 18px; width: 40px; height: 40px; margin: 0; padding: 0; border: 1px solid rgba(255, 255, 255, .28); border-radius: 999px; background: rgba(7, 22, 40, .55); color: #FFFFFF; cursor: pointer; display: grid; place-items: center; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); transition: background .2s; }
.tm-block .tm-ciel__pause[hidden] { display: none; }
.tm-block .tm-ciel__pause:hover { background: rgba(7, 22, 40, .8); }
.tm-block .tm-ciel__pause:focus-visible { outline: 3px solid var(--tm-jaune); outline-offset: 3px; }
.tm-ciel__pause::before { content: ""; width: 12px; height: 14px; background: linear-gradient(90deg, currentColor 0 4px, transparent 4px 8px, currentColor 8px 12px); }
.tm-ciel__pause.is-arret::before { width: 12px; height: 14px; background: currentColor; clip-path: polygon(0 0, 100% 50%, 0 100%); margin-left: 3px; }
.tm-ciel-arret .tm-star { animation-play-state: paused; }

/* --- Autocollant (mode été) --- */
.tm-sticker { position: absolute; z-index: 2; top: 14px; right: 14px; transform: rotate(6deg); padding: 9px 13px; border-radius: 12px; background: var(--tm-jaune); color: var(--tm-nuit); font-family: var(--tm-titre); font-weight: 700; font-size: 18px; line-height: 1; text-transform: uppercase; box-shadow: 0 8px 18px rgba(0, 0, 0, .22); }

/* --- Pastille d'information (point vert) --- */
.tm-pastille, .tm-block p.tm-pastille { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; padding: 9px 16px 9px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .22); color: #FFFFFF; font-size: 15px; font-weight: 500; line-height: 1.3; }
.tm-pastille::before { content: ""; flex: 0 0 10px; width: 10px; height: 10px; border-radius: 999px; background: #5FD18B; box-shadow: 0 0 0 4px rgba(95, 209, 139, .25); }

/* --- Vagues de transition --- */
.tm-vague-bas::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; bottom: -1px; height: var(--vh, 64px); background: var(--vc, #FFFFFF); -webkit-mask: var(--tm-m-vague-a) 0 0 / 100% 100% no-repeat; mask: var(--tm-m-vague-a) 0 0 / 100% 100% no-repeat; pointer-events: none; }

/* Lien d'évitement (visible au clavier) */
.tm-evitement { position: absolute; z-index: 100000; left: 12px; top: -80px; padding: 12px 18px; border-radius: 0 0 12px 12px; background: var(--tm-jaune); color: var(--tm-nuit) !important; font-family: var(--tm-sans); font-weight: 700; font-size: 16px; text-decoration: none; transition: top .15s ease; }
.tm-evitement:focus { top: 0; outline: 3px solid var(--tm-nuit); outline-offset: 0; }

/* ==========================================================================
   Bandeau d'alerte
   ========================================================================== */
.tm-alerte { position: relative; z-index: 2; background: var(--tm-nuit); color: #FFFFFF; font-family: var(--tm-sans); font-size: 15px; line-height: 1.45; }
.tm-alerte__in { max-width: var(--tm-max); margin: 0 auto; padding: 10px var(--tm-gut); display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.tm-alerte__tag { padding: 3px 10px; border-radius: 999px; background: var(--tm-jaune); color: var(--tm-nuit); font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.tm-alerte__txt { flex: 1 1 240px; margin: 0 !important; color: #FFFFFF; font-weight: 500; }
.tm-alerte a.tm-alerte__lien { color: var(--tm-jaune); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ==========================================================================
   Hero
   ========================================================================== */
.tm-hero { height: 700px; background: var(--tm-nuit-hero); overflow: hidden; color: #FFFFFF; --vc: #FFFFFF; --vh: 70px; }
.tm-hero__media { position: absolute; inset: 0; overflow: hidden; }
.tm-hero__media picture, .tm-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; }
/* Le thème impose height:auto aux images : on rétablit le recadrage des photos de l'accueil. */
.tm-block .tm-hero__img, .tm-block .tm-bouton__img, .tm-block .tm-carte__img, .tm-block .tm-slide__img, .tm-block .tm-mairie__carte > img { width: 100% !important; height: 100% !important; max-width: none !important; margin: 0; }
/* Si l'éditeur ajoute des paragraphes ou des retours à la ligne autour des éléments du hero. */
.tm-hero__media > p { margin: 0; }
.tm-hero__media br, .tm-hero__media p:empty { display: none; }
.tm-hero__img { object-fit: cover; object-position: 60% 50%; }
.tm-hero__voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7, 22, 40, .82) 0%, rgba(7, 22, 40, .45) 34%, rgba(7, 22, 40, 0) 56%); }
.tm-hero__in { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; padding-bottom: 120px; }
.tm-hero__txt { max-width: 640px; display: flex; flex-direction: column; gap: 18px; }
.tm-hero__h1 { display: flex; flex-direction: column; gap: 6px; }
.tm-hero__titre { font-family: var(--tm-titre); font-weight: 700; font-size: clamp(76px, 9.4vw, 136px); line-height: .86; text-transform: uppercase; color: #FFFFFF; }
.tm-hero__sous { font-family: var(--tm-sans); font-style: italic; font-weight: 600; font-size: clamp(38px, 4.6vw, 66px); line-height: 1; color: var(--tm-jaune); }
.tm-hero__intro { max-width: 520px; font-size: 20px; line-height: 1.5; color: #E4EAF3; }
.tm-hero .tm-pastille { margin-top: 4px; }

/* ==========================================================================
   4 boutons colorés
   ========================================================================== */
.tm-boutons { z-index: 3; margin-top: -150px; }
.tm-boutons__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.tm-block .tm-bouton { position: relative; display: flex; flex-direction: column; justify-content: flex-end; height: 290px; border-radius: 26px; overflow: hidden; color: #FFFFFF; background: var(--b); box-shadow: 0 16px 34px rgba(11, 35, 64, .18); transition: transform .25s ease, box-shadow .25s ease; }
.tm-block .tm-bouton:hover { color: #FFFFFF; transform: translateY(-6px); box-shadow: 0 26px 48px rgba(11, 35, 64, .28); }
.tm-bouton__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.tm-bouton:hover .tm-bouton__img { transform: scale(1.06); }
.tm-bouton__voile { position: absolute; inset: 0; background: var(--v); }
.tm-bouton__txt { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 26px; }
.tm-bouton__titre { font-family: var(--tm-titre); font-weight: 600; font-size: 38px; line-height: .98; letter-spacing: .01em; text-transform: uppercase; }
.tm-bouton__bas { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tm-bouton__sous { font-size: 15px; font-weight: 500; line-height: 1.3; }
.tm-bouton .tm-rond { background: var(--fi) !important; color: var(--b) !important; transition: transform .25s ease; }
.tm-bouton:hover .tm-rond { transform: translateX(4px); }
.tm-bouton--jaune { --b: #FCC820; --fi: #0B2340; --v: linear-gradient(180deg, rgba(252, 200, 32, 0) 40%, rgba(252, 200, 32, .55) 100%); }
.tm-block .tm-bouton--jaune, .tm-block .tm-bouton--jaune:hover { color: var(--tm-nuit); }
.tm-bouton--jaune .tm-rond { color: var(--tm-jaune) !important; }
.tm-bouton--orange { --b: #E8762C; --fi: #FFFFFF; --v: linear-gradient(180deg, rgba(196, 78, 16, 0) 30%, rgba(176, 66, 10, .88) 100%); }
.tm-bouton--brique { --b: #E2502E; --fi: #FFFFFF; --v: linear-gradient(180deg, rgba(170, 40, 20, 0) 30%, rgba(160, 36, 16, .85) 100%); }
.tm-bouton--bleu { --b: #1E4E8C; --fi: #FFFFFF; --v: linear-gradient(180deg, rgba(11, 35, 64, 0) 30%, rgba(11, 35, 64, .75) 100%); }

/* ==========================================================================
   Actualités (raccourci [tm_actus])
   ========================================================================== */
.tm-actus { padding: 104px 0 80px; background: #FFFFFF; }
.tm-rail { display: flex; gap: 24px; overflow-x: auto; padding: 8px 2px 18px; scrollbar-width: none; }
/* Aimantation des cartes activée seulement au premier contact (voir tamnies.js) :
   active dès le chargement, elle provoque un défilement automatique qui empêche
   Google de mesurer la vitesse d'affichage (LCP). */
.tm-rail.is-aimant { scroll-snap-type: x mandatory; scroll-behavior: smooth; }
.tm-rail::-webkit-scrollbar { display: none; }
.tm-news { flex: 0 0 272px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 14px; }
.tm-news__media { position: relative; display: block; height: 196px; border-radius: 22px; overflow: hidden; background: var(--c); }
.tm-news__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.tm-news:hover .tm-news__img { transform: scale(1.06); }
.tm-news__picto { position: absolute; left: 50%; top: 50%; width: 76px; height: 76px; margin: -38px 0 0 -38px; border-radius: 999px; background: #FFFFFF; color: var(--ci); display: flex; align-items: center; justify-content: center; font-size: 34px; box-shadow: 0 10px 24px rgba(0, 0, 0, .18); }
.tm-chip { position: absolute; top: 14px; left: 14px; padding: 6px 12px; border-radius: 999px; background: var(--cb); color: var(--ct); font-weight: 700; font-size: 13px; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; }
.tm-c-bleu { --c: #1E4E8C; --ci: #1E4E8C; --cb: #1E4E8C; --ct: #FFFFFF; }
.tm-c-jaune { --c: #FCC820; --ci: #0B2340; --cb: #0B2340; --ct: #FCC820; }
.tm-c-orange { --c: #E8762C; --ci: #B4520F; --cb: #E8762C; --ct: #0B2340; }
.tm-c-brique { --c: #E2502E; --ci: #B23A1E; --cb: #C8402A; --ct: #FFFFFF; }
.tm-c-vert { --c: #2F7D46; --ci: #2F7D46; --cb: #2F7D46; --ct: #FFFFFF; }
.tm-news__body { display: flex; flex-direction: column; gap: 6px; padding: 0 4px; }
.tm-news__date { font-size: 14px; font-weight: 600; color: #5A6475; text-transform: uppercase; letter-spacing: .06em; }
.tm-news__titre { font-family: var(--tm-titre); font-weight: 600; font-size: 25px; line-height: 1.08; }
.tm-block .tm-news__titre a { color: var(--tm-nuit); }
.tm-block .tm-news__titre a:hover { color: var(--tm-nuit); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.tm-block .tm-news-fin { position: relative; flex: 0 0 272px; scroll-snap-align: start; height: 196px; border-radius: 22px; overflow: hidden; background: var(--tm-nuit); color: #FFFFFF; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; transition: transform .25s ease; }
.tm-block .tm-news-fin:hover { color: #FFFFFF; transform: translateY(-6px); }
.tm-news-fin::after { content: ""; position: absolute; right: -10px; bottom: 18px; width: 120px; height: 40px; background: var(--tm-jaune); opacity: .5; -webkit-mask: var(--tm-m-vague2-fin) center / contain no-repeat; mask: var(--tm-m-vague2-fin) center / contain no-repeat; }
.tm-news-fin__txt { font-family: var(--tm-titre); font-weight: 700; font-size: 30px; line-height: 1; text-transform: uppercase; }
/* Carte Facebook en fin de bande */
.tm-block .tm-news-fin--fb { background: var(--tm-bleu, #1E4E8C); gap: 8px; }
.tm-news-fin--fb::after { background: #FFFFFF; opacity: .25; }
.tm-news-fin--fb .tm-news-fin__txt { font-size: 26px; }
.tm-news-fin__sous { position: relative; z-index: 1; margin-top: -4px; font-size: 13px; line-height: 1.35; color: #DCE6F4; max-width: 210px; }
.tm-news-fin--fb .tm-rond { align-self: flex-start; }
.tm-btn--fb .tm-ico { font-size: 18px; margin-right: 2px; }
.tm-btn--fb:hover .tm-ico { transform: none; }

/* ==========================================================================
   Agenda (raccourci [tm_agenda])
   ========================================================================== */
.tm-agenda { background: var(--tm-jaune); padding: 80px 0 110px; overflow: hidden; }
.tm-agenda::before { content: ""; position: absolute; right: -60px; top: 26px; width: 420px; height: 140px; background: #FFFFFF; opacity: .35; -webkit-mask: var(--tm-m-vague2-fin) center / contain no-repeat; mask: var(--tm-m-vague2-fin) center / contain no-repeat; pointer-events: none; }
.tm-agenda .tm-wrap { position: relative; }
.tm-tickets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tm-ticket { position: relative; display: flex; min-height: 132px; border-radius: 22px; overflow: hidden; background: #FFFFFF; box-shadow: 0 12px 26px rgba(120, 80, 0, .18); transition: transform .25s ease; }
.tm-ticket:hover { transform: translateY(-4px); }
.tm-ticket::before, .tm-ticket::after { content: ""; position: absolute; left: 94px; width: 20px; height: 20px; border-radius: 999px; background: var(--tm-jaune); }
.tm-ticket::before { top: -10px; }
.tm-ticket::after { bottom: -10px; }
.tm-ticket__date { flex: 0 0 104px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 10px; text-align: center; background: var(--tb); color: var(--tm2); }
.tm-ticket__jour { font-family: var(--tm-titre); font-weight: 700; font-size: 44px; line-height: .9; color: var(--tj); }
.tm-ticket__mois { font-weight: 700; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.tm-ticket__date--nuit { --tb: #0B2340; --tj: #FCC820; --tm2: #FFFFFF; }
.tm-ticket__date--brique { --tb: #C8402A; --tj: #FFFFFF; --tm2: #FFE1D8; }
.tm-ticket__date--orange { --tb: #E8762C; --tj: #0B2340; --tm2: #0B2340; }
.tm-ticket__corps { flex: 1 1 auto; min-width: 0; padding: 18px 20px; border-left: 2px dashed #E7DCC4; display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.tm-ticket__cat { align-self: flex-start; padding: 3px 10px; border-radius: 999px; background: #FFF3CC; color: #6B4A00; font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.tm-block .tm-ticket__titre { font-family: var(--tm-titre); font-weight: 600; font-size: 24px; line-height: 1.05; color: var(--tm-nuit); }
.tm-block .tm-ticket__titre::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
.tm-ticket__lieu { display: flex; align-items: center; gap: 6px; font-size: 15px; color: var(--tm-gris); }
.tm-agenda__mobile { flex-direction: column; gap: 10px; margin-top: 22px; text-align: center; }

/* ==========================================================================
   Découvrir
   ========================================================================== */
.tm-decouvrir { z-index: 1; margin-top: -60px; padding: 96px 0 116px; color: #FFFFFF; --vc: var(--tm-creme); --vh: 60px; }
.tm-decouvrir::before { content: ""; position: absolute; inset: 0; background: var(--tm-nuit); -webkit-mask: var(--tm-m-vague-haut) 0 0 / 100% 60px no-repeat, linear-gradient(#000, #000) 0 54px / 100% calc(100% - 54px) no-repeat; mask: var(--tm-m-vague-haut) 0 0 / 100% 60px no-repeat, linear-gradient(#000, #000) 0 54px / 100% calc(100% - 54px) no-repeat; }
.tm-decouvrir .tm-wrap { position: relative; z-index: 1; }
.tm-bento { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: 320px 320px; gap: 20px; }
.tm-block .tm-carte { position: relative; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 28px; overflow: hidden; background: #2A2418; color: #FFFFFF; }
.tm-block a.tm-carte:hover { color: #FFFFFF; }
.tm-carte__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.tm-carte:hover .tm-carte__img { transform: scale(1.06); }
.tm-carte__voile { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 12, 4, 0) 22%, rgba(20, 12, 4, .55) 50%, rgba(20, 12, 4, .92) 100%); }
.tm-carte__pied { position: relative; padding: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.tm-carte__pied-txt { display: flex; flex-direction: column; gap: 6px; }
.tm-carte__sur { font-weight: 700; font-size: 14px; letter-spacing: .16em; text-transform: uppercase; color: var(--tm-jaune); }
.tm-carte__titre { font-family: var(--tm-titre); font-weight: 700; font-size: 40px; line-height: .92; text-transform: uppercase; }
.tm-carte__sous { font-size: 15px; color: #F1E7DA; }
.tm-carte .tm-rond { transition: transform .25s ease; }
.tm-carte:hover .tm-rond { transform: translateX(4px); }
.tm-carte--rando .tm-carte__sur { color: #FF9A62; }
.tm-carte--rando .tm-rond { background: var(--tm-brique) !important; color: #FFFFFF !important; }
.tm-carte--rando .tm-carte__img { object-position: 50% 45%; }
.tm-carte--histoire .tm-carte__img { object-position: 50% 30%; }

/* Carte de l'étang */
.tm-carte--etang { grid-row: 1 / span 2; background: #112233; }
.tm-carte--etang .tm-carte__media { position: absolute; inset: 0; }
.tm-carte--etang .tm-carte__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 22, 40, 0) 25%, rgba(7, 22, 40, .62) 50%, rgba(7, 22, 40, .94) 82%); }
.tm-carte__badge { position: absolute; z-index: 1; top: 18px; left: 18px; display: flex; align-items: center; gap: 10px; padding: 6px 14px 6px 6px; border-radius: 999px; background: #FFFFFF; color: var(--tm-nuit); font-weight: 700; font-size: 14px; line-height: 1.2; }
.tm-block .tm-carte__badge img { height: 30px !important; width: auto !important; max-width: none; border-radius: 6px; }
.tm-carte--etang .tm-sticker { top: 18px; right: 18px; font-size: 20px; padding: 10px 14px; }
.tm-carte__corps { position: relative; padding: 36px; display: flex; flex-direction: column; gap: 14px; }
.tm-carte--etang .tm-carte__titre { font-size: clamp(52px, 5.4vw, 76px); line-height: .9; }
.tm-carte__intro { max-width: 560px; color: #E4EAF3; font-size: 17px; }
.tm-puces { display: flex; flex-wrap: wrap; gap: 8px; }
.tm-puces li { padding: 7px 14px !important; border-radius: 999px; background: rgba(7, 22, 40, .55); border: 1px solid rgba(255, 255, 255, .35); color: #FFFFFF !important; font-size: 14px; font-weight: 600; line-height: 1.3; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.tm-carte__corps .tm-btn { align-self: flex-start; margin-top: 4px; }

/* ==========================================================================
   Tamniès en bref
   ========================================================================== */
.tm-bref { background: var(--tm-creme); padding: 80px 0 104px; }
.tm-bref__grille { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: minmax(236px, auto); gap: 16px; }
.tm-bref__intro { grid-column: 1 / span 4; grid-row: 1 / span 2; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding-right: 24px !important; }
.tm-bref__intro-haut { display: flex; flex-direction: column; gap: 14px; }
.tm-bref__intro p.tm-bref__chapo { font-size: 18px; line-height: 1.55; color: #3B4556; }
.tm-bref__labels-titre { margin-bottom: 12px !important; font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--tm-nuit); }
.tm-labels { display: flex; flex-wrap: wrap; gap: 10px; }
.tm-labels li { height: 58px; padding: 7px 12px !important; border-radius: 14px; background: #FFFFFF; display: flex; align-items: center; }
.tm-block .tm-labels img { height: 40px !important; width: auto !important; max-width: none; }
.tm-tuile { position: relative; overflow: hidden; border-radius: 28px; padding: 28px !important; display: flex; flex-direction: column; justify-content: space-between; }
.tm-tuile__sur { position: relative; font-weight: 700; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; }
.tm-tuile__bas { position: relative; display: flex; flex-direction: column; gap: 6px; }
.tm-tuile__chiffre { font-family: var(--tm-titre); font-weight: 700; font-size: 124px; line-height: .82; letter-spacing: -.01em; }
.tm-tuile__chiffre sup { font-size: .45em; vertical-align: top; line-height: 1; }
.tm-tuile__lib { font-size: 17px; font-weight: 600; line-height: 1.3; }
.tm-tuile--405 { grid-column: 5 / span 3; grid-row: 1; background: var(--tm-nuit); color: #FFFFFF; }
.tm-tuile--405 .tm-tuile__sur { color: #C9D4E3; }
.tm-tuile--405 .tm-tuile__chiffre { color: var(--tm-jaune); }
.tm-tuile--xii { grid-column: 8 / span 5; grid-row: 1; background: var(--tm-brique-f); color: #FFFFFF; }
.tm-tuile--xii .tm-tuile__sur { color: #FFE1D8; }
.tm-tuile--xii .tm-tuile__bas, .tm-tuile--ha .tm-tuile__bas { max-width: 54%; }
.tm-tuile--xii::after { content: ""; position: absolute; right: 20px; bottom: 0; width: 200px; height: 168px; background: var(--tm-m-eglise) right bottom / contain no-repeat; opacity: .9; }
.tm-tuile--ha { grid-column: 5 / span 5; grid-row: 2; background: var(--tm-orange); color: var(--tm-nuit); }
.tm-tuile--ha::after { content: ""; position: absolute; right: -14px; bottom: 10px; width: 230px; height: 172px; background: var(--tm-nuit); opacity: .55; -webkit-mask: var(--tm-m-vagues4) center / contain no-repeat; mask: var(--tm-m-vagues4) center / contain no-repeat; }
.tm-tuile--14 { grid-column: 10 / span 3; grid-row: 2; background: var(--tm-jaune); color: var(--tm-nuit); }

/* ==========================================================================
   Le saviez-vous ?
   ========================================================================== */
.tm-saviez { height: 700px; overflow: hidden; color: #FFFFFF; background: var(--tm-nuit); --vc: var(--tm-nuit); --vh: 56px; }
.tm-slide { position: absolute; inset: 0; background: var(--sbg); }
.tm-slide[hidden] { display: none !important; }
.tm-saviez:not(.is-ready) .tm-slide ~ .tm-slide { display: none; }
.tm-slide__media { position: absolute; inset: 0; }
.tm-slide__img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.tm-slide__voile { position: absolute; inset: 0; background: var(--svo); }
.tm-slide__in { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; justify-content: center; padding-bottom: 150px; }
.tm-slide__txt { max-width: 600px; display: flex; flex-direction: column; gap: 16px; }
.tm-block p.tm-saviez__sur { display: inline-block; width: fit-content; align-self: flex-start; padding: 6px 14px; border-radius: 999px; background: rgba(7, 22, 40, .72); font-weight: 700; font-size: 14px; letter-spacing: .24em; text-transform: uppercase; color: var(--tm-jaune); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.tm-slide__titre { font-family: var(--tm-titre); font-weight: 700; font-size: clamp(56px, 6.4vw, 92px); line-height: .9; color: #FFFFFF; }
.tm-slide__texte { max-width: 540px; padding: 18px 20px !important; border-radius: 18px; background: var(--sbox); font-size: 17px; line-height: 1.55; }
.tm-slide__txt .tm-btn { align-self: flex-start; }
.tm-slide--mars { --sbg: #5A1E10; --sbgm: #7A2414; --svo: linear-gradient(90deg, rgba(70, 18, 8, .7) 0%, rgba(70, 18, 8, .25) 50%, rgba(70, 18, 8, 0) 70%); --sbox: rgba(140, 34, 18, .78); --spos: 72% 50%; }
.tm-slide--taniers { --sbg: #3A2614; --sbgm: #5A3514; --svo: linear-gradient(90deg, rgba(50, 30, 12, .78) 0%, rgba(50, 30, 12, .35) 50%, rgba(50, 30, 12, 0) 72%); --sbox: rgba(120, 66, 22, .82); --spos: 60% 50%; }
.tm-slide--fleuri { --sbg: #2F7D46; --sbgm: #2F7D46; --svo: linear-gradient(90deg, #2F7D46 0%, rgba(47, 125, 70, 0) 20%); --sbox: rgba(16, 64, 32, .6); --spos: 50% 50%; }
.tm-slide--fleuri .tm-slide__media { left: 46%; }
.tm-slide--garga { --sbg: #0B2340; --sbgm: #0B2340; --svo: linear-gradient(90deg, rgba(7, 22, 40, .75) 0%, rgba(7, 22, 40, .3) 50%, rgba(7, 22, 40, 0) 70%); --sbox: rgba(11, 35, 64, .82); --spos: 50% 60%; }
.tm-saviez__nav { position: absolute; z-index: 3; left: 0; right: 0; bottom: 74px; }
.tm-saviez:not(.is-ready) .tm-saviez__nav { display: none; }
.tm-saviez__tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.tm-block .tm-saviez__tab { display: flex; flex-direction: column; gap: 10px; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: #FFFFFF !important; text-align: left; }
.tm-saviez__barre { position: relative; display: block; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .3); overflow: hidden; }
.tm-saviez__barre::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--tm-jaune); border-radius: 4px; transition: width .5s ease; }
.tm-saviez__tab[aria-selected="true"] .tm-saviez__barre::after { width: 100%; }
.tm-saviez__lib { display: flex; align-items: baseline; gap: 10px; font-weight: 600; font-size: 16px; line-height: 1.3; opacity: .75; }
.tm-saviez__tab[aria-selected="true"] .tm-saviez__lib, .tm-saviez__tab:hover .tm-saviez__lib { opacity: 1; }
.tm-saviez__n { font-family: var(--tm-titre); font-weight: 700; font-size: 22px; color: var(--tm-jaune); }
.tm-saviez__fleches { display: none; gap: 8px; }

/* ==========================================================================
   La mairie
   ========================================================================== */
.tm-mairie { background: var(--tm-nuit); color: #FFFFFF; padding: 80px 0 104px; }
.tm-mairie__in { display: flex; flex-wrap: wrap; gap: 32px; align-items: stretch; }
.tm-mairie__infos { flex: 1 1 380px; min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.tm-mairie p.tm-pastille { background: rgba(255, 255, 255, .1); border: 0; font-weight: 600; }
.tm-pastille--calme::before { box-shadow: none; }
.tm-block .tm-mairie__tel { font-family: var(--tm-titre); font-weight: 700; font-size: 58px; line-height: 1; color: var(--tm-jaune); }
.tm-block .tm-mairie__tel:hover { color: #FFD94F; }
.tm-mairie__adresse { color: #D6DEEA; font-size: 17px; line-height: 1.6; }
.tm-block .tm-mairie__adresse a { color: #FFFFFF; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.tm-mairie__boutons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.tm-mairie__carte { flex: 1.3 1 460px; min-width: 0; position: relative; border-radius: 28px; overflow: hidden; padding: 28px; }
.tm-mairie__carte > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tm-mairie__carte::before { content: ""; position: absolute; inset: 0; background: rgba(11, 35, 64, .55); }
.tm-raccourcis { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.tm-block .tm-raccourci { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; min-height: 112px; padding: 18px; border-radius: 18px; background: #FFFFFF; color: var(--tm-nuit); transition: transform .25s ease, box-shadow .25s ease; }
.tm-block .tm-raccourci:hover { color: var(--tm-nuit); transform: translateY(-4px); box-shadow: 0 18px 30px rgba(0, 0, 0, .25); }
.tm-raccourci__ico { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; background: var(--rb); color: var(--ri); }
.tm-raccourci__lib { font-family: var(--tm-titre); font-weight: 600; font-size: 21px; line-height: 1.05; }
.tm-r-jaune { --rb: #FFF3CC; --ri: #0B2340; }
.tm-r-bleu { --rb: #E3EBF6; --ri: #123E73; }
.tm-r-brique { --rb: #FDE3DC; --ri: #8E2A12; }
.tm-r-orange { --rb: #FFE7D4; --ri: #8A3F0A; }
.tm-r-vert { --rb: #E6F2EA; --ri: #1F5A33; }

/* ==========================================================================
   Pied de page (template Footer)
   ========================================================================== */
.tm-pied { background: var(--tm-nuit-2); color: #C9D4E3; font-size: 15px; }
.tm-pied__in { padding-top: 48px; padding-bottom: 28px; }
.tm-pied__cols { display: flex; flex-wrap: wrap; gap: 32px 56px; }
.tm-pied__col { flex: 1 1 150px; display: flex; flex-direction: column; gap: 10px; }
.tm-pied__col--id { flex: 1 1 240px; gap: 14px; }
.tm-pied__logo { align-self: flex-start; background: #FFFFFF; border-radius: 14px; padding: 10px 14px; }
.tm-block .tm-pied__logo img { height: 40px !important; width: auto !important; max-width: none; }
.tm-pied__titre { margin-bottom: 4px !important; font-family: var(--tm-titre); font-weight: 700; font-size: 19px; letter-spacing: .06em; text-transform: uppercase; color: var(--tm-jaune); }
.tm-pied a, .tm-pied a:visited { color: #C9D4E3; }
.tm-pied li a, .tm-pied__legal a { display: inline-block; padding: 3px 0; }
.tm-block .tm-mairie__adresse a { display: inline-block; padding: 2px 0; }
.tm-pied a:hover { color: #FFFFFF; text-decoration: underline; }
.tm-pied__legal { margin-top: 36px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .14); display: flex; flex-wrap: wrap; gap: 10px 22px; font-size: 14px; }
.tm-pied .tm-pied__legal a { text-decoration: underline; text-underline-offset: 3px; }
.tm-pied__copy { margin-left: auto; }

/* ==========================================================================
   En-tête BeTheme (en-tête classique #Top_bar)
   ========================================================================== */
#Top_bar .menu > li > a span:not(.description) { font-family: var(--tm-titre); font-weight: 600; font-size: 19px; letter-spacing: .04em; text-transform: uppercase; color: var(--tm-nuit); }
#Top_bar .menu > li.current-menu-item > a span:not(.description),
#Top_bar .menu > li.current-menu-ancestor > a span:not(.description),
#Top_bar .menu > li > a:hover span:not(.description) { color: var(--tm-ocre); }
#Top_bar a.action_button { background: var(--tm-nuit) !important; color: #FFFFFF !important; border-radius: 999px !important; font-family: var(--tm-sans); font-weight: 600; }
#Top_bar a.action_button:hover { background: #17396A !important; }

/* ==========================================================================
   Tablette (768 – 1023 px)
   ========================================================================== */
@media (max-width: 1023px) {
	.tm-boutons__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tm-block .tm-bouton { height: 230px; }
	.tm-tickets { grid-template-columns: minmax(0, 1fr); }
	.tm-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 480px 300px; }
	.tm-carte--etang { grid-column: 1 / span 2; grid-row: 1; }
	.tm-bref__grille { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.tm-bref__intro { grid-column: 1 / span 6; grid-row: auto; padding-right: 0 !important; }
	.tm-tuile--405 { grid-column: 1 / span 3; grid-row: auto; order: 1; }
	.tm-tuile--14 { grid-column: 4 / span 3; grid-row: auto; order: 2; }
	.tm-tuile--xii { grid-column: 1 / span 6; grid-row: auto; order: 3; }
	.tm-tuile--ha { grid-column: 1 / span 6; grid-row: auto; order: 4; }
	.tm-saviez__lib { font-size: 14px; }
	.tm-raccourcis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   Mobile (< 768 px)
   ========================================================================== */
@media (max-width: 767px) {
	.tm-only-desk { display: none !important; }
	.tm-only-mob { display: block !important; }
	.tm-agenda__mobile.tm-only-mob { display: flex !important; }
	.tm-h2 { font-size: 46px; }

	/* Hero : l'église en haut, le texte dessous */
	.tm-hero { height: auto; padding-bottom: 150px; --vh: 40px; }
	.tm-hero__media { position: relative; inset: auto; height: 400px; }
	.tm-hero__img { object-position: 57% 30%; }
	.tm-hero__voile { background: linear-gradient(180deg, rgba(10, 29, 51, 0) 55%, #0A1D33 96%); }
	.tm-hero__in { height: auto; margin-top: -86px; padding-bottom: 0; justify-content: flex-start; }
	.tm-hero__txt { gap: 14px; }
	.tm-hero__h1 { gap: 4px; }
	.tm-hero .tm-eyebrow { font-size: 13px; }
	.tm-hero__titre { font-size: 72px; }
	.tm-hero__sous { font-size: 38px; }
	.tm-hero__intro { font-size: 16px; }
	.tm-hero p.tm-pastille { font-size: 14px; padding: 8px 14px 8px 10px; }
	.tm-block .tm-ciel__pause { top: 12px; right: 12px; width: 36px; height: 36px; }

	/* 4 boutons en 2 × 2 */
	.tm-boutons { margin-top: -110px; }
	.tm-boutons__grille { gap: 12px; }
	.tm-block .tm-bouton { height: 176px; }
	.tm-bouton__txt { padding: 16px; }
	.tm-bouton__titre { font-size: 25px; }
	.tm-bouton__sous { display: none; }
	.tm-block .tm-bouton .tm-rond { width: 36px; height: 36px; font-size: 16px; }

	/* Actualités */
	.tm-actus { padding: 64px 0 52px; }
	.tm-wrap--rail { padding-right: 0; }
	.tm-news, .tm-block .tm-news-fin { flex-basis: 250px; }

	/* Agenda */
	.tm-agenda { padding: 52px 0 82px; }

	/* Découvrir : la photo de l'étang au-dessus du texte */
	.tm-decouvrir { padding: 88px 0 76px; }
	.tm-bento { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	.tm-block .tm-carte--etang { grid-column: auto; grid-row: auto; background: #163A63; border-radius: 24px; }
	.tm-carte--etang .tm-carte__media { position: relative; inset: auto; height: 230px; }
	.tm-carte--etang .tm-carte__media::after { content: none; }
	.tm-carte__badge { top: 12px; left: 12px; font-size: 13px; padding: 5px 12px 5px 5px; }
	.tm-block .tm-carte__badge img { height: 24px !important; }
	.tm-carte--etang .tm-sticker { top: auto; right: 14px; bottom: 14px; font-size: 17px; padding: 8px 12px; }
	.tm-carte__corps { padding: 20px 18px 22px; gap: 12px; }
	.tm-carte--etang .tm-carte__titre { font-size: 44px; }
	.tm-carte__intro { font-size: 16px; }
	.tm-carte__corps .tm-btn { align-self: stretch; }
	.tm-carte--rando, .tm-carte--histoire { min-height: 260px; }

	/* Tamniès en bref */
	.tm-bref { padding: 52px 0 64px; }
	.tm-bref__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(176px, auto); }
	.tm-bref__intro { grid-column: 1 / span 2; padding: 0 0 12px !important; }
	.tm-tuile--405 { grid-column: auto; }
	.tm-tuile--14 { grid-column: auto; }
	.tm-tuile--xii, .tm-tuile--ha { grid-column: 1 / span 2; }
	.tm-tuile { padding: 18px !important; }
	.tm-tuile__chiffre { font-size: 76px; }
	.tm-tuile__lib { font-size: 15px; }
	.tm-tuile--xii .tm-tuile__bas, .tm-tuile--ha .tm-tuile__bas { max-width: 56%; }
	.tm-tuile--xii::after { right: 6px; width: 130px; height: 108px; }
	.tm-tuile--ha::after { width: 150px; height: 112px; }

	/* Le saviez-vous : image en haut, texte dessous */
	.tm-saviez { height: auto; padding-bottom: 76px; --vh: 40px; }
	.tm-saviez:has(.tm-slide--mars.is-active) { background: #7A2414; }
	.tm-saviez:has(.tm-slide--taniers.is-active) { background: #5A3514; }
	.tm-saviez:has(.tm-slide--fleuri.is-active) { background: #2F7D46; }
	.tm-slide { position: relative; inset: auto; background: var(--sbgm); }
	.tm-slide__media, .tm-slide--fleuri .tm-slide__media { position: relative; inset: auto; left: 0; height: 290px; overflow: hidden; }
	.tm-slide__img { object-position: var(--spos); }
	.tm-slide__voile { background: linear-gradient(180deg, rgba(0, 0, 0, 0) 60%, var(--sbgm) 100%); }
	.tm-slide__in { height: auto; padding-top: 4px; padding-bottom: 0; }
	.tm-block p.tm-saviez__sur { position: absolute; top: -274px; left: 16px; padding: 6px 12px; border-radius: 999px; background: var(--tm-jaune); color: var(--tm-nuit); font-size: 12px; letter-spacing: .14em; }
	.tm-slide__titre { font-size: 46px; line-height: .92; }
	.tm-slide__texte { padding: 0 !important; background: none; font-size: 16px; color: #F3EEE8; }
	.tm-saviez__nav { position: relative; bottom: auto; margin-top: 20px; }
	.tm-saviez__nav .tm-wrap, .tm-saviez__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
	.tm-saviez__tabs { display: flex; gap: 2px; margin-left: -12px; }
	.tm-block .tm-saviez__tab { width: 40px; height: 44px; align-items: center; justify-content: center; }
	.tm-saviez__barre { width: 10px; height: 8px; border-radius: 8px; background: rgba(255, 255, 255, .6); transition: width .3s ease; }
	.tm-saviez__tab[aria-selected="true"] .tm-saviez__barre { width: 28px; }
	.tm-saviez__lib { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.tm-saviez__fleches { display: flex; }

	/* La mairie */
	.tm-mairie { padding: 52px 0 64px; }
	.tm-block .tm-mairie__tel { font-size: 44px; }
	.tm-mairie__carte { padding: 12px; flex-basis: 100%; }
	.tm-raccourcis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tm-block .tm-raccourci { flex-direction: row; align-items: center; min-height: 64px; padding: 10px; }
	.tm-raccourci__lib { font-size: 18px; }

	/* Pied de page */
	.tm-pied__cols { gap: 28px 24px; }
	.tm-pied__col { flex-basis: 40%; }
	.tm-pied__col--id { flex-basis: 100%; }
	.tm-pied__copy { margin-left: 0; }
}

/* --- Mouvements réduits --- */
@media (prefers-reduced-motion: reduce) {
	.tm-star { animation: none; }
	.tm-block *, .tm-block *::before, .tm-block *::after { transition: none !important; scroll-behavior: auto !important; }
}


/* ==========================================================================
   Barre « Partager » (articles et évènements) — hors de l'accueil, donc
   protégée des styles de BeTheme et de The Events Calendar.
   ========================================================================== */
.tm-partage { clear: both; margin: 40px 0 8px; padding-top: 22px; border-top: 1px solid #E2E7EE; font-family: var(--tm-sans); color: var(--tm-nuit); }
.tm-partage .tm-partage__titre { margin: 0 0 12px !important; padding: 0 !important; font-family: var(--tm-titre); font-weight: 700; font-size: 18px; letter-spacing: .08em; text-transform: uppercase; color: var(--tm-nuit); }
.tm-partage .tm-partage__liste { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.tm-partage .tm-partage__liste li { margin: 0 !important; padding: 0 !important; list-style: none !important; background: none !important; }
.tm-partage .tm-partage__liste li::before, .tm-partage .tm-partage__liste li::marker { content: none !important; display: none !important; }
.tm-partage .tm-partage__liste li[hidden] { display: none !important; }
.tm-partage .tm-partage__btn { all: unset; box-sizing: border-box; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 18px; border: 1.5px solid #CBD4E1; border-radius: 999px; background: #FFFFFF; color: var(--tm-nuit) !important; font-family: var(--tm-sans); font-size: 15px; font-weight: 600; line-height: 1.2; text-decoration: none !important; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.tm-partage .tm-partage__btn:hover { background: var(--tm-nuit); border-color: var(--tm-nuit); color: #FFFFFF !important; }
.tm-partage .tm-partage__btn:focus-visible { outline: 3px solid var(--tm-jaune); outline-offset: 2px; }
.tm-partage .tm-partage__btn .tm-ico { font-size: 18px; }
.tm-partage .tm-partage__btn--natif { background: var(--tm-jaune); border-color: var(--tm-jaune); }
.tm-partage .tm-partage__btn--natif:hover { background: #FFD94F; border-color: #FFD94F; color: var(--tm-nuit) !important; }
.tm-partage .tm-partage__ok { min-height: 1.4em; margin: 10px 0 0 !important; padding: 0 !important; font-size: 14px; font-weight: 600; color: var(--tm-vert); }
.tm-partage-wrap { max-width: var(--tm-max); margin: 0 auto; padding: 0 var(--tm-gut) 30px; }
@media (max-width: 767px) {
	.tm-partage .tm-partage__liste { gap: 8px; }
	.tm-partage .tm-partage__btn { padding: 9px 14px; font-size: 14px; }
}

/* ==========================================================================
   Logo de l'en-tête BeTheme : le thème n'indique pas sa taille, la page
   « saute » quand il arrive (CLS). On réserve sa place à l'avance.
   « auto » : si le logo change un jour, ses vraies proportions reprennent le dessus.
   ========================================================================== */
#Top_bar #logo img { height: 100%; width: auto; aspect-ratio: auto 624 / 200; }

/* ==========================================================================
   Accessibilité du thème (pré-audit RGAA du 6 nov. 2026) — toutes les pages
   ========================================================================== */

/* C4 · Focus visible partout hors des blocs de l'extension (qui ont le leur) :
   anneau blanc + contour bleu nuit, lisible sur fond clair comme sur fond sombre. */
:is(#Top_bar, #Side_slide, #Subheader, #Content, #Footer, .cmplz-cookiebanner, .cmplz-manage-consent) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible:not(.tm-block *):not(.tm-block),
#back_to_top:focus-visible, .responsive-menu-toggle:focus-visible {
	outline: 3px solid var(--tm-nuit) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 2px #FFFFFF !important;
	border-radius: 3px;
}

/* C1 · Sous-menu ouvert au clavier (classe posée par tamnies.js). */
#Top_bar #menu li.tm-sous-ouvert > .sub-menu { display: block !important; opacity: 1 !important; visibility: visible !important; }
#Top_bar #menu .menu-toggle { cursor: pointer; }

/* C5 · Textes du thème trop pâles. */
#Content :is(.the_content_wrapper, .column_attr) :is(ul, ol) > li:not(.tm-block *):not(.dark *) { color: var(--tm-nuit-texte, #0C2A54); }
#Content :is(.post-meta, .post-footer, .date_label, .post-meta .date, .post-footer .date, .author-date) { color: #56616B !important; }
#Content h6:not(.tm-block *):not(.dark *) { color: #56616B; }

/* I5 · Liens repérables autrement que par la couleur dans les textes. */
#Content :is(.the_content_wrapper, .column_attr) :is(p, li, td, dd) a:not(.button):not([class*="tm-"]):not(.tm-block *) {
	text-decoration: underline !important;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

/* I7 · Carte Facebook : hauteur minimale, le texte peut grandir (espacement agrandi). */
.tm-block .tm-news-fin { height: auto; min-height: 196px; }

/* C6 · Plan du site [tm_plan_du_site]. */
.tm-plan { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px 48px; margin: 8px 0 32px; }
.tm-plan h2 { font-size: 24px; margin-bottom: 12px; }
.tm-plan ul { margin: 0 0 0 1.2em; }
.tm-plan ul ul { margin-top: 6px; }
.tm-plan li { margin-bottom: 6px; color: #0C2A54; }
.tm-plan a { text-decoration: underline; text-underline-offset: 3px; }

/* C3 · En-tête des articles (rubrique, titre H1, date), ajouté par l'extension. */
.tm-article-tete { margin: 0 0 28px; }
.tm-article-tete .tm-article-tete__rub { display: inline-block; margin: 0 0 12px !important; padding: 6px 12px !important; border-radius: 999px; background: var(--cb, var(--tm-bleu)); color: var(--ct, #FFFFFF); font-family: var(--tm-sans); font-weight: 700; font-size: 13px; line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; }
.tm-article-tete .tm-article-tete__titre { margin: 0 0 10px; font-family: var(--tm-titre); font-weight: 700; font-size: clamp(32px, 4.2vw, 48px); line-height: 1.05; color: var(--tm-nuit); text-transform: none; letter-spacing: 0; }
.tm-article-tete .tm-article-tete__date { margin: 0 !important; padding: 0 !important; color: #56616B; font-size: 16px; }
