/*
Theme Name: Garages des Dunes
Theme URI: https://garages-des-dunes.fr
Description: Thème enfant GeneratePress pour Garages des Dunes. Porte la direction visuelle Concession via theme.json et les global colors GeneratePress.
Author: Garages des Dunes
Template: generatepress
Version: 3.1.0
Text Domain: garages-des-dunes
*/

/* Couleurs : global colors GeneratePress. Typographie et échelles : theme.json.
   Ici, les tokens de gabarit, le socle, et les composants que ni l'un ni
   l'autre ne sait exprimer : formulaires et listes de pied de page. */

:root {
	--gdd-container: 1200px;
	--gdd-gutter: 24px;
	--gdd-section: 104px;
	--gdd-radius: 3px;
	--gdd-radius-pill: 999px;
	--gdd-frame: linear-gradient(150deg, #ECEFF1 0%, #F5F7F8 60%, #E4E8EA 100%);
	--gdd-lift: 0 14px 34px rgba(11, 81, 56, 0.10);
}

@media (max-width: 768px) {
	:root {
		--gdd-gutter: 20px;
		--gdd-section: 64px;
	}
}

::selection {
	background-color: var(--accent);
	color: #ffffff;
}

:where(a:focus-visible),
:where(button:focus-visible),
:where(input:focus-visible),
:where(textarea:focus-visible),
:where(.gb-element:focus-visible) {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

.site-header {
	border-bottom: 1px solid var(--base);
}

.main-navigation .main-nav ul li.current-menu-item > a {
	color: var(--accent);
}

/* ---------- Formulaires ---------- */

.gdd-form,
.gdd-news {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
}

.gdd-form-row {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.gdd-form-label {
	color: var(--contrast);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.gdd-form input[type="text"],
.gdd-form input[type="email"],
.gdd-form textarea,
.gdd-news input[type="email"] {
	background-color: #ffffff;
	border: 1px solid var(--base);
	border-radius: var(--gdd-radius);
	color: var(--contrast);
	font-family: inherit;
	font-size: 1rem;
	padding: 12px 14px;
	width: 100%;
}

.gdd-form input:focus,
.gdd-form textarea:focus,
.gdd-news input:focus {
	border-color: var(--accent);
	outline: none;
}

.gdd-form-submit {
	align-self: flex-start;
	background-color: var(--accent);
	border: 1px solid var(--accent);
	border-radius: var(--gdd-radius-pill);
	color: #ffffff;
	cursor: pointer;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 13px 28px;
	transition: background-color 0.25s ease, border-color 0.25s ease;
}

.gdd-form-submit:hover,
.gdd-form-submit:focus {
	background-color: var(--contrast);
	border-color: var(--contrast);
}

/* Champ piège à robots : retiré du flux sans display:none, que certains
   robots détectent. */
.gdd-form-trap {
	height: 0;
	left: -9999px;
	margin: 0;
	overflow: hidden;
	position: absolute;
	width: 0;
}

.gdd-form-notice {
	border-left: 3px solid var(--accent);
	border-radius: var(--gdd-radius);
	background-color: var(--base-2);
	font-size: 0.9375rem;
	margin: 0;
	padding: 13px 16px;
}

.gdd-form-notice--err {
	border-left-color: #A3341F;
}

.gdd-news-row {
	display: flex;
	gap: 10px;
}

.gdd-news-row input[type="email"] {
	flex: 1;
	min-width: 0;
}

.gdd-news-row .gdd-form-submit {
	flex-shrink: 0;
	white-space: nowrap;
}

@media (max-width: 480px) {
	.gdd-news-row {
		flex-direction: column;
	}

	.gdd-news-row .gdd-form-submit {
		align-self: stretch;
	}
}

.gdd-news-legal {
	color: var(--contrast-2);
	font-size: 0.8125rem;
	line-height: 1.5;
	margin: 0;
}

/* Ombre au survol : une seule règle pour toutes les cartes d'article,
   plutôt que la même déclaration répétée dans chaque bloc. */
.gb-loop-item {
	transition: box-shadow 0.3s ease;
}

.gb-loop-item:hover {
	box-shadow: var(--gdd-lift);
}

/* ---------- Bouton Contact dans la navigation ---------- */

/* Uniquement au-dessus du point de bascule : dans le menu repliable, l'entrée
   reprend le rendu natif de GeneratePress, sinon la pilule s'étire sur toute
   la largeur et ne ressemble plus à un bouton. */
@media (min-width: 769px) {
	.main-navigation .main-nav ul li.gdd-nav-cta {
		align-items: center;
		display: flex;
	}

	.main-navigation .main-nav ul li.gdd-nav-cta > a {
		background-color: var(--accent);
		border-radius: var(--gdd-radius-pill);
		color: #ffffff;
		line-height: 1;
		margin-left: 14px;
		padding: 11px 22px;
		transition: background-color 0.25s ease;
	}

	.main-navigation .main-nav ul li.gdd-nav-cta > a:hover,
	.main-navigation .main-nav ul li.gdd-nav-cta.current-menu-item > a {
		background-color: var(--contrast);
		color: #ffffff;
	}
}

/* ---------- Pied de page ---------- */

.site-footer .footer-widgets {
	border-top: 1px solid var(--base);
}

.gdd-footer-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gdd-footer-list li {
	margin: 0 0 9px;
}

.gdd-footer-list a {
	color: var(--contrast);
	font-size: 0.9375rem;
	text-decoration: none;
}

.gdd-footer-list a:hover {
	color: var(--accent);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
