/* Trackday Giallo : barre fixe, menu plein écran, pied de page.
   Reprise de maquettes/accueil-giallo/style.css (.nav, .burger, .menu, .pied, .newsletter, .pied__geant). */

:root { --tdg-decalage-ancre: 64px; }

/* ---------- Lien d'évitement ---------- */
.skip-link {
	position: absolute;
	left: 8px;
	top: -100px;
	z-index: 100;
	padding: 12px 18px;
	background: var(--tdg-blanc);
	color: var(--tdg-carbone);
	font-size: 14px;
	text-decoration: none;
}
.skip-link:focus { top: 8px; clip: auto; width: auto; height: auto; }

/* ---------- Barre ---------- */
.tdg-nav {
	position: fixed;
	inset: 0 0 auto;
	z-index: 50;
	height: 64px;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 0 var(--tdg-marge);
	/* Pleine par défaut ; transparente seulement sur un héros sombre (body.tdg-entete-transparente). */
	background: var(--tdg-carbone-profond);
	color: var(--tdg-blanc);
	transition: transform .6s var(--tdg-ease), background .4s;
}
.admin-bar .tdg-nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .tdg-nav { top: 46px; } }
.tdg-entete-transparente .tdg-nav:not(.est-pleine) { background: transparent; }
.tdg-menu-ouvert .tdg-nav, .tdg-menu-ouvert .tdg-entete-transparente .tdg-nav:not(.est-pleine) { background: var(--tdg-carbone-profond); }
.tdg-nav.est-cachee { transform: translateY(-100%); }
/* Le contenu démarre sous la barre, sauf si elle est transparente au-dessus d'un héros. */
body.tdg-theme:not(.tdg-entete-transparente) { padding-top: 64px; }

.tdg-nav a, .tdg-nav button { color: inherit; text-decoration: none; }
.tdg-nav .tdg-nav__menu {
	display: flex;
	align-items: center;
	gap: 12px;
	justify-self: start;
	padding: 8px 0;
	border: 0;
	border-radius: 0;
	background: none;
	font: inherit;
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .2em;
	cursor: pointer;
}
.tdg-nav .tdg-nav__menu:hover, .tdg-nav .tdg-nav__menu:focus { background: none; color: inherit; }
.tdg-burger { position: relative; width: 24px; height: 10px; }
.tdg-burger i {
	position: absolute;
	left: 0;
	width: 100%;
	height: 1.5px;
	background: currentColor;
	transition: transform .5s var(--tdg-ease), top .5s var(--tdg-ease);
}
.tdg-burger i:first-child { top: 0; }
.tdg-burger i:last-child { top: 8px; }
.tdg-menu-ouvert .tdg-burger i:first-child { top: 4px; transform: rotate(45deg); }
.tdg-menu-ouvert .tdg-burger i:last-child { top: 4px; transform: rotate(-45deg); }

.tdg-nav__logo { font-size: 13px; font-weight: 400; letter-spacing: .3em; white-space: nowrap; }
.tdg-nav__logo b { font-weight: 800; }
.tdg-nav__droite {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 24px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .14em;
}
.tdg-nav .tdg-btn--contour { color: var(--tdg-blanc); }
.tdg-nav .tdg-btn--contour:hover, .tdg-nav .tdg-btn--contour:focus-visible { color: var(--tdg-carbone); }
.tdg-nav__panier { position: relative; display: inline-flex; align-items: center; gap: 6px; }
.tdg-nav__nb { font-size: 12px; font-weight: 500; letter-spacing: 0; min-width: 1ch; }

@media (max-width: 760px) {
	.tdg-nav__lien { display: none; }
	.tdg-nav__logo { font-size: 11px; letter-spacing: .18em; }
	.tdg-nav__droite { gap: 14px; }
	.tdg-nav .tdg-btn--contour { padding: 8px 12px; }
	/* Le libellé reste lu par les lecteurs d'écran. */
	.tdg-nav__menu-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 460px) {
	.tdg-nav { grid-template-columns: auto 1fr auto; gap: 8px; }
	.tdg-nav__logo { font-size: 10px; letter-spacing: .1em; text-align: center; }
	.tdg-nav .tdg-btn--contour { padding: 7px 9px; letter-spacing: .08em; }
}

/* ---------- Menu plein écran ---------- */
.tdg-menu {
	position: fixed;
	inset: 0;
	z-index: 45;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	padding: 96px var(--tdg-marge) 40px;
	background: var(--tdg-carbone-profond);
	color: var(--tdg-blanc);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.tdg-js-ok .tdg-menu {
	clip-path: inset(0 0 100% 0);
	visibility: hidden;
	transition: clip-path .8s var(--tdg-ease), visibility 0s .8s;
}
.tdg-js-ok.tdg-menu-ouvert .tdg-menu {
	clip-path: inset(0 0 0 0);
	visibility: visible;
	transition: clip-path .9s var(--tdg-ease), visibility 0s;
}
.tdg-menu__apercu { height: 70vh; overflow: hidden; }
.tdg-menu__apercu img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); transition: transform 1.2s var(--tdg-ease-out); }
.tdg-menu-ouvert .tdg-menu__apercu img { transform: scale(1); }
.tdg-menu__apercu img.est-change { animation: tdg-apercu .8s var(--tdg-ease-out); }
@keyframes tdg-apercu { from { transform: scale(1.2); opacity: .3; } to { transform: scale(1); opacity: 1; } }

.tdg-menu__liste { margin: 0; padding: 0 0 0 5vw; list-style: none; }
.tdg-menu__liste li { overflow: hidden; margin: 0; }
.tdg-js-ok .tdg-menu__liste a {
	transform: translateY(100%);
	opacity: 0;
}
.tdg-menu__liste a {
	display: flex;
	align-items: first baseline;
	gap: 18px;
	/* Taille liée aussi à la hauteur de l'écran : les 7 entrées tiennent sans faire défiler le menu. */
	font-size: clamp(24px, min(3.4vw, 6.4vh), 56px);
	font-weight: 600;
	line-height: 1.15;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--tdg-cendre);
	transition: color .3s, transform .5s var(--tdg-ease-out), opacity .3s;
}
.tdg-js-ok.tdg-menu-ouvert .tdg-menu__liste a {
	transform: none;
	opacity: 1;
	transition: color .3s, transform .9s var(--tdg-ease-out) calc(.35s + var(--i, 0) * .06s), opacity .9s var(--tdg-ease-out) calc(.35s + var(--i, 0) * .06s);
}
.tdg-menu-ouvert .tdg-menu__liste a:hover,
.tdg-menu-ouvert .tdg-menu__liste a:focus-visible { color: var(--tdg-blanc); transform: translateX(16px); transition: color .3s, transform .5s var(--tdg-ease-out); }
.tdg-menu__liste a[aria-current] { color: var(--tdg-blanc); }
.tdg-menu__liste small { font-size: 12px; font-weight: 400; letter-spacing: .2em; color: var(--tdg-blanc); }
.tdg-menu__pied {
	grid-column: 1 / -1;
	margin-top: 32px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 40px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--tdg-cendre);
}
.tdg-menu__pied a { color: inherit; text-decoration: none; }
.tdg-menu__pied a:hover { color: var(--tdg-blanc); }

/* Assez de hauteur : coordonnées calées en bas ; sinon elles suivent la liste et le menu défile. */
@media (min-height: 620px) {
	.tdg-menu__pied { position: absolute; left: var(--tdg-marge); right: var(--tdg-marge); bottom: 32px; margin-top: 0; }
}

/* Sans JavaScript : pas de bouton ; le menu est une liste de liens en tête de page. */
html:not(.tdg-js-ok) .tdg-nav__menu { display: none; }
html:not(.tdg-js-ok) .tdg-menu { position: relative; inset: auto; z-index: 1; display: block; padding: 80px var(--tdg-marge) 24px; }
html:not(.tdg-js-ok) .tdg-menu__apercu { display: none; }
html:not(.tdg-js-ok) .tdg-menu__liste { display: flex; flex-wrap: wrap; gap: 4px 28px; padding: 0; }
html:not(.tdg-js-ok) .tdg-menu__liste a { font-size: 18px; color: var(--tdg-blanc); }
html:not(.tdg-js-ok) .tdg-menu__pied { position: static; margin-top: 16px; }
html:not(.tdg-js-ok) .tdg-nav .tdg-nav__lien { display: inline; }

/* Menu ouvert : la page ne défile plus. */
html.tdg-menu-ouvert, html.tdg-menu-ouvert body { overflow: hidden; }

@media (max-width: 760px) {
	.tdg-menu { grid-template-columns: 1fr; }
	.tdg-menu__apercu { display: none; }
	.tdg-menu__liste { padding-left: 0; }
}

/* ---------- Pied de page ---------- */
.tdg-pied {
	padding-top: clamp(80px, 10vw, 140px);
	overflow: hidden;
	background: var(--tdg-carbone-profond);
	color: var(--tdg-blanc);
}
.tdg-pied__conteneur { max-width: var(--tdg-max); margin: 0 auto; padding: 0 var(--tdg-marge); }
.tdg-pied__haut {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 64px;
	border-bottom: 1px solid var(--tdg-graphite);
}
.tdg-pied .tdg-surtitre { color: var(--tdg-blanc); }
.tdg-pied a { color: inherit; text-decoration: none; }
.tdg-pied__infos, .tdg-pied__liens {
	display: grid;
	gap: 12px;
	align-content: start;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: #cfcfcf;
}
.tdg-pied__liens { grid-template-columns: 1fr 1fr; }
.tdg-pied__infos a, .tdg-pied__liens a { justify-self: start; }

/* Newsletter : formulaire Elementor existant, habillé comme la maquette (trait blanc, grand champ, flèche). */
.tdg-newsletter { max-width: 520px; }
.tdg-newsletter .elementor-widget-container { margin: 0; padding: 0; }
.tdg-newsletter .elementor-form-fields-wrapper {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	border-bottom: 1px solid var(--tdg-blanc);
}
.tdg-newsletter .elementor-field-group { margin: 0; padding: 0; width: auto; }
.tdg-newsletter .elementor-field-type-email { flex: 1; min-width: 0; }
.tdg-newsletter .elementor-field-textual,
.tdg-newsletter input[type="email"] {
	width: 100%;
	height: auto;
	padding: 12px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--tdg-blanc);
	font-family: var(--tdg-police);
	font-size: clamp(20px, 2.4vw, 32px);
	font-weight: 300;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.tdg-newsletter .elementor-field-textual::placeholder,
.tdg-newsletter input[type="email"]::placeholder { color: var(--tdg-gris); opacity: 1; }
.tdg-newsletter input[type="email"]:focus { outline: none; box-shadow: none; }
.tdg-newsletter .elementor-field-group:focus-within { outline: 2px solid var(--tdg-focus); outline-offset: 4px; }
.tdg-newsletter .elementor-field-type-submit { flex: 0 0 auto; }
.tdg-pied .tdg-newsletter .elementor-button {
	display: inline-flex;
	align-items: center;
	height: 100%;
	padding: 0 8px;
	border: 0;
	border-radius: 0;
	background: none;
	background-color: transparent;
	box-shadow: none;
	color: var(--tdg-blanc);
	font-family: var(--tdg-police);
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .14em;
	transition: transform .4s var(--tdg-ease-out), color .3s;
}
.tdg-pied .tdg-newsletter .elementor-button:hover,
.tdg-pied .tdg-newsletter .elementor-button:focus-visible { background: none; background-color: transparent; color: var(--tdg-blanc); transform: translateX(8px); }
.tdg-newsletter .elementor-button-text::after { content: '\2192'; margin-left: 12px; font-size: 26px; vertical-align: -3px; }
.tdg-newsletter .elementor-message {
	margin: 12px 0 0;
	font-size: 13px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--tdg-blanc);
}
.tdg-newsletter .elementor-message-danger { color: var(--tdg-cendre); }

/* Mot géant : contour qui se révèle puis rougit avec le défilement (entete.js pilote --tdg-contour). */
.tdg-pied__geant {
	margin-top: 24px;
	font-size: 19vw;
	font-weight: 800;
	line-height: .78;
	letter-spacing: -.04em;
	white-space: nowrap;
	text-align: center;
	color: transparent;
	-webkit-text-stroke: 1px var(--tdg-contour, var(--tdg-graphite));
	overflow: hidden;
}
.tdg-pied__geant span { display: inline-block; }
.tdg-js-entete .tdg-pied__geant span { transform: translateY(60%); opacity: 0; transition: transform 1.4s var(--tdg-ease-out), opacity 1.4s var(--tdg-ease-out); }
.tdg-js-entete .tdg-pied__geant.est-visible span { transform: none; opacity: 1; }

@media (max-width: 900px) {
	.tdg-pied__haut { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.tdg-nav, .tdg-burger i, .tdg-menu, .tdg-menu__apercu img, .tdg-menu__liste a,
	.tdg-newsletter .elementor-button, .tdg-js-entete .tdg-pied__geant span { transition: none !important; }
	.tdg-menu__liste a { transform: none; opacity: 1; }
	.tdg-menu__apercu img { transform: none; }
	.tdg-menu__apercu img.est-change { animation: none; }
	.tdg-js-entete .tdg-pied__geant span { transform: none; opacity: 1; }
}
