/*=============================================================================
  Tunalika chrome — header / footer
  Règle: ne pas casser les colonnes Divi. Peau + offset fixed seulement.
=============================================================================*/

:root {
	--tlk-bg: #0b0716;
	--tlk-surface: #140b24;
	--tlk-border: rgba(255, 255, 255, 0.08);
	--tlk-text: #ffffff;
	--tlk-muted: rgba(255, 255, 255, 0.62);
	--tlk-accent: #a855f7;
	--tlk-accent-2: #22d3ee;
	--tlk-header-h: 72px;
	--tlk-admin-h: 0px;
	--tlk-font: "Plus Jakarta Sans", Inter, system-ui, sans-serif;
	--tlk-radius-pill: 999px;
	/* Largeur site = Divi par défaut ; pages étroites (Support/Tarifs) = --tlk-narrow */
	--tlk-content-max: 1400px;
	--tlk-narrow: 1120px;
	/* Gutter horizontal unifié (équivalent Tailwind px-6 = 1.5rem) */
	--tlk-gutter: 1.5rem;
}
@media screen and (max-width: 980px) {
	:root {
		--tlk-gutter: 1rem;
	}
}

/* Barre d’admin WP (connecté) */
body.admin-bar {
	--tlk-admin-h: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar {
		--tlk-admin-h: 46px;
	}
}

/* Font — Sora déjà chargé par Divi + Jakarta en fallback moderne */
body,
.et_pb_module,
.et_pb_text_inner,
.et_pb_button,
.et-menu a {
	font-family: "Plus Jakarta Sans", Sora, Inter, system-ui, sans-serif !important;
	-webkit-font-smoothing: antialiased;
}
.header-section,
.top-footer-section,
.bottom-footer-section {
	font-family: var(--tlk-font);
}

/*-----------------------------------------------------------------------------
  HEADER — fixed (sticky ne marche pas sur cet hébergeur / Divi TB)
-----------------------------------------------------------------------------*/
.et-l--header {
	position: fixed !important;
	top: var(--tlk-admin-h) !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 99999 !important;
}

.header-section {
	position: relative !important;
	top: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	min-height: var(--tlk-header-h);
	background: rgba(8, 5, 16, 0.92) !important;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border-bottom: 1px solid var(--tlk-border);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}

.header-section > .et_pb_row {
	width: 100% !important;
	max-width: var(--tlk-content-max) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-top: 0.9rem !important;
	padding-bottom: 0.9rem !important;
	display: flex !important;
	align-items: center !important;
	min-height: calc(var(--tlk-header-h) - 4px);
}

/* Garder les largeurs Divi 1/4 - 1/2 - 1/4, juste centrer verticalement */
.header-section > .et_pb_row > .et_pb_column {
	margin-bottom: 0 !important;
	display: flex !important;
	align-items: center !important;
	float: none !important;
}
.header-section > .et_pb_row > .et_pb_column_0_tb_header {
	justify-content: flex-start;
}
.header-section > .et_pb_row > .et_pb_column_1_tb_header {
	justify-content: center;
}
.header-section > .et_pb_row > .et_pb_column_2_tb_header {
	justify-content: flex-end;
}
.header-section .et_pb_module {
	margin-bottom: 0 !important;
	width: 100%;
}

/* Logo */
.header-section .et_pb_text_0_tb_header br {
	display: none !important;
}
.header-section .et_pb_text_0_tb_header .et_pb_text_inner > div,
.header-section .et_pb_text_0_tb_header .flex {
	display: flex !important;
	align-items: center !important;
	gap: 0.55rem !important;
	flex-wrap: nowrap !important;
}
.header-section .et_pb_text_0_tb_header span {
	font-family: var(--tlk-font);
	font-weight: 700 !important;
	letter-spacing: -0.02em;
	color: var(--tlk-text) !important;
}

/* Nav desktop */
.header-section #menu-newheader {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 1.75rem;
	margin: 0;
	padding: 0;
}
.header-section #menu-newheader > li {
	padding: 0 !important;
	margin: 0 !important;
}
.header-section #menu-newheader > li > a {
	font-family: var(--tlk-font);
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	color: #fff !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	padding: 0.15rem 0 0.4rem !important;
	overflow: visible !important;
}
/* Actif = trait pleine largeur */
.header-section #menu-newheader > li.current-menu-item > a::after,
.header-section #menu-newheader > li.current_page_item > a::after {
	width: 100%;
}
#menu-newheader li a::after {
	background: linear-gradient(90deg, var(--tlk-accent-2), var(--tlk-accent)) !important;
	height: 2px;
	width: 0;
	transform: none !important;
	transition: width 0.3s ease !important;
}
#menu-newheader li a:hover::after {
	width: 100%;
}

/* CTAs */
.header-section .et_pb_text_1_tb_header .et_pb_text_inner > div,
.header-section .et_pb_text_1_tb_header .flex {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: 1rem !important;
}
.header-section .et_pb_text_1_tb_header a {
	font-family: var(--tlk-font);
	text-decoration: none !important;
	white-space: nowrap;
}
/* CTAs : HTML en MAJ → sentence case via ::first-letter (besoin display block/inline-block) */
.header-section .et_pb_text_1_tb_header a {
	text-transform: lowercase !important;
}
.header-section .et_pb_text_1_tb_header a::first-letter {
	text-transform: uppercase !important;
}
.header-section .et_pb_text_1_tb_header a:not(.bg-purple-600) {
	position: relative;
	display: inline-block !important;
	overflow: visible !important;
	color: #fff !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	padding: 0.15rem 0 0.4rem !important;
}
/* Même underline : largeur 0 → 100% */
.header-section .et_pb_text_1_tb_header a:not(.bg-purple-600)::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--tlk-accent-2), var(--tlk-accent));
	transform: none;
	transition: width 0.3s ease;
}
.header-section .et_pb_text_1_tb_header a:not(.bg-purple-600):hover::after {
	width: 100%;
}
.header-section .et_pb_text_1_tb_header a.bg-purple-600 {
	/* inline-block (pas flex) pour que ::first-letter fonctionne → "Commencer" */
	display: inline-block !important;
	min-height: 2.4rem;
	line-height: 2.4rem;
	padding: 0 1.25rem !important;
	border-radius: var(--tlk-radius-pill) !important;
	font-size: 0.9rem !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	color: #fff !important;
	text-align: center;
	background: linear-gradient(135deg, #9333ea, #7c3aed) !important;
	box-shadow: 0 0 0 1px rgba(168, 85, 247, 0.25), 0 8px 24px rgba(124, 58, 237, 0.28);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	overflow: visible;
}
.header-section .et_pb_text_1_tb_header a.bg-purple-600::after {
	display: none !important;
}
.header-section .et_pb_text_1_tb_header a.bg-purple-600:hover {
	transform: translateY(-1px);
	box-shadow: 0 0 0 1px rgba(168, 85, 247, 0.4), 0 12px 28px rgba(124, 58, 237, 0.38);
}

/*
 * Offset contenu sous header FIXED.
 * WP ajoute déjà html { margin-top: 32/46px } avec la barre admin :
 * on ne re-ajoute PAS admin-h ici (sinon double décalage).
 */
.et_pb_section.et_pb_section_0:not(.header-section):not([class*="_tb_header"]) {
	margin-top: var(--tlk-header-h) !important;
}

/*-----------------------------------------------------------------------------
  HEADER mobile
-----------------------------------------------------------------------------*/
@media screen and (max-width: 980px) {
	:root {
		--tlk-header-h: 64px;
	}

	.header-section > .et_pb_row {
		padding-left: 1rem !important;
		padding-right: 1rem !important;
		gap: 0.5rem;
	}

	/* Ordre: logo | commencer | burger */
	.header-section > .et_pb_row > .et_pb_column_0_tb_header {
		order: 1;
		width: auto !important;
		flex: 1 1 auto !important;
	}
	.header-section > .et_pb_row > .et_pb_column_2_tb_header {
		order: 2;
		width: auto !important;
		flex: 0 0 auto !important;
		margin-left: auto !important;
	}
	.header-section > .et_pb_row > .et_pb_column_1_tb_header {
		order: 3;
		width: auto !important;
		flex: 0 0 auto !important;
	}

	.header-section .et_pb_menu__menu {
		display: none !important;
	}
	.header-section .et_mobile_nav_menu {
		display: flex !important;
		float: none !important;
		margin: 0 !important;
	}
	.header-section .mobile_menu_bar {
		width: 2.4rem;
		height: 2.4rem;
		margin: 0 !important;
		border-radius: var(--tlk-radius-pill);
		background: rgba(255, 255, 255, 0.06) !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
	}
	.header-section .mobile_menu_bar:before {
		color: #fff !important;
	}

	.header-section .et_pb_text_1_tb_header a:not(.bg-purple-600) {
		display: none !important;
	}
	.header-section .et_pb_text_1_tb_header a.bg-purple-600 {
		min-height: 2.15rem;
		padding: 0.4rem 0.9rem !important;
		font-size: 0.7rem !important;
	}
	.header-section .et_pb_text_0_tb_header span {
		font-size: 1.05rem !important;
	}

	.header-section > .et_pb_row {
		position: relative !important;
	}
	.header-section .et_pb_menu,
	.header-section .et_pb_menu_inner_container,
	.header-section .et_pb_menu__wrap {
		position: static !important;
	}
	.header-section .mobile_nav.closed .et_mobile_menu {
		display: none !important;
	}
	.header-section .mobile_nav.opened .et_mobile_menu,
	.header-section ul.et_mobile_menu {
		display: block !important;
		position: absolute !important;
		top: calc(100% + 0.4rem) !important;
		right: 0.75rem !important;
		left: auto !important;
		width: min(17rem, calc(100vw - 1.5rem)) !important;
		padding: 0.4rem !important;
		margin: 0 !important;
		background: #160b28 !important;
		border: 1px solid var(--tlk-border) !important;
		border-radius: 16px !important;
		box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55) !important;
		z-index: 100000 !important;
	}
	.header-section .et_mobile_menu li a {
		display: block !important;
		padding: 0.85rem 1rem !important;
		color: #fff !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 12px !important;
		font-family: var(--tlk-font);
		font-weight: 500;
		text-transform: none !important;
		letter-spacing: 0 !important;
	}
	.header-section .et_mobile_menu li a:hover {
		background: rgba(168, 85, 247, 0.16) !important;
	}
}

/*-----------------------------------------------------------------------------
  FOOTER — respecte la structure Divi (marque 2/5 + liens 3/5 → 3 modules)
-----------------------------------------------------------------------------*/
.top-footer-section {
	margin: 0 !important;
	padding-top: 4.5rem !important;
	padding-bottom: 2.5rem !important;
	background: #08050f !important;
	border-top: 1px solid var(--tlk-border);
}
.top-footer-section > .et_pb_row {
	max-width: var(--tlk-content-max) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.top-footer-section > .et_pb_row::before,
.top-footer-section > .et_pb_row::after {
	display: none !important;
}

/* Les 3 colonnes de liens vivent DANS la colonne droite Divi */
.top-footer-section .et_pb_column_1_tb_footer {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1.75rem 2rem !important;
	align-content: start;
}
.top-footer-section .et_pb_column_1_tb_footer > .et_pb_module {
	width: 100% !important;
	max-width: none !important;
	margin-bottom: 0 !important;
	float: none !important;
}

.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_blurb_content {
	display: flex !important;
	align-items: center !important;
	gap: 0.65rem;
}
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_main_blurb_image {
	margin: 0 !important;
	float: none !important;
	display: flex !important;
	align-items: center !important;
	flex-shrink: 0;
	line-height: 0;
}
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_image_wrap,
.top-footer-section .et_pb_blurb_0_tb_footer .et-pb-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center;
	line-height: 1 !important;
	margin: 0 !important;
}
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_blurb_container {
	padding-left: 0 !important;
	display: flex !important;
	align-items: center !important;
}
.top-footer-section .et_pb_blurb_0_tb_footer h4,
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_module_header,
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_blurb_description,
.top-footer-section .et_pb_blurb_0_tb_footer .et_pb_blurb_description p {
	font-family: var(--tlk-font);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #fff !important;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.25 !important;
}

.top-footer-section .et_pb_text_0_tb_footer {
	max-width: 22rem;
	color: var(--tlk-muted) !important;
	line-height: 1.65;
	font-size: 0.95rem;
}
.top-footer-section .et_pb_social_media_follow {
	margin-top: 1.15rem !important;
}
.top-footer-section .et_pb_social_media_follow li {
	margin-right: 0.45rem !important;
}
.top-footer-section .et_pb_social_media_follow li a {
	background: rgba(255, 255, 255, 0.06) !important;
	border-radius: var(--tlk-radius-pill) !important;
	transition: background 0.2s ease, transform 0.2s ease;
}
.top-footer-section .et_pb_social_media_follow li a:hover {
	background: rgba(168, 85, 247, 0.35) !important;
	transform: translateY(-2px);
}

.top-footer-section .et_pb_text_inner {
	font-family: var(--tlk-font);
}
.top-footer-section .et_pb_text_1_tb_footer .et_pb_text_inner > p:first-child,
.top-footer-section .et_pb_text_2_tb_footer .et_pb_text_inner > p:first-child,
.top-footer-section .et_pb_text_3_tb_footer .et_pb_text_inner > p:first-child,
.top-footer-section .et_pb_text_inner p strong,
.top-footer-section .et_pb_text_inner h3,
.top-footer-section .et_pb_text_inner h4 {
	color: rgba(255, 255, 255, 0.42) !important;
	font-size: 0.72rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin-bottom: 0.85rem !important;
}
.top-footer-section .et_pb_text_inner ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.top-footer-section .et_pb_text_inner ul li {
	margin: 0 0 0.6rem;
}
.top-footer-section .et_pb_text_inner a {
	position: relative;
	display: inline-block;
	overflow: visible;
	color: #fff !important;
	text-decoration: none !important;
	font-size: 0.92rem;
	font-weight: 500;
	padding: 0.1rem 0 0.4rem;
}
/* Même underline : largeur 0 → 100% */
.top-footer-section .et_pb_text_inner a::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--tlk-accent-2), var(--tlk-accent));
	transform: none;
	transition: width 0.3s ease;
}
.top-footer-section .et_pb_text_inner a:hover::after {
	width: 100%;
}

.bottom-footer-section {
	margin: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 1rem !important;
	padding-bottom: 1rem !important;
	background: #05030a !important;
	border-top: 1px solid rgba(255, 255, 255, 0.05);
}
.bottom-footer-section > .et_pb_row {
	max-width: var(--tlk-content-max) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}
.bottom-footer-section .et_pb_text_inner,
.bottom-footer-section .et_pb_text_inner p {
	margin: 0 !important;
	color: rgba(255, 255, 255, 0.4) !important;
	font-family: var(--tlk-font);
	font-size: 0.8rem !important;
}

/* Couper l’espace fantôme sous le footer */
#page-container,
#et-main-area,
#main-content,
.et-l--footer,
.et-l--footer .et_pb_section:last-child {
	margin-bottom: 0 !important;
	padding-bottom: 0;
}
body {
	margin-bottom: 0 !important;
}

@media screen and (max-width: 980px) {
	.top-footer-section {
		padding-top: 3rem !important;
		padding-bottom: 2rem !important;
	}
	.top-footer-section .et_pb_column_1_tb_footer {
		grid-template-columns: 1fr !important;
		gap: 1.75rem !important;
		margin-top: 1.5rem;
	}
}
@media screen and (min-width: 700px) and (max-width: 980px) {
	.top-footer-section .et_pb_column_1_tb_footer {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
