/*
Theme Name:   DUSANGIRE
Theme URI:    http://localhost/dusangire
Description:  Thème enfant d'Astra pour l'association DUSANGIRE Burundian Products.
Author:       DUSANGIRE Burundian Products
Template:     astra
Version:      1.0.0
Text Domain:  dusangire
*/

/* ---------- Couleurs et polices ---------- */
:root {
	--dsg-green: #1f6b3a;
	--dsg-green-dark: #154d29;
	--dsg-red: #c8102e;
	--dsg-gold: #e0a526;
	--dsg-ink: #1c2b22;
	--dsg-text: #4a5a50;
	--dsg-cream: #f7f3ea;
	--dsg-white: #ffffff;
	--dsg-radius: 14px;
	--dsg-shadow: 0 10px 30px rgba(28, 43, 34, .10);
}

body {
	--ast-global-color-0: var(--dsg-green);
	--ast-global-color-1: var(--dsg-green-dark);
	--ast-global-color-2: var(--dsg-ink);
	--ast-global-color-3: var(--dsg-text);
	font-family: "Poppins", Arial, sans-serif;
	color: var(--dsg-text);
	background: var(--dsg-white);
}

h1, h2, h3, h4, .site-title {
	font-family: "Poppins", Arial, sans-serif;
	color: var(--dsg-ink);
	font-weight: 700;
	letter-spacing: -.01em;
}

a { color: var(--dsg-green); }
a:hover { color: var(--dsg-red); }

/* ---------- En-tête ---------- */
.main-header-menu .menu-link { font-weight: 500; }
.main-header-menu .current-menu-item > .menu-link,
.main-header-menu .menu-link:hover { color: var(--dsg-green) !important; }
.site-header { box-shadow: 0 2px 12px rgba(0, 0, 0, .06); }
.custom-logo-link img { max-height: 84px; width: auto; }

/* ---------- Boutons ---------- */
.wp-block-button__link,
.dsg-btn,
.dsg-form button {
	display: inline-block;
	background: var(--dsg-green);
	color: #fff !important;
	border: 2px solid var(--dsg-green);
	border-radius: 999px;
	padding: 12px 28px;
	font-weight: 600;
	text-decoration: none;
	transition: background .2s, border-color .2s, transform .2s;
	cursor: pointer;
}
.wp-block-button__link:hover,
.dsg-btn:hover,
.dsg-form button:hover {
	background: var(--dsg-green-dark);
	border-color: var(--dsg-green-dark);
	transform: translateY(-2px);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: #fff;
	color: #fff !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: #fff;
	color: var(--dsg-green) !important;
}
.entry-content .wp-block-button__link,
.entry-content .dsg-btn,
.dsg-produit h3 a,
.dsg-filtres a { text-decoration: none !important; }
.dsg-section-green .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--dsg-gold);
	border-color: var(--dsg-gold);
	color: var(--dsg-ink) !important;
}
.dsg-section-green .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
	background: #fff;
	border-color: #fff;
}
.dsg-btn-whatsapp { background: #25d366; border-color: #25d366; }
.dsg-btn-whatsapp:hover { background: #1da851; border-color: #1da851; }
.dsg-wa-icon { display: inline-flex; vertical-align: -0.2em; margin-right: 8px; }
.dsg-wa-icon svg { width: 1.2em; height: 1.2em; fill: currentColor; }

/* ---------- Sections ---------- */
.entry-content > .dsg-section,
.dsg-section {
	padding: 80px 20px;
	margin: 0;
}
.dsg-section-cream { background: var(--dsg-cream); }
.dsg-section-green { background: var(--dsg-green); color: #fff; }
.dsg-section-green h2,
.dsg-section-green h3,
.dsg-section-green p { color: #fff; }
.dsg-kicker {
	color: var(--dsg-red);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	font-size: .85rem;
	margin-bottom: 8px !important;
}
.dsg-section-green .dsg-kicker { color: var(--dsg-gold); }
.dsg-lead { font-size: 1.1rem; max-width: 720px; margin-left: auto; margin-right: auto; }

/* ---------- Bannière d'accueil ---------- */
.dsg-hero {
	position: relative;
	padding: 140px 20px 120px;
	background: linear-gradient(90deg, rgba(10, 40, 20, .78) 0%, rgba(10, 40, 20, .50) 45%, rgba(10, 40, 20, .10) 100%),
		url("assets/img/hero-accueil.jpg") center / cover no-repeat;
	color: #fff;
}
.dsg-hero h1,
.dsg-hero p { text-shadow: 0 2px 12px rgba(0, 0, 0, .45); }
.dsg-hero h1 {
	color: #fff;
	font-size: clamp(2.2rem, 5vw, 3.6rem);
	line-height: 1.1;
	max-width: 760px;
}
.dsg-hero p { color: rgba(255, 255, 255, .9); font-size: 1.15rem; max-width: 620px; }
.dsg-hero .dsg-kicker { color: var(--dsg-gold); }
.dsg-page-hero {
	padding: 90px 20px 70px;
	background: linear-gradient(rgba(21, 77, 41, .88), rgba(21, 77, 41, .88)),
		url("assets/img/hero-collines.svg") center / cover no-repeat;
	text-align: center;
}
.dsg-page-hero h1 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); }
.dsg-page-hero p { color: rgba(255, 255, 255, .9); }

/* ---------- Cartes ---------- */
.dsg-card {
	background: #fff;
	border-radius: var(--dsg-radius);
	box-shadow: var(--dsg-shadow);
	padding: 32px 28px;
	height: 100%;
}
.dsg-card h3 { font-size: 1.25rem; margin-top: 4px; }
.dsg-icon {
	font-size: 2rem;
	width: 64px;
	height: 64px;
	line-height: 64px;
	text-align: center;
	border-radius: 50%;
	background: var(--dsg-cream);
	margin: 0 0 16px !important;
}
.dsg-stat { text-align: center; }
.dsg-stat strong { display: block; font-size: 2.6rem; color: var(--dsg-gold); line-height: 1.1; }

/* ---------- Grille de produits ---------- */
.dsg-produits {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 28px;
	margin: 40px 0 0;
}
/* Un seul produit (ex. filtre par catégorie) : même taille qu'avec deux, centré. */
.dsg-produits > .dsg-produit:only-child { width: 100%; max-width: calc((100% - 28px) / 2); justify-self: center; }
@media (max-width: 600px) {
	.dsg-produits > .dsg-produit:only-child { max-width: none; }
}
.dsg-produit {
	background: #fff;
	border-radius: var(--dsg-radius);
	box-shadow: var(--dsg-shadow);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .25s, box-shadow .25s;
}
.dsg-produit:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(28, 43, 34, .16); }
.dsg-produit-img { display: block; aspect-ratio: 4 / 3; background: var(--dsg-cream); overflow: hidden; }
.dsg-produit-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dsg-produit-body { padding: 22px 22px 26px; display: flex; flex-direction: column; flex: 1; }
.dsg-produit-cat {
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--dsg-red);
}
.dsg-produit h3 { font-size: 1.2rem; margin: 6px 0 8px; }
.dsg-produit h3 a { color: var(--dsg-ink); text-decoration: none; }
.dsg-produit p { font-size: .95rem; margin-bottom: 12px; }
.dsg-produit-meta { font-size: .85rem; color: var(--dsg-green); font-weight: 600; margin-bottom: 16px; }
.dsg-produit .dsg-btn { margin-top: auto; text-align: center; padding: 10px 20px; }
.dsg-filtres { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.dsg-filtres a {
	padding: 8px 18px;
	border-radius: 999px;
	border: 1px solid #d8dfd9;
	text-decoration: none;
	color: var(--dsg-ink);
	font-size: .9rem;
}
.dsg-filtres a.is-active,
.dsg-filtres a:hover { background: var(--dsg-green); border-color: var(--dsg-green); color: #fff; }

/* Fiche produit seule */
.single-produit .dsg-produit-actions { margin: 30px 0; display: flex; flex-wrap: wrap; gap: 12px; }
.single-produit .post-thumb img { border-radius: var(--dsg-radius); }

/* ---------- Témoignages ---------- */
.dsg-temoignage { position: relative; }
.dsg-temoignage::before {
	content: "\201C";
	position: absolute;
	top: 6px;
	right: 22px;
	font-size: 5rem;
	color: var(--dsg-gold);
	opacity: .35;
	font-family: Georgia, serif;
}
.dsg-temoignage .dsg-auteur { font-weight: 600; color: var(--dsg-ink); margin-bottom: 0; }
.dsg-temoignage .dsg-etoiles { color: var(--dsg-gold); letter-spacing: 2px; margin-bottom: 8px; }

/* ---------- Images arrondies ---------- */
.dsg-rounded img { border-radius: var(--dsg-radius); box-shadow: var(--dsg-shadow); }

/* ---------- Formulaire de contact ---------- */
.dsg-form { display: grid; gap: 16px; }
.dsg-form .dsg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dsg-form label { display: block; font-weight: 500; font-size: .9rem; color: var(--dsg-ink); margin-bottom: 6px; }
.dsg-form input,
.dsg-form select,
.dsg-form textarea {
	width: 100%;
	border: 1px solid #d8dfd9;
	border-radius: 10px;
	padding: 12px 14px;
	font: inherit;
	background: #fff;
}
.dsg-form input:focus,
.dsg-form select:focus,
.dsg-form textarea:focus { outline: none; border-color: var(--dsg-green); box-shadow: 0 0 0 3px rgba(31, 107, 58, .15); }
.dsg-form .dsg-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; }
.dsg-form .dsg-consent input { width: auto; margin-top: 4px; }
.dsg-form .dsg-hp { position: absolute; left: -9999px; }
.dsg-notice { padding: 14px 18px; border-radius: 10px; margin-bottom: 20px; }
.dsg-notice-ok { background: #e6f4ea; color: var(--dsg-green-dark); }
.dsg-notice-err { background: #fdecee; color: var(--dsg-red); }
.dsg-infos p { margin-bottom: 14px; }
.dsg-map iframe { width: 100%; height: 380px; border: 0; border-radius: var(--dsg-radius); display: block; }

/* ---------- Pied de page ---------- */
.dsg-footer { background: var(--dsg-ink); color: rgba(255, 255, 255, .75); padding: 64px 20px 40px; }
.dsg-footer-grid {
	max-width: 1200px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: .8fr 1.6fr 1fr 1.2fr;
	gap: 40px;
}
.dsg-footer h4 { color: #fff; font-size: 1.05rem; margin-bottom: 16px; }
.dsg-footer a { color: rgba(255, 255, 255, .75); text-decoration: none; }
.dsg-footer a:hover { color: var(--dsg-gold); }
.dsg-footer ul { list-style: none; margin: 0; padding: 0; }
.dsg-footer li { margin-bottom: 8px; }
.dsg-footer-about p { margin: 0; }
.dsg-footer-logo { max-width: 140px; margin-bottom: 16px; background: #fff; padding: 4px; border-radius: 50%; }
.dsg-social { display: flex; gap: 10px; margin-top: 16px; }
.dsg-social a {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.dsg-social a:hover { background: var(--dsg-green); }
.dsg-social svg { width: 18px; height: 18px; fill: #fff; }
.site-footer .site-below-footer-wrap { background: #121c16 !important; }
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright p { color: rgba(255, 255, 255, .6) !important; }

/* ---------- Bouton WhatsApp flottant ---------- */
.dsg-wa-float {
	position: fixed;
	right: 22px;
	bottom: 22px;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: #25d366;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(37, 211, 102, .45);
	z-index: 9999;
	transition: transform .2s;
}
.dsg-wa-float:hover { transform: scale(1.08); }
.dsg-wa-float svg { width: 32px; height: 32px; fill: #fff; }

/* ---------- Mobile ---------- */
@media (max-width: 921px) {
	.dsg-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.dsg-section { padding: 56px 16px; }
	.dsg-hero { padding: 90px 16px 80px; }
	.dsg-form .dsg-row,
	.dsg-footer-grid { grid-template-columns: 1fr; }
}

/* ---------- Sélecteur de langue (FR / EN) ---------- */
.main-header-menu .dsg-lang > .menu-link { font-size: .85em; font-weight: 600; letter-spacing: .05em; opacity: .6; padding-left: 8px; padding-right: 8px; }
.main-header-menu .dsg-lang.is-current > .menu-link { opacity: 1; color: var(--dsg-green); }

/* ---------- Bouton « Faire un don » du menu ---------- */
.main-header-menu .dsg-menu-don {
	display: flex;
	align-items: center;
}
.main-header-menu .dsg-menu-don > .menu-link {
	display: inline-block;
	height: auto;
	line-height: 1.2 !important;
	margin: 0 8px;
	padding: 10px 20px;
	background: var(--dsg-green) !important;
	border-radius: 999px;
	color: #fff !important;
	font-weight: 600;
}
.main-header-menu .dsg-menu-don > .menu-link:hover {
	background: var(--dsg-green-dark) !important;
	color: #fff !important;
}
@media (max-width: 921px) {
	.main-header-menu .dsg-menu-don { padding: 10px 12px; }
	.main-header-menu .dsg-menu-don > .menu-link { margin: 0; padding: 10px 20px !important; }
}

/* ---------- Menu fixe en haut, réduit au défilement ---------- */
.site-header { position: sticky; top: 0; z-index: 999; }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header,
.ast-primary-header-bar .site-primary-header-wrap,
.ast-mobile-header-wrap .ast-primary-header-bar,
.ast-primary-header-bar .main-header-menu > .menu-item,
.site-header .custom-logo-link img { transition: all .25s ease; }
body.dsg-scrolled .site-header { box-shadow: 0 4px 18px rgba(0, 0, 0, .12); }
body.dsg-scrolled .ast-primary-header-bar .site-primary-header-wrap,
body.dsg-scrolled .ast-mobile-header-wrap .ast-primary-header-bar { min-height: 56px; }
body.dsg-scrolled .ast-primary-header-bar .main-header-menu > .menu-item { line-height: 56px; }
body.dsg-scrolled header .custom-logo-link img { width: 48px; max-width: 48px; }

/* ---------- Nom de l'association à côté du logo (deux lignes, comme le logo) ---------- */
.ast-site-identity .ast-site-title-wrap { margin-left: 4px; }
.ast-site-identity .site-title { margin: 0; line-height: 1.05; }
.ast-site-identity .site-title a { display: flex; flex-direction: column; text-decoration: none; }
.dsg-title-main { color: var(--dsg-green); font-size: 1.6rem; font-weight: 800; letter-spacing: .04em; transition: font-size .25s ease; }
.dsg-title-sub { color: var(--dsg-red); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-top: 2px; transition: font-size .25s ease; }
body.dsg-scrolled .dsg-title-main { font-size: 1.25rem; }
body.dsg-scrolled .dsg-title-sub { font-size: .65rem; }
@media (max-width: 600px) {
	.dsg-title-main,
	body.dsg-scrolled .dsg-title-main { font-size: 1.1rem; }
	.dsg-title-sub,
	body.dsg-scrolled .dsg-title-sub { font-size: .6rem; letter-spacing: .08em; }
}
