/* Techniforet – éléments globaux : en-tête (compléments Astra) et pied de page. */
:root{
	--tf-green:#1F5A3A;
	--tf-green-2:#3E7A4B;
	--tf-ink:#293238;
	--tf-wood:#9A7042;
	--tf-beige:#E9E3D8;
	--tf-bg:#F7F8F6;
	--tf-line:#E3E6E1;
	--tf-muted:#5B6560;
	--tf-radius:12px;
	--tf-font-title:"Montserrat",system-ui,sans-serif;
	--tf-font-text:"Inter",system-ui,sans-serif;
}
.tf-wrap{max-width:1240px;margin:0 auto;padding:0 24px;box-sizing:border-box}
.tf-ico{width:1em;height:1em;flex:0 0 auto;vertical-align:-.125em}

/* ---------- En-tête ---------- */
.site-header .main-header-bar,.ast-primary-header-bar{background:#fff;border-bottom:0;box-shadow:0 1px 0 rgba(41,50,56,.05),0 4px 16px rgba(41,50,56,.06)}
.site-header{position:relative;z-index:99}
.main-header-menu>.menu-item>.menu-link{font-family:var(--tf-font-text);font-weight:500;font-size:15px;color:var(--tf-ink);padding-left:.55em;padding-right:.55em;white-space:nowrap}
.main-header-menu>.menu-item>.menu-link:hover,.main-header-menu>.menu-item.current-menu-item>.menu-link{color:var(--tf-green)}
.main-header-menu .sub-menu{border-radius:10px;border:1px solid var(--tf-line);box-shadow:0 10px 30px rgba(41,50,56,.12)}
.main-header-menu .sub-menu>.menu-item:first-child>.menu-link{border-radius:9px 9px 0 0}
.main-header-menu .sub-menu>.menu-item:last-child>.menu-link{border-radius:0 0 9px 9px}
.main-header-menu .sub-menu .menu-link{font-size:15px}
.ast-header-button-1 .ast-custom-button{
	display:inline-flex;align-items:center;gap:.55em;
	background:var(--tf-green);color:#fff;border:0;border-radius:12px !important;
	padding:.8em 1.15em !important;white-space:nowrap;font-family:var(--tf-font-title);font-weight:600;font-size:13.5px;line-height:1.2;
	transition:background-color .2s;
}
.ast-header-button-1 .ast-custom-button::after{
	content:"";width:1em;height:1em;flex:0 0 auto;background:currentColor;
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.ast-header-button-1 .ast-custom-button:hover{background:#174a2f;color:#fff}
.ast-header-search .astra-search-icon{color:var(--tf-ink);font-size:20px}
#ast-desktop-header .ast-header-search{margin:0 8px 0 4px}
.ast-header-search .astra-search-icon:hover{color:var(--tf-green)}
.site-header a:focus-visible,.site-header button:focus-visible,.site-header [tabindex]:focus-visible{outline:2px solid var(--tf-green-2);outline-offset:3px;border-radius:4px}

/* ---------- Pied de page ---------- */
.tf-footer{background:#F8F8F6;color:var(--tf-ink);font-family:var(--tf-font-text);border-top:1px solid var(--tf-line)}
.tf-footer__grid{display:grid;grid-template-columns:minmax(260px,1.45fr) 1fr 1.05fr minmax(240px,1.3fr);gap:0;padding-top:30px;padding-bottom:18px;align-items:start}
.tf-footer__grid>*{padding:0 40px}
.tf-footer__grid>*:first-child{padding-left:0}
.tf-footer__grid>*:last-child{padding-right:0}
.tf-footer__col{border-left:1px solid #e4e7e2;padding-top:2px !important;padding-bottom:8px !important}
.tf-footer__logo{display:inline-block;margin-bottom:12px}
.tf-footer__logo img{display:block;width:130px;height:100px;max-width:100%;object-fit:cover;object-position:50% 48%;mix-blend-mode:multiply}
.tf-footer__brand p{margin:0;font-size:13.5px;line-height:1.6;color:#4A5450;max-width:40ch}
.tf-footer__social{display:flex;gap:22px;list-style:none;margin:16px 0 0;padding:0}
.tf-footer__social a,.tf-footer__social li>span{display:inline-flex;color:var(--tf-ink);font-size:22px;border-radius:4px;transition:color .2s}
.tf-footer__social a:hover,.tf-footer__social a:focus-visible{color:var(--tf-green)}
.tf-footer__col h2{font-family:var(--tf-font-text);font-size:14.5px;font-weight:700;margin:0 0 10px;color:#1f2a24}
.tf-footer__col ul{list-style:none;margin:0;padding:0}
.tf-footer__col li{margin:0 0 6px;line-height:1.45}
.tf-footer__col a{color:#4A5450;text-decoration:none;font-size:14px;transition:color .2s}
.tf-footer__col a:hover,.tf-footer__col a:focus-visible{color:var(--tf-green);text-decoration:underline}
.tf-footer a:focus-visible{outline:2px solid var(--tf-green-2);outline-offset:2px}
.tf-footer__art{display:flex;align-items:flex-end;justify-content:flex-end;gap:4px;align-self:center}
.tf-footer__trees{display:block;width:197px;height:auto;flex:0 0 auto;mix-blend-mode:multiply}
.tf-footer__sign{margin:0 0 30px;font-family:"Caveat","Segoe Script","Bradley Hand",cursive;font-weight:500;font-size:25px;line-height:1.05;color:#2E4A3E;transform:rotate(-14deg);white-space:nowrap}
.tf-footer__sign span{display:inline-block;padding-left:.9em}
.tf-footer__sign svg{display:block;margin:6px 0 0 .4em;color:var(--tf-green-2)}

@media (max-width:1024px){
	.tf-footer__grid{grid-template-columns:1fr 1fr;row-gap:32px}
	.tf-footer__grid>*{padding:0}
	.tf-footer__col{border-left:0}
	.tf-footer__brand{grid-column:1/-1}
	.tf-footer__art{grid-column:1/-1;justify-content:center}
}
@media (max-width:600px){
	/* « Nos univers » et « Aide & informations » côte à côte */
	.tf-footer__grid{grid-template-columns:1fr 1fr;column-gap:20px}
	.tf-footer__sign{font-size:18px}
	/* Logo et réseaux sociaux centrés ; illustration rapprochée des menus */
	.tf-footer__logo{display:block;width:max-content;margin-left:auto;margin-right:auto}
	.tf-footer__social{justify-content:center}
	.tf-footer__col{padding-bottom:0 !important}
	.tf-footer__art{margin-top:-64px}
}
@media (prefers-reduced-motion:reduce){
	.ast-header-button-1 .ast-custom-button,.tf-footer__social a{transition:none}
}

/* ---------- En-tête : logo carré (marges blanches rognées via object-fit) + menu sur une ligne ---------- */
.site-header .site-title-wrap,.site-header .site-title,.site-header .site-description{display:none !important}
.site-header .custom-logo-link img{width:140px !important;max-width:140px !important;height:108px !important;object-fit:cover;object-position:50% 48%}
.site-primary-header-wrap .site-header-primary-section-right{gap:6px}
.main-header-menu .menu-item-has-children>.menu-link .dropdown-menu-toggle{margin-left:2px}
@media (max-width:1240px) and (min-width:922px){
	.site-header .custom-logo-link img{width:120px !important;max-width:120px !important;height:92px !important}
	.main-header-menu>.menu-item>.menu-link{font-size:15px;padding-left:.45em;padding-right:.45em}
	.ast-header-button-1 .ast-custom-button{padding:.7em 1em !important;font-size:13px}
}
@media (max-width:1110px) and (min-width:922px){
	.ast-header-button-1{display:none}
}
@media (max-width:921px){
	.site-header .custom-logo-link img{width:104px !important;max-width:104px !important;height:80px !important}
}

/* ---------- En-tête : menu centré entre le logo et les actions (maquette) ---------- */
#ast-desktop-header .ast-builder-grid-row-has-sides.ast-builder-grid-row-no-center{grid-template-columns:auto 1fr;grid-column-gap:20px}
#ast-desktop-header .site-header-primary-section-right .ast-builder-menu-1{margin-left:auto;margin-right:auto}
#ast-desktop-header .main-header-menu>.menu-item>.menu-link{color:var(--tf-ink)}
#ast-desktop-header .main-header-menu>.menu-item:hover>.menu-link,#ast-desktop-header .main-header-menu>.menu-item.current-menu-item>.menu-link,#ast-desktop-header .main-header-menu>.menu-item.current-menu-ancestor>.menu-link{color:var(--tf-green)}
@media (max-width:1240px) and (min-width:922px){
	#ast-desktop-header .ast-builder-grid-row-has-sides.ast-builder-grid-row-no-center{grid-column-gap:16px}
	#ast-desktop-header .ast-header-search{margin:0 4px 0 2px}
}

/* ---------- Sous-menus : ne se ferment plus dès que la souris déborde ----------
   Astra masque le sous-menu instantanément (et le renvoie à left:-999em) dès que le
   pointeur quitte l'élément parent : en descendant en diagonale vers un lien, on
   survole la rubrique voisine et le sous-menu disparaît. On garde le sous-menu en place,
   on retarde sa fermeture, on retarde légèrement l'ouverture des voisins et on comble
   l'espace entre la rubrique et le sous-menu. */
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item>.sub-menu{
	left:0;right:auto;
	transition:opacity .15s ease .3s,visibility 0s linear .45s,transform .15s ease .3s;
}
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item.ast-left-align-sub-menu>.sub-menu{left:auto;right:0}
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item>.sub-menu::before{content:"";position:absolute;left:-12px;right:-12px;top:-14px;height:14px}
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item:hover>.sub-menu,
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item.focus>.sub-menu,
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item:focus-within>.sub-menu{
	opacity:1;visibility:visible;transform:translateY(0);z-index:100000;
	transition:opacity .15s ease .08s,visibility 0s linear .08s,transform .15s ease .08s;
}
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item.focus>.sub-menu,
.ast-desktop #ast-desktop-header .main-header-menu>.menu-item:focus-within>.sub-menu{transition:none}
.main-header-menu .sub-menu .menu-link:focus-visible{outline:2px solid var(--tf-green-2);outline-offset:-3px}
@media (prefers-reduced-motion:reduce){
	.ast-desktop #ast-desktop-header .main-header-menu>.menu-item>.sub-menu{transform:none !important}
}

/* Archives (catégories, tags, blog) : 4 colonnes au lieu des 3 figées par Astra free */
@media (min-width:922px){
	.ast-blog-layout-4-grid .ast-article-post{width:25%}
}
