/* Mon Jardin – Gestion Produits : styles front (charte Fertinature) */

.gp-grid-wrap, .gp-filters, .gp-mega {
	--gp-green:#4E5524;      /* olive */
	--gp-green-2:#3E382C;    /* brun profond */
	--gp-fresh:#C26B43;      /* terracotta (accent) */
	--gp-gold:#CE8A3C;       /* or */
	--gp-paper:#FCFAF4;      /* papier */
	--gp-cream:#ECE3D0;      /* crème */
	--gp-ink:#2E2418;        /* texte */
	--gp-muted:#857C63;      /* texte secondaire */
	--gp-border:#E7DECB;     /* bordure */
	--gp-sans:'GP Karla',-apple-system,Segoe UI,Roboto,sans-serif;
	--gp-serif:'GP Bitter',Georgia,serif;
}

.gp-grid-wrap { position:relative; font-family:var(--gp-sans); color:var(--gp-ink); }
.gp-grid-wrap.is-loading { opacity:.55; pointer-events:none; }

.gp-grid-search { margin-bottom:18px; }
.gp-grid-search-input { width:100%; max-width:440px; padding:12px 16px; border:1px solid var(--gp-border); border-radius:30px; font-size:15px; background:#fff; font-family:var(--gp-sans); }
.gp-grid-search-input:focus { outline:none; border-color:var(--gp-fresh); box-shadow:0 0 0 3px rgba(111,168,74,.15); }
.gp-grid-count { color:var(--gp-muted); font-size:12px; letter-spacing:.4px; text-transform:uppercase; margin:0 0 16px; }

.gp-grid { display:grid; gap:20px; }
.gp-grid.gp-cols-1 { grid-template-columns:repeat(1,1fr); }
.gp-grid.gp-cols-2 { grid-template-columns:repeat(2,1fr); }
.gp-grid.gp-cols-3 { grid-template-columns:repeat(3,1fr); }
.gp-grid.gp-cols-4 { grid-template-columns:repeat(4,1fr); }
.gp-grid.gp-cols-5 { grid-template-columns:repeat(5,1fr); }
.gp-grid.gp-cols-6 { grid-template-columns:repeat(6,1fr); }
@media (max-width:900px){ .gp-grid.gp-cols-4,.gp-grid.gp-cols-5,.gp-grid.gp-cols-6{ grid-template-columns:repeat(3,1fr);} }
@media (max-width:680px){ .gp-grid{ grid-template-columns:repeat(2,1fr)!important;} }
@media (max-width:420px){ .gp-grid{ grid-template-columns:repeat(1,1fr)!important;} }

.gp-card-product { background:#fff; border:1px solid var(--gp-border); border-radius:14px; overflow:hidden; transition:box-shadow .25s, transform .25s, border-color .25s; }
.gp-card-product:hover { box-shadow:0 14px 30px rgba(30,77,69,.13); transform:translateY(-4px); border-color:var(--gp-fresh); }
.gp-card-link { display:block; text-decoration:none; color:inherit; }
/* Vignette : zone réduite (4:3, 200 px max) et image entière, sans recadrage. */
.gp-card-media { aspect-ratio:4/3; max-height:200px; padding:16px; box-sizing:border-box; background:#fff; border-bottom:1px solid #F1EDE2; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.gp-card-media img { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.gp-card-noimg { font-size:44px; opacity:.4; }
.gp-card-body { padding:16px; }
.gp-card-family { display:inline-block; font-family:var(--gp-sans); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.8px; color:var(--gp-gold); background:#F3EEDF; padding:4px 10px; border-radius:5px; margin-bottom:10px; }
.gp-card-title { font-family:var(--gp-serif); font-weight:600; font-size:17px; line-height:1.25; margin:0 0 8px; color:var(--gp-green-2); }
.gp-card-short { font-family:var(--gp-sans); font-size:13px; line-height:1.5; color:var(--gp-muted); margin:0 0 10px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.gp-card-refs { font-size:12px; color:var(--gp-muted); }

.gp-grid-empty { padding:48px; text-align:center; color:var(--gp-muted); font-family:var(--gp-serif); font-style:italic; font-size:17px; }
.gp-grid-more { text-align:center; margin:30px 0; }
.gp-load-more { font-family:var(--gp-sans); font-weight:600; letter-spacing:.5px; background:var(--gp-green); color:var(--gp-cream); border:none; border-radius:30px; padding:13px 34px; font-size:14px; cursor:pointer; transition:background .2s; }
.gp-load-more:hover { background:#16382F; }

/* ── Filtres ──────────────────────────────────────────────────── */
.gp-filters { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-end; background:var(--gp-cream); border:1px solid #E0D9C8; border-radius:16px; padding:18px 20px; margin-bottom:24px; font-family:var(--gp-sans); }
.gp-filter { display:flex; flex-direction:column; gap:6px; }
.gp-filter label { font-size:11px; font-weight:700; color:var(--gp-green); text-transform:uppercase; letter-spacing:.6px; }
.gp-filter select, .gp-filter-search-input { padding:10px 14px; border:1px solid var(--gp-border); border-radius:10px; font-size:14px; min-width:190px; background:#fff; font-family:var(--gp-sans); color:var(--gp-ink); }
.gp-filter select:focus, .gp-filter-search-input:focus { outline:none; border-color:var(--gp-fresh); }
.gp-filter-search { flex:1; min-width:220px; }
.gp-filter-search-input { width:100%; }
.gp-filter-reset { margin-left:auto; }
.gp-filter-clear { font-family:var(--gp-sans); font-weight:600; background:#fff; border:1px solid var(--gp-gold); border-radius:10px; padding:10px 18px; cursor:pointer; color:var(--gp-gold); transition:.2s; }
.gp-filter-clear:hover { background:var(--gp-gold); color:#fff; }

/* ── Méga-menu ────────────────────────────────────────────────── */
/* Typographie DM Sans (charte du site). Sélecteurs volontairement plus
   spécifiques que la règle globale du thème « .elementor-kit-… a »
   (DM Mono 11px majuscules) qui, sinon, s'impose aux liens du menu. */
.gp-mega { --gp-dm:'DM Sans','GP Karla',-apple-system,'Segoe UI',Roboto,sans-serif; font-family:var(--gp-dm); color:var(--gp-ink); background:#fff; }
.gp-mega-cols { display:grid; grid-template-columns:repeat(4,1fr) 0.9fr; gap:0; }
.gp-mega-col { padding:26px 28px; border-left:1px solid #EEF1ED; }
.gp-mega-col:first-child { border-left:none; }
.gp-mega-icon { width:46px; height:46px; border-radius:12px; background:#F4F6F3; display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:18px; }
.gp-mega .gp-mega-title { display:block; font-family:var(--gp-dm); font-weight:700; font-size:14px; line-height:1.3; letter-spacing:.3px; text-transform:uppercase; color:var(--gp-ink); text-decoration:none; margin-bottom:10px; }
.gp-mega .gp-mega-title:hover { color:var(--gp-green); }
.gp-mega .gp-mega-desc { font-family:var(--gp-dm); font-size:13px; line-height:1.55; color:var(--gp-muted); margin:0 0 18px; }
.gp-mega-subs { list-style:none; margin:0 0 16px; padding:0; }
.gp-mega-subs li { margin:0 0 10px; }
.gp-mega .gp-mega-subs li a { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--gp-ink); font-family:var(--gp-dm); font-weight:400; font-size:15px; line-height:1.4; letter-spacing:0; text-transform:none; transition:color .15s; }
.gp-mega .gp-mega-subs li a:hover { color:var(--gp-green); }
.gp-mega-bullet { flex:none; width:15px; height:15px; border-radius:50%; border:1.5px solid var(--gp-fresh); position:relative; }
.gp-mega-bullet:after { content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:5px; height:5px; border-radius:50%; background:var(--gp-fresh); }
.gp-mega-subs a:hover .gp-mega-bullet { background:#EAF3E2; }
.gp-mega-more { display:inline-block; font-size:11.5px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--gp-green); text-decoration:none; }
.gp-mega-more:hover { color:var(--gp-gold); }

.gp-mega-search { padding:30px 26px; background:#EEF3EA; display:flex; flex-direction:column; gap:16px; align-items:center; justify-content:center; }
.gp-mega-field { width:100%; max-width:200px; padding:11px 18px; border:1px solid #CBD8C2; border-radius:24px; font-size:13px; background:#fff; font-family:var(--gp-sans); color:var(--gp-ink); }
.gp-mega-field:focus { outline:none; border-color:var(--gp-fresh); box-shadow:0 0 0 3px rgba(111,168,74,.15); }
.gp-mega-submit { background:none; border:none; color:var(--gp-green); font-weight:700; font-size:12px; letter-spacing:2px; cursor:pointer; padding:6px 4px; font-family:var(--gp-sans); }
.gp-mega-submit:hover { color:var(--gp-gold); }

@media (max-width:1024px){ .gp-mega-cols{ grid-template-columns:repeat(2,1fr); } .gp-mega-search{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; } .gp-mega-field{ max-width:none; flex:1; } }
@media (max-width:560px){ .gp-mega-cols{ grid-template-columns:1fr; } .gp-mega-col{ border-left:none; border-top:1px solid #EEF1ED; } }
