/* CPTS Mobile Menu — styles du panneau off-canvas
   Toutes les couleurs viennent des variables CSS injectées par le plugin
   (voir output_dynamic_css dans cpts-mobile-menu.php) */

.cptsmm-toggle {
	all: unset;
	box-sizing: border-box !important;
	position: fixed !important;
	top: 14px !important;
	z-index: 100000 !important;
	width: calc(var(--cptsmm-burger-size, 22px) * 2) !important;
	height: calc(var(--cptsmm-burger-size, 22px) * 2) !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--cptsmm-burger-bg, var(--cptsmm-bg, #fff)) !important;
	background-image: none !important;
	border: none !important;
	border-radius: 8px !important;
	box-shadow: 0 2px 10px rgba(0,0,0,0.15) !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
}

.cptsmm-burger {
	position: relative;
	width: var(--cptsmm-burger-size, 22px);
	height: calc(var(--cptsmm-burger-size, 22px) * 0.64);
	display: inline-block;
}

.cptsmm-line {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	background: var(--cptsmm-burger-color, var(--cptsmm-text, #001d3d));
	border-radius: 2px;
	transition: transform .3s ease, opacity .3s ease, top .3s ease, width .3s ease;
}

.cptsmm-line:nth-child(1) { top: 0; }
.cptsmm-line:nth-child(2) { top: 50%; margin-top: -1px; }
.cptsmm-line:nth-child(3) { top: 100%; margin-top: -2px; }

.cptsmm-x-icon {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	color: var(--cptsmm-burger-color, var(--cptsmm-text, #001d3d));
	opacity: 0;
	transition: opacity .3s ease;
}

/* --- Animation : rotation (l'icône entière pivote) --- */
.cptsmm-toggle[data-anim="rotation"] .cptsmm-burger {
	transition: transform .35s ease;
}
.cptsmm-toggle[data-anim="rotation"][aria-expanded="true"] .cptsmm-burger {
	transform: rotate(90deg);
}

/* --- Animation : croix (transformation classique en X) --- */
.cptsmm-toggle[data-anim="croix"][aria-expanded="true"] .cptsmm-line:nth-child(1) {
	top: 50%;
	margin-top: -1px;
	transform: rotate(45deg);
}
.cptsmm-toggle[data-anim="croix"][aria-expanded="true"] .cptsmm-line:nth-child(2) {
	opacity: 0;
}
.cptsmm-toggle[data-anim="croix"][aria-expanded="true"] .cptsmm-line:nth-child(3) {
	top: 50%;
	margin-top: -1px;
	transform: rotate(-45deg);
}

/* --- Animation : fondu (fondu enchaîné burger <-> croix) --- */
.cptsmm-toggle[data-anim="fondu"][aria-expanded="true"] .cptsmm-line {
	opacity: 0;
}
.cptsmm-toggle[data-anim="fondu"][aria-expanded="true"] .cptsmm-x-icon {
	opacity: 1;
}

/* --- Animation : morphing (transformation fluide avec rebond) --- */
.cptsmm-toggle[data-anim="morphing"] .cptsmm-line {
	transition: transform .45s cubic-bezier(.68,-0.55,.27,1.55), opacity .3s ease, top .45s cubic-bezier(.68,-0.55,.27,1.55), width .3s ease;
}
.cptsmm-toggle[data-anim="morphing"] .cptsmm-line:nth-child(2) {
	transition-delay: .05s;
}
.cptsmm-toggle[data-anim="morphing"] .cptsmm-line:nth-child(1),
.cptsmm-toggle[data-anim="morphing"] .cptsmm-line:nth-child(3) {
	transition-delay: .1s;
}
.cptsmm-toggle[data-anim="morphing"][aria-expanded="true"] .cptsmm-line:nth-child(1) {
	top: 50%;
	margin-top: -1px;
	transform: rotate(45deg);
}
.cptsmm-toggle[data-anim="morphing"][aria-expanded="true"] .cptsmm-line:nth-child(2) {
	opacity: 0;
	width: 0;
	left: 50%;
}
.cptsmm-toggle[data-anim="morphing"][aria-expanded="true"] .cptsmm-line:nth-child(3) {
	top: 50%;
	margin-top: -1px;
	transform: rotate(-45deg);
}

.cptsmm-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.45);
	z-index: 99998;
	opacity: 0;
	pointer-events: none;
	transition: opacity .25s ease;
}

.cptsmm-overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.cptsmm-panel {
	position: fixed;
	top: 0;
	bottom: 0;
	width: min(86vw, 360px);
	background: var(--cptsmm-bg, #fff);
	z-index: 99999;
	overflow-y: auto;
	transition: transform .3s ease;
	box-shadow: 0 0 30px rgba(0,0,0,0.2);
	padding: 20px 0 40px;
}

.cptsmm-panel-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 4px 16px 14px;
}

.cptsmm-logo img {
	max-width: 170px;
	height: auto;
	display: block;
}

.cptsmm-site-title {
	font-weight: 700;
	font-size: 16px;
	color: var(--cptsmm-text, #001d3d);
}

.cptsmm-close {
	all: unset;
	box-sizing: border-box !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	width: 36px !important;
	height: 36px !important;
	background: rgba(0,0,0,0.05) !important;
	background-image: none !important;
	border: none !important;
	border-radius: 50% !important;
	color: var(--cptsmm-text, #001d3d) !important;
	cursor: pointer !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cptsmm-close svg {
	width: 16px !important;
	height: 16px !important;
	pointer-events: none;
}

.cptsmm-panel-inner {
	padding: 0 8px;
}

.cptsmm-list,
.cptsmm-sublist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cptsmm-item {
	border-bottom: 1px solid rgba(0,0,0,0.08);
}

.cptsmm-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.cptsmm-row {
	padding: 10px 12px;
	gap: 4px;
}

.cptsmm-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cptsmm-row > a {
	flex: 1;
	display: block;
	padding: 10px 12px;
	color: var(--cptsmm-text, #001d3d);
	font-size: 16px;
	text-decoration: none;
	font-weight: 600;
}

/* Flèche simple ">" : items sans sous-menu, indique juste que ça mène quelque part */
.cptsmm-arrow {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cptsmm-text, #001d3d);
	opacity: .55;
}

/* Chevron rond "v" : items avec sous-menu (accordéon) */
.cptsmm-caret {
	all: unset;
	box-sizing: border-box !important;
	width: 32px !important;
	height: 32px !important;
	flex-shrink: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	background: var(--cptsmm-accent-soft, #E4EEFB) !important;
	background-image: none !important;
	border: none !important;
	border-radius: 50% !important;
	color: var(--cptsmm-accent, #6904F2) !important;
	cursor: pointer !important;
	margin: 0 !important;
	padding: 0 !important;
	transition: transform .25s ease;
}

.cptsmm-caret svg {
	width: 12px !important;
	height: 12px !important;
	pointer-events: none;
}

.cptsmm-item.is-open > .cptsmm-row > .cptsmm-caret {
	transform: rotate(180deg);
}

/* Met en évidence le lien de la page actuellement affichée */
.cptsmm-item.current-menu-item > .cptsmm-row > a {
	color: var(--cptsmm-accent, #6904F2);
}

.cptsmm-sublist {
	max-height: 0;
	overflow: hidden;
	transition: max-height .25s ease;
	background: rgba(0,0,0,0.02);
}

.cptsmm-item.is-open > .cptsmm-sublist {
	max-height: 1000px;
}

.cptsmm-sublist .cptsmm-row > a {
	padding-left: 30px;
	font-size: 15px;
	font-weight: 400;
}

.cptsmm-item.is-open > .cptsmm-row > a {
	color: var(--cptsmm-accent, #6904F2);
}

body.cptsmm-lock {
	overflow: hidden;
}
