/*
Theme Name: Littoral VBC
Description: Thème enfant de Twenty Twenty-Five pour le Littoral VBC : couleurs et polices du club, page d'équipe, bandeau des sponsors et mise en forme des données Swiss Volley.
Author: Littoral VBC
Template: twentytwentyfive
Version: 1.5.1
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: littoral-vbc
*/

/* ---------- Page structure ---------- */
body .wp-site-blocks > * { margin-block-start: 0; }
.lv-main { margin-block-start: 0; }

/* ---------- Header ---------- */
.lv-header { border-bottom: 1px solid var(--wp--preset--color--accent-6); background: var(--wp--preset--color--base); }
.lv-logo { margin: 0; }
.lv-logo img { height: 56px; width: auto; display: block; }
.lv-nav { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 600; font-size: 1.1875rem; text-transform: uppercase; letter-spacing: 0.04em; }
.lv-nav a { text-decoration: none; }
/* Current section underlined in the desktop menu only (top level). */
@media (min-width: 600px) {
	.lv-nav .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
	.lv-nav .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-3); box-shadow: inset 0 -3px 0 var(--wp--preset--color--accent-1); }
}

/* Phone menu: left-aligned, submenus fold out on tap (assets/js/menu.js). */
.lv-nav .wp-block-navigation__responsive-container.is-menu-open { --navigation-layout-justification-setting: flex-start; --navigation-layout-align: flex-start; --navigation-layout-justify: flex-start; }
.lv-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.lv-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.lv-nav .is-menu-open .wp-block-navigation__container,
.lv-nav .is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.lv-nav .is-menu-open .wp-block-navigation__container { gap: 0.4rem !important; width: 100%; }
.lv-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.lv-nav .is-menu-open .wp-block-navigation-item__content { padding: 0.45rem 0 !important; font-size: 1.375rem; }
.lv-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { display: none !important; }
.lv-nav .is-menu-open .wp-block-navigation-submenu.lv-open > .wp-block-navigation__submenu-container { display: flex !important; flex-direction: column; gap: 0.1rem !important; padding: 0 0 0.4rem 1.1rem !important; border-left: 3px solid var(--wp--preset--color--accent-1); margin-left: 0.2rem; }
.lv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.1875rem; }
.lv-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--barlow); text-transform: none; font-weight: 500; font-size: 1.0625rem; letter-spacing: 0; }
.lv-nav .is-menu-open li.wp-block-navigation-submenu { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; }
.lv-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container { flex-basis: 100%; }
.lv-nav .is-menu-open li.wp-block-navigation-submenu > .wp-block-navigation-item__content { flex: 0 0 auto !important; width: auto !important; }
.lv-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content:not([href]) { cursor: pointer; }
.lv-nav .wp-block-navigation-item__content:focus:not(:focus-visible) { outline: none; }
/* Arrow button next to each section: always tappable, even when the label is a link. */
.lv-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 0 0.25rem; padding: 0; background: none; border: 0; color: inherit; cursor: pointer; }
.lv-nav .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon svg { display: block; width: 14px; height: 14px; stroke-width: 2.5; transition: transform 0.15s; }
.lv-nav .is-menu-open .wp-block-navigation-submenu.lv-open > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.lv-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--wp--preset--color--accent-3); }

/* ---------- Dark bands (home hero, team title) ---------- */
.lv-hero, .lv-band { position: relative; overflow: hidden; background: var(--wp--preset--color--contrast); color: #FFFFFF; }
.lv-hero > *, .lv-band > * { position: relative; z-index: 1; }
.lv-hero::before, .lv-band::before { content: ""; position: absolute; top: -40px; right: 12%; width: 22px; height: 160%; background: var(--wp--preset--color--accent-1); transform: rotate(-12deg); }
.lv-hero::after { content: ""; position: absolute; top: 150px; right: -60px; width: 620px; height: 22px; background: var(--wp--preset--color--accent-1); transform: rotate(14deg); }
.lv-hero { padding-top: 6rem; padding-bottom: 5.5rem; }
.lv-band { padding-top: 2.25rem; padding-bottom: 2.75rem; }
.lv-hero h1 { font-size: clamp(3rem, 7vw, 5.25rem); line-height: 0.95; margin: 0; color: #FFFFFF; }
.lv-band .wp-block-post-title { text-transform: uppercase; }
.lv-band h1 { font-size: clamp(2.5rem, 6vw, 4.25rem); line-height: 1; margin: 0; color: #FFFFFF; }
.lv-hero p, .lv-band p { color: var(--wp--preset--color--accent-6); }
.lv-hero .lv-lead { font-size: 1.25rem; max-width: 560px; }
.lv-kicker, .lv-band .lv-subtitle { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; color: var(--wp--preset--color--accent-2) !important; font-size: 1.25rem; margin: 0; }
.lv-hero a:not(.wp-element-button), .lv-band a:not(.wp-element-button) { color: var(--wp--preset--color--accent-2); }
.lv-hero .is-style-outline .wp-block-button__link { color: #FFFFFF; border-color: #FFFFFF; background: transparent; }

/* ---------- Sections ---------- */
.lv-section { padding-top: 4rem; padding-bottom: 4rem; }
.lv-section-light { background: var(--wp--preset--color--accent-5); }
.lv-section h2 { margin: 0; }

/* News cards */
.lv-news .wp-block-post-featured-image img { border-radius: 6px; }
.lv-news .wp-block-post-date { font-size: 0.875rem; color: var(--wp--preset--color--accent-4); }
.lv-news .wp-block-post-terms a { font-weight: 600; text-decoration: none; }
.lv-news .wp-block-post-title { font-size: 1.625rem; line-height: 1.1; text-transform: none; }
.lv-news .wp-block-post-title a { text-decoration: none; color: inherit; }

/* ---------- Sponsors band ---------- */
.lv-sponsors { border-top: 1px solid var(--wp--preset--color--accent-6); border-bottom: 1px solid var(--wp--preset--color--accent-6); padding-top: 2.5rem; padding-bottom: 2.5rem; }
.lv-sponsors .lv-kicker { color: var(--wp--preset--color--accent-4) !important; text-align: center; font-size: 1.125rem; }
.lv-marquee { display: block !important; overflow: hidden; }
.lv-marquee .lv-track { display: flex; gap: 24px; width: max-content; align-items: center; }
.lv-marquee.is-moving .lv-track { animation: lv-scroll var(--lv-duration, 40s) linear infinite; }
.lv-marquee:hover .lv-track, .lv-marquee:focus-within .lv-track { animation-play-state: paused; }
.lv-marquee .wp-block-image { margin: 0; flex: 0 0 auto; }
.lv-marquee img { height: 84px; width: auto; max-width: 200px; object-fit: contain; }
@keyframes lv-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
	.lv-marquee .lv-track { flex-wrap: wrap; width: auto; justify-content: center; animation: none !important; }
}

/* Buttons keep a fixed size: white on the logo blue needs large text to stay readable. */
.wp-block-button__link, .wp-element-button { font-size: 1.1875rem; }

/* ---------- Team page ---------- */
.lv-team-cols, .lv-team-data { margin-top: 2.5rem; gap: 2rem; }
.lv-team-data { padding-bottom: 4rem; }
.lv-team-cols h2, .lv-team-data h2 { margin-bottom: 1rem; }
.lv-team-photo img, .lv-coach-photo img { border-radius: 6px; }
.lv-team-photo { margin: 0 0 2rem; }
.lv-trainings { gap: 1rem; }
.lv-training { background: var(--wp--preset--color--accent-5); border-radius: 6px; padding: 1.1rem 1.25rem; }
.lv-training p { margin: 0; }
.lv-training .lv-day { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.5rem; text-transform: uppercase; color: var(--wp--preset--color--accent-3); }
.lv-training .lv-time { font-weight: 600; }
.lv-box { border: 1px solid var(--wp--preset--color--accent-6); border-radius: 6px; padding: 1.4rem; }
.lv-box h2, .lv-next h2 { font-size: 1.375rem; letter-spacing: 0.06em; color: var(--wp--preset--color--accent-4); margin: 0 0 0.75rem; }
.lv-coach-photo { margin: 0; flex: 0 0 auto; }
.lv-coach-photo img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.lv-coach-name { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.625rem; line-height: 1.1; margin: 0; }
.lv-box .wp-block-buttons, .lv-box .wp-block-button, .lv-box .wp-block-button__link { width: 100%; text-align: center; }
.lv-next { background: var(--wp--preset--color--contrast); color: #FFFFFF; border-radius: 6px; padding: 1.4rem; margin-top: 1.5rem; }
.lv-next h2 { color: var(--wp--preset--color--accent-2); }

/* ---------- Swiss Volley plugin output ---------- */
.club-next-match-item { display: flex; flex-direction: column; gap: 0.35rem; }
.club-next-match-item + .club-next-match-item { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.club-next-match-item p { margin: 0; }
.club-next-match-item p:first-child { font-family: var(--wp--preset--font-family--barlow-condensed); font-size: 1.5rem; line-height: 1.15; text-transform: capitalize; }
.club-next-match-item p:nth-child(3) { font-size: 0.9375rem; color: #B8C4CF; }
.club-next-match-item p:nth-child(4) { font-size: 0.9375rem; color: var(--wp--preset--color--accent-6); }
.lv-next .club-sv-fallback a, .lv-next .club-sv-none { color: var(--wp--preset--color--accent-2); }

.club-last-results { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.club-last-results li { background: var(--wp--preset--color--accent-5); border-radius: 6px; padding: 1rem 1.1rem; }
.club-last-results strong { font-family: var(--wp--preset--font-family--barlow-condensed); font-size: 1.5rem; line-height: 1; color: var(--wp--preset--color--accent-3); padding: 0 0.35rem; }
.club-last-results small { display: block; font-size: 0.875rem; color: var(--wp--preset--color--accent-4); }

.club-ranking { width: 100%; border-collapse: collapse; font-size: 1rem; }
.club-ranking th { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.9375rem; color: var(--wp--preset--color--accent-4); text-align: right; padding: 0.6rem 0.75rem; border-bottom: 2px solid var(--wp--preset--color--contrast); }
.club-ranking td { padding: 0.7rem 0.75rem; border-bottom: 1px solid var(--wp--preset--color--accent-6); text-align: right; }
.club-ranking th:nth-child(2), .club-ranking td:nth-child(2) { text-align: left; }
.club-ranking tr.is-own td { background: #E8F2FB; font-weight: 600; }
.club-ranking tr.is-own td:first-child { box-shadow: inset 4px 0 0 var(--wp--preset--color--accent-1); }
.lv-ranking-wrap, .lv-team-data .wp-block-column:has(.club-ranking) { overflow-x: auto; }
.club-ranking th, .club-ranking td { white-space: nowrap; }
.club-ranking td:nth-child(2) { white-space: normal; }
@media (max-width: 600px) {
	.club-ranking { font-size: 0.9375rem; }
	.club-ranking th, .club-ranking td { padding: 0.55rem 0.4rem; }
	/* On phones keep Rg, Équipe, J, Pts, Sets: won/lost columns are dropped. */
	.club-ranking th:nth-child(5), .club-ranking td:nth-child(5),
	.club-ranking th:nth-child(6), .club-ranking td:nth-child(6) { display: none; }
}

/* ---------- Footer ---------- */
.lv-footer { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--accent-6); padding-top: 3.5rem; padding-bottom: 1.75rem; }
.lv-footer p { margin: 0; }
.lv-footer a { color: var(--wp--preset--color--accent-2); }
.lv-footer-title { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.875rem; text-transform: uppercase; color: #FFFFFF; }
.lv-footer-title::after { content: ""; display: block; width: 48px; height: 5px; margin-top: 0.6rem; background: var(--wp--preset--color--accent-1); }
.lv-footer-label { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.125rem; letter-spacing: 0.08em; text-transform: uppercase; color: #FFFFFF; margin-bottom: 0.5rem !important; }
.lv-footer .wp-block-social-links .wp-social-link { background: transparent; border: 1px solid #55606B; color: #FFFFFF; }
.lv-footer .wp-block-social-links .wp-social-link a { padding: 0.6rem; color: #FFFFFF; }
.lv-footer-bottom { margin-top: 2.5rem; padding-top: 1.1rem; border-top: 1px solid #3A3F45; font-size: 0.875rem; }
.lv-footer-bottom, .lv-footer-bottom a { color: #B8C4CF; }

/* ---------- Small screens ---------- */
@media (max-width: 781px) {
	.lv-hero { padding-top: 4rem; padding-bottom: 4rem; }
	.lv-hero::after { display: none; }
}

/* ---------- Content pages (patterns page-*.php) ---------- */
.lv-text { max-width: 760px; }
.lv-section .wp-block-heading + * { margin-top: 0.75rem; }
.lv-section .lv-cards, .lv-section .lv-logos { margin-top: 1.5rem; gap: 1.25rem; }
.lv-section > .alignwide > .wp-block-buttons { margin-top: 1.5rem; }
.lv-card { background: var(--wp--preset--color--accent-5); border-radius: 6px; padding: 1.4rem 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; }
.lv-section-light .lv-card { background: var(--wp--preset--color--base); box-shadow: 0 1px 2px rgba(35, 31, 32, 0.08); }
.lv-card > * { margin: 0 !important; }
.lv-card h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.lv-card h3 { font-size: 1.625rem; line-height: 1.1; }
.lv-card .wp-block-buttons { margin-top: auto !important; padding-top: 0.5rem; }
.lv-role { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.9375rem; color: var(--wp--preset--color--accent-3); }
.lv-person { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.625rem; line-height: 1.1; }
.lv-team-league { color: var(--wp--preset--color--accent-4); font-weight: 600; }
.lv-status { align-self: flex-start; font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; color: #FFFFFF; background: var(--wp--preset--color--accent-3); padding: 0.2rem 0.6rem; border-radius: 3px; }
.lv-step { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 3rem; line-height: 1; color: var(--wp--preset--color--accent-1); }
.lv-logos .wp-block-image { margin: 0; background: var(--wp--preset--color--base); border-radius: 6px; padding: 1rem; display: flex; align-items: center; justify-content: center; min-height: 110px; }
.lv-logos img { max-height: 84px; width: auto; max-width: 100%; object-fit: contain; }
.lv-text .wp-block-heading:not(:first-child) { margin-top: 2.5rem; }
.lv-cards-split { grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr)) !important; }
.lv-sponsor-split > .lv-card:last-child { background: var(--wp--preset--color--contrast); color: #FFFFFF; }
.lv-sponsor-split > .lv-card:last-child a:not(.wp-element-button) { color: var(--wp--preset--color--accent-2); }
.lv-table { margin: 1.5rem 0 0; }
.lv-table table { border-collapse: collapse; width: 100%; }
.lv-table th { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.9375rem; color: var(--wp--preset--color--accent-4); text-align: left; border: 0; border-bottom: 2px solid var(--wp--preset--color--contrast); padding: 0.6rem 0.75rem; }
.lv-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: 0.7rem 0.75rem; }
.lv-table td:last-child { font-weight: 600; }
.lv-more { margin-top: 1.25rem; font-weight: 600; }

/* ---------- Club matches list ([club_matches]) ---------- */
.club-matches { display: flex; flex-direction: column; gap: 1.25rem; margin-top: 1.5rem; }
.club-matches-day { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.25rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--accent-3); margin: 0 0 0.5rem; }
.club-matches ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.club-matches li { background: var(--wp--preset--color--base); border-radius: 6px; padding: 0.85rem 1.1rem; display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: 0.25rem 1rem; align-items: baseline; box-shadow: 0 1px 2px rgba(35, 31, 32, 0.08); }
.club-matches .cm-time { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 1.375rem; }
.club-matches .cm-teams strong { color: var(--wp--preset--color--accent-3); }
.club-matches .cm-where { font-size: 0.9375rem; color: var(--wp--preset--color--accent-4); text-align: right; }
.club-matches .cm-comp { font-size: 0.8125rem; color: var(--wp--preset--color--accent-4); grid-column: 2; }
@media (max-width: 600px) {
	.club-matches li { grid-template-columns: 3.75rem minmax(0, 1fr); }
	.club-matches .cm-where { grid-column: 2; text-align: left; }
}

/* ---------- Page introuvable (404) ---------- */
.lv-404 { padding-top: 3.5rem; padding-bottom: 4.5rem; }
.lv-404 .wp-block-columns { gap: 3rem; }
.lv-404 h1 { font-size: clamp(4.5rem, 11vw, 8rem); line-height: 0.9; color: var(--wp--preset--color--accent-1); margin: 0.25rem 0; }
.lv-404-lead { font-family: var(--wp--preset--font-family--barlow-condensed); font-weight: 700; font-size: 2rem; text-transform: uppercase; margin: 0 0 1rem; }
.lv-404 .wp-block-buttons { margin-top: 1.5rem; }
.lv-404-search { margin-top: 2rem; max-width: 26rem; }
.lv-404-search .wp-block-search__label { font-weight: 600; }
.lv-404-image { margin: 0; }
.lv-404-image img { width: 100%; height: auto; border-radius: 6px; display: block; }

/* Badge "Complet" en rouge (classe ajoutée automatiquement, voir functions.php). */
.lv-status.is-full { background: #C62828; }

/* ---------- Marqueurs ([scorers], plugin club-scorers) ---------- */
.club-scorers .cm-scorers { grid-column: 2 / -1; font-weight: 600; color: var(--wp--preset--color--accent-3); }
.club-scorers .cm-scorers.is-missing { color: var(--wp--preset--color--accent-4); font-weight: 400; font-style: italic; }

/* Events (articles of the Événements category) */
.lv-news .lv-event-when { font-weight: 600; color: var(--wp--preset--color--accent-3); }
.lv-news .lv-event-meta { margin: 0 0 0.25rem; font-size: 0.9375rem; font-weight: 600; color: var(--wp--preset--color--accent-4); }
.lv-event-box { border-left: 4px solid var(--wp--preset--color--accent-1); background: var(--wp--preset--color--accent-5); padding: 0.875rem 1.125rem; margin: 0 0 1.75rem; border-radius: 0 6px 6px 0; }
.lv-event-box p { margin: 0.2rem 0; }
.lv-event-box strong { display: inline-block; min-width: 3.5rem; }
.lv-event-past { font-style: italic; color: var(--wp--preset--color--accent-4); }

.lv-home-events { margin-top: var(--wp--preset--spacing--60, 3rem); }

/* Header: Instagram and Facebook icons to the right of the menu (left of the menu button on phones). */
.lv-header-right { gap: 1.25rem; }
.lv-header-social.wp-block-social-links { gap: 0.25rem; margin: 0; padding-left: 1.25rem; border-left: 1px solid var(--wp--preset--color--accent-6); }
.lv-header-social .wp-social-link { color: var(--wp--preset--color--contrast); }
.lv-header-social .wp-social-link a { padding: 0.4rem; }
.lv-header-social .wp-social-link svg { width: 22px; height: 22px; }
.lv-header-social .wp-social-link:hover,
.lv-header-social .wp-social-link:focus-within { color: var(--wp--preset--color--accent-3); transform: none; }
@media (max-width: 599px) {
	.lv-header-right { gap: 0.5rem; }
	.lv-header-social { order: -1; }
	.lv-header-social.wp-block-social-links { padding-left: 0; border-left: 0; }
}
