/* Thème TVS — compléments aux styles de theme.json */

:root {
	--tvs-navy: var(--wp--preset--color--navy, #10233f);
	--tvs-green: var(--wp--preset--color--green, #1d8a4b);
	--tvs-green-dark: var(--wp--preset--color--green-dark, #16703c);
	--tvs-green-soft: var(--wp--preset--color--green-soft, #e7f4ec);
	--tvs-ink-2: var(--wp--preset--color--ink-2, #4a5566);
	--tvs-line: var(--wp--preset--color--line, #e2e6ec);
	--tvs-radius: 14px;
	--tvs-shadow: 0 1px 2px rgba(16, 35, 63, .06), 0 6px 20px rgba(16, 35, 63, .06);
}

h1, h2, h3, h4 { text-wrap: balance; }

/* Colonne de gauche (menu), comme l'ancien wiki */
.tvs-sidebar { background: #fff; border-right: 1px solid var(--tvs-line); box-sizing: border-box; }
.tvs-logo { display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none !important; color: var(--tvs-navy) !important; }
.tvs-logo img { display: block; width: 140px; height: auto; image-rendering: auto; }
.tvs-logo-name { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.15rem; line-height: 1.1; text-align: center; text-transform: uppercase; letter-spacing: .02em; }
.tvs-sidenav { font-size: .95rem; }
.tvs-sidenav .wp-block-navigation-item { width: 100%; flex-direction: column; align-items: stretch !important; }
.wp-site-blocks > header.wp-block-template-part + * { margin-block-start: 0 !important; }
.tvs-sidenav .wp-block-navigation-item__content { display: block; width: 100%; box-sizing: border-box; padding: 6px 10px; border-radius: 8px; color: var(--wp--preset--color--ink, #1b2533); text-decoration: none; }
.tvs-sidenav .wp-block-navigation-item__content:hover { background: var(--tvs-green-soft); color: var(--tvs-green-dark); }
.tvs-sidenav .current-menu-item > .wp-block-navigation-item__content,
.tvs-sidenav .wp-block-navigation-item__content[aria-current="page"] { background: var(--tvs-green-soft); color: var(--tvs-green-dark); font-weight: 600; }
.tvs-sidenav .has-child > .wp-block-navigation-item__content { font-weight: 600; }
/* Sous-menus toujours dépliés dans la colonne */
.tvs-sidenav .wp-block-navigation__submenu-icon { display: none !important; }
.tvs-sidenav .has-child .wp-block-navigation__submenu-container {
	position: static !important; visibility: visible !important; opacity: 1 !important; overflow: visible !important;
	width: auto !important; height: auto !important; min-width: 0 !important; left: auto !important; top: auto !important;
	border: 0 !important; border-left: 2px solid var(--tvs-line) !important; box-shadow: none !important; background: transparent !important;
	margin: 2px 0 6px 12px !important; padding: 0 0 0 4px !important; font-size: .9rem;
}
.tvs-sidenav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 4px 10px; color: var(--tvs-ink-2); }
.tvs-sidenav .tvs-nav-membres { margin-top: 8px; }
.tvs-sidenav .tvs-nav-membres > .wp-block-navigation-item__content { background: var(--tvs-navy); color: #fff !important; text-align: center; font-weight: 600; }
.tvs-sidenav .tvs-nav-membres > .wp-block-navigation-item__content:hover { background: var(--tvs-green-dark); }
.tvs-side-bottom { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--tvs-line); font-size: .85rem; }
.tvs-side-strava { color: #fc4c02 !important; font-weight: 600; text-decoration: none; }
.tvs-side-strava::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 6px; background: #fc4c02; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.tvs-side-feds { display: flex; gap: 14px; align-items: center; }
.tvs-side-feds img { display: block; height: auto; }

@media (min-width: 1024px) {
	.wp-site-blocks { padding-left: 260px; }
	.wp-site-blocks > header.wp-block-template-part {
		position: fixed; top: 0; left: 0; bottom: 0; width: 260px; z-index: 40; overflow-y: auto; overflow-x: hidden; margin: 0 !important;
	}
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
	.tvs-sidebar { min-height: 100%; padding: 22px 16px 24px; display: flex; flex-direction: column; gap: 1.25rem; }
	.tvs-sidenav .wp-block-navigation__container { width: 100%; align-items: stretch !important; }
	.tvs-sidenav, .tvs-sidenav .wp-block-navigation__responsive-container-content { width: 100%; }
}

/* Tablette et téléphone : barre en haut avec bouton menu */
@media (max-width: 1023px) {
	.wp-site-blocks > header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
	.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 46px); }
	.tvs-sidebar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px max(16px, 4vw); border-right: 0; border-bottom: 1px solid var(--tvs-line); }
	.tvs-logo { flex-direction: row; gap: 10px; }
	.tvs-logo img { width: 84px; }
	.tvs-logo-name { text-align: left; font-size: 1rem; }
	.tvs-sidebar > .tvs-side-bottom { display: none; }
	.tvs-sidenav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.tvs-sidenav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.tvs-sidenav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
	.tvs-sidenav .wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
	.tvs-sidenav .is-menu-open .wp-block-navigation__container { width: 100%; }
}

/* Bandeau d'accueil : panorama, nom du club, deux boutons */
.tvs-hero { padding-top: 2rem !important; padding-bottom: 1.75rem !important; }
.tvs-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(16, 35, 63, .88) 0%, rgba(16, 35, 63, .45) 45%, rgba(16, 35, 63, .05) 100%) !important; opacity: 1 !important; }
.tvs-hero .wp-block-cover__inner-container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: max(16px, 4vw); box-sizing: border-box; }
.tvs-hero-title { font-size: clamp(1.7rem, 3.4vw, 2.7rem) !important; line-height: 1.05; margin: 0 0 1rem !important; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.tvs-hero .wp-block-buttons { gap: 10px; }
.tvs-hero-credit { position: absolute; right: 0; bottom: -1.45rem; padding-right: inherit; margin: 0; font-size: .7rem; color: rgba(255, 255, 255, .7); }
@media (max-width: 781px) {
	.tvs-hero { min-height: 260px !important; }
	.tvs-hero .wp-block-cover__image-background { object-position: 10% 40% !important; }
	.tvs-hero-credit { display: none; }
}

/* Bandeau de titre des pages */
.tvs-page-head h1 { margin-top: .2em; }
.tvs-page-head a { color: #cfe9d9; }
.tvs-meta-light, .tvs-meta-light a { color: #c9d4e3 !important; font-size: .9rem; }
.tvs-tag a, .tvs-tag { text-decoration: none; }
.tvs-tag a {
	display: inline-block; background: var(--tvs-green-soft); color: var(--tvs-green-dark) !important; border-radius: 99px; padding: 2px 10px; font-size: .78rem;
}
.tvs-tag-light a { background: rgba(255, 255, 255, .14); color: #fff !important; }
.tvs-tag .wp-block-post-terms__separator { display: none; }

/* Cartes d'actualités */
.tvs-cards .wp-block-post-template { gap: 20px; }
.tvs-card {
	background: #fff; border-radius: var(--tvs-radius); box-shadow: var(--tvs-shadow); overflow: hidden; height: 100%;
	padding-bottom: 16px;
}
.tvs-card > *:not(.tvs-card-img) { padding-left: 18px; padding-right: 18px; }
.tvs-card .wp-block-post-title { font-size: 1.25rem; margin: 0; }
.tvs-card .wp-block-post-title a { text-decoration: none; }
.tvs-card .wp-block-post-excerpt { color: var(--tvs-ink-2); font-size: .93rem; margin: 0; }
.tvs-card .wp-block-post-excerpt__more-text { display: none; }
.tvs-card-img { margin: 0 !important; width: 100%; background: linear-gradient(135deg, var(--tvs-green-soft), #e6ecf5); min-height: 120px; }
.tvs-card-img img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block; }

/* Filtres des actualités */
.tvs-filters { margin-bottom: 1.5rem; gap: 12px; }
.tvs-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.tvs-chips li a { display: inline-block; border: 1px solid var(--tvs-line); background: #fff; border-radius: 99px; padding: 5px 12px; font-size: .88rem; color: var(--tvs-ink-2); text-decoration: none; }
.tvs-chips li.current-cat a { background: var(--tvs-navy); border-color: var(--tvs-navy); color: #fff; }
.tvs-filters .wp-block-search { min-width: min(100%, 320px); }
.tvs-filters .wp-block-search__input { border-radius: 10px 0 0 10px; border-color: var(--tvs-line); }

/* Contenu */
.tvs-prose { background: #fff; border-radius: var(--tvs-radius); box-shadow: var(--tvs-shadow); padding: clamp(18px, 4vw, 40px) !important; }
.tvs-prose img { border-radius: 10px; height: auto; }
.tvs-prose figure { margin: 1.25rem 0; }
.tvs-prose figcaption { font-size: .85rem; color: var(--tvs-ink-2); text-align: center; }
.tvs-prose table { font-size: .9rem; }
.tvs-cover img { border-radius: 10px; max-height: 480px; object-fit: cover; width: 100%; }
.tvs-comments { margin-top: 2rem; border-top: 1px solid var(--tvs-line); padding-top: 1rem; }
.tvs-comment { border-bottom: 1px solid var(--tvs-line); }

/* Photos des auteurs */
.wp-block-avatar img, .wp-block-post-author__avatar img, img.avatar { border-radius: 50%; object-fit: cover; }
.tvs-byline .wp-block-post-author { align-items: center; }
.tvs-byline .wp-block-post-author__avatar img { border: 2px solid rgba(255, 255, 255, .7); }
.tvs-byline .wp-block-post-author__byline { color: #c9d4e3; font-size: .8rem; }
.tvs-byline .wp-block-post-author__name { color: #fff; font-weight: 600; }
.tvs-card-meta { margin-top: auto; font-size: .85rem; color: var(--tvs-ink-2); }
.tvs-card-meta .wp-block-post-author { align-items: center; gap: 6px; }
.tvs-card-meta .wp-block-post-author__avatar { margin: 0; }
.tvs-card-meta .wp-block-post-author__content { font-size: .85rem; }
.tvs-card-meta .wp-block-post-date::before { content: "·"; margin-right: .5rem; }

/* Article : texte à gauche, toutes les photos à droite */
.tvs-article-cols { align-items: flex-start !important; }
.tvs-aside { position: sticky; top: 16px; }
.admin-bar .tvs-aside { top: 48px; }
.tvs-photos { background: #fff; border-radius: var(--tvs-radius); box-shadow: var(--tvs-shadow); padding: 16px; }
.tvs-photos h2 { font-size: 1.2rem; margin: 0 0 .25rem; }
.tvs-photos-count { font-size: .82rem; color: var(--tvs-ink-2); margin: 0 0 .75rem; }
.tvs-photos-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.tvs-photos-grid a { display: block; border-radius: 6px; overflow: hidden; background: var(--tvs-green-soft); }
.tvs-photos-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform .2s; }
.tvs-photos-grid a:hover img { transform: scale(1.05); }
.tvs-photos-grid a[hidden] { display: none; }
.tvs-article-cols:not(:has(.tvs-photos)) > .tvs-aside { display: none; }
.tvs-article-cols:not(:has(.tvs-photos)) > .wp-block-column:first-child { flex-basis: 100% !important; max-width: 880px; }
.tvs-photos-more { margin-top: .75rem; width: 100%; }
.tvs-photos-hint { font-size: .82rem; color: var(--tvs-ink-2); background: var(--tvs-green-soft); border-radius: 8px; padding: 8px 10px; margin-top: .75rem; }
@media (max-width: 781px) {
	.tvs-aside { position: static; }
	.tvs-photos-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Pied de page */
.tvs-footer a { color: #cfe9d9; }
.tvs-footer h4 { font-family: var(--wp--preset--font-family--inter); font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; }
.tvs-legal { border-top: 1px solid rgba(255, 255, 255, .15); padding-top: 1rem; color: #8ea0ba; }

@media (max-width: 781px) {
	.tvs-cards .wp-block-post-template { grid-template-columns: 1fr !important; }
}
