/* =============================================
   CCOMBE HEADER — autonome, scoped, sans !important
   Classes ccombe-* qui ne conflictent avec aucune
   classe du parent twentytwentyone ni d'Elementor.
   ============================================= */

/* --- Compensation du header fixe (via CSS, pas JS) --- */
body {
	padding-top: 120px;	/**120*/
}

/* --- Neutralisation parent : background blanc --- */
:root {
	--global--color-background: #fff;
}

body,
body.custom-background {
	background-color: #fff;
}

/* Masquer la nav native éventuelle du parent twentytwentyone */
.site-header .primary-navigation,
.site-header .site-branding,
.site-header .menu-button-container {
	display: none;
}

/* =============================================
   HEADER FIXE
   ============================================= */
.ccombe-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: #fff;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.09);/***/
	display: flex;
	align-items: center;
	justify-content: center;
	height: 120px;		/**120*/
}

/* Conteneur intérieur — largeur 100% pour permettre le vrai centrage */
.ccombe-header__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2rem;
	box-sizing: border-box;
}

/* --- Logo --- */
.ccombe-header__logo {
	line-height: 0;
}

.ccombe-header__logo a {
	display: inline-block;
}

.ccombe-header__logo img,
.ccombe-header__logo .custom-logo {
	display: block;
	height: 50px; 		/**50*/
	width: auto;
	max-width: 100%;
}

/* =============================================
   MENU DESKTOP — horizontal centré + dropdowns
   ============================================= */
.ccombe-header__nav {
	width: 100%;
}

/* --- Reset typo menu : coupe l'héritage de --list--font-family
       appliqué par le parent TTO sur ul (style.css:987) --- */
.ccombe-header__menu,
.ccombe-header__menu li,
.ccombe-header__menu a,
.ccombe-offcanvas__menu,
.ccombe-offcanvas__menu li,
.ccombe-offcanvas__menu a {
	font-family: 'Open Sans', sans-serif;
}

.ccombe-header__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
}

.ccombe-header__menu > li {
	margin: 0;
	padding: 0;
	position: relative;
	list-style: none;
}

.ccombe-header__menu > li > a {
	display: block;
	padding: 4px 14px;
	font-size: 18.4px;
	font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: #28303d;
	text-decoration: none;
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: color 0.2s ease;
	background: none;
}

.ccombe-header__menu > li > a:hover,
.ccombe-header__menu > li.current-menu-item > a,
.ccombe-header__menu > li.current-menu-ancestor > a {
	color: #39414d;
	text-decoration: underline;
}

/* --- Sous-menus dropdown --- */
.ccombe-header__menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: #fff;
	min-width: 200px;
	padding: 8px 0;
	margin: 0;
	list-style: none;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	border-radius: 0 0 4px 4px;
	z-index: 1001;
}

.ccombe-header__menu > li:hover > .sub-menu,
.ccombe-header__menu > li:focus-within > .sub-menu {
	display: block;
}

.ccombe-header__menu .sub-menu li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ccombe-header__menu .sub-menu li a {
	display: block;
	padding: 8px 20px;
	font-size: 18.4px;
	font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: #333;
	text-decoration: none;
	white-space: nowrap;
	transition: background 0.15s ease, color 0.15s ease;
}

.ccombe-header__menu .sub-menu li a:hover {
	background: #f5f5f5;
	color: #111;
}

/* =============================================
   GARGOUILLE — overlay décoratif fixé à gauche
   Visible par-dessus le header, mais couverte par
   l'overlay quand le menu mobile est ouvert.
   ============================================= */
.ccombe-gargouille {
	position: fixed;
	top: 0;
	left: 0;
	width: 60px;
	height: 100px;
	z-index: 1001;
	pointer-events: none;
}

/* =============================================
   HAMBURGER — masqué desktop
   ============================================= */
.ccombe-toggle {
	position: fixed;
	top: 0px;
	right: 1.5rem;
	height: 120px;           /* = hauteur du header */
	box-sizing: border-box;  /* le padding 8px reste dans les 120px */
	z-index: 1200;
	border: none;
	outline: none;
	box-shadow: none;
	cursor: pointer;
	padding: 8px;
	display: none;
	flex-direction: column;
	justify-content: center; /* ← centre les 3 barres verticalement */
	gap: 5px;
	appearance: none;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
}

/* Override du background TTO — matche la spécificité (0,3,1)
   de button:not(:hover):not(:active):not(.has-background)
   avec notre propre chaîne :not() en (0,4,0) */
.ccombe-toggle:not(:hover):not(:active):not(.has-background),
.ccombe-offcanvas__close:not(:hover):not(:active):not(.has-background) {
	background: transparent;
	background-color: transparent;
}

.ccombe-toggle:hover,
.ccombe-toggle:focus,
.ccombe-toggle:active,
.ccombe-offcanvas__close:hover,
.ccombe-offcanvas__close:focus,
.ccombe-offcanvas__close:active {
	background: transparent;
	background-color: transparent;
	outline: none;
	box-shadow: none;
}

.ccombe-toggle__bar {
	display: block;
	width: 24px;
	height: 2px;
	background: #333;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.ccombe-toggle[aria-expanded="true"] .ccombe-toggle__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.ccombe-toggle[aria-expanded="true"] .ccombe-toggle__bar:nth-child(2) {
	opacity: 0;
}

.ccombe-toggle[aria-expanded="true"] .ccombe-toggle__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* =============================================
   OFF-CANVAS — masqué desktop
   ============================================= */
.ccombe-offcanvas {
	position: fixed;
	top: 0;
	right: 0;
	width: 300px;
	height: 100vh;
	background: #fff;
	z-index: 1100;
	padding: 80px 32px 40px;
	transform: translateX(100%);
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	overflow-y: auto;
	box-shadow: -4px 0 20px rgba(0, 0, 0, 0.12);
}

.ccombe-offcanvas.is-open {
	transform: translateX(0);
}

.ccombe-offcanvas__close {
	position: absolute;
	top: 20px;
	right: 20px;
	background: none;
	border: none;
	font-size: 1.4rem;
	cursor: pointer;
	color: #555;
}

.ccombe-offcanvas__menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ccombe-offcanvas__menu > li {
	border-bottom: 1px solid #f0f0f0;
	list-style: none;
}

.ccombe-offcanvas__menu > li > a {
	display: block;
	padding: 14px 0;
	text-decoration: none;
	color: #222;
	font-size: 1rem;
	font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	letter-spacing: 0.03em;
	transition: color 0.2s ease;
}

.ccombe-offcanvas__menu a:hover,
.ccombe-offcanvas__menu .current-menu-item > a {
	color: #888;
}

/* Sous-menus off-canvas */
.ccombe-offcanvas__menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 16px;
}

.ccombe-offcanvas__menu .sub-menu li {
	border-bottom: 1px solid #f8f8f8;
	list-style: none;
}

.ccombe-offcanvas__menu .sub-menu li a {
	display: block;
	padding: 10px 0;
	font-size: 0.9rem;
	font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	color: #555;
	text-decoration: none;
}

.ccombe-offcanvas__menu .sub-menu li a:hover {
	color: #222;
}

/* =============================================
   OVERLAY
   ============================================= */
.ccombe-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 1050;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.35s ease;
}

.ccombe-overlay.is-open {
	opacity: 1;
	pointer-events: all;
}

/* =============================================
   RESPONSIVE — mobile (≤767px)
   ============================================= */
@media (max-width: 767px) {
	.ccombe-header__nav {
		display: none;
	}
	.ccombe-toggle {
		display: flex;
	}
}

/* =============================================
   MOBILE PORTRAIT — logo réduit de 25%
   (téléphones tenus verticalement, écrans étroits)
   ============================================= */
@media (max-width: 767px) and (orientation: portrait) {
	.ccombe-header__logo img,
	.ccombe-header__logo .custom-logo {
		height: 37.5px;
	}
}

/* =============================================
   DESKTOP ≥1025px — header, logo, gargouille +25%
   (Mobile + Tablette restent en taille de base)
   ============================================= */
@media (min-width: 1025px) {
	.ccombe-header {
		height: 200px;
	}
	body {
		padding-top: 200px;
	}
	.ccombe-header__logo img,
	.ccombe-header__logo .custom-logo {
		height: 100px;
	}
	.ccombe-gargouille {
		width: 171px;
		height: 263px;
	}
}

/* Nettoyage anciens résidus Max Mega Menu */
.ccombe-offcanvas .mega-menu-toggle {
	display: none;
}

/**-------------------------------- scroll pading header adjust */

html {
  scroll-padding-top: 170px;
}

@media (max-width: 768px) {
  html {
    scroll-padding-top: 120px;
  }
}
