/*
Theme Name:   Trivyum Child
Theme URI:    https://trivyum.co
Description:  Theme enfant Blocksy pour le site Trivyum Sport Agency. CSS custom integre directement (palette or/noir, typo Cormorant Garamond + Inter, sections premium).
Author:       Trivyum
Author URI:   https://trivyum.co
Template:     blocksy
Version:      1.3.2
Requires at least: 6.0
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:  trivyum-child
*/

/* =====================================================================
   TRIVYUM — CSS custom
   A coller dans : Apparence > Personnaliser > CSS supplementaire
   ---------------------------------------------------------------------
   Charte :
   - Or principal       #C9A961
   - Or accent / hover  #D4AF37
   - Noir BG            #0A0A0A
   - Blanc              #FFFFFF
   - Texte fond clair   #1A1A1A
   - Texte fond sombre  #F5F5F5
   - Titres : Cormorant Garamond (serif)
   - Body  : Inter (sans-serif)
   ===================================================================== */


/* ---------- 1. Variables CSS ---------- */
:root {
	--triv-gold:         #C9A961;
	--triv-gold-accent:  #D4AF37;
	--triv-black:        #0A0A0A;
	--triv-white:        #FFFFFF;
	--triv-text-light:   #1A1A1A;
	--triv-text-dark:    #F5F5F5;
	--triv-link:         #C9A961;

	--triv-font-title:   "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--triv-font-body:    "Inter", "Helvetica Neue", Arial, sans-serif;

	--triv-radius:       2px;
	--triv-shadow-soft:  0 6px 28px rgba(0, 0, 0, 0.18);
	--triv-transition:   200ms ease-in-out;
}


/* ---------- 2. Typographie globale ---------- */
body,
.entry-content,
.elementor-widget-text-editor,
.elementor-widget-heading {
	font-family: var(--triv-font-body);
	color: var(--triv-text-light);
	font-size: 17px;
	line-height: 1.65;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
	font-family: var(--triv-font-title);
	font-weight: 500;
	color: var(--triv-text-light);
	letter-spacing: 0.6px;
	line-height: 1.18;
	margin: 0 0 0.5em;
}

h1, .elementor-heading-title.h1 {
	font-size: 64px;
	letter-spacing: 1px;
	font-weight: 500;
}
h2, .elementor-heading-title.h2 { font-size: 44px; }
h3, .elementor-heading-title.h3 { font-size: 30px; }
h4 { font-size: 24px; }
h5 { font-size: 20px; }
h6 { font-size: 17px; letter-spacing: 1.2px; text-transform: uppercase; }

p { margin: 0 0 1.2em; }

a {
	color: var(--triv-link);
	text-decoration: none;
	transition: color var(--triv-transition);
}
a:hover,
a:focus {
	color: var(--triv-gold-accent);
	text-decoration: none;
}

/* Mobile typographie */
@media (max-width: 768px) {
	body { font-size: 16px; }
	h1, .elementor-heading-title.h1 { font-size: 40px; letter-spacing: 0.6px; }
	h2, .elementor-heading-title.h2 { font-size: 30px; }
	h3, .elementor-heading-title.h3 { font-size: 24px; }
	h4 { font-size: 20px; }
}


/* ---------- 3. Etiquettes "surelevees" (eyebrows) ---------- */
.triv-eyebrow {
	font-family: var(--triv-font-body);
	text-transform: uppercase;
	letter-spacing: 3px;
	font-size: 12px;
	font-weight: 500;
	color: var(--triv-gold);
	display: inline-block;
	margin-bottom: 14px;
}


/* ---------- 4. Sections sombres ---------- */
.triv-section-dark,
.elementor-section.triv-section-dark {
	background-color: var(--triv-black);
	color: var(--triv-text-dark);
}
.triv-section-dark h1,
.triv-section-dark h2,
.triv-section-dark h3,
.triv-section-dark h4,
.triv-section-dark h5,
.triv-section-dark h6,
.triv-section-dark .elementor-heading-title {
	color: var(--triv-white);
}
.triv-section-dark p,
.triv-section-dark li {
	color: var(--triv-text-dark);
}
.triv-section-dark a {
	color: var(--triv-gold);
}
.triv-section-dark a:hover {
	color: var(--triv-gold-accent);
}


/* ---------- 5. Header — transparent sur home, sombre ailleurs ---------- */
.ct-header {
	transition:
		background-color var(--triv-transition),
		padding var(--triv-transition),
		box-shadow var(--triv-transition);
}

/* Home : header transparent par-dessus le hero */
body.home .ct-header [data-row="middle"] {
	background-color: transparent !important;
	box-shadow: none;
}
body.home .ct-header [data-row="middle"] a,
body.home .ct-header [data-row="middle"] .ct-menu-link-text {
	color: var(--triv-white);
}

/* Autres pages : header noir */
body:not(.home) .ct-header [data-row="middle"] {
	background-color: var(--triv-black);
}
body:not(.home) .ct-header [data-row="middle"] a,
body:not(.home) .ct-header [data-row="middle"] .ct-menu-link-text {
	color: var(--triv-text-dark);
}

/* Sticky : retrecit doucement */
.ct-header.ct-sticky-active [data-row="middle"],
.ct-header[data-sticky="yes"][data-sticky-state="active"] [data-row="middle"] {
	background-color: var(--triv-black) !important;
	padding-top: 8px;
	padding-bottom: 8px;
	box-shadow: var(--triv-shadow-soft);
}

/* Menu items — hover dore */
.ct-header .menu-item a:hover .ct-menu-link-text,
.ct-header .menu-item a:focus .ct-menu-link-text {
	color: var(--triv-gold) !important;
}

/* Burger mobile dore */
.ct-toggle-button,
.ct-toggle-button svg {
	color: var(--triv-gold) !important;
	fill: var(--triv-gold) !important;
}


/* ---------- 6. Bouton CTA dans le menu (.menu-cta) ---------- */
.menu-cta > a,
.ct-header .menu-cta > a {
	display: inline-block;
	padding: 10px 22px !important;
	border: 1px solid var(--triv-gold);
	border-radius: var(--triv-radius);
	color: var(--triv-gold) !important;
	background-color: transparent;
	font-family: var(--triv-font-body);
	font-weight: 500;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	font-size: 13px;
	transition:
		background-color var(--triv-transition),
		color var(--triv-transition),
		border-color var(--triv-transition);
}
.menu-cta > a:hover,
.ct-header .menu-cta > a:hover {
	background-color: var(--triv-gold);
	color: var(--triv-black) !important;
	border-color: var(--triv-gold);
}
.menu-cta > a .ct-menu-link-text {
	color: inherit !important;
}


/* ---------- 7. Boutons primaires (CTA pleine page) ---------- */
.triv-btn,
.elementor-button.triv-btn,
.elementor-button-link.triv-btn {
	display: inline-block;
	padding: 14px 32px;
	background-color: var(--triv-gold);
	color: var(--triv-black);
	border: 1px solid var(--triv-gold);
	border-radius: var(--triv-radius);
	font-family: var(--triv-font-body);
	font-weight: 500;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	font-size: 13px;
	line-height: 1;
	cursor: pointer;
	transition:
		background-color var(--triv-transition),
		color var(--triv-transition),
		border-color var(--triv-transition),
		transform var(--triv-transition);
}
.triv-btn:hover,
.elementor-button.triv-btn:hover {
	background-color: var(--triv-gold-accent);
	border-color: var(--triv-gold-accent);
	color: var(--triv-black);
	transform: translateY(-1px);
}

/* Variante outline (sur fond sombre) */
.triv-btn-outline {
	background-color: transparent;
	color: var(--triv-gold);
	border: 1px solid var(--triv-gold);
}
.triv-btn-outline:hover {
	background-color: var(--triv-gold);
	color: var(--triv-black);
}


/* ---------- 8. Hero (home et pages internes) ---------- */
.triv-hero {
	min-height: 92vh;
	background-color: var(--triv-black);
	color: var(--triv-text-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 120px 24px 80px;
	position: relative;
	overflow: hidden;
}
.triv-hero::after {
	/* surcouche degradee pour la lisibilite si image de fond */
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.65) 100%);
	pointer-events: none;
	z-index: 1;
}
.triv-hero > * {
	position: relative;
	z-index: 2;
}
.triv-hero h1 {
	color: var(--triv-white);
	font-size: 72px;
	letter-spacing: 1.2px;
	margin-bottom: 18px;
}
.triv-hero .triv-hero-subtitle {
	font-family: var(--triv-font-body);
	font-size: 16px;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--triv-gold);
	margin-bottom: 36px;
}

/* Hero page interne (plus court) */
.triv-hero-page {
	min-height: 50vh;
	padding: 140px 24px 60px;
}
.triv-hero-page h1 { font-size: 56px; }

@media (max-width: 768px) {
	.triv-hero { min-height: 78vh; padding: 100px 18px 60px; }
	.triv-hero h1 { font-size: 42px; }
	.triv-hero .triv-hero-subtitle { font-size: 13px; letter-spacing: 3px; }
	.triv-hero-page { min-height: 38vh; padding: 110px 18px 50px; }
	.triv-hero-page h1 { font-size: 36px; }
}


/* ---------- 9. Bandeau positionnement (section 4 home) ---------- */
.triv-banner-positioning {
	background-color: var(--triv-black);
	color: var(--triv-white);
	text-align: center;
	padding: 90px 24px;
}
.triv-banner-positioning .triv-banner-line {
	font-family: var(--triv-font-title);
	font-size: 38px;
	line-height: 1.3;
	letter-spacing: 0.8px;
	max-width: 920px;
	margin: 0 auto 28px;
	color: var(--triv-white);
}
.triv-banner-positioning .triv-banner-license {
	font-family: var(--triv-font-body);
	font-size: 12px;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	color: var(--triv-gold);
}
@media (max-width: 768px) {
	.triv-banner-positioning { padding: 60px 18px; }
	.triv-banner-positioning .triv-banner-line { font-size: 26px; }
}


/* ---------- 10. Cartes 3 voies ---------- */
.triv-voies-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 992px) { .triv-voies-grid { grid-template-columns: 1fr; gap: 22px; } }

.triv-voie-card {
	background-color: var(--triv-white);
	border: 1px solid rgba(201, 169, 97, 0.25);
	padding: 36px 32px;
	transition: border-color var(--triv-transition), transform var(--triv-transition), box-shadow var(--triv-transition);
	height: 100%;
	display: flex;
	flex-direction: column;
}
.triv-voie-card:hover {
	border-color: var(--triv-gold);
	transform: translateY(-3px);
	box-shadow: var(--triv-shadow-soft);
}
.triv-voie-card .triv-voie-num {
	font-family: var(--triv-font-body);
	font-size: 12px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--triv-gold);
	margin-bottom: 10px;
}
.triv-voie-card h3 {
	font-family: var(--triv-font-title);
	font-size: 28px;
	margin-bottom: 4px;
}
.triv-voie-card .triv-voie-subtitle {
	font-family: var(--triv-font-title);
	font-style: italic;
	font-size: 17px;
	color: var(--triv-gold);
	margin-bottom: 18px;
}
.triv-voie-card p { color: var(--triv-text-light); }
.triv-voie-card ul {
	list-style: none;
	padding: 0;
	margin: 0 0 22px;
}
.triv-voie-card ul li {
	position: relative;
	padding-left: 18px;
	margin-bottom: 8px;
	font-size: 15px;
	line-height: 1.55;
}
.triv-voie-card ul li::before {
	content: "—";
	position: absolute;
	left: 0;
	color: var(--triv-gold);
}
.triv-voie-card .triv-voie-link {
	margin-top: auto;
	font-size: 13px;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	color: var(--triv-gold);
	font-weight: 500;
}
.triv-voie-card .triv-voie-link:hover {
	color: var(--triv-gold-accent);
}


/* ---------- 11. Section "Le fondateur" (teaser home + page Notre vision) ---------- */
.triv-founder {
	background-color: var(--triv-white);
	padding: 100px 24px;
}
.triv-founder-grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 60px;
	align-items: center;
	max-width: 1180px;
	margin: 0 auto;
}
.triv-founder img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(20%);
}
.triv-founder h2 { margin-bottom: 4px; }
.triv-founder .triv-founder-role {
	font-family: var(--triv-font-body);
	font-size: 13px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--triv-gold);
	margin-bottom: 22px;
}
@media (max-width: 900px) {
	.triv-founder { padding: 70px 18px; }
	.triv-founder-grid { grid-template-columns: 1fr; gap: 32px; }
}


/* ---------- 12. Listes de prestations (page Nos services) ---------- */
.triv-prestations {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px 40px;
}
@media (max-width: 768px) { .triv-prestations { grid-template-columns: 1fr; } }

.triv-prestation {
	border-left: 2px solid var(--triv-gold);
	padding: 4px 0 4px 20px;
}
.triv-prestation h4 {
	font-family: var(--triv-font-title);
	font-size: 22px;
	margin-bottom: 6px;
}
.triv-prestation p { margin: 0; font-size: 16px; line-height: 1.6; }


/* ---------- 13. Valeurs (page Notre vision) ---------- */
.triv-valeurs-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
}
@media (max-width: 992px) { .triv-valeurs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .triv-valeurs-grid { grid-template-columns: 1fr; } }

.triv-valeur-card {
	background-color: var(--triv-black);
	color: var(--triv-text-dark);
	padding: 32px 26px;
	border-top: 2px solid var(--triv-gold);
}
.triv-valeur-card h4 {
	color: var(--triv-white);
	margin-bottom: 12px;
	font-size: 22px;
}
.triv-valeur-card p {
	color: var(--triv-text-dark);
	font-size: 15px;
	line-height: 1.6;
}


/* ---------- 14. Formulaire WPForms — page Contact ---------- */
.wpforms-container {
	max-width: 760px;
	margin: 0 auto;
}
.wpforms-container .wpforms-field-label {
	font-family: var(--triv-font-body);
	font-size: 12px !important;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--triv-text-light);
	font-weight: 500 !important;
}
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container select,
.wpforms-container textarea {
	border: 1px solid #DDD !important;
	border-radius: var(--triv-radius) !important;
	background-color: var(--triv-white) !important;
	color: var(--triv-text-light) !important;
	font-family: var(--triv-font-body) !important;
	font-size: 16px !important;
	padding: 12px 14px !important;
	transition: border-color var(--triv-transition);
}
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
	border-color: var(--triv-gold) !important;
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(201, 169, 97, 0.15) !important;
}
.wpforms-container button[type="submit"],
.wpforms-container .wpforms-submit {
	background-color: var(--triv-gold) !important;
	color: var(--triv-black) !important;
	border: 1px solid var(--triv-gold) !important;
	border-radius: var(--triv-radius) !important;
	padding: 14px 32px !important;
	font-family: var(--triv-font-body) !important;
	font-weight: 500 !important;
	letter-spacing: 1.4px !important;
	text-transform: uppercase !important;
	font-size: 13px !important;
	cursor: pointer;
	transition: background-color var(--triv-transition);
}
.wpforms-container button[type="submit"]:hover {
	background-color: var(--triv-gold-accent) !important;
	border-color: var(--triv-gold-accent) !important;
}
.wpforms-confirmation-container {
	background-color: rgba(201, 169, 97, 0.08) !important;
	border-left: 3px solid var(--triv-gold) !important;
	color: var(--triv-text-light) !important;
	padding: 18px 22px !important;
}


/* ---------- 15. Footer ---------- */
.ct-footer,
.ct-footer [data-row] {
	background-color: var(--triv-black);
	color: var(--triv-text-dark);
}
.ct-footer h2,
.ct-footer h3,
.ct-footer h4,
.ct-footer h5,
.ct-footer h6 {
	color: var(--triv-white);
	font-family: var(--triv-font-title);
}
.ct-footer .ct-widget-title {
	font-family: var(--triv-font-body);
	text-transform: uppercase;
	letter-spacing: 2px;
	font-size: 12px;
	color: var(--triv-gold);
	margin-bottom: 18px;
}
.ct-footer a {
	color: var(--triv-text-dark);
	transition: color var(--triv-transition);
}
.ct-footer a:hover { color: var(--triv-gold); }
.ct-footer .ct-footer-copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 22px;
	font-size: 13px;
	letter-spacing: 0.6px;
	color: rgba(245, 245, 245, 0.7);
}


/* ---------- 16. Page Nos talents — cartes CTA doubles ---------- */
.triv-talents-cta {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
}
@media (max-width: 768px) { .triv-talents-cta { grid-template-columns: 1fr; } }

.triv-talents-cta-card {
	background-color: var(--triv-black);
	color: var(--triv-text-dark);
	padding: 48px 36px;
	text-align: center;
	border: 1px solid rgba(201, 169, 97, 0.25);
	transition: border-color var(--triv-transition);
}
.triv-talents-cta-card:hover { border-color: var(--triv-gold); }
.triv-talents-cta-card h3 {
	color: var(--triv-white);
	margin-bottom: 14px;
}
.triv-talents-cta-card p {
	color: var(--triv-text-dark);
	margin-bottom: 26px;
}


/* ---------- 17. Pages legales (mentions / RGPD) — lisibilite ---------- */
.triv-legal {
	max-width: 800px;
	margin: 0 auto;
	padding: 60px 24px 80px;
}
.triv-legal h2 {
	font-size: 28px;
	margin-top: 40px;
	margin-bottom: 14px;
	color: var(--triv-text-light);
}
.triv-legal h2:first-child { margin-top: 0; }
.triv-legal p, .triv-legal li { font-size: 16px; line-height: 1.7; }
.triv-legal strong { color: var(--triv-text-light); }


/* ---------- 18. Utilitaires ---------- */
.triv-center { text-align: center; }
.triv-divider {
	width: 60px;
	height: 2px;
	background-color: var(--triv-gold);
	margin: 18px auto 28px;
	border: 0;
}
.triv-italic { font-family: var(--triv-font-title); font-style: italic; color: var(--triv-gold); }

/* Selection texte */
::selection {
	background-color: var(--triv-gold);
	color: var(--triv-black);
}

/* Focus accessibilite — visible et dore */
:focus-visible {
	outline: 2px solid var(--triv-gold);
	outline-offset: 2px;
}


/* =====================================================================
   TRIVYUM — Premium overlay (visuel enrichi)
   Append au style.css du theme enfant.
   ===================================================================== */


/* ---------- A. Smooth scroll + decoration globale ---------- */
html { scroll-behavior: smooth; }

/* Selection texte deja en or via style.css principal */


/* ---------- B. Hero — slogan plus dramatique ---------- */
.triv-hero {
	min-height: 100vh;
	background:
		radial-gradient(ellipse at 50% 35%, rgba(201, 169, 97, 0.10) 0%, transparent 55%),
		linear-gradient(180deg, #0A0A0A 0%, #050505 100%);
	position: relative;
	overflow: hidden;
}
.triv-hero::before {
	/* Pattern doré subtle (diagonales fines) */
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(135deg,
			rgba(201, 169, 97, 0.04) 0px,
			rgba(201, 169, 97, 0.04) 1px,
			transparent 1px,
			transparent 80px);
	z-index: 1;
	pointer-events: none;
}
.triv-hero::after {
	background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.85) 100%);
}
.triv-hero > * {
	z-index: 3;
}

/* H1 hero plus impressionnant + animation entrée */
.triv-hero h1 {
	font-size: clamp(48px, 8vw, 96px) !important;
	font-weight: 500;
	letter-spacing: 1.5px;
	line-height: 1.05;
	margin: 0 auto;
	max-width: 1080px;
	animation: triv-fade-up 1s ease-out both;
}
.triv-hero h1 br {
	display: block;
	margin: 6px 0;
	content: "";
}
.triv-hero p {
	animation: triv-fade-up 1s ease-out 0.3s both;
}

/* Décoration ornementale au-dessus du H1 hero */
.triv-hero::before {
	content: "";
}
.triv-hero h1::before {
	content: "";
	display: block;
	width: 60px;
	height: 2px;
	background: var(--triv-gold);
	margin: 0 auto 32px;
	transform: scaleX(0);
	transform-origin: center;
	animation: triv-line-expand 1.2s cubic-bezier(.2,.7,.2,1) 0.5s both;
}

/* Indicateur de scroll en bas du hero */
.triv-hero::after {
	content: "";
}
.triv-hero-scroll-hint {
	position: absolute;
	bottom: 32px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 4;
	color: var(--triv-gold);
	font-size: 11px;
	letter-spacing: 4px;
	text-transform: uppercase;
	opacity: 0.7;
	animation: triv-bob 2.5s ease-in-out infinite;
}


/* ---------- C. Hero page interne ---------- */
.triv-hero-page {
	min-height: 60vh;
	padding: 160px 24px 80px;
}
.triv-hero-page h1 {
	font-size: clamp(40px, 5.5vw, 72px) !important;
}
.triv-hero-page::before {
	opacity: 0.6;
}


/* ---------- D. Bouton CTA premium ---------- */
.triv-btn {
	padding: 16px 38px !important;
	letter-spacing: 2px !important;
	font-size: 13px !important;
	position: relative;
	overflow: hidden;
	z-index: 0;
	box-shadow: 0 6px 24px rgba(201, 169, 97, 0.18);
}
.triv-btn::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0.18) 50%, transparent 100%);
	transform: translateX(-110%);
	transition: transform 0.6s ease;
	z-index: 1;
}
.triv-btn:hover::after {
	transform: translateX(110%);
}
.triv-btn:hover {
	box-shadow: 0 10px 36px rgba(212, 175, 55, 0.32);
	transform: translateY(-2px);
}


/* ---------- E. Cartes 3 voies — version expressive ---------- */
.triv-voie-card {
	padding: 56px 36px 40px !important;
	background: #FFFFFF;
	border: 1px solid rgba(201, 169, 97, 0.20);
	position: relative;
	overflow: hidden;
	transition: all 380ms cubic-bezier(.2,.7,.2,1);
}
.triv-voie-card::before {
	/* Numéro romain en très grand en background (fallback texte vide ; surchargé par nth-of-type) */
	content: "";
	position: absolute;
	top: -10px;
	right: 12px;
	font-family: var(--triv-font-title);
	font-size: 180px;
	line-height: 1;
	color: rgba(201, 169, 97, 0.07);
	font-weight: 300;
	font-style: italic;
	pointer-events: none;
	transition: color 380ms ease;
}
.triv-voies-grid > .triv-voie-card:nth-of-type(1)::before { content: "I"; }
.triv-voies-grid > .triv-voie-card:nth-of-type(2)::before { content: "II"; }
.triv-voies-grid > .triv-voie-card:nth-of-type(3)::before { content: "III"; }
.triv-voie-card:hover {
	transform: translateY(-8px);
	border-color: var(--triv-gold);
	box-shadow: 0 30px 60px -20px rgba(10, 10, 10, 0.18);
}
.triv-voie-card:hover::before {
	color: rgba(201, 169, 97, 0.14);
}

.triv-voie-card .triv-voie-num {
	font-size: 11px !important;
	letter-spacing: 3.5px !important;
	margin-bottom: 14px;
}
.triv-voie-card h3 {
	font-size: 30px !important;
	font-weight: 500;
	margin-bottom: 6px !important;
	color: var(--triv-text-light);
}
.triv-voie-card .triv-voie-subtitle {
	font-size: 18px !important;
	font-style: italic;
	color: var(--triv-gold);
	margin-bottom: 24px !important;
	font-family: var(--triv-font-title) !important;
}
.triv-voie-card p {
	font-size: 15px;
	line-height: 1.7;
	margin-bottom: 22px;
	color: rgba(26, 26, 26, 0.78);
}
.triv-voie-card ul li {
	padding-left: 24px;
	margin-bottom: 10px;
	font-size: 14.5px;
	color: rgba(26, 26, 26, 0.78);
	position: relative;
}
.triv-voie-card ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 11px;
	width: 14px;
	height: 1px;
	background: var(--triv-gold);
}
.triv-voie-card .triv-voie-link {
	font-size: 12px !important;
	letter-spacing: 2.5px !important;
	font-weight: 600 !important;
	margin-top: 8px;
	padding-top: 22px;
	border-top: 1px solid rgba(201, 169, 97, 0.18);
	display: inline-block;
	width: 100%;
}


/* ---------- F. Bandeau positionnement — version cérémoniale ---------- */
.triv-banner-positioning {
	padding: 140px 24px !important;
	background:
		radial-gradient(ellipse at center, rgba(201, 169, 97, 0.08) 0%, transparent 70%),
		var(--triv-black);
	position: relative;
}
.triv-banner-positioning::before,
.triv-banner-positioning::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 1px;
	background: var(--triv-gold);
}
.triv-banner-positioning::before { top: 60px; }
.triv-banner-positioning::after  { bottom: 60px; }

.triv-banner-positioning .triv-banner-line {
	font-size: clamp(28px, 4vw, 48px) !important;
	font-weight: 500;
	line-height: 1.35 !important;
	letter-spacing: 1px !important;
	max-width: 1000px !important;
	margin: 0 auto 36px !important;
}
.triv-banner-positioning .triv-banner-license {
	font-size: 11px !important;
	letter-spacing: 4px !important;
	margin-top: 28px;
}


/* ---------- G. Section fondateur — split dramatique ---------- */
.triv-founder {
	padding: 120px 24px !important;
	background:
		linear-gradient(180deg, #FAFAFA 0%, #FFFFFF 100%);
	position: relative;
}
.triv-founder::before {
	content: "";
	position: absolute;
	top: 60px;
	right: 5%;
	width: 1px;
	height: 80px;
	background: linear-gradient(to bottom, var(--triv-gold), transparent);
}
.triv-founder-grid {
	gap: 80px !important;
	grid-template-columns: 1fr 1.3fr !important;
}
.triv-founder img {
	width: 100%;
	height: auto;
	display: block;
	filter: grayscale(15%) contrast(1.05);
	box-shadow:
		16px 16px 0 -2px rgba(201, 169, 97, 0.85),
		0 30px 60px -25px rgba(10, 10, 10, 0.4);
	transition: all 600ms cubic-bezier(.2,.7,.2,1);
}
.triv-founder img:hover {
	filter: grayscale(0%) contrast(1.05);
	transform: translate(-2px, -2px);
	box-shadow:
		18px 18px 0 -2px rgba(212, 175, 55, 1),
		0 36px 70px -25px rgba(10, 10, 10, 0.5);
}
.triv-founder h2 {
	font-size: clamp(40px, 5vw, 64px) !important;
	font-weight: 500;
	margin-bottom: 8px !important;
	letter-spacing: 0.8px;
}
.triv-founder .triv-founder-role {
	font-size: 12px !important;
	letter-spacing: 3px !important;
	margin-bottom: 32px;
}
.triv-founder p {
	font-size: 16.5px;
	line-height: 1.85;
	color: rgba(26, 26, 26, 0.82);
	max-width: 580px;
}


/* ---------- H. Sections sombres - CTAs finaux plus expressifs ---------- */
.triv-section-dark {
	padding: 130px 24px !important;
	background:
		radial-gradient(ellipse at center top, rgba(201, 169, 97, 0.08) 0%, transparent 60%),
		var(--triv-black);
	position: relative;
}
.triv-section-dark::before {
	content: "";
	position: absolute;
	top: 60px;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 1px;
	background: var(--triv-gold);
}
.triv-section-dark h2 {
	font-size: clamp(32px, 4.5vw, 52px) !important;
	margin-bottom: 24px;
}


/* ---------- I. Section dark fondateur (alternative pages internes) ---------- */
.triv-eyebrow {
	font-size: 11px !important;
	letter-spacing: 4px !important;
	font-weight: 600 !important;
	margin-bottom: 18px;
	display: inline-block;
	position: relative;
	padding-left: 24px;
}
.triv-eyebrow::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 1px;
	background: var(--triv-gold);
}


/* ---------- J. Sections de prestations Nos services ---------- */
.triv-prestation {
	border-left: 2px solid var(--triv-gold) !important;
	padding: 8px 0 12px 24px !important;
	transition: all 280ms ease;
}
.triv-prestation:hover {
	border-left-color: var(--triv-gold-accent);
	transform: translateX(4px);
}
.triv-prestation h4 {
	font-size: 22px !important;
	font-weight: 500;
	margin-bottom: 8px !important;
}
.triv-prestation p {
	font-size: 15px;
	color: rgba(26, 26, 26, 0.78);
	line-height: 1.7;
}


/* ---------- K. Cartes valeurs page Notre vision ---------- */
.triv-valeur-card {
	padding: 40px 30px !important;
	background:
		linear-gradient(160deg, #0A0A0A 0%, #1A1A1A 100%);
	border-top: 3px solid var(--triv-gold) !important;
	transition: all 320ms ease;
}
.triv-valeur-card:hover {
	transform: translateY(-6px);
	border-top-color: var(--triv-gold-accent);
}
.triv-valeur-card h4 {
	font-size: 26px !important;
	margin-bottom: 16px !important;
	font-weight: 500;
}
.triv-valeur-card p {
	font-size: 14.5px;
	line-height: 1.75;
	color: rgba(245, 245, 245, 0.82);
}


/* ---------- L. Cartes talents CTA ---------- */
.triv-talents-cta-card {
	padding: 60px 40px !important;
	transition: all 350ms cubic-bezier(.2,.7,.2,1);
	position: relative;
	overflow: hidden;
}
.triv-talents-cta-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%) scaleX(0);
	width: 50%;
	height: 2px;
	background: var(--triv-gold);
	transition: transform 400ms ease;
}
.triv-talents-cta-card:hover {
	transform: translateY(-6px);
	border-color: var(--triv-gold);
}
.triv-talents-cta-card:hover::before {
	transform: translateX(-50%) scaleX(1);
}
.triv-talents-cta-card h3 {
	font-size: 30px !important;
	font-weight: 500;
	margin-bottom: 18px !important;
}


/* ---------- M. Animations keyframes ---------- */
@keyframes triv-fade-up {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes triv-line-expand {
	from {
		transform: scaleX(0);
		opacity: 0;
	}
	to {
		transform: scaleX(1);
		opacity: 1;
	}
}
@keyframes triv-bob {
	0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.7; }
	50%      { transform: translateX(-50%) translateY(6px); opacity: 1; }
}


/* ---------- N. Separateurs ornementaux entre sections ---------- */
.triv-separator {
	display: block;
	width: 60px;
	height: 1px;
	background: var(--triv-gold);
	margin: 0 auto 28px;
	border: 0;
	position: relative;
}
.triv-separator::before,
.triv-separator::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--triv-gold);
	transform: translateY(-50%);
}
.triv-separator::before { left: -16px; }
.triv-separator::after  { right: -16px; }


/* ---------- O. Hover global liens ---------- */
a {
	transition: color 240ms ease;
}


/* ---------- P. Body smooth — alleger le rendu ---------- */
body {
	overflow-x: hidden;
}

/* Background subtle pour les sections claires entre */
section[style*="background-color:#FFFFFF"],
section[style*="background-color: #FFFFFF"] {
	background-color: #FFFFFF !important;
}
section[style*="background-color:#FAFAFA"],
section[style*="background-color: #FAFAFA"] {
	background-color: #F8F6F2 !important;  /* Beige tres tres subtle pour rythme */
}


/* ---------- Q. Mobile : ajustements ---------- */
@media (max-width: 768px) {
	.triv-hero { min-height: 92vh; padding: 100px 18px 60px; }
	.triv-hero h1 { font-size: clamp(36px, 11vw, 56px) !important; letter-spacing: 0.8px; }
	.triv-hero-page { min-height: 50vh; padding: 130px 18px 60px; }
	.triv-banner-positioning { padding: 80px 18px !important; }
	.triv-banner-positioning .triv-banner-line { font-size: 26px !important; }
	.triv-banner-positioning::before { top: 30px; }
	.triv-banner-positioning::after  { bottom: 30px; }
	.triv-founder { padding: 70px 18px !important; }
	.triv-founder-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
	.triv-founder img { box-shadow: 10px 10px 0 -2px rgba(201, 169, 97, 0.85), 0 20px 40px -20px rgba(10,10,10,0.4); }
	.triv-voie-card { padding: 44px 24px 32px !important; }
	.triv-voie-card::before { font-size: 130px; top: -5px; right: 4px; }
	.triv-section-dark { padding: 80px 18px !important; }
}


/* ---------- R. Menu header premium (Roc Nation style) ---------- */
.ct-header .menu-item > a,
.ct-header .menu .menu-item > a {
	text-transform: uppercase !important;
	letter-spacing: 3px !important;
	font-size: 12.5px !important;
	font-weight: 500 !important;
	font-family: var(--triv-font-body) !important;
	position: relative;
	transition: color 250ms ease !important;
	padding: 8px 4px !important;
}
.ct-header .menu-item > a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	transform: translateX(-50%);
	width: 0;
	height: 1px;
	background: var(--triv-gold);
	transition: width 320ms cubic-bezier(.2,.7,.2,1);
	pointer-events: none;
}
.ct-header .menu-item > a:hover::after,
.ct-header .menu-item.current-menu-item > a::after,
.ct-header .menu-item.current-menu-ancestor > a::after {
	width: 28px;
}
.ct-header .menu-item > a:hover .ct-menu-link-text,
.ct-header .menu-item > a:hover {
	color: var(--triv-gold) !important;
}
.ct-header .menu-item.current-menu-item > a .ct-menu-link-text {
	color: var(--triv-gold) !important;
}

/* Espacement plus généreux entre items */
.ct-header [data-row="middle"] .menu > .menu-item,
.ct-header nav .menu > .menu-item {
	margin: 0 18px !important;
}
@media (max-width: 768px) {
	.ct-header [data-row="middle"] .menu > .menu-item {
		margin: 4px 0 !important;
	}
}

/* Menu mobile : style coherent en burger */
.ct-panel .menu-item > a {
	text-transform: uppercase !important;
	letter-spacing: 3px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
}


/* ---------- S. Cache le site title texte (Blocksy l'affiche meme si header_text=0) ---------- */
.site-title-container,
.site-title,
.site-description,
.ct-site-title,
.ct-site-description {
	display: none !important;
}

/* Logo : centrer verticalement dans le header */
.site-branding {
	display: flex;
	align-items: center;
}
.site-logo-container img,
.site-logo-container .default-logo {
	max-height: 56px !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain;
}
@media (max-width: 768px) {
	.site-logo-container img { max-height: 44px !important; }
}


/* =====================================================================
   T. DARK THEME — Override global (Trivyum noir partout)
   ===================================================================== */

body {
	background-color: var(--triv-black) !important;
	color: var(--triv-text-dark);
}

/* Override des background-color inline dans le contenu des pages */
section[style*="background-color:#FFFFFF"],
section[style*="background-color: #FFFFFF"],
.triv-founder,
.triv-banner-positioning,
section[style*="#FAFAFA"],
section[style*="#F8F6F2"] {
	background-color: var(--triv-black) !important;
	color: var(--triv-text-dark);
}

/* Alterner subtilement entre #0A0A0A et #141414 pour le rythme visuel */
section[style*="background-color:#FAFAFA"],
section[style*="background-color: #FAFAFA"],
section[style*="background-color:#F8F6F2"] {
	background-color: #141414 !important;
}

/* Headings: blanc sur fond sombre */
body section h1,
body section h2,
body section h3,
body section h4,
body section h5,
body section h6,
body article h1,
body article h2,
body article h3,
body article h4,
body article h5,
body article h6 {
	color: var(--triv-white) !important;
}

/* Paragraphes & listes sur fond sombre */
body section p,
body section li,
body article p,
body article li {
	color: rgba(245, 245, 245, 0.82);
}

/* Italic Cormorant subtitle reste doré */
.triv-voie-subtitle {
	color: var(--triv-gold) !important;
}


/* ---------- Cartes 3 voies sur fond noir ---------- */
.triv-voie-card {
	background-color: #141414 !important;
	border-color: rgba(201, 169, 97, 0.22) !important;
	color: var(--triv-text-dark);
}
.triv-voie-card h3 {
	color: var(--triv-white) !important;
}
.triv-voie-card p {
	color: rgba(245, 245, 245, 0.78) !important;
}
.triv-voie-card ul li {
	color: rgba(245, 245, 245, 0.78) !important;
}
.triv-voie-card ul li::before {
	background: var(--triv-gold);
}
.triv-voie-card::before {
	color: rgba(201, 169, 97, 0.10) !important;
}
.triv-voie-card:hover {
	background-color: #1C1C1C !important;
	border-color: var(--triv-gold) !important;
	box-shadow: 0 30px 60px -20px rgba(201, 169, 97, 0.15);
}
.triv-voie-card .triv-voie-link {
	border-top-color: rgba(201, 169, 97, 0.18);
}


/* ---------- Prestations services ---------- */
.triv-prestation h4 {
	color: var(--triv-white) !important;
}
.triv-prestation p {
	color: rgba(245, 245, 245, 0.78) !important;
}


/* ---------- Section fondateur ---------- */
.triv-founder {
	background: linear-gradient(180deg, #0A0A0A 0%, #141414 100%) !important;
}
.triv-founder h2 {
	color: var(--triv-white) !important;
}
.triv-founder p {
	color: rgba(245, 245, 245, 0.85) !important;
}
.triv-founder img {
	filter: grayscale(20%) contrast(1.05) brightness(0.95);
}
.triv-founder img:hover {
	filter: grayscale(0%) contrast(1.05);
}


/* ---------- Bandeau positionnement reste noir, déjà OK ---------- */
.triv-banner-positioning .triv-banner-line {
	color: var(--triv-white) !important;
}


/* ---------- Valeurs (déjà noires, OK) ---------- */
.triv-valeur-card {
	background: linear-gradient(160deg, #141414 0%, #1F1F1F 100%) !important;
}


/* ---------- Cartes talents ---------- */
.triv-talents-cta-card {
	background-color: #141414 !important;
	border-color: rgba(201, 169, 97, 0.22) !important;
}
.triv-talents-cta-card h3 {
	color: var(--triv-white) !important;
}
.triv-talents-cta-card p {
	color: rgba(245, 245, 245, 0.82) !important;
}


/* ---------- Pages légales sur fond sombre ---------- */
.triv-legal {
	color: rgba(245, 245, 245, 0.88);
}
.triv-legal h1,
.triv-legal h2 {
	color: var(--triv-white) !important;
}
.triv-legal strong {
	color: var(--triv-white);
}
.triv-legal p,
.triv-legal li {
	color: rgba(245, 245, 245, 0.85);
}
.triv-legal a {
	color: var(--triv-gold);
}


/* ---------- Formulaire WPForms sur fond sombre ---------- */
.wpforms-container {
	background-color: #141414 !important;
	padding: 36px 32px !important;
	border: 1px solid rgba(201, 169, 97, 0.22);
}
.wpforms-container .wpforms-field-label {
	color: rgba(245, 245, 245, 0.85) !important;
}
.wpforms-container input[type="text"],
.wpforms-container input[type="email"],
.wpforms-container input[type="tel"],
.wpforms-container select,
.wpforms-container textarea {
	background-color: #0A0A0A !important;
	color: var(--triv-text-dark) !important;
	border-color: rgba(255, 255, 255, 0.15) !important;
}
.wpforms-container input[type="text"]::placeholder,
.wpforms-container input[type="email"]::placeholder,
.wpforms-container textarea::placeholder {
	color: rgba(245, 245, 245, 0.4);
}
.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
	background-color: #0A0A0A !important;
	border-color: var(--triv-gold) !important;
	box-shadow: 0 0 0 2px rgba(201, 169, 97, 0.20) !important;
}
.wpforms-container option {
	background-color: #141414 !important;
	color: var(--triv-text-dark) !important;
}
.wpforms-confirmation-container {
	background-color: rgba(201, 169, 97, 0.10) !important;
	color: var(--triv-text-dark) !important;
}
.wpforms-required-label {
	color: var(--triv-gold) !important;
}


/* ---------- Header : toujours sombre maintenant (plus de transparence home) ---------- */
body.home .ct-header [data-row="middle"] {
	background-color: rgba(10, 10, 10, 0.85) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.ct-header [data-row="middle"],
body:not(.home) .ct-header [data-row="middle"] {
	background-color: var(--triv-black) !important;
}
.ct-header .menu-item > a {
	color: var(--triv-text-dark) !important;
}
.ct-header .menu-item > a:hover {
	color: var(--triv-gold) !important;
}


/* ---------- Bouton CTA outline mode sombre ---------- */
.triv-btn-outline {
	background-color: transparent;
	color: var(--triv-gold);
	border-color: var(--triv-gold);
}


/* ---------- Hero — un peu plus contraste ---------- */
.triv-hero::after {
	background: linear-gradient(180deg, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.75) 100%);
}


/* ---------- Cartes Voies III dans Notre vision (numerotation grand) ---------- */
section > div .triv-voie-num,
.triv-voie-num {
	color: var(--triv-gold) !important;
}


/* ---------- Body em (italique decoratif) ---------- */
body em {
	color: rgba(245, 245, 245, 0.78);
}


/* ---------- Selection texte ---------- */
::selection {
	background-color: var(--triv-gold);
	color: var(--triv-black);
}


/* ---------- Eyebrows en or sur fond noir ---------- */
.triv-eyebrow {
	color: var(--triv-gold) !important;
}


/* ---------- Liens dans contenu : or ---------- */
section a:not(.triv-btn):not(.triv-btn-outline):not(.triv-voie-link),
article a:not(.triv-btn):not(.triv-btn-outline) {
	color: var(--triv-gold);
}
section a:not(.triv-btn):not(.triv-btn-outline):not(.triv-voie-link):hover,
article a:not(.triv-btn):not(.triv-btn-outline):hover {
	color: var(--triv-gold-accent);
}


/* =====================================================================
   U. NOIR TOTAL — header, columns, page wrapper
   ===================================================================== */

/* Body & html en noir */
html, body {
	background-color: var(--triv-black) !important;
}

/* Header complet, toutes ses colonnes et sous-elements */
.ct-header,
.ct-header > div,
.ct-header [data-row],
.ct-header [data-row="top"],
.ct-header [data-row="middle"],
.ct-header [data-row="bottom"],
.ct-header [data-row] > .ct-container,
.ct-header [data-column],
.ct-header [data-column="start"],
.ct-header [data-column="middle"],
.ct-header [data-column="end"],
.ct-header [data-items],
.ct-header [data-items="primary"],
.ct-header [data-device],
.ct-header [data-device="desktop"],
.ct-header [data-device="mobile"] {
	background-color: var(--triv-black) !important;
}

/* Override Blocksy ct-container (le containment principal) */
.ct-header .ct-container {
	background-color: transparent !important;
}

/* Sticky : noir solide aussi */
.ct-header.ct-sticky-active,
.ct-header[data-sticky="yes"][data-sticky-state="active"],
.ct-header.ct-sticky-active [data-row="middle"],
.ct-header[data-sticky="yes"][data-sticky-state="active"] [data-row="middle"] {
	background-color: var(--triv-black) !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
}

/* Wrapper principal du site (containers Blocksy) */
.site,
#site,
.ct-site,
#main,
.ct-main,
.site-content,
.ct-main-content,
.entry-content,
.page-template,
[class*="page-wrapper"],
[class*="ct-page"],
.hero-section,
.content-area,
.ct-container-default {
	background-color: var(--triv-black) !important;
}

/* Hero section Blocksy (le wrapper du page-title qu'on cache deja en CSS) */
.hero-section,
.hero-section.is-width-constrained {
	background-color: var(--triv-black) !important;
}

/* Articles single (entry-content wrapper) */
article.page,
article.type-page,
article.post,
.ct-singular-content,
.entry-content > * {
	background-color: transparent !important;
}

/* Icone search dans le header : couleur claire */
.ct-header-search,
.ct-header-search .ct-icon {
	color: var(--triv-text-dark) !important;
	fill: var(--triv-text-dark) !important;
}
.ct-header-search:hover,
.ct-header-search:hover .ct-icon {
	color: var(--triv-gold) !important;
	fill: var(--triv-gold) !important;
}

/* Burger mobile : or */
.ct-header-trigger,
.ct-header-trigger .ct-icon {
	color: var(--triv-gold) !important;
	fill: var(--triv-gold) !important;
}

/* Panel offcanvas mobile : fond noir */
.ct-panel,
.ct-panel .ct-panel-inner,
.ct-panel-content {
	background-color: var(--triv-black) !important;
	color: var(--triv-text-dark) !important;
}
.ct-panel a {
	color: var(--triv-text-dark) !important;
}
.ct-panel a:hover {
	color: var(--triv-gold) !important;
}

/* Search modal : fond noir aussi */
#search-modal,
#search-modal .ct-panel-inner-content,
[data-panel="search-modal"] {
	background-color: var(--triv-black) !important;
	color: var(--triv-text-dark) !important;
}
#search-modal input {
	background-color: #141414 !important;
	color: var(--triv-text-dark) !important;
	border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Border-bottom subtle entre header et contenu */
.ct-header {
	border-bottom: 1px solid rgba(201, 169, 97, 0.08);
}


/* =====================================================================
   V. HEADER NOIR ABSOLU — anti-blanc autour du logo
   ===================================================================== */

/* Force noir sur tout ce qui touche au header (toutes profondeurs) */
.ct-header,
.ct-header *:not(.ct-icon):not(svg):not(path):not(.ct-menu-link-text):not(.menu-cta > a) {
	background-color: var(--triv-black) !important;
}

/* Site-branding wrapper specifiquement */
.site-branding,
.site-branding *,
.site-logo-container,
.site-logo-container a,
.site-branding > a,
.site-branding > div {
	background-color: var(--triv-black) !important;
	background: var(--triv-black) !important;
}

/* Image logo : pas de border, pas de fond, sit flush */
.default-logo,
.site-logo-container img {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* Tous les wrappers data-* du header en noir */
.ct-header [data-row],
.ct-header [data-column],
.ct-header [data-items],
.ct-header [data-device],
.ct-header > div,
.ct-header > div > div {
	background-color: var(--triv-black) !important;
}

/* ct-container du header : noir mais peut etre transparent */
.ct-header > .ct-container,
.ct-header [data-row] > .ct-container {
	background-color: var(--triv-black) !important;
}

/* Body wrapper Blocksy */
.ct-site,
#ct-site,
body > .ct-site,
.ct-main-container,
.ct-container-wrapper {
	background-color: var(--triv-black) !important;
}

/* Si Blocksy met une "page-header" entre le ct-header et le contenu, en noir */
.ct-page-header,
.page-header,
.ct-singular-header,
.ct-archive-header {
	background-color: var(--triv-black) !important;
}

/* Forcer noir absolu sur l'element <html> aussi */
html {
	background-color: var(--triv-black) !important;
}

/* Pas de marges autour de l'image logo (eviter espace blanc) */
.site-branding {
	padding: 0 !important;
	margin: 0 !important;
}


/* =====================================================================
   W. HERO HOME — photo rene-bohmer en background
   ===================================================================== */

body.home .triv-hero {
	background-image:
		linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.70) 50%, rgba(0,0,0,0.85) 100%),
		url('/wp-content/uploads/2026/05/rene-bohmer-YeUVDKZWSZ4-unsplash-scaled.jpg');
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: scroll;
}

/* On retire le ::after additionnel qui ajoutait un 2e gradient (overlay deja dans background-image) */
body.home .triv-hero::after {
	background: transparent !important;
	pointer-events: none;
}

/* Pattern diagonal subtle reste sur le hero, mais plus discret avec la photo */
body.home .triv-hero::before {
	opacity: 0.4;
}

/* Renforce un peu la typo du H1 hero pour qu'il ressorte sur la photo */
body.home .triv-hero h1 {
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.7);
}
body.home .triv-hero h1::before {
	background: var(--triv-gold);
	box-shadow: 0 0 18px rgba(201, 169, 97, 0.6);
}

/* Bouton CTA hero un poil plus visible sur photo */
body.home .triv-hero .triv-btn {
	box-shadow:
		0 6px 24px rgba(0, 0, 0, 0.5),
		0 0 32px rgba(201, 169, 97, 0.18);
}


/* =====================================================================
   W2. HERO HOME — photo en LUMIERE NATURELLE, texte en bas
   ===================================================================== */

body.home .triv-hero {
	/* Plus de gradient sur la photo : on garde la lumiere naturelle */
	background-image: url('/wp-content/uploads/2026/05/rene-bohmer-YeUVDKZWSZ4-unsplash-scaled.jpg') !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;

	/* Texte en bas plutot que centre */
	align-items: flex-end !important;
	padding: 80px 24px 15vh !important;
	text-align: center;
}

/* Overlay subtil UNIQUEMENT dans la moitie basse pour le texte */
body.home .triv-hero::after {
	background: linear-gradient(180deg,
		transparent 0%,
		transparent 45%,
		rgba(0, 0, 0, 0.30) 70%,
		rgba(0, 0, 0, 0.55) 100%) !important;
	z-index: 1 !important;
	pointer-events: none !important;
}

/* On garde le pattern diagonal très très discret */
body.home .triv-hero::before {
	opacity: 0.15 !important;
}

/* H1 hero : text-shadow naturel + ombre projetée pour lisibilité */
body.home .triv-hero h1 {
	text-shadow:
		0 1px 4px rgba(0,0,0,0.5),
		0 4px 30px rgba(0,0,0,0.7);
	margin-bottom: 30px;
}
body.home .triv-hero h1::before {
	background: var(--triv-gold);
	box-shadow: 0 0 20px rgba(201, 169, 97, 0.5);
	margin-bottom: 26px;
}

/* Bouton CTA hero : ombre plus prononcée pour ressortir sur photo */
body.home .triv-hero .triv-btn {
	box-shadow:
		0 8px 28px rgba(0, 0, 0, 0.6),
		0 0 0 1px rgba(201, 169, 97, 0.3);
}

/* Mobile : pas trop bas non plus, on remonte un peu */
@media (max-width: 768px) {
	body.home .triv-hero {
		padding: 60px 18px 12vh !important;
	}
}


/* =====================================================================
   W3. HERO HOME — texte remonté + animation présentation
   ===================================================================== */

body.home .triv-hero {
	/* Texte remonté : padding-bottom plus grand pour le pousser plus haut */
	padding: 80px 24px 28vh !important;
	/* Animation entrée : photo qui ressort en fade + scale subtle */
	animation: triv-hero-photo-in 1.6s cubic-bezier(.22,.61,.36,1) both;
}

/* Overlay : un poil plus discret puisque texte plus haut, et étalé */
body.home .triv-hero::after {
	background: linear-gradient(180deg,
		transparent 0%,
		transparent 35%,
		rgba(0, 0, 0, 0.20) 60%,
		rgba(0, 0, 0, 0.45) 100%) !important;
}

/* Le H1 et le CTA arrivent en séquence, décalés */
body.home .triv-hero h1 {
	animation: triv-text-reveal 1.4s cubic-bezier(.16,.84,.32,1) 0.5s both !important;
}
body.home .triv-hero h1::before {
	animation: triv-line-expand 1.2s cubic-bezier(.16,.84,.32,1) 1.2s both !important;
}
body.home .triv-hero p,
body.home .triv-hero .triv-btn,
body.home .triv-hero a.triv-btn {
	animation: triv-text-reveal 1.2s cubic-bezier(.16,.84,.32,1) 1.4s both !important;
}

/* Keyframes : entrée photo (zoom subtle depuis 1.08 vers 1.0) */
@keyframes triv-hero-photo-in {
	from {
		opacity: 0;
		transform: scale(1.06);
		filter: brightness(0.8) blur(2px);
	}
	to {
		opacity: 1;
		transform: scale(1);
		filter: brightness(1) blur(0);
	}
}

/* Keyframes : reveal texte (fade + slight Y + blur cleared) */
@keyframes triv-text-reveal {
	0% {
		opacity: 0;
		transform: translateY(32px);
		filter: blur(8px);
	}
	60% {
		filter: blur(2px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
		filter: blur(0);
	}
}

/* Adapter mobile : padding bottom proportionnel mais texte pas trop haut */
@media (max-width: 768px) {
	body.home .triv-hero {
		padding: 60px 18px 20vh !important;
	}
}

/* Respect preference reduced-motion (accessibilite) */
@media (prefers-reduced-motion: reduce) {
	body.home .triv-hero,
	body.home .triv-hero h1,
	body.home .triv-hero h1::before,
	body.home .triv-hero p,
	body.home .triv-hero .triv-btn {
		animation: none !important;
	}
}


/* =====================================================================
   W4. HERO HOME — photo en ENTIER (contain) sans scroll
   ===================================================================== */

body.home .triv-hero {
	background-size: contain !important;
	background-color: var(--triv-black) !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	/* min-height reste 100vh : la photo s'affichera en entier avec des bandes noires aux extremités */
}

/* Overlay sombre encore plus minimal — la photo doit être pleinement visible */
body.home .triv-hero::after {
	background: linear-gradient(180deg,
		transparent 0%,
		transparent 70%,
		rgba(0, 0, 0, 0.35) 100%) !important;
}

/* Mobile : sur portrait, on garde contain aussi (la photo aura des bandes haut/bas mais reste entière) */
@media (max-width: 768px) {
	body.home .triv-hero {
		background-size: contain !important;
	}
}


/* =====================================================================
   X. ZERO GAP entre header et hero (override Elementor + Blocksy wrappers)
   ===================================================================== */

/* Wrappers Blocksy : pas de padding-top sur le main */
.site-main,
#main.site-main,
.ct-main-content,
.entry-content,
article.page,
article.post,
.ct-container-full {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Wrappers Elementor : pas de padding sur les containers parents qui touchent le top */
body.home main > div > article > .entry-content,
body.home .elementor-1142,
body.home .elementor.elementor-1142 {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Si la 1ere section Elementor est un container avec padding, le retirer */
body.home .e-con.e-parent:first-child,
body.home .elementor > .elementor-element:first-child {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Le 1er .triv-hero qui est dans un widget text-editor doit etre flush en haut */
body.home .elementor-widget-text-editor .triv-hero:first-of-type {
	margin-top: -1px;  /* eviter rounding pixel */
}

/* S'assurer que la section hero touche bien le bord superieur */
body.home .triv-hero:first-of-type {
	margin-top: 0 !important;
}

/* Aucun border ni shadow qui creerait une demarcation */
body.home .ct-header {
	border-bottom: 0 !important;
	box-shadow: none !important;
}
.ct-header {
	border-bottom: 0 !important;
}

/* Header en position absolue sur la home pour superposer sur la photo */
body.home .ct-header {
	position: absolute !important;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 100;
	background-color: rgba(10, 10, 10, 0.85) !important;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

/* Le body home : pas de padding-top qui pousserait le hero */
body.home main,
body.home #main {
	padding-top: 0 !important;
	margin-top: 0 !important;
}


/* =====================================================================
   Y. Fix bouton dans heading (Elementor wrap <p> en <h2>)
   ===================================================================== */

/* Force la couleur du texte du bouton meme si parent est un heading */
.triv-btn,
a.triv-btn,
h1 > a.triv-btn,
h2 > a.triv-btn,
h3 > a.triv-btn,
h4 > a.triv-btn,
section h2 > a.triv-btn,
section h2 a.triv-btn,
section h1 a.triv-btn,
.elementor-widget-text-editor a.triv-btn {
	color: var(--triv-black) !important;
	font-family: var(--triv-font-body) !important;
	font-size: 13px !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	font-weight: 500 !important;
	font-style: normal !important;
}
.triv-btn-outline,
a.triv-btn-outline,
h1 > a.triv-btn-outline,
h2 > a.triv-btn-outline,
h3 > a.triv-btn-outline,
section h2 > a.triv-btn-outline,
section h1 a.triv-btn-outline {
	color: var(--triv-gold) !important;
	background-color: transparent !important;
}
.triv-btn-outline:hover {
	color: var(--triv-black) !important;
	background-color: var(--triv-gold) !important;
}

/* Si le heading wrap juste un bouton, le neutraliser visuellement */
h1:has(> a.triv-btn:only-child),
h2:has(> a.triv-btn:only-child),
h3:has(> a.triv-btn:only-child) {
	font-family: var(--triv-font-body) !important;
	font-size: inherit !important;
	letter-spacing: normal !important;
	font-weight: normal !important;
	margin: 0 !important;
	text-align: center;
	color: inherit !important;
}


/* =====================================================================
   Z. Fix override dark : sélecteurs case-insensitive
   ===================================================================== */

/* Couvre #ffffff, #FFFFFF, #fafafa, #FAFAFA — case insensitive */
section[style*="background-color: #ffffff" i],
section[style*="background-color:#ffffff" i],
section[style*="background-color: #fafafa" i],
section[style*="background-color:#fafafa" i],
section[style*="background-color: #f8f6f2" i],
section[style*="background-color:#f8f6f2" i] {
	background-color: var(--triv-black) !important;
	color: var(--triv-text-dark) !important;
}

/* Variation FAFAFA un poil moins noir pour le rythme visuel */
section[style*="background-color: #fafafa" i],
section[style*="background-color:#fafafa" i] {
	background-color: #141414 !important;
}

/* Force le texte des paragraphes inline-styled aussi */
section[style*="background-color: #ffffff" i] p,
section[style*="background-color:#ffffff" i] p,
section[style*="background-color: #fafafa" i] p,
section[style*="background-color:#fafafa" i] p {
	color: rgba(245, 245, 245, 0.85) !important;
}
section[style*="background-color: #ffffff" i] h1,
section[style*="background-color: #ffffff" i] h2,
section[style*="background-color: #ffffff" i] h3,
section[style*="background-color: #ffffff" i] h4,
section[style*="background-color: #fafafa" i] h1,
section[style*="background-color: #fafafa" i] h2,
section[style*="background-color: #fafafa" i] h3,
section[style*="background-color: #fafafa" i] h4 {
	color: var(--triv-white) !important;
}


/* =====================================================================
   AA. Alignement vertical lien "Découvrir cette voie" dans les 3 cartes
   ===================================================================== */

/* La grille rend les cartes a hauteur egale */
.triv-voies-grid {
	align-items: stretch !important;
}

/* Carte : flex column pour pouvoir pousser le dernier element en bas */
.triv-voie-card {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	min-height: 100%;
}

/* Wordpress wrap le <a> en <p> via wpautop : le dernier <p> de la carte contient le lien */
.triv-voie-card > p:last-child {
	margin-top: auto !important;
	margin-bottom: 0 !important;
	text-align: center !important;
	padding-top: 22px !important;
	border-top: 1px solid rgba(201, 169, 97, 0.18);
	width: 100%;
}

/* Le lien lui-même : inline-block centré dans son <p> parent */
.triv-voie-card .triv-voie-link,
.triv-voie-card a.triv-voie-link {
	display: inline-block !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
	border-top: 0 !important;
	width: auto !important;
	text-align: center !important;
	font-size: 12px !important;
	letter-spacing: 2.5px !important;
	font-weight: 600 !important;
}

/* Garantir que tous les <p> SAUF le dernier laissent de la place pour pousser le lien */
.triv-voie-card > p:not(:last-child),
.triv-voie-card > h3,
.triv-voie-card > ul {
	flex-shrink: 0;
}

/* La <ul> reste a sa hauteur naturelle, espace au-dessus du lien gere par margin-top auto */
.triv-voie-card > ul {
	margin-bottom: 0 !important;
}


/* =====================================================================
   AB. Section "Notre conviction" — cohérence titre/texte + fondu
   ===================================================================== */

section[data-triv="conviction"] {
	color: var(--triv-text-dark);
	position: relative;
}

section[data-triv="conviction"] .triv-eyebrow {
	font-size: 11px !important;
	letter-spacing: 4px !important;
	font-weight: 600 !important;
	color: var(--triv-gold) !important;
	opacity: 0.9;
	margin-bottom: 8px;
}

.triv-conviction-title,
section[data-triv="conviction"] h2.triv-conviction-title,
section[data-triv="conviction"] h2 {
	font-family: var(--triv-font-title) !important;
	font-size: clamp(30px, 4vw, 48px) !important;
	font-weight: 500 !important;
	color: var(--triv-white) !important;
	letter-spacing: 0.5px;
	line-height: 1.25;
	margin: 22px 0 36px !important;
}

section[data-triv="conviction"] p:not(.triv-eyebrow):not(.triv-conviction-quote) {
	font-family: var(--triv-font-body) !important;
	font-size: 18px !important;
	line-height: 1.85 !important;
	color: rgba(245, 245, 245, 0.78) !important;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.triv-conviction-quote,
section[data-triv="conviction"] p.triv-conviction-quote {
	font-family: var(--triv-font-title) !important;
	font-style: italic !important;
	font-size: 22px !important;
	color: var(--triv-gold) !important;
	margin: 36px auto 0 !important;
	line-height: 1.5 !important;
	max-width: 640px !important;
}


/* =====================================================================
   AC. Transition fondu : la section voies commence sur #141414
        (deja en place via inline style, mais on s'assure de la continuité)
   ===================================================================== */

/* La section apres "conviction" qui contient les cartes : meme #141414 */
section[data-triv="conviction"] + section[style*="#141414"],
section[data-triv="conviction"] + section[style*="background-color:#141414"],
section[data-triv="conviction"] + section[style*="background-color: #141414"] {
	background-color: #141414 !important;
	border-top: 0 !important;
}


/* =====================================================================
   AD. Hero home : texte CENTRE verticalement (apres retrait du bouton)
   ===================================================================== */
body.home .triv-hero {
	align-items: center !important;
	padding-top: 12vh !important;
	padding-bottom: 8vh !important;
	text-align: center;
}

@media (max-width: 768px) {
	body.home .triv-hero {
		padding-top: 10vh !important;
		padding-bottom: 6vh !important;
	}
}


/* =====================================================================
   AE. Header sticky/fixed partout (toutes les pages)
   ===================================================================== */

.ct-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 999 !important;
	background-color: rgba(10, 10, 10, 0.92) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	transition: background-color 250ms ease, padding 250ms ease;
}

/* Sur la home aussi : meme regle (override de l'ancien position:absolute) */
body.home .ct-header {
	position: fixed !important;
	top: 0 !important;
	background-color: rgba(10, 10, 10, 0.75) !important;
}

/* Pages internes : compenser la hauteur du header fixed avec du padding sur le main */
body:not(.home) main,
body:not(.home) #main {
	padding-top: 80px !important;
}

/* Si Blocksy met un hero-section (page-title) en haut, garder padding mais l'hero garde sa hauteur */
body:not(.home) .hero-section {
	margin-top: 0;
}

/* Mobile : compensation un poil moindre */
@media (max-width: 768px) {
	body:not(.home) main,
	body:not(.home) #main {
		padding-top: 64px !important;
	}
}

/* Header devient un peu plus opaque au scroll */
.ct-header.ct-sticky-active,
.ct-header[data-sticky="yes"][data-sticky-state="active"],
body.home .ct-header.ct-sticky-active {
	background-color: var(--triv-black) !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.6) !important;
}


/* =====================================================================
   AF. Conviction quote : font-weight bold pour renforcer
   ===================================================================== */
.triv-conviction-quote,
section[data-triv="conviction"] p.triv-conviction-quote {
	font-weight: 700 !important;
	font-style: italic !important;
}


/* =====================================================================
   AG. Dropdown menu (sous-menu SERVICES > Voies)
   ===================================================================== */

/* Chevron Blocksy SVG natif : ajuster taille + animation au hover */
.ct-header .ct-toggle-dropdown-desktop {
	margin-left: 8px;
	transition: transform 250ms ease;
	display: inline-flex;
	align-items: center;
}
.ct-header .menu-item-has-children:hover > a .ct-toggle-dropdown-desktop {
	transform: translateY(2px);
}
.ct-header .ct-toggle-dropdown-desktop svg {
	width: 7px !important;
	height: 7px !important;
	fill: currentColor !important;
}

/* Le sous-menu : fond noir + bordure doree fine */
.ct-header .sub-menu,
.ct-header .menu-item .sub-menu,
.ct-header .menu-item-has-children .sub-menu {
	background-color: var(--triv-black) !important;
	border: 1px solid rgba(201, 169, 97, 0.18) !important;
	padding: 10px 0 !important;
	min-width: 280px !important;
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.6) !important;
	border-radius: 0 !important;
	backdrop-filter: blur(12px);
	margin-top: 8px;
}

/* Items du sous-menu : font normale (pas uppercase) */
.ct-header .sub-menu .menu-item > a,
.ct-header .sub-menu .menu-item a {
	text-transform: none !important;
	letter-spacing: 0.4px !important;
	font-size: 13.5px !important;
	font-family: var(--triv-font-body) !important;
	font-weight: 400 !important;
	padding: 11px 20px !important;
	color: var(--triv-text-dark) !important;
	border-bottom: 0 !important;
	display: block;
	transition: color 200ms ease, background-color 200ms ease, padding-left 200ms ease;
}
.ct-header .sub-menu .menu-item > a::after {
	display: none !important;
}

/* Hover dans le sous-menu */
.ct-header .sub-menu .menu-item > a:hover,
.ct-header .sub-menu .menu-item.current-menu-item > a {
	color: var(--triv-gold) !important;
	background-color: rgba(201, 169, 97, 0.08) !important;
	padding-left: 26px !important;
}
.ct-header .sub-menu .menu-item > a:hover .ct-menu-link-text {
	color: var(--triv-gold) !important;
}

/* Pas de souligne doré sous les items du sous-menu */
.ct-header .sub-menu .menu-item > a::after {
	width: 0 !important;
}


/* =====================================================================
   AH. Logo plus grand + sub-menu items en 1 ligne
   ===================================================================== */

/* Logo plus grand */
.site-logo-container img,
.site-logo-container .default-logo,
.ct-header .default-logo {
	max-height: 86px !important;
	height: auto !important;
	width: auto !important;
}
@media (max-width: 768px) {
	.site-logo-container img,
	.site-logo-container .default-logo,
	.ct-header .default-logo {
		max-height: 64px !important;
	}
}

/* Le wrapper du header s'adapte */
.ct-header [data-row="middle"] {
	min-height: 100px;
}
@media (max-width: 768px) {
	.ct-header [data-row="middle"] {
		min-height: 76px;
	}
}

/* Sub-menu items en 1 SEULE LIGNE chacun */
.ct-header .sub-menu .menu-item > a,
.ct-header .sub-menu .menu-item a {
	white-space: nowrap !important;
	padding: 12px 24px !important;
}
.ct-header .sub-menu {
	min-width: 320px !important;
	max-width: none !important;
	width: max-content !important;
}


/* =====================================================================
   AI. Fix gap sub-menu (disparait au hover descendant)
   ===================================================================== */

/* Retirer le margin-top qui creait un trou non-hoverable */
.ct-header .sub-menu,
.ct-header .menu-item .sub-menu,
.ct-header .menu-item-has-children .sub-menu {
	margin-top: 0 !important;
	/* Padding-top genereux pour creer une zone hover sans gap visible */
	padding-top: 14px !important;
	padding-bottom: 14px !important;
}

/* Lien parent : etend sa hover-zone vers le bas avec un padding-bottom */
.ct-header .menu-item-has-children > a {
	padding-bottom: 16px !important;
}

/* Petite securite : pseudo-element invisible qui couvre tout gap residuel */
.ct-header .menu-item-has-children::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -10px;
	height: 14px;
	z-index: -1;
}
.ct-header .menu-item-has-children {
	position: relative;
}


/* =====================================================================
   AJ. WPForms select : font-size legerement reduit pour tout afficher
   ===================================================================== */
.wpforms-container select,
.wpforms-container .wpforms-field-select select {
	font-size: 14px !important;
	padding: 13px 36px 13px 14px !important;
	text-overflow: ellipsis;
}
.wpforms-container select option {
	font-size: 14px !important;
}


/* =====================================================================
   AK. WPForms select : hauteur min + line-height pour eviter coupe bas
   ===================================================================== */
.wpforms-container select,
.wpforms-container .wpforms-field-select select,
.wpforms-container .wpforms-field select {
	font-size: 14px !important;
	line-height: 1.6 !important;
	padding: 14px 36px 14px 14px !important;
	height: auto !important;
	min-height: 52px !important;
	box-sizing: border-box !important;
}


/* =====================================================================
   AL. Conviction quote : retirer italique, garder bold
   ===================================================================== */
.triv-conviction-quote,
section[data-triv="conviction"] p.triv-conviction-quote {
	font-style: normal !important;
	font-weight: 700 !important;
}


/* =====================================================================
   AM. Responsive — iPad portrait/landscape + mobile
   ===================================================================== */

/* Mobile portrait : la photo hero en cover (eviter bandes verticales enormes) */
@media (max-width: 600px) and (orientation: portrait) {
	body.home .triv-hero {
		background-size: cover !important;
		background-position: center 30% !important;
	}
	body.home .triv-hero h1 {
		font-size: clamp(34px, 9vw, 52px) !important;
	}
}

/* iPad portrait (768-1024px) : photo en cover pour mieux remplir, footer 4 cols -> 2 cols */
@media (min-width: 601px) and (max-width: 1024px) and (orientation: portrait) {
	body.home .triv-hero {
		background-size: cover !important;
		background-position: center center !important;
	}
	body.home .triv-hero h1 {
		font-size: clamp(44px, 6vw, 64px) !important;
	}
	/* Footer 2 colonnes a la place de 4 */
	.triv-footer-trivyum-grid {
		grid-template-columns: 1fr 1fr !important;
		gap: 40px !important;
	}
}

/* iPad landscape (1024-1366px) : layout desktop OK mais reduit padding sections */
@media (min-width: 1024px) and (max-width: 1366px) and (orientation: landscape) {
	.triv-hero {
		min-height: 95vh;
	}
	section[data-triv="conviction"] {
		padding: 90px 24px !important;
	}
}

/* Menu mobile : burger menu adapté */
@media (max-width: 768px) {
	.ct-header [data-device="desktop"] {
		display: none !important;
	}
	.ct-header [data-device="mobile"] {
		display: flex !important;
	}
}

/* Sub-menu sur touch device : afficher au tap */
@media (hover: none) and (pointer: coarse) {
	.ct-header .menu-item-has-children:focus-within > .sub-menu,
	.ct-header .menu-item-has-children:active > .sub-menu {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}
}

/* Auto-scroll desactive sur mobile (peut surprendre les utilisateurs) */
@media (max-width: 768px) {
	body.home .triv-hero {
		min-height: 90vh;
	}
}


/* =====================================================================
   AN. Hero Notre vision (page-id-969) — photo daniel-van-den-berg
   ===================================================================== */

body.page-id-969 .triv-hero,
body.page-id-969 .triv-hero-page {
	background-image: url('/wp-content/uploads/2026/05/daniel-van-den-berg-29Jx9qyTW14-unsplash-scaled.jpg') !important;
	background-size: cover !important;
	background-position: center top !important;
	background-repeat: no-repeat !important;
	background-color: var(--triv-black) !important;
	min-height: 100vh !important;
	align-items: flex-end !important;
	padding: 80px 24px 12vh !important;
	text-align: center;
	animation: triv-hero-photo-in 1.6s cubic-bezier(.22,.61,.36,1) both;
	position: relative;
	overflow: hidden;
}

/* Overlay sombre dégradé : transparent en haut (projecteurs visibles), sombre en bas (texte lisible) */
body.page-id-969 .triv-hero::after,
body.page-id-969 .triv-hero-page::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: linear-gradient(180deg,
		transparent 0%,
		transparent 45%,
		rgba(0, 0, 0, 0.30) 70%,
		rgba(0, 0, 0, 0.65) 100%) !important;
	z-index: 1 !important;
	pointer-events: none !important;
}

/* Pattern diagonal subtle */
body.page-id-969 .triv-hero::before,
body.page-id-969 .triv-hero-page::before {
	opacity: 0.15 !important;
}

/* H1 + subtitle révélés en séquence */
body.page-id-969 .triv-hero h1,
body.page-id-969 .triv-hero-page h1 {
	color: var(--triv-white) !important;
	font-size: clamp(40px, 5.5vw, 72px) !important;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.7);
	animation: triv-text-reveal 1.4s cubic-bezier(.16,.84,.32,1) 0.5s both !important;
	position: relative;
	z-index: 3;
}
body.page-id-969 .triv-hero h1::before,
body.page-id-969 .triv-hero-page h1::before {
	animation: triv-line-expand 1.2s cubic-bezier(.16,.84,.32,1) 1.2s both !important;
	box-shadow: 0 0 18px rgba(201, 169, 97, 0.5);
}
body.page-id-969 .triv-hero p,
body.page-id-969 .triv-hero-page p {
	animation: triv-text-reveal 1.2s cubic-bezier(.16,.84,.32,1) 1.4s both !important;
	position: relative;
	z-index: 3;
}

/* Le header transparent sur cette page aussi (pour voir les projecteurs derrière) */
body.page-id-969 .ct-header {
	background-color: rgba(10, 10, 10, 0.75) !important;
	backdrop-filter: blur(8px);
}
body.page-id-969 main,
body.page-id-969 #main {
	padding-top: 0 !important;
}

/* Mobile : meme principe */
@media (max-width: 768px) {
	body.page-id-969 .triv-hero,
	body.page-id-969 .triv-hero-page {
		padding: 70px 18px 10vh !important;
	}
}


/* =====================================================================
   AO. Item menu "Accueil" en icone maison SVG (avant VISION) — v2
   ===================================================================== */

/* L'item entier : largeur fixe pour qu'on voit bien l'icone */
.ct-header .menu-item.triv-menu-home-icon > a {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
	overflow: hidden;
}

/* Cache TOUT le texte du label "Accueil" */
.ct-header .menu-item.triv-menu-home-icon > a .ct-menu-link-text {
	display: none !important;
}
.ct-header .menu-item.triv-menu-home-icon > a {
	font-size: 0 !important;
}

/* Pas de souligne dore */
.ct-header .menu-item.triv-menu-home-icon > a::after {
	display: none !important;
	width: 0 !important;
}

/* Icone maison via background-image SVG base64 (visible meme avec font-size:0 du parent) */
.ct-header .menu-item.triv-menu-home-icon > a::before {
	content: "" !important;
	display: block !important;
	width: 22px !important;
	height: 22px !important;
	background-color: #F5F5F5 !important;
	-webkit-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCc+PHBhdGggZD0nTTEyIDNMMyAxMWgydjloNXYtNmg0djZoNXYtOWgyTDEyIDN6Jy8+PC9zdmc+") no-repeat center / contain;
	mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCc+PHBhdGggZD0nTTEyIDNMMyAxMWgydjloNXYtNmg0djZoNXYtOWgyTDEyIDN6Jy8+PC9zdmc+") no-repeat center / contain;
	position: static !important;
	transition: background-color 220ms ease !important;
	border: 0 !important;
	transform: none !important;
	left: auto !important;
	bottom: auto !important;
	opacity: 0.92;
}

.ct-header .menu-item.triv-menu-home-icon > a:hover::before {
	background-color: #C9A961 !important;
	opacity: 1;
}
.ct-header .menu-item.triv-menu-home-icon.current-menu-item > a::before {
	background-color: #C9A961 !important;
	opacity: 1;
}

/* =====================================================================
   AP. Notre vision (page-id-969) : plus de hauteur + léger dézoom
   ===================================================================== */

body.page-id-969 .triv-hero,
body.page-id-969 .triv-hero-page {
	min-height: 110vh !important;
	background-size: contain !important;
	background-position: center top !important;
	background-color: var(--triv-black) !important;
}


/* =====================================================================
   AQ. Contact (page-id-777) : photo timothy-tan
   ===================================================================== */

body.page-id-777 .triv-hero,
body.page-id-777 .triv-hero-page {
	background-image: url('/wp-content/uploads/2026/05/timothy-tan-PAe2UhGo-S4-unsplash-scaled.jpg') !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-color: var(--triv-black) !important;
	min-height: 100vh !important;
	align-items: flex-end !important;
	padding: 80px 24px 12vh !important;
	text-align: center;
	animation: triv-hero-photo-in 1.6s cubic-bezier(.22,.61,.36,1) both;
	position: relative;
	overflow: hidden;
}
body.page-id-777 .triv-hero::after,
body.page-id-777 .triv-hero-page::after {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	background: linear-gradient(180deg,
		transparent 0%,
		transparent 50%,
		rgba(0, 0, 0, 0.35) 75%,
		rgba(0, 0, 0, 0.70) 100%) !important;
	z-index: 1 !important;
	pointer-events: none !important;
}
body.page-id-777 .triv-hero::before,
body.page-id-777 .triv-hero-page::before {
	opacity: 0.10 !important;
}
body.page-id-777 .triv-hero h1,
body.page-id-777 .triv-hero-page h1 {
	color: var(--triv-white) !important;
	font-size: clamp(40px, 5.5vw, 72px) !important;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.7);
	animation: triv-text-reveal 1.4s cubic-bezier(.16,.84,.32,1) 0.5s both !important;
	position: relative;
	z-index: 3;
}
body.page-id-777 .triv-hero h1::before,
body.page-id-777 .triv-hero-page h1::before {
	animation: triv-line-expand 1.2s cubic-bezier(.16,.84,.32,1) 1.2s both !important;
	box-shadow: 0 0 18px rgba(201, 169, 97, 0.5);
}
body.page-id-777 .triv-hero p,
body.page-id-777 .triv-hero-page p {
	animation: triv-text-reveal 1.2s cubic-bezier(.16,.84,.32,1) 1.4s both !important;
	position: relative;
	z-index: 3;
}
body.page-id-777 .ct-header {
	background-color: rgba(10, 10, 10, 0.75) !important;
}
body.page-id-777 main,
body.page-id-777 #main {
	padding-top: 0 !important;
}


/* =====================================================================
   AR. Section "Aux confluents" — photo jean-karim-dangou
   ===================================================================== */

.triv-confluents,
section[data-triv="confluents"] {
	background-image:
		linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.80) 100%),
		url('/wp-content/uploads/2026/05/jean-karim-dangou-jBLsQqkEFuc-unsplash.jpg') !important;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	background-color: var(--triv-black) !important;
	min-height: 60vh !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	padding: 100px 24px !important;
	position: relative;
	overflow: hidden;
}

.triv-confluents-inner {
	max-width: 920px;
	margin: 0 auto;
	position: relative;
	z-index: 2;
}

.triv-confluents-line,
section[data-triv="confluents"] p.triv-confluents-line {
	font-family: var(--triv-font-title) !important;
	font-style: italic !important;
	font-weight: 500 !important;
	font-size: clamp(28px, 4vw, 46px) !important;
	color: var(--triv-gold) !important;
	line-height: 1.45 !important;
	letter-spacing: 0.4px !important;
	margin: 0 !important;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.75);
	max-width: 820px;
}

@media (max-width: 768px) {
	.triv-confluents { min-height: 50vh !important; padding: 70px 18px !important; }
	.triv-confluents-line { font-size: clamp(22px, 6vw, 32px) !important; }
}


/* =====================================================================
   AS. Cacher loupe de recherche + maison meme couleur que le menu
   ===================================================================== */

/* Cache la loupe de recherche du header */
.ct-header .ct-header-search,
.ct-header [data-id="search"],
.ct-header button.ct-header-search,
.ct-header button[data-toggle-panel="#search-modal"] {
	display: none !important;
}

/* Maison : meme couleur que les autres items du menu, sans opacite */
.ct-header .menu-item.triv-menu-home-icon > a::before {
	background-color: var(--triv-text-dark) !important;
	opacity: 1 !important;
}
.ct-header .menu-item.triv-menu-home-icon > a:hover::before {
	background-color: var(--triv-gold) !important;
}
.ct-header .menu-item.triv-menu-home-icon.current-menu-item > a::before {
	background-color: var(--triv-gold) !important;
}


/* =====================================================================
   AT. RESPONSIVE COMPLET — iPhone / iPad portrait / iPad land / Desktop
   ===================================================================== */


/* ==========================================================
   📱 iPhone (375px - 430px) - mobile portrait
   ========================================================== */
@media (max-width: 430px) {

	/* Hero home : photo en cover, padding plus compact */
	body.home .triv-hero {
		background-size: cover !important;
		background-position: center 25% !important;
		min-height: 92vh !important;
		padding: 80px 16px 16vh !important;
	}
	body.home .triv-hero h1 {
		font-size: clamp(32px, 9vw, 44px) !important;
		letter-spacing: 0.5px;
	}

	/* Hero Notre vision : cover au lieu de contain (eviter bandes verticales enormes) */
	body.page-id-969 .triv-hero,
	body.page-id-969 .triv-hero-page {
		background-size: cover !important;
		background-position: center top !important;
		min-height: 90vh !important;
	}
	body.page-id-969 .triv-hero h1 {
		font-size: clamp(32px, 9vw, 48px) !important;
	}

	/* Hero Contact : ajuster position pour bien voir le terrain */
	body.page-id-777 .triv-hero,
	body.page-id-777 .triv-hero-page {
		background-position: center 40% !important;
		min-height: 88vh !important;
	}
	body.page-id-777 .triv-hero h1 {
		font-size: clamp(34px, 9vw, 48px) !important;
	}

	/* Sections : padding mobile */
	section[data-triv="conviction"] {
		padding: 70px 18px !important;
	}
	.triv-conviction-title,
	section[data-triv="conviction"] h2 {
		font-size: clamp(24px, 6.5vw, 32px) !important;
		margin: 18px 0 24px !important;
	}
	.triv-conviction-quote {
		font-size: 18px !important;
	}

	/* Cartes 3 voies : padding mobile compact */
	.triv-voie-card {
		padding: 36px 22px 28px !important;
	}
	.triv-voie-card h3 {
		font-size: 24px !important;
	}
	.triv-voie-card::before {
		font-size: 110px !important;
		top: -4px !important;
		right: 4px !important;
	}

	/* Section fondateur */
	.triv-founder {
		padding: 60px 18px !important;
	}
	.triv-founder h2 {
		font-size: 32px !important;
	}
	.triv-founder img {
		box-shadow:
			8px 8px 0 -2px rgba(201, 169, 97, 0.85),
			0 16px 32px -16px rgba(10,10,10,0.4) !important;
	}

	/* Section confluents */
	.triv-confluents {
		min-height: 45vh !important;
		padding: 60px 18px !important;
	}
	.triv-confluents-line {
		font-size: 22px !important;
	}

	/* CTA final */
	.triv-section-dark {
		padding: 70px 18px !important;
	}
	.triv-section-dark h2 {
		font-size: clamp(26px, 7vw, 36px) !important;
	}

	/* Boutons : touch target 44px min */
	.triv-btn,
	.triv-btn-outline,
	a.triv-btn {
		padding: 16px 30px !important;
		min-height: 44px !important;
		font-size: 12px !important;
	}

	/* WPForms : champs touch-friendly */
	.wpforms-container input[type="text"],
	.wpforms-container input[type="email"],
	.wpforms-container input[type="tel"],
	.wpforms-container select,
	.wpforms-container textarea {
		font-size: 16px !important;  /* evite zoom iOS */
		padding: 14px 14px !important;
		min-height: 48px !important;
	}
	.wpforms-container select {
		min-height: 52px !important;
	}
	.wpforms-container button[type="submit"] {
		padding: 18px 32px !important;
		min-height: 48px !important;
		width: 100%;
	}

	/* Bannière cookies : ne pas couvrir le bouton CTA hero */
	.triv-cookies-banner {
		padding: 16px 16px !important;
	}
	.triv-cookies-text {
		font-size: 12.5px !important;
		line-height: 1.5;
	}
	.triv-cookies-btn {
		padding: 12px 14px !important;
		font-size: 11px !important;
		letter-spacing: 1.2px !important;
	}

	/* Header : burger menu visible, icone maison cachee en mobile */
	.ct-header [data-row="middle"] {
		min-height: 64px !important;
	}
	.site-logo-container img {
		max-height: 48px !important;
	}

	/* Footer */
	.triv-footer-trivyum {
		padding: 50px 18px 30px !important;
	}
	.triv-footer-trivyum-grid {
		gap: 28px !important;
	}
}


/* ==========================================================
   📱 iPhone large (430px) — pas de besoin specifique
   📱 Mobile landscape : reduire padding hero
   ========================================================== */
@media (max-height: 500px) and (orientation: landscape) {
	body.home .triv-hero {
		min-height: 100vh !important;
		padding-bottom: 8vh !important;
	}
}


/* ==========================================================
   📱 iPad portrait (768px - 1024px portrait)
   ========================================================== */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {

	/* Hero photos : cover (eviter bandes) */
	body.home .triv-hero,
	body.page-id-969 .triv-hero,
	body.page-id-969 .triv-hero-page,
	body.page-id-777 .triv-hero,
	body.page-id-777 .triv-hero-page {
		background-size: cover !important;
	}
	body.page-id-969 .triv-hero,
	body.page-id-969 .triv-hero-page {
		min-height: 90vh !important;
		background-position: center center !important;
	}

	/* Header un poil plus grand */
	.ct-header [data-row="middle"] {
		min-height: 80px;
	}
	.site-logo-container img {
		max-height: 60px !important;
	}

	/* Cartes 3 voies : 2 colonnes au lieu de 1 (puisqu'on a la place) */
	.triv-voies-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 24px !important;
	}
	.triv-voies-grid > .triv-voie-card:nth-of-type(3) {
		grid-column: 1 / -1;
		max-width: 540px;
		margin: 0 auto;
	}

	/* Cartes valeurs : 2 colonnes */
	.triv-valeurs-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	/* Section fondateur : reste 1 col mais plus aere */
	.triv-founder-grid {
		gap: 40px !important;
	}
	.triv-founder img {
		max-width: 480px;
		margin: 0 auto;
	}

	/* Prestations services : 2 col reste */
	.triv-prestations {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	/* Cartes talents : 2 col */
	.triv-talents-cta {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	/* Footer 2 colonnes (deja en place mais on confirme) */
	.triv-footer-trivyum-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 36px !important;
	}

	/* Padding sections plus aere */
	section[data-triv="conviction"] {
		padding: 90px 32px !important;
	}
	.triv-confluents {
		min-height: 55vh !important;
		padding: 90px 32px !important;
	}
}


/* ==========================================================
   💻 iPad landscape (1024px - 1366px) - similaire au desktop
   ========================================================== */
@media (min-width: 1024px) and (max-width: 1366px) and (orientation: landscape) {

	/* Hero : OK desktop, juste un poil de hauteur reduite */
	.triv-hero {
		min-height: 92vh;
	}

	/* Padding sections legerement reduit */
	section[data-triv="conviction"] {
		padding: 90px 28px !important;
	}
	.triv-founder {
		padding: 100px 28px !important;
	}
	.triv-banner-positioning {
		padding: 100px 28px !important;
	}
	.triv-section-dark {
		padding: 110px 28px !important;
	}

	/* Cartes 3 voies : 3 col (desktop layout) - deja en place */
	.triv-voies-grid {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 24px !important;
	}

	/* Footer 4 cols si OK, sinon 2 */
	.triv-footer-trivyum-grid {
		grid-template-columns: 1.4fr 1fr 1fr 1fr !important;
	}
}


/* ==========================================================
   🖥 Desktop large (>= 1367px)
   ========================================================== */
@media (min-width: 1367px) {

	/* Hero confortable */
	.triv-hero {
		min-height: 100vh;
	}

	/* H1 hero confortable */
	body.home .triv-hero h1 {
		font-size: clamp(64px, 6.5vw, 110px) !important;
	}

	/* Sections paddings confortables */
	section[data-triv="conviction"],
	.triv-founder,
	.triv-banner-positioning,
	.triv-section-dark {
		padding-left: 24px;
		padding-right: 24px;
	}
}


/* ==========================================================
   🖱 Hover seulement pour pointer fin (souris) — pas tactile
   ========================================================== */
@media (hover: hover) and (pointer: fine) {
	/* Animations hover restent (deja en place) */
}

@media (hover: none) {
	/* Tactile : retirer effects hover-only qui peuvent gener */
	.triv-voie-card:hover {
		transform: none;
	}
	.triv-founder img:hover {
		transform: none;
	}
}


/* ==========================================================
   📐 Touch targets generaux (accessibilite tactile)
   ========================================================== */
@media (pointer: coarse) {
	a, button, input[type="submit"], input[type="button"], .menu-item > a {
		min-height: 44px;
	}
}


/* =====================================================================
   AU. Section "Aux confluents" : dezoom photo (voir le soleil)
   ===================================================================== */

.triv-confluents,
section[data-triv="confluents"] {
	background-size: contain !important;
	background-position: center center !important;
	min-height: 80vh !important;
}

/* Mobile : cover pour eviter trop de bandes laterales */
@media (max-width: 768px) {
	.triv-confluents,
	section[data-triv="confluents"] {
		background-size: cover !important;
		background-position: center top !important;
		min-height: 55vh !important;
	}
}

/* iPad portrait : meme logique */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
	.triv-confluents,
	section[data-triv="confluents"] {
		background-size: cover !important;
		background-position: center top !important;
		min-height: 60vh !important;
	}
}


/* =====================================================================
   AV. Section "Aux confluents" v2 — split layout photo verticale | texte
   ===================================================================== */

/* Reset des anciens styles (override la v1) */
.triv-confluents.triv-confluents-split,
section[data-triv="confluents"].triv-confluents-split {
	background-image: none !important;
	background-color: var(--triv-black) !important;
	padding: 0 !important;
	min-height: auto !important;
	display: block !important;
}

.triv-confluents-split-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	min-height: 78vh;
	max-width: 1400px;
	margin: 0 auto;
	align-items: stretch;
}

/* Photo : ratio naturel preserve via aspect-ratio + cover */
.triv-confluents-photo {
	position: relative;
	overflow: hidden;
	background-color: #0A0A0A;
}
.triv-confluents-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
	filter: grayscale(15%) contrast(1.05) brightness(0.92);
	transition: filter 600ms cubic-bezier(.2,.7,.2,1), transform 8s ease-out;
}
.triv-confluents-photo:hover img {
	filter: grayscale(0%) contrast(1.05) brightness(1);
	transform: scale(1.04);
}

/* Texte a droite : centre verticalement, fond noir, citation doree */
.triv-confluents-text {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 80px 60px;
	background-color: var(--triv-black);
	position: relative;
}
.triv-confluents-text::before {
	/* Petit trait dore decoratif a gauche */
	content: "";
	position: absolute;
	left: 60px;
	top: 50%;
	transform: translateY(calc(-50% - 60px));
	width: 40px;
	height: 1px;
	background: var(--triv-gold);
}

.triv-confluents-text .triv-confluents-line,
.triv-confluents-split .triv-confluents-line {
	font-family: var(--triv-font-title) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(24px, 2.4vw, 36px) !important;
	color: var(--triv-gold) !important;
	line-height: 1.5 !important;
	letter-spacing: 0.3px !important;
	margin: 0 !important;
	max-width: 480px;
	text-align: left;
	text-shadow: none;
}

/* Mobile + tablette portrait : empile photo en haut, texte en bas */
@media (max-width: 900px) {
	.triv-confluents-split-grid {
		grid-template-columns: 1fr;
		min-height: auto;
	}
	.triv-confluents-photo {
		aspect-ratio: 3/4;
		max-height: 70vh;
	}
	.triv-confluents-text {
		padding: 50px 28px;
		text-align: center;
	}
	.triv-confluents-text::before {
		left: 50%;
		transform: translateX(-50%);
		top: 28px;
	}
	.triv-confluents-text .triv-confluents-line,
	.triv-confluents-split .triv-confluents-line {
		text-align: center;
		font-size: clamp(20px, 5.5vw, 30px) !important;
		max-width: 100%;
	}
}

@media (max-width: 480px) {
	.triv-confluents-text {
		padding: 40px 20px;
	}
	.triv-confluents-photo {
		aspect-ratio: 4/5;
	}
}
