/* Menu AnnecyPocket — couleurs de la charte (les couleurs globales d'Elementor sont restées celles par défaut, trop pâles). */
.ap-menu {
	--ap-primary: #0a6c8f;
	--ap-text: #1f2a30;
	--ap-bg: #ffffff;
	--ap-soft: #f2f6f8;
	--ap-line: #dde5e9;
	--ap-radius: 10px;
	font-family: var(--e-global-typography-text-font-family, inherit), sans-serif;
	color: var(--ap-text);
}
.ap-menu, .ap-menu *, .ap-menu *::before, .ap-menu *::after { box-sizing: border-box; }
.ap-menu ul { list-style: none; margin: 0; padding: 0; }
.ap-menu button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; text-align: left; }
.ap-menu [hidden] { display: none !important; }

/* Bouton d'ouverture */
.ap-open {
	display: inline-flex; align-items: center; gap: .6em;
	padding: .55em .9em; border-radius: var(--ap-radius);
	border: 1px solid var(--ap-line) !important; background: var(--ap-bg) !important;
	font-weight: 600;
}
.ap-burger { display: inline-flex; flex-direction: column; gap: 4px; width: 20px; }
.ap-burger span { height: 2px; background: currentColor; border-radius: 2px; }

/* Panneau */
.ap-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, .35); z-index: 99998; }
.ap-panel {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 99999;
	width: min(420px, 100vw); background: var(--ap-bg);
	overflow-y: auto; overscroll-behavior: contain;
	box-shadow: -8px 0 30px rgba(0, 0, 0, .15);
	padding: 0 16px 32px;
}
.ap-panel-head {
	position: sticky; top: 0; z-index: 1; background: var(--ap-bg);
	display: flex; align-items: center; justify-content: space-between;
	padding: 14px 0; border-bottom: 1px solid var(--ap-line); margin-bottom: 14px;
}
.ap-panel-title { font-weight: 700; font-size: 1.1em; }
.ap-close { font-size: 1.8em !important; line-height: 1; padding: 0 .2em !important; }
html.ap-noscroll { overflow: hidden; }

/* Recherche */
.ap-search { display: flex; gap: 8px; margin-bottom: 14px; }
.ap-search input { flex: 1; min-width: 0; padding: .6em .8em; border: 1px solid var(--ap-line); border-radius: var(--ap-radius); font: inherit; }
.ap-search button { padding: .6em 1em !important; border-radius: var(--ap-radius); background: var(--ap-primary) !important; color: #fff !important; font-weight: 600; }

/* Accès rapides */
.ap-quick { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px !important; }
.ap-quick .ap-link, .ap-quick .ap-jump {
	display: inline-flex; align-items: center; gap: .4em;
	padding: .45em .85em !important; border-radius: 999px;
	background: var(--ap-soft) !important; color: var(--ap-primary) !important;
	font-weight: 600; font-size: .92em; text-decoration: none;
}

/* Arbre */
.ap-root > .ap-item { border-bottom: 1px solid var(--ap-line); }
.ap-secondary { margin-top: 22px !important; padding-top: 10px !important; border-top: 3px solid var(--ap-soft); font-size: .95em; }
.ap-toggle, .ap-jump, .ap-link {
	display: flex; width: 100%; align-items: center; justify-content: space-between; gap: .75em;
	padding: .7em .25em !important; min-height: 44px;
	text-decoration: none; color: inherit;
}
/* Le menu est placé dans le bloc HTML 1 d'Astra, dont les liens sont réglés presque blancs : on reprend la main. */
.ap-menu .ap-toggle, .ap-menu .ap-jump, .ap-menu .ap-link { color: var(--ap-text); }
.ap-depth-0 > .ap-toggle { font-weight: 700; font-size: 1.05em; }
.ap-menu .ap-toggle[aria-expanded="true"] { color: var(--ap-primary); }
.ap-chevron {
	flex: none; width: .55em; height: .55em;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg); transition: transform .2s; margin-right: .3em;
}
.ap-toggle[aria-expanded="true"] .ap-chevron { transform: rotate(-135deg); }
.ap-sub { padding-left: 14px !important; margin-left: 4px !important; border-left: 2px solid var(--ap-soft); }
.ap-sub .ap-link { font-size: .95em; }
.ap-menu .ap-link:hover, .ap-menu .ap-toggle:hover, .ap-menu .ap-jump:hover { color: var(--ap-primary); }
.ap-xref .ap-jump, .ap-xref .ap-link { font-style: italic; opacity: .9; }
.ap-arrow { flex: none; }
.ap-menu :focus-visible { outline: 2px solid var(--ap-primary); outline-offset: 2px; border-radius: 4px; }

/* Aperçu administrateur */
.ap-badge { font-size: .72em; font-style: normal; padding: .1em .45em; border-radius: 4px; background: #fff3cd; color: #7a5b00; white-space: nowrap; }
.ap-admin { margin-top: 22px; padding: 10px 12px; border-radius: var(--ap-radius); background: #fff8e1; font-size: .85em; }
.ap-admin a { color: #7a5b00; font-weight: 600; }
.ap-admin-note { margin: 0 0 .4em; }

/* Mode « dans la page » */
.ap-mode-inline .ap-nav { max-width: 100%; }
