/* ToutLePrint — Méga-menu + recherche instantanée */
.tlp-mm, .tlp-mm-search, .tlp-mm__drawer { --mm-green: #004c44; --mm-dark: #0d3b32; --mm-orange: #d85a00; --mm-orange-2: #f08a2c; --mm-ink: #13261f; --mm-muted: #5b6b65; --mm-line: #e6e2d6; --mm-cream: #faf8f2; font-family: "DM Sans", system-ui, sans-serif; }
.tlp-mm *, .tlp-mm-search * { box-sizing: border-box; }
.tlp-mm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Barre d'univers (desktop) ---------- */
.tlp-mm { position: relative; width: 100%; }
.tlp-mm .tlp-mm__burger { display: none !important; }
.tlp-mm__drawer { display: contents; }
.tlp-mm__drawerhead { display: none; }
.tlp-mm__bar { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 2px; }
.tlp-mm__item { margin: 0; padding: 0; list-style: none; }
.tlp-mm__tab { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; font-size: 16px; font-weight: 600; color: var(--mm-green) !important; text-decoration: none !important; border-bottom: 3px solid transparent; white-space: nowrap; transition: color .15s, border-color .15s; }
.tlp-mm__tab:hover, .tlp-mm__tab:focus-visible, .tlp-mm__tab[aria-expanded="true"] { color: var(--mm-orange) !important; border-bottom-color: var(--mm-orange-2); }
.tlp-mm__chev { transition: transform .15s; }
.tlp-mm__tab[aria-expanded="true"] .tlp-mm__chev { transform: rotate(180deg); }

.tlp-mm__panel { position: fixed; left: 0; right: 0; z-index: 9990; background: #fff; border-top: 3px solid var(--mm-orange-2); box-shadow: 0 24px 50px rgba(13, 59, 50, .18); max-height: calc(100vh - var(--mm-top, 200px) - 16px); overflow-y: auto; }
.tlp-mm__panel[hidden] { display: none !important; }
.tlp-mm__inner { max-width: 1240px; margin: 0 auto; padding: 26px 24px 30px; display: flex; flex-wrap: wrap; gap: 32px; }
.tlp-mm__main { flex: 999 1 640px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.tlp-mm__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.tlp-mm__title { font-family: "DM Serif Display", Georgia, serif; font-size: 30px; line-height: 1.1; color: var(--mm-dark); }
.tlp-mm__all { font-weight: 700; font-size: 15px; color: var(--mm-orange) !important; text-decoration: none !important; }
.tlp-mm__all:hover { text-decoration: underline !important; }
.tlp-mm__groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 22px 24px; }
.tlp-mm__gtitle { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mm-muted); border-bottom: 1px solid var(--mm-line); padding-bottom: 6px; margin-bottom: 8px; }
.tlp-mm__group ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.tlp-mm__group li { margin: 0; padding: 0; list-style: none; }
.tlp-mm__link { font-size: 15px; font-weight: 700; color: var(--mm-ink) !important; text-decoration: none !important; }
.tlp-mm__link:hover { color: var(--mm-orange) !important; text-decoration: underline !important; }
.tlp-mm__subs { display: flex; flex-wrap: wrap; gap: 1px 10px; margin-top: 2px; }
.tlp-mm__subs a { font-size: 13px; color: var(--mm-muted) !important; text-decoration: none !important; }
.tlp-mm__subs a:hover { color: var(--mm-orange) !important; }
.tlp-mm__aside { flex: 1 1 230px; max-width: 280px; display: flex; flex-direction: column; gap: 14px; }
.tlp-mm__top { background: var(--mm-dark); border-radius: 16px; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.tlp-mm__toptitle { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #f3b37a; }
.tlp-mm__top a { display: flex; justify-content: space-between; gap: 8px; color: #fff !important; font-size: 15px; text-decoration: none !important; }
.tlp-mm__top a:hover { color: #f3b37a !important; }
.tlp-mm__help { border: 1px dashed #d6d2c4; border-radius: 16px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; background: var(--mm-cream); font-size: 14px; color: var(--mm-muted); }
.tlp-mm__help strong { color: var(--mm-ink); font-size: 15px; }
.tlp-mm__help a { font-weight: 700; color: var(--mm-orange) !important; text-decoration: none !important; }

/* ---------- Mobile / tablette : tiroir ---------- */
@media (max-width: 1024px) {
	.tlp-mm .tlp-mm__burger { display: inline-flex !important; align-items: center; gap: 10px; width: 100%; justify-content: center; padding: 12px 16px !important; border: 0 !important; border-radius: 10px !important; background: var(--mm-dark) !important; color: #fff !important; font: 700 16px/1 "DM Sans", system-ui, sans-serif !important; text-transform: none !important; cursor: pointer; }
	/* Le tiroir est déplacé dans <body> à l'ouverture (le header bloque position:fixed). */
	.tlp-mm__drawer { display: none; position: fixed; top: 0; bottom: 0; left: 0; width: min(420px, 92vw); z-index: 2147483000; background: #fff; overflow-y: auto; box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .45); font-family: "DM Sans", system-ui, sans-serif; }
	.tlp-mm__drawer.is-open { display: block; }
	.tlp-mm__drawerhead { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 20px; border-bottom: 1px solid var(--mm-line); position: sticky; top: 0; background: #fff; z-index: 2; font-family: "DM Serif Display", Georgia, serif; font-size: 22px; color: var(--mm-dark); }
	.tlp-mm__drawer .tlp-mm__close { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0 !important; border: 0 !important; border-radius: 10px !important; background: var(--mm-cream) !important; color: var(--mm-dark) !important; cursor: pointer; }
	.tlp-mm__drawer .tlp-mm__bar { display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; gap: 0; }
	.tlp-mm__drawer .tlp-mm__item { border-bottom: 1px solid var(--mm-line); }
	.tlp-mm__drawer .tlp-mm__tab { display: flex; justify-content: space-between; width: 100%; padding: 16px 20px; font-size: 17px; border-bottom: 0; }
	.tlp-mm__drawer .tlp-mm__panel { position: static; box-shadow: none; border-top: 0; max-height: none; overflow: visible; background: var(--mm-cream); }
	.tlp-mm__drawer .tlp-mm__inner { padding: 12px 20px 20px; gap: 18px; }
	.tlp-mm__drawer .tlp-mm__head { display: block; order: 9; }
	.tlp-mm__drawer .tlp-mm__title { display: none; }
	.tlp-mm__drawer .tlp-mm__main { display: flex; flex-direction: column; }
	.tlp-mm__drawer .tlp-mm__groups { grid-template-columns: 1fr; gap: 16px; }
	.tlp-mm__drawer .tlp-mm__aside { max-width: none; }
	.tlp-mm__drawer .tlp-mm__top { display: none; }
	body.tlp-mm-lock { overflow: hidden; }
}
/* Header mobile du site : bouton icône 44 px à droite, à la place de l'ancien hamburger. */
@media (max-width: 767px) {
	.elementor-container:has(> .tlp-mobile-menu-slot .tlp-mm) { position: relative !important; }
	.tlp-mobile-menu-slot:has(.tlp-mm) { display: flex !important; position: absolute !important; top: 24px !important; right: 10px !important; flex: 0 0 44px !important; width: 44px !important; z-index: 5; }
	.tlp-mobile-menu-slot .tlp-mm .tlp-mm__burger { width: 44px !important; height: 44px !important; padding: 0 !important; border-radius: 12px !important; }
	.tlp-mobile-menu-slot .tlp-mm .tlp-mm__burger span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* ---------- Recherche ---------- */
.tlp-mm-search { position: relative; width: 100%; }
.tlp-mm-search__form { display: flex; align-items: center; margin: 0; background: #fff; border: 2px solid var(--mm-line); border-radius: 12px; overflow: hidden; transition: border-color .15s; }
.tlp-mm-search.is-focus .tlp-mm-search__form { border-color: var(--mm-orange-2); }
.tlp-mm-search__icon { margin-left: 14px; flex: 0 0 auto; color: var(--mm-muted); }
.tlp-mm-search .tlp-mm-search__form .tlp-mm-search__input { border-radius: 0 !important; height: auto !important; margin: 0 !important; }
.tlp-mm-search .tlp-mm-search__input { flex: 1 1 auto; min-width: 0; border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; padding: 12px 10px !important; font: 400 16px/1.2 "DM Sans", system-ui, sans-serif !important; color: var(--mm-ink) !important; }
.tlp-mm-search__input::-webkit-search-cancel-button { cursor: pointer; }
.tlp-mm-search .tlp-mm-search__btn { flex: 0 0 auto; border: 0 !important; background: var(--mm-orange-2) !important; color: #fff !important; font: 700 13px/1 "DM Sans", system-ui, sans-serif !important; letter-spacing: .05em; text-transform: uppercase; padding: 0 20px !important; align-self: stretch; cursor: pointer; border-radius: 0 !important; box-shadow: none !important; min-height: 46px; }
.tlp-mm-search .tlp-mm-search__btn:hover { background: var(--mm-orange) !important; }
.tlp-mm-results { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 99980; background: #fff; border: 1px solid var(--mm-line); border-radius: 14px; box-shadow: 0 18px 50px rgba(13, 59, 50, .22); padding: 14px; display: flex; flex-direction: column; gap: 12px; max-height: min(70vh, 640px); overflow-y: auto; min-width: min(560px, 92vw); }
.tlp-mm-results[hidden] { display: none !important; }
.tlp-mm-results__label { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--mm-muted); padding: 0 8px 4px; }
.tlp-mm-results__sec { display: flex; flex-direction: column; gap: 2px; }
.tlp-mm-results__sec + .tlp-mm-results__sec { border-top: 1px solid #efece3; padding-top: 10px; }
.tlp-mm-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 4px; }
.tlp-mm-results .tlp-mm-chip { font: 500 14px/1 "DM Sans", system-ui, sans-serif; padding: 9px 14px; border-radius: 999px; border: 1px solid #d6d2c4; background: var(--mm-cream); color: var(--mm-ink); cursor: pointer; }
.tlp-mm-results .tlp-mm-chip:hover { border-color: var(--mm-orange-2); color: var(--mm-orange); }
.tlp-mm-res { display: flex; align-items: center; gap: 12px; padding: 9px 8px; border-radius: 8px; color: var(--mm-ink) !important; text-decoration: none !important; }
.tlp-mm-res:hover, .tlp-mm-res.is-active { background: #f5f1e8; }
.tlp-mm-res__name { flex: 1 1 auto; font-size: 15px; font-weight: 700; }
.tlp-mm-res__name mark { background: none; color: var(--mm-orange); }
.tlp-mm-res__path { font-size: 13px; color: var(--mm-muted); text-align: right; }
.tlp-mm-res--prod .tlp-mm-res__name { font-weight: 500; font-size: 14px; }
.tlp-mm-res__img { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 8px; object-fit: contain; background: #f3f1ea; }
.tlp-mm-res__price { font-size: 14px; font-weight: 700; color: var(--mm-orange); white-space: nowrap; }
.tlp-mm-results__all { display: block; text-align: center; background: var(--mm-dark); color: #fff !important; font-weight: 700; font-size: 14px; padding: 12px; border-radius: 10px; text-decoration: none !important; }
.tlp-mm-results__all:hover, .tlp-mm-results__all.is-active { background: var(--mm-green); }
.tlp-mm-results__empty { font-size: 15px; padding: 4px 8px; color: var(--mm-ink); }
.tlp-mm-results__empty a { font-weight: 700; color: var(--mm-orange) !important; }
.tlp-mm-results__loading { font-size: 13px; color: var(--mm-muted); padding: 4px 8px; }
@media (max-width: 767px) {
	.tlp-mm-results { min-width: 0; max-height: 65vh; }
	.tlp-mm-res__path { display: none; }
	.tlp-mm-search__btn { padding: 0 14px; }
}
