/*
Theme Name: Les Halles
Template: generatepress
Description: Thème enfant GeneratePress du Marché des Halles de La Roche-sur-Yon — univers marché (stores, ardoises, cagettes), commerçants, blocs éditables.
Author: Agence Kickngo
Author URI: https://agence-kickngo.fr
Version: 2.0.0
Text Domain: halles
*/

/* =========================================================
   Polices (auto-hébergées)
   ========================================================= */
@font-face { font-family: "Fraunces"; src: url("fonts/fraunces.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter.woff2") format("woff2"); font-weight: 400 700; font-display: swap; }
@font-face { font-family: "Caveat"; src: url("fonts/caveat.woff2") format("woff2"); font-weight: 500 700; font-display: swap; }

/* =========================================================
   Charte
   ========================================================= */
:root {
	--vert: #1e4634;
	--vert-fonce: #13301f;
	--feuille: #5a8a3c;
	--tomate: #c9452b;
	--tomate-fonce: #a8361f;
	--moutarde: #e8ab2e;
	--creme: #fbf6ec;
	--kraft: #efe2c8;
	--kraft-fonce: #dcc8a3;
	--bois: #b07b4b;
	--bois-fonce: #8a5a32;
	--ardoise: #262a28;
	--craie: #f3efe6;
	--encre: #1c211e;
	--gris: #5b625d;
	--blanc: #fff;
	--rayon: 16px;
	--ombre: 0 2px 4px rgba(28, 33, 30, .05), 0 12px 32px rgba(28, 33, 30, .09);
	--titre: "Fraunces", Georgia, serif;
	--texte: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--main: "Caveat", "Segoe Print", cursive;
	--largeur: 1240px;
	--gouttiere: clamp(18px, 4vw, 32px);
	/* Grain papier très léger */
	--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .15 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	/* Craie : texture de l'ardoise */
	--craie-tex: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23c)'/%3E%3C/svg%3E");
}

/* =========================================================
   Base
   ========================================================= */
body { font-family: var(--texte); font-size: 17px; line-height: 1.65; color: var(--encre); background: var(--creme) var(--grain); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, .entry-title { font-family: var(--titre); font-weight: 600; color: var(--vert); line-height: 1.12; letter-spacing: -.015em; font-variation-settings: "SOFT" 60, "WONK" 0; }
h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); }
h2 { font-size: clamp(1.75rem, 3.3vw, 2.6rem); }
h3 { font-size: 1.3rem; }
a { color: var(--vert); text-underline-offset: 3px; }
a:hover, a:focus { color: var(--tomate); }
:focus-visible { outline: 3px solid var(--moutarde); outline-offset: 2px; border-radius: 4px; }
::selection { background: var(--moutarde); color: var(--encre); }
img { display: block; }
.hl-ico { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }

.hl-main { font-family: var(--main); font-size: clamp(1.45rem, 2.4vw, 1.85rem); font-weight: 700; line-height: 1; color: var(--tomate); margin: 0 0 .35rem; transform: rotate(-2deg); transform-origin: left; display: inline-block; }
.hl-main--clair { color: var(--moutarde); }
.hl-main a { color: inherit; text-decoration: none; }
.hl-centre { text-align: center; margin-top: 2.4rem; }
.hl-note { background: var(--kraft); border-left: 4px solid var(--moutarde); padding: 1rem 1.2rem; border-radius: 6px; }

/* Boutons */
.hl-btn, .wp-block-button__link, .entry-content .wp-block-button .wp-block-button__link, input[type="submit"], .forminator-button-submit {
	display: inline-flex; align-items: center; gap: .55em; font-family: var(--texte); font-weight: 700; font-size: 1rem; letter-spacing: .01em;
	padding: .85em 1.55em; border-radius: 999px; border: 0; background: var(--tomate); color: var(--blanc); text-decoration: none; cursor: pointer;
	box-shadow: 0 3px 0 var(--tomate-fonce); transition: transform .15s, box-shadow .15s, background .2s;
}
.hl-btn:hover, .hl-btn:focus, .entry-content .wp-block-button .wp-block-button__link:hover { background: var(--tomate); color: var(--blanc); transform: translateY(-2px); box-shadow: 0 5px 0 var(--tomate-fonce); }
.hl-btn:active { transform: translateY(1px); box-shadow: 0 1px 0 var(--tomate-fonce); }
.hl-btn--clair { background: var(--creme); color: var(--vert); box-shadow: 0 3px 0 var(--kraft-fonce); }
.hl-btn--clair:hover, .hl-btn--clair:focus { background: var(--blanc); color: var(--vert); box-shadow: 0 5px 0 var(--kraft-fonce); }
.hl-btn--ligne, .entry-content .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--vert); box-shadow: inset 0 0 0 2px var(--vert); }
.hl-btn--ligne:hover, .hl-btn--ligne:focus { background: var(--vert); color: var(--creme); box-shadow: inset 0 0 0 2px var(--vert); }
.hl-btn--petit { padding: .6em 1.15em; font-size: .92rem; }
.hl-btn .hl-ico--fleche { transition: transform .2s; }
.hl-btn:hover .hl-ico--fleche { transform: translateX(3px); }
.hl-boutons { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.6rem; }

/* =========================================================
   Store rayé (auvent du marché) : rayures + festons
   ========================================================= */
.hl-store {
	--l: 44px; /* largeur d'un lé */
	--a: var(--vert); --b: #f7f0e1;
	height: 30px; position: relative; z-index: 40; margin-bottom: -30px; pointer-events: none;
	/* l'ombre est sur le parent : sur l'élément masqué elle serait découpée */
	filter: drop-shadow(0 3px 0 rgba(0, 0, 0, .12)) drop-shadow(0 6px 6px rgba(0, 0, 0, .14));
}
.hl-store::before {
	content: ""; position: absolute; inset: 0;
	background: repeating-linear-gradient(90deg, var(--a) 0 var(--l), var(--b) var(--l) calc(var(--l) * 2));
	-webkit-mask: linear-gradient(#000 0 0) top / 100% 12px no-repeat, radial-gradient(circle calc(var(--l) / 2) at 50% 0, #000 98%, transparent 100%) 0 12px / var(--l) 18px repeat-x;
	mask: linear-gradient(#000 0 0) top / 100% 12px no-repeat, radial-gradient(circle calc(var(--l) / 2) at 50% 0, #000 98%, transparent 100%) 0 12px / var(--l) 18px repeat-x;
}
.hl-store--pied { position: absolute; top: 0; left: 0; right: 0; margin: 0; --a: #f7f0e1; --b: var(--vert); }

/* =========================================================
   En-tête
   ========================================================= */
.hl-annonce { display: flex; justify-content: center; align-items: center; gap: .6rem; background: var(--moutarde); color: var(--encre); font-weight: 600; font-size: .93rem; padding: .55rem var(--gouttiere); text-align: center; }
.hl-annonce a { color: var(--encre); }
.hl-topbar { background: var(--vert-fonce); color: var(--craie); font-size: .86rem; }
.hl-topbar__in { max-width: var(--largeur); margin: 0 auto; padding: .5rem var(--gouttiere); display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.hl-topbar__in > * { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; }
.hl-topbar a { color: var(--craie); text-decoration: none; }
.hl-topbar a:hover { color: var(--moutarde); }
.hl-topbar .hl-ico { width: 15px; height: 15px; color: var(--moutarde); }
.hl-topbar__reseaux { margin-left: auto; gap: .9rem !important; }
.hl-topbar__reseaux .hl-ico { width: 17px; height: 17px; color: var(--craie); }

.site-header { background: var(--creme) var(--grain); position: sticky; top: 0; z-index: 60; }
.admin-bar .site-header { top: 32px; }
/* Logo et menu alignés sur la même grille que le contenu */
.site-header .inside-header { max-width: var(--largeur); padding: 0 var(--gouttiere); }
.site-header .site-logo, .site-header .site-branding { margin: 0; line-height: 0; }
.site-logo img, .site-header .header-image { width: 180px; height: auto; max-height: none; margin: 4px 0; }
.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a { font-weight: 600; font-size: 1rem; color: var(--encre); padding-left: 16px; padding-right: 16px; line-height: 64px; }
.main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current-menu-ancestor > a { color: var(--tomate); background: transparent; }
.main-navigation .main-nav ul li.hl-menu-cta > a { background: var(--vert); color: var(--creme); border-radius: 999px; line-height: 44px; margin: 6px 0 6px 10px; padding: 0 22px; }
.main-navigation .main-nav ul li.hl-menu-cta > a:hover { background: var(--tomate); color: var(--blanc); }
/* Sous-menu « Commerçants » : une ardoise */
.main-navigation ul ul { background: var(--ardoise) var(--craie-tex); border-radius: 12px; box-shadow: 0 18px 40px rgba(0, 0, 0, .25); padding: 10px 0; width: 260px; border: 6px solid var(--bois); }
.main-navigation .main-nav ul ul li a { color: var(--craie); line-height: 1.3; padding: 9px 20px; font-size: .95rem; font-weight: 500; }
.main-navigation .main-nav ul ul li:hover > a, .main-navigation .main-nav ul ul li.current-menu-item > a { color: var(--moutarde); background: rgba(255, 255, 255, .05); }
.main-navigation .menu-item-has-children .dropdown-menu-toggle { padding-left: 4px; }
/* Recherche de GeneratePress (formulaire caché jusqu'au clic sur la loupe) */
.main-navigation { position: relative; }
.navigation-search { position: absolute; left: -99999px; top: 0; width: 100%; z-index: 20; opacity: 0; visibility: hidden; pointer-events: none; }
.navigation-search.nav-search-active { left: 0; right: 0; opacity: 1; visibility: visible; pointer-events: auto; }
.navigation-search input[type="search"] { width: 100%; height: 56px; padding: 0 1.2rem; border-radius: 999px; }
.main-navigation .menu-bar-items { color: var(--vert); }
.main-navigation .menu-bar-item > a { color: var(--vert); padding: 0 12px; }
.navigation-search input[type="search"] { background: var(--creme); color: var(--encre); font-size: 1.05rem; border: 0; box-shadow: inset 0 -2px 0 var(--vert); }
.site-header .menu-toggle, .site-header button.menu-toggle, .site-header .main-navigation .menu-bar-items, .site-header .main-navigation .menu-bar-item > a { color: var(--vert) !important; background: transparent !important; font-weight: 700; }
.menu-toggle:hover, .menu-toggle:focus { color: var(--tomate); background: transparent; }

/* =========================================================
   Mise en page générale (GeneratePress)
   ========================================================= */
.separate-containers .inside-article, .one-container .container, .inside-page-header, .one-container .site-content { background: transparent; }
.one-container .site-content { padding: 0; }
.site.grid-container, .grid-container.site-content { max-width: none; }
.site-main { margin: 0; }
.inside-article { padding: 0; }
.entry-content > *:not(.alignfull):not(.hl-sec):not(.hl-banniere):not(.hl-atouts) { max-width: 820px; margin-left: auto; margin-right: auto; padding-left: var(--gouttiere); padding-right: var(--gouttiere); }
.entry-content > .wp-block-columns, .entry-content > .wp-block-group:not(.alignfull) { max-width: var(--largeur) !important; }
.hl-blocs .entry-content > * + * { margin-top: 0; }
.alignfull, .hl-sec, .hl-banniere, .hl-atouts, .hl-entete { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.site-content .content-area { width: 100%; }
body:not(.hl-blocs):not(.hl-maison) .entry-content { padding-bottom: 4.5rem; }

/* Bandeau de titre des pages simples (contact, mentions…) */
.hl-entete { background: var(--kraft) var(--grain); padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.4rem, 5vw, 3.6rem); margin-bottom: clamp(2rem, 5vw, 3.5rem); position: relative; }
.hl-entete__in { max-width: var(--largeur); margin: 0 auto; padding: 0 var(--gouttiere); }
.hl-entete h1 { margin: 0; max-width: 22ch; }
.hl-entete__intro { max-width: 62ch; color: var(--gris); font-size: 1.1rem; margin: 1rem 0 0; }
.hl-entete::after { content: ""; position: absolute; left: 0; right: 0; bottom: -14px; height: 14px; background: radial-gradient(circle 9px at 50% 0, var(--kraft) 98%, transparent) 0 0 / 18px 14px repeat-x; }

/* =========================================================
   Sections de blocs
   ========================================================= */
.hl-sec { padding: clamp(3.5rem, 8vw, 6.5rem) 0; position: relative; }
.hl-sec__in { max-width: var(--largeur); margin: 0 auto; padding: 0 var(--gouttiere); }
.hl-sec__tete { margin-bottom: clamp(1.8rem, 4vw, 2.8rem); max-width: 760px; }
.hl-sec__tete h2 { margin: 0; }
.hl-sec__intro { max-width: 62ch; font-size: 1.08rem; margin: -1rem 0 2rem; }
.hl-sec--creme { background: transparent; }
.hl-sec--kraft { background: var(--kraft) var(--grain); }
.hl-sec--vert { background: var(--vert) var(--grain); color: var(--craie); }
.hl-sec--vert h2, .hl-sec--vert h3 { color: var(--blanc); }
.hl-sec--vert .hl-main { color: var(--moutarde); }
.hl-sec--ardoise { background: var(--ardoise) var(--craie-tex); color: var(--craie); }
.hl-sec--ardoise h2, .hl-sec--ardoise h3 { color: var(--craie); }
.hl-sec--ardoise .hl-main { color: var(--moutarde); }
/* Festons de transition entre sections de couleurs différentes */
.hl-sec--kraft::before, .hl-sec--vert::before, .hl-sec--ardoise::before { content: ""; position: absolute; left: 0; right: 0; top: -13px; height: 14px; background: radial-gradient(circle 9px at 50% 100%, var(--c) 98%, transparent) 0 0 / 18px 14px repeat-x; }
.hl-sec--kraft { --c: var(--kraft); }
.hl-sec--vert { --c: var(--vert); }
.hl-sec--ardoise { --c: var(--ardoise); }

/* =========================================================
   Bannière
   ========================================================= */
.hl-banniere { position: relative; min-height: clamp(440px, 62vh, 580px); display: flex; align-items: center; color: var(--blanc); overflow: hidden; background: var(--vert); }
.hl-banniere--compacte { min-height: clamp(300px, 40vh, 380px); }
.hl-banniere--compacte h1 { font-size: clamp(2rem, 3.6vw, 3rem); }
.hl-banniere--compacte .hl-banniere__texte { max-width: 820px; }
.hl-banniere__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hl-banniere::after { content: ""; position: absolute; inset: 0; background: linear-gradient(95deg, rgba(14, 30, 20, .88) 0%, rgba(14, 30, 20, .62) 42%, rgba(14, 30, 20, .1) 75%); }
.hl-banniere__in { position: relative; z-index: 2; width: 100%; max-width: var(--largeur); margin: 0 auto; padding: 4.5rem var(--gouttiere) 5.5rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.hl-banniere__texte { max-width: 720px; }
.hl-banniere h1 { color: var(--blanc); font-size: clamp(2.3rem, 4.8vw, 3.9rem); margin: .2rem 0 1rem; text-shadow: 0 2px 20px rgba(0, 0, 0, .25); }
.hl-banniere__intro { font-size: clamp(1.05rem, 1.6vw, 1.2rem); max-width: 50ch; color: rgba(255, 255, 255, .92); margin: 0; }

/* Ardoise (horaires, fiche) */
.hl-ardoise { position: relative; background: var(--ardoise) var(--craie-tex); color: var(--craie); border: 9px solid var(--bois); border-radius: 10px; box-shadow: inset 0 0 0 2px var(--bois-fonce), 0 18px 34px rgba(0, 0, 0, .3); font-family: var(--main); text-align: center; }
.hl-ardoise__titre { font-size: 1.6rem; font-weight: 700; color: var(--moutarde); margin: 0; line-height: 1; }
.hl-ardoise__heures { font-size: 2.6rem; font-weight: 700; margin: .25rem 0; line-height: 1; }
.hl-ardoise__jours { font-size: 1.35rem; margin: 0; line-height: 1.2; opacity: .92; }
.hl-ardoise--horaires { flex: none; padding: 1.4rem 1.8rem 1.3rem; transform: rotate(3deg); margin-top: 2rem; }
.hl-ardoise__ficelle { position: absolute; left: 50%; top: -58px; width: 90px; height: 52px; transform: translateX(-50%); border: 2px solid rgba(240, 225, 190, .85); border-bottom: 0; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.hl-ardoise__ficelle::after { content: ""; position: absolute; left: 50%; top: -7px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: #c9a35c; box-shadow: 0 1px 3px rgba(0, 0, 0, .5); }

/* =========================================================
   Atouts (3 petits blocs à pictos, à cheval sur la bannière)
   ========================================================= */
.hl-atouts { position: relative; z-index: 5; margin-top: -3.2rem; }
.hl-atouts__in { list-style: none; margin: 0 auto; padding: 0 var(--gouttiere); max-width: var(--largeur); display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.1rem; }
.hl-atout { display: flex; gap: 1rem; align-items: center; background: var(--blanc); border-radius: var(--rayon); padding: 1.25rem 1.4rem; box-shadow: var(--ombre); border-bottom: 4px solid var(--moutarde); }
.hl-atout:nth-child(2) { border-color: var(--feuille); }
.hl-atout:nth-child(3) { border-color: var(--tomate); }
.hl-atout__pastille { flex: none; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--kraft); color: var(--vert); }
.hl-atout__pastille .hl-ico { width: 28px; height: 28px; }
.hl-atout__titre { display: block; font-family: var(--titre); font-size: 1.18rem; font-weight: 600; color: var(--vert); line-height: 1.2; }
.hl-atout__texte { display: block; font-size: .93rem; color: var(--gris); line-height: 1.45; margin-top: .2rem; }

/* =========================================================
   Produits locaux : cagettes
   ========================================================= */
.hl-cagettes { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 2.5vw, 2rem); }
.hl-cagette { display: flex; flex-direction: column; background: var(--creme); border-radius: 12px; overflow: hidden; box-shadow: var(--ombre); transition: transform .25s, box-shadow .25s; }
.hl-cagette:hover { transform: translateY(-4px) rotate(-.4deg); box-shadow: 0 22px 44px rgba(28, 33, 30, .16); }
.hl-cagette__photo { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--kraft-fonce); }
.hl-cagette__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .6s; }
.hl-cagette:hover .hl-cagette__photo img { transform: scale(1.05); }
/* Planche en bois de la cagette */
.hl-cagette__planche { position: relative; flex: 1; padding: 1.6rem 1.3rem 1.3rem; background: linear-gradient(var(--bois) 0 9px, var(--bois-fonce) 9px 11px, transparent 11px), var(--creme); }
.hl-cagette__picto { position: absolute; right: 1.1rem; top: -26px; width: 52px; height: 52px; border-radius: 50%; background: var(--moutarde); color: var(--vert-fonce); display: grid; place-items: center; box-shadow: 0 4px 10px rgba(0, 0, 0, .18); }
.hl-cagette__picto .hl-ico { width: 26px; height: 26px; }
.hl-cagette h3 { margin: .3rem 0 0; font-size: 1.4rem; }
.hl-cagette h3 a { color: var(--vert); text-decoration: none; }
.hl-cagette h3 a::after { content: " →"; color: var(--tomate); opacity: 0; transition: opacity .2s; }
.hl-cagette:hover h3 a::after { opacity: 1; }
.hl-cagette__nb { font-family: var(--main); font-size: 1.3rem; color: var(--tomate); margin: 0 0 .5rem; line-height: 1; }
.hl-cagette ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.hl-cagette li a { display: inline-block; font-size: .85rem; font-weight: 600; padding: .25em .75em; border-radius: 999px; background: var(--kraft); color: var(--vert); text-decoration: none; }
.hl-cagette li a:hover { background: var(--vert); color: var(--creme); }

/* =========================================================
   Actus : polaroïds
   ========================================================= */
.hl-polaroids { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.2rem; margin-top: 1rem; }
.hl-polaroid { position: relative; display: block; background: var(--blanc); padding: 12px 12px 1.2rem; box-shadow: var(--ombre); text-decoration: none; color: var(--encre); transform: rotate(-1.5deg); transition: transform .25s; }
.hl-polaroid:nth-child(2n) { transform: rotate(1.2deg); }
.hl-polaroid:hover { transform: rotate(0) translateY(-4px); color: var(--encre); }
.hl-polaroid::before { content: ""; position: absolute; top: -12px; left: 50%; width: 90px; height: 26px; transform: translateX(-50%) rotate(-3deg); background: rgba(232, 171, 46, .55); box-shadow: 0 1px 2px rgba(0, 0, 0, .1); }
.hl-polaroid__photo { display: block; aspect-ratio: 4 / 3; background: var(--kraft); overflow: hidden; }
.hl-polaroid__photo img { width: 100%; height: 100%; object-fit: cover; }
.hl-polaroid time { display: block; font-family: var(--main); font-size: 1.25rem; color: var(--tomate); margin: .8rem .2rem 0; line-height: 1; }
.hl-polaroid h3 { font-size: 1.2rem; margin: .3rem .2rem 0; }
#sb_instagram { padding: 0 !important; }

/* =========================================================
   Texte + photos : collage
   ========================================================= */
.hl-presentation__grille { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.hl-presentation--inverse .hl-presentation__texte { order: 2; }
.hl-presentation__texte p { font-size: 1.08rem; }
.hl-presentation__texte .hl-btn { margin-top: 1rem; }
.hl-collage { position: relative; padding: 1rem 2rem 3rem 0; }
.hl-collage figure { margin: 0; background: var(--blanc); padding: 10px; box-shadow: var(--ombre); position: relative; }
.hl-collage figure::before { content: ""; position: absolute; top: -12px; left: 30px; width: 100px; height: 26px; transform: rotate(-4deg); background: rgba(232, 171, 46, .55); }
.hl-collage__1 { transform: rotate(-2deg); }
.hl-collage__1 img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.hl-collage__2 { position: absolute !important; width: 46%; right: 0; bottom: 0; transform: rotate(4deg); }
.hl-collage__2 img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.hl-tampon { position: absolute; left: -1.2rem; bottom: .5rem; width: 132px; height: 132px; margin: 0; border-radius: 50%; display: grid; place-items: center; text-align: center; background: var(--creme); color: var(--tomate); border: 3px solid var(--tomate); box-shadow: 0 0 0 5px var(--creme), 0 0 0 7px var(--tomate); transform: rotate(-12deg); font-family: var(--main); font-size: 1.3rem; font-weight: 700; line-height: 1.05; padding: 1rem; z-index: 3; }

/* =========================================================
   Trouvez votre commerçant (ardoise)
   ========================================================= */
.hl-recherche { display: flex; align-items: center; gap: .6rem; background: var(--blanc); border-radius: 999px; padding: .4rem .4rem .4rem 1.3rem; max-width: 760px; box-shadow: 0 8px 26px rgba(0, 0, 0, .2); color: var(--gris); }
.hl-recherche input[type="search"] { flex: 1; min-width: 0; border: 0; background: transparent; font-size: 1.05rem; padding: .7rem .2rem; color: var(--encre); }
.hl-recherche input:focus { outline: none; }
.hl-recherche--clair { margin-top: 1.6rem; box-shadow: var(--ombre); }
.hl-craies { list-style: none; margin: 2rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .7rem; }
.hl-craies a { display: inline-flex; align-items: center; gap: .55rem; padding: .55em 1.1em; border: 2px dashed rgba(243, 239, 230, .55); border-radius: 12px; color: var(--craie); text-decoration: none; font-family: var(--main); font-size: 1.4rem; font-weight: 600; line-height: 1; }
.hl-craies a:hover { border-color: var(--moutarde); color: var(--moutarde); }
.hl-craies .hl-ico { width: 20px; height: 20px; }

/* =========================================================
   Avis
   ========================================================= */
.hl-avis .hl-sec__in { position: relative; }
.hl-avis__guillemets { position: absolute; right: var(--gouttiere); top: -1rem; color: var(--moutarde); opacity: .45; }
.hl-avis__guillemets .hl-ico { width: 110px; height: 110px; }

/* =========================================================
   Infos pratiques
   ========================================================= */
.hl-infos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.hl-infos__carte { background: var(--blanc); border-radius: var(--rayon); padding: 1.5rem 1.6rem; box-shadow: var(--ombre); }
.hl-infos__carte p { margin: 0 0 .4rem; }
.hl-infos__titre { display: flex; align-items: center; gap: .55rem; font-family: var(--titre); font-size: 1.2rem; font-weight: 600; color: var(--vert); margin-bottom: .7rem !important; }
.hl-infos__titre .hl-ico { color: var(--tomate); }
.hl-infos__acces { color: var(--gris); font-size: .95rem; margin-top: .8rem !important; }
.hl-mail { white-space: nowrap; overflow-wrap: normal; font-size: clamp(.82rem, 1.6vw, 1rem); }
.hl-gmaps { width: 100%; height: 400px; border: 0; border-radius: var(--rayon); display: block; }
.hl-sec .hl-externe { margin-top: 1.4rem; }

/* Contenus externes en attente de consentement */
.hl-externe__attente { background: var(--kraft); border: 2px dashed var(--kraft-fonce); border-radius: var(--rayon); padding: 2rem; text-align: center; color: var(--gris); }
.hl-externe__attente p { margin: 0 0 1rem; }
.hl-sec--ardoise .hl-externe__attente, .hl-sec--vert .hl-externe__attente { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .25); color: var(--craie); }

/* =========================================================
   Diaporama de la bannière
   ========================================================= */
.hl-diapo { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.2s ease; }
.hl-diapo.is-on { opacity: 1; }
.hl-diapo .hl-banniere__img { transform: scale(1.04); transition: transform 7s ease-out; }
.hl-diapo.is-on .hl-banniere__img { transform: scale(1); }
.hl-diapo__legende { position: absolute; z-index: 3; right: var(--gouttiere); bottom: 1.4rem; font-family: var(--main); font-size: 1.5rem; color: var(--blanc); background: rgba(20, 30, 25, .55); padding: .2em .8em; border-radius: 8px; transform: rotate(-2deg); }
.hl-diapo__legende a { color: var(--blanc); }
.hl-diapo__points { position: absolute; z-index: 3; left: 50%; bottom: 4.4rem; transform: translateX(-50%); display: flex; gap: .5rem; }
.hl-diapo__points button { width: 11px; height: 11px; padding: 0; border-radius: 50%; border: 2px solid var(--blanc); background: transparent; box-shadow: none; cursor: pointer; }
.hl-diapo__points button[aria-selected="true"] { background: var(--moutarde); border-color: var(--moutarde); }

/* =========================================================
   Réseaux sociaux (actus)
   ========================================================= */
.hl-reseaux { display: grid; gap: 2rem; margin-bottom: 2.6rem; }
.hl-reseaux--deux { grid-template-columns: 1.4fr 1fr; align-items: start; }
.hl-reseaux__fil { background: var(--blanc); border-radius: var(--rayon); padding: 1.2rem; box-shadow: var(--ombre); }
.hl-reseaux__titre { display: flex; align-items: center; gap: .5rem; font-family: var(--main); font-size: 1.6rem; font-weight: 700; color: var(--tomate); margin: 0 0 .8rem; line-height: 1; }
.hl-reseaux__suivre { display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }

/* =========================================================
   Plan des Halles (grille HTML/CSS générée depuis l'admin)
   ========================================================= */
.hl-plan { position: relative; margin-top: 2.4rem; }
.hl-plan__legende { list-style: none; margin: 0 0 1.2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.hl-plan__legende button { display: inline-flex; align-items: center; gap: .45rem; padding: .4em .85em .4em .45em; border-radius: 999px; border: 0; background: rgba(255, 255, 255, .08); color: var(--craie); font: 600 .88rem var(--texte); cursor: pointer; box-shadow: none; }
.hl-plan__legende button .hl-ico { width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--c); color: var(--ardoise); }
.hl-plan__legende button:hover, .hl-plan__legende button.is-on { background: var(--craie); color: var(--ardoise); }
.hl-plan__defile { overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 6px 4px 10px; }
.hl-plan__halle {
	position: relative; min-width: 760px; display: grid; grid-template-columns: repeat(36, 1fr); grid-template-rows: repeat(12, minmax(58px, auto)); gap: 6px;
	padding: 14px; border: 3px solid rgba(243, 239, 230, .85); border-radius: 18px; outline: 1px dashed rgba(243, 239, 230, .35); outline-offset: 6px;
	background: rgba(255, 255, 255, .035) repeating-linear-gradient(0deg, transparent 0 63px, rgba(243, 239, 230, .05) 63px 64px);
}
.hl-etal {
	position: relative; display: flex; flex-direction: column; justify-content: center; gap: 2px; min-width: 0; padding: 6px 8px; border-radius: 9px; text-decoration: none;
	background: var(--c); color: var(--ardoise); box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .14), 0 3px 8px rgba(0, 0, 0, .25); transition: transform .15s, opacity .2s, filter .2s; cursor: pointer;
}
.hl-etal:hover, .hl-etal:focus { transform: translateY(-2px) scale(1.03); color: var(--ardoise); z-index: 2; outline: none; box-shadow: 0 0 0 3px var(--craie), 0 8px 18px rgba(0, 0, 0, .35); }
.hl-etal__code { font-family: var(--main); font-size: 1.05rem; font-weight: 700; line-height: 1; opacity: .7; }
.hl-etal__nom { font-size: .74rem; font-weight: 700; line-height: 1.15; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.hl-etal.is-libre { background: transparent; color: rgba(243, 239, 230, .55); box-shadow: inset 0 0 0 2px rgba(243, 239, 230, .3); border-style: dashed; }
.hl-etal.is-eteint { opacity: .18; filter: grayscale(1); }
.hl-etal.is-trouve { animation: hl-pulse 1.2s ease-in-out 3; box-shadow: 0 0 0 3px var(--moutarde), 0 0 24px rgba(232, 171, 46, .7); z-index: 2; }
@keyframes hl-pulse { 50% { transform: scale(1.08); } }
.hl-plan__terrasse { display: flex; align-items: center; justify-content: center; border-radius: 10px; background: repeating-linear-gradient(45deg, rgba(232, 171, 46, .16) 0 8px, transparent 8px 16px); border: 2px dashed rgba(232, 171, 46, .55); }
.hl-plan__terrasse span { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--main); font-size: 1.3rem; color: var(--moutarde); }
.hl-plan__ilot { align-self: center; justify-self: center; font-family: var(--main); font-size: 1.15rem; color: rgba(243, 239, 230, .45); writing-mode: vertical-rl; transform: rotate(180deg); }
.hl-plan__porte { align-self: center; justify-self: center; font: 700 .68rem var(--texte); letter-spacing: .08em; text-transform: uppercase; color: var(--ardoise); background: var(--moutarde); padding: .25em .6em; border-radius: 4px; z-index: 1; }
.hl-plan__porte--nord { align-self: start; margin-top: -26px; }
.hl-plan__porte--ouest { justify-self: start; margin-left: -34px; transform: rotate(-90deg); }
.hl-plan__porte--est { justify-self: end; margin-right: -34px; transform: rotate(90deg); }
.hl-plan__bulle { position: absolute; z-index: 10; transform: translate(-50%, calc(-100% - 10px)); min-width: 180px; max-width: 260px; background: var(--creme); color: var(--encre); border-radius: 10px; padding: .6rem .8rem; box-shadow: 0 10px 26px rgba(0, 0, 0, .35); border-top: 5px solid var(--c); pointer-events: none; font-size: .85rem; line-height: 1.35; }
.hl-plan__bulle strong { display: block; font-family: var(--titre); font-size: 1.05rem; color: var(--vert); }
.hl-plan__bulle span { color: var(--gris); }
.hl-plan__bulle em { display: block; font-style: normal; font-weight: 700; color: var(--tomate); margin-top: .2rem; }
.hl-plan__aide { font-size: .85rem; opacity: .7; margin: .6rem 0 0; }
.hl-plan__glisser { display: none; }
.hl-plan__index { margin-top: 1.4rem; }
.hl-plan__index summary { cursor: pointer; font-family: var(--main); font-size: 1.5rem; color: var(--moutarde); }
.hl-plan__index ul { list-style: none; margin: 1rem 0 0; padding: 0; columns: 3 240px; column-gap: 2rem; }
.hl-plan__index li { break-inside: avoid; display: flex; align-items: baseline; gap: .5rem; padding: .3rem 0; border-bottom: 1px dashed rgba(243, 239, 230, .15); font-size: .92rem; }
.hl-plan__index a { color: var(--craie); }
.hl-plan__index small { margin-left: auto; opacity: .6; font-size: .78rem; }
.hl-plan__pastille { flex: none; min-width: 2.4em; text-align: center; font-family: var(--main); font-weight: 700; font-size: 1.05rem; line-height: 1.4; border-radius: 6px; background: var(--c); color: var(--ardoise); }
.hl-sec--creme .hl-plan, .hl-sec--kraft .hl-plan { background: var(--ardoise) var(--craie-tex); color: var(--craie); padding: 1.6rem; border-radius: 16px; border: 9px solid var(--bois); }
.hl-fiche__emplacement { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; font-weight: 600; margin: -.6rem 0 1.6rem; }
.hl-fiche__emplacement .hl-ico { color: var(--tomate); }
.hl-fiche__emplacement a { font-family: var(--main); font-size: 1.35rem; font-weight: 700; background: var(--ardoise); color: var(--craie); padding: 0 .5em; border-radius: 6px; text-decoration: none; }
.hl-fiche__emplacement span { color: var(--gris); font-weight: 400; }

/* =========================================================
   Cartes commerçants
   ========================================================= */
.hl-grille { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.hl-carte { position: relative; background: var(--blanc); border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); display: flex; flex-direction: column; text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s; }
.hl-carte:hover { transform: translateY(-5px); box-shadow: 0 22px 44px rgba(28, 33, 30, .16); color: inherit; }
.hl-carte__img { position: relative; aspect-ratio: 4 / 3.3; background: var(--kraft); overflow: hidden; }
.hl-carte__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; transition: transform .6s; }
.hl-carte:hover .hl-carte__img img { transform: scale(1.05); }
.hl-etiquette { display: inline-flex; align-items: center; gap: .4rem; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hl-carte .hl-etiquette { position: absolute; left: 10px; bottom: 10px; background: var(--ardoise); color: var(--craie); padding: .45em .8em; border-radius: 6px; box-shadow: 0 3px 8px rgba(0, 0, 0, .25); }
.hl-carte .hl-etiquette .hl-ico { width: 14px; height: 14px; color: var(--moutarde); }
.hl-carte__corps { padding: 1.05rem 1.15rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.hl-carte__titre { font-family: var(--titre); font-size: 1.28rem; font-weight: 600; color: var(--vert); margin: 0; line-height: 1.2; }
.hl-carte__accroche { font-size: .92rem; line-height: 1.5; color: var(--gris); margin: 0; }
.hl-carte__jours { margin-top: auto; padding-top: .7rem; }
.hl-jours { display: flex; gap: .28rem; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.hl-jours li { font-size: .7rem; font-weight: 700; width: 2.15em; height: 2.15em; display: grid; place-items: center; border-radius: 50%; background: var(--kraft); color: rgba(28, 33, 30, .32); }
.hl-jours li.is-on { background: var(--feuille); color: var(--blanc); }
.hl-jours abbr { text-decoration: none; cursor: default; }

/* =========================================================
   Page Commerçants : rayons (ancres) + sections
   ========================================================= */
.hl-liste { padding-bottom: 4rem; }
.hl-entete--commercants { margin-bottom: 0; }
.hl-rayons { max-width: var(--largeur); margin: 2.6rem auto 0; padding: 0 var(--gouttiere); display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: .8rem; }
.hl-rayons a { display: flex; align-items: center; gap: .7rem; background: var(--blanc); border-radius: 12px; padding: .8rem 1rem; text-decoration: none; color: var(--vert); font-weight: 700; font-size: .95rem; line-height: 1.2; box-shadow: var(--ombre); transition: transform .2s, background .2s; }
.hl-rayons a:hover, .hl-rayons a.is-active { background: var(--vert); color: var(--creme); transform: translateY(-2px); }
.hl-rayons__picto { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--kraft); color: var(--vert); display: grid; place-items: center; }
.hl-rayons a:hover .hl-rayons__picto, .hl-rayons a.is-active .hl-rayons__picto { background: var(--moutarde); color: var(--vert-fonce); }
.hl-rayons__picto .hl-ico { width: 21px; height: 21px; }
.hl-rayons__nb { margin-left: auto; font-family: var(--main); font-size: 1.35rem; color: var(--tomate); }
.hl-rayons a:hover .hl-rayons__nb { color: var(--moutarde); }
.hl-rayon { max-width: var(--largeur); margin: 0 auto; padding: 3.5rem var(--gouttiere) 0; scroll-margin-top: 120px; }
.hl-rayon__tete { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.6rem; padding-bottom: 1rem; border-bottom: 2px dashed var(--kraft-fonce); }
.hl-rayon__tete h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.hl-rayon__tete h2 a { color: var(--vert); text-decoration: none; }
.hl-rayon__tete p { margin: .2rem 0 0; color: var(--gris); }
.hl-rayon__picto { flex: none; width: 60px; height: 60px; border-radius: 50%; background: var(--moutarde); color: var(--vert-fonce); display: grid; place-items: center; }
.hl-rayon__picto .hl-ico { width: 30px; height: 30px; }
.hl-resultats { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.hl-resultats li { background: var(--blanc); border-radius: 12px; padding: 1.1rem 1.3rem; box-shadow: var(--ombre); }
.hl-resultats a { font-family: var(--titre); font-size: 1.2rem; font-weight: 600; text-decoration: none; }
.hl-resultats p { margin: .3rem 0 0; color: var(--gris); font-size: .95rem; }

/* =========================================================
   Fiche commerçant
   ========================================================= */
.hl-fiche { max-width: var(--largeur); margin: 0 auto; padding: 2.4rem var(--gouttiere) 4.5rem; }
.hl-fil { font-size: .9rem; color: var(--gris); margin-bottom: 1.8rem; }
.hl-fil a { color: var(--gris); }
.hl-fiche__haut { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.hl-fiche__photo { margin: 0; background: var(--blanc); padding: 12px 12px 44px; box-shadow: var(--ombre); transform: rotate(-1.5deg); position: relative; }
.hl-fiche__photo::before { content: ""; position: absolute; top: -14px; left: 50%; width: 120px; height: 30px; transform: translateX(-50%) rotate(2deg); background: rgba(232, 171, 46, .55); z-index: 2; }
.hl-fiche__photo img { width: 100%; aspect-ratio: 4 / 4.2; object-fit: cover; object-position: center 25%; }
.hl-etiquette--plein { background: var(--kraft); color: var(--vert); padding: .5em .95em; border-radius: 999px; margin: 0 0 .9rem; }
.hl-etiquette--plein .hl-ico { color: var(--tomate); width: 16px; height: 16px; }
.hl-fiche__infos h1 { margin: 0 0 .9rem; }
.hl-fiche__accroche { font-size: 1.2rem; line-height: 1.55; color: var(--encre); margin: 0 0 1.8rem; }
.hl-ardoise--fiche { text-align: left; padding: 1.2rem 1.4rem 1.1rem; transform: rotate(-.8deg); margin-bottom: 1.8rem; max-width: 420px; }
.hl-ardoise--fiche .hl-jours { margin: .7rem 0; }
.hl-ardoise--fiche .hl-jours li { background: rgba(255, 255, 255, .08); color: rgba(243, 239, 230, .35); font-family: var(--texte); }
.hl-ardoise--fiche .hl-jours li.is-on { background: var(--craie); color: var(--ardoise); }
.hl-ardoise--fiche .hl-ardoise__jours { font-size: 1.3rem; }
.hl-fiche__contacts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.hl-fiche__contacts a { display: inline-flex; align-items: center; gap: .5rem; background: var(--blanc); border-radius: 999px; padding: .55em 1.1em; font-weight: 600; text-decoration: none; box-shadow: var(--ombre); }
.hl-fiche__contacts .hl-ico { color: var(--tomate); }
.hl-fiche__texte { max-width: 780px; margin: 4rem auto 0; font-size: 1.07rem; }
.hl-fiche__texte h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.hl-fiche__galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; margin-top: 3rem; }
.hl-fiche__galerie img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; }
.hl-fiche__autres { margin-top: 5rem; padding-top: 3rem; border-top: 2px dashed var(--kraft-fonce); }
.hl-fiche__autres h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: 1.6rem; }

/* =========================================================
   Pages simples : contact, mentions, articles
   ========================================================= */
.hl-contact, .hl-contact > .wp-block-group__inner-container { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; max-width: var(--largeur) !important; }
.hl-contact__coord { background: var(--ardoise) var(--craie-tex); color: var(--craie); border: 9px solid var(--bois); border-radius: 12px; padding: 1.8rem; }
.hl-contact__coord h2 { color: var(--craie); font-size: 1.6rem; }
.hl-contact__coord a { color: var(--moutarde); }
.hl-contact__coord p { margin: 0 0 1rem; }
.hl-contact > .wp-block-group__inner-container { max-width: none; width: 100%; }
.hl-contact { display: block; }
.forminator-ui.forminator-custom-form .forminator-input, .forminator-ui.forminator-custom-form .forminator-textarea { width: 100% !important; max-width: none !important; }
.hl-contact__form { background: var(--blanc); border-radius: var(--rayon); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--ombre); }
.forminator-ui.forminator-custom-form .forminator-label { font-family: var(--texte) !important; font-weight: 600 !important; color: var(--encre) !important; }
.forminator-ui.forminator-custom-form input.forminator-input, .forminator-ui.forminator-custom-form textarea.forminator-textarea { border: 1.5px solid var(--kraft-fonce) !important; border-radius: 10px !important; background: var(--creme) !important; padding: .8em 1em !important; font-size: 1rem !important; }
.single-post .entry-header, .single-post .entry-content, .single-post .featured-image { max-width: 820px; margin-left: auto; margin-right: auto; padding: 0 var(--gouttiere); }
.single-post .site-main { padding-top: 3rem; padding-bottom: 4rem; }
.single-post .featured-image img { border-radius: var(--rayon); }

/* =========================================================
   Pied de page
   ========================================================= */
.hl-footer { position: relative; background: var(--vert-fonce) var(--grain); color: rgba(243, 239, 230, .8); font-size: .95rem; padding-top: 30px; }
.hl-footer__in { max-width: var(--largeur); margin: 0 auto; padding: 4.2rem var(--gouttiere) 2.6rem; display: grid; grid-template-columns: 1.5fr 1fr 1.2fr .9fr; gap: 2.6rem; }
.hl-footer__titre { font-family: var(--main); font-size: 1.6rem; font-weight: 700; color: var(--moutarde); margin: 0 0 .8rem; line-height: 1; }
.hl-footer p { margin: 0 0 .7rem; }
.hl-footer a { color: var(--craie); text-decoration: none; }
.hl-footer a:hover { color: var(--moutarde); }
.hl-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.hl-footer__logo { filter: invert(1) sepia(.15); width: 210px; height: auto; margin-bottom: 1.1rem; opacity: .95; }
.hl-footer__reseaux { display: flex; gap: .6rem; margin-top: 1.2rem !important; }
.hl-footer__reseaux a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .08); }
.hl-footer__reseaux a:hover { background: var(--moutarde); color: var(--vert-fonce); }
.hl-footer__bas { border-top: 1px solid rgba(243, 239, 230, .12); max-width: var(--largeur); margin: 0 auto; padding: 1.2rem var(--gouttiere) 1.6rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: .85rem; }
.hl-lien-cookies { background: none; border: 0; padding: 0; color: rgba(243, 239, 230, .8); font: inherit; text-decoration: underline; cursor: pointer; box-shadow: none; }
.hl-lien-cookies:hover { color: var(--moutarde); background: none; }

/* Bandeau cookies */
.hl-consent { position: fixed; z-index: 1000; left: 16px; bottom: 16px; max-width: 420px; background: var(--creme); border-radius: var(--rayon); box-shadow: 0 20px 50px rgba(0, 0, 0, .25); padding: 1.3rem 1.4rem; border-top: 6px solid var(--vert); font-size: .92rem; line-height: 1.5; }
.hl-consent[hidden] { display: none; }
.hl-consent__titre { font-family: var(--main); font-size: 1.6rem; font-weight: 700; color: var(--tomate); margin: 0 0 .3rem; line-height: 1; }
.hl-consent p { margin: 0 0 .9rem; }
.hl-consent__boutons { display: flex; gap: .6rem; flex-wrap: wrap; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1100px) {
	.hl-grille { grid-template-columns: repeat(3, 1fr); }
	.hl-footer__in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.hl-cagettes, .hl-polaroids { grid-template-columns: repeat(2, 1fr); }
	.hl-reseaux--deux { grid-template-columns: 1fr; }
	.hl-plan__glisser { display: inline; }
	.hl-grille { grid-template-columns: repeat(2, 1fr); }
	.hl-infos { grid-template-columns: 1fr; }
	.hl-presentation__grille, .hl-fiche__haut, .hl-contact > .wp-block-group__inner-container { grid-template-columns: 1fr; }
	.hl-presentation--inverse .hl-presentation__texte { order: 0; }
	.hl-banniere__in { flex-direction: column; align-items: flex-start; padding-bottom: 5.5rem; }
	.hl-ardoise--horaires { align-self: flex-end; margin-top: 3rem; }
	.hl-topbar__plus { display: none !important; }
	.hl-fiche__photo { max-width: 560px; }
}
@media (max-width: 768px) {
	.main-navigation .main-nav ul li a { line-height: 48px; }
	.main-navigation.toggled .main-nav > ul { background: var(--creme); padding-bottom: 1rem; }
	.main-navigation .main-nav ul li.hl-menu-cta > a { display: inline-block; margin: .6rem var(--gouttiere); }
	.main-navigation ul ul { width: auto; border-width: 0; border-radius: 0; box-shadow: none; }
	.site-logo img, .site-header .header-image { width: 140px; }
	.site-header .inside-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; }
	.site-header .site-logo { text-align: left; }
	.site-header .mobile-menu { display: none; } /* icône seule : « Menu » chevauchait la loupe */
	.site-header .menu-toggle { padding: 0 14px; }
	.site-header .menu-bar-items, .site-header .mobile-bar-items { display: none !important; }
	.hl-topbar__reseaux { display: none !important; }
	.site-header .site-logo { flex: 1; }
	.site-header .main-navigation { flex: none; width: auto; }
	.site-header .main-navigation.toggled { flex-basis: 100%; } /* la recherche reste dans « Trouvez votre commerçant » et le plan */
	.hl-plan__legende { flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; }
	.hl-plan__legende li { flex: none; }
}
@media (max-width: 600px) {
	body { font-size: 16px; }
	.hl-cagettes, .hl-polaroids, .hl-grille { grid-template-columns: 1fr; }
	.hl-rayons { grid-template-columns: 1fr 1fr; }
	.hl-rayons a { padding: .65rem .7rem; font-size: .85rem; }
	.hl-rayons__picto { width: 32px; height: 32px; }
	.hl-rayons__nb { display: none; }
	.hl-footer__in { grid-template-columns: 1fr; }
	.hl-tampon { width: 108px; height: 108px; font-size: 1.1rem; left: -.4rem; }
	.hl-collage { padding-right: 1rem; }
	.hl-recherche { flex-wrap: wrap; border-radius: 18px; padding: .6rem; }
	.hl-recherche .hl-btn { width: 100%; justify-content: center; }
	.hl-consent { left: 8px; right: 8px; bottom: 8px; max-width: none; }
	.admin-bar .site-header { top: 0; }
	.hl-store { --l: 30px; height: 22px; margin-bottom: -22px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; }
}
