/* =========================================================
   En-tête, méga-menu & tiroir mobile — Croissant-Rouge Comorien
   ========================================================= */

:root {
	--header-h: 84px;
	--nav-bp-gap: 4px;
	--ease-out: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Barre supérieure ---------- */
.top-bar .crc-icon { margin-right: 6px; color: var(--red-primary); font-size: 14px; }
.top-bar-left a { display: inline-flex; align-items: center; }

/* ---------- Conteneur d'en-tête ----------
   .main-header (sticky) sert de repère au panneau méga-menu pleine largeur :
   aucun parent intermédiaire n'est positionné sur desktop. */
.main-header { background: var(--white); position: sticky; top: 0; z-index: 1000; box-shadow: 0 1px 0 var(--gray-200); transition: box-shadow .3s ease; }
.main-header.is-scrolled { box-shadow: 0 10px 30px -12px rgba(26,26,46,.18); }
.admin-bar .main-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .main-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .main-header { top: 0; } }

.header-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: var(--header-h); display: flex; align-items: center; gap: 20px; position: static; }

/* Logo */
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; flex-shrink: 0; margin-right: auto; }
.logo .custom-logo, .logo img { display: block; max-height: 56px; max-width: 280px; width: auto; height: auto; object-fit: contain; }
.logo-icon { width: 50px; height: 50px; background: var(--red-primary); border-radius: 14px; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: 30px; flex-shrink: 0; box-shadow: 0 6px 18px -6px rgba(196,30,58,.6); }
.logo-icon::before, .logo-icon::after { content: none !important; }
.logo-icon .crc-icon { --crc-icon-stroke: 2; --crc-icon-fill-opacity: 1; }
.logo-icon .crc-i-fill { fill: var(--white); }

/* Actions */
.header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.header-donate { border-radius: 999px; padding: 11px 20px; box-shadow: 0 8px 20px -10px rgba(196,30,58,.8); }
.header-donate .crc-icon { font-size: 17px; }

/* Bouton burger */
.mobile-menu-btn { display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--gray-200); background: var(--white); cursor: pointer; align-items: center; justify-content: center; padding: 0; transition: border-color .2s, background .2s; }
.mobile-menu-btn:hover { border-color: var(--red-primary); }
.burger { position: relative; width: 20px; height: 14px; display: block; }
.burger span { position: absolute; left: 0; height: 2px; border-radius: 2px; background: var(--dark); transition: transform .35s var(--ease-out), opacity .2s, width .3s var(--ease-out); }
.burger span:nth-child(1) { top: 0; width: 100%; }
.burger span:nth-child(2) { top: 6px; width: 100%; }
.burger span:nth-child(3) { top: 12px; width: 62%; }
.mobile-menu-btn:hover .burger span:nth-child(3) { width: 100%; }
.mobile-menu-btn[aria-expanded="true"] .burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.mobile-menu-btn[aria-expanded="true"] .burger span:nth-child(2) { opacity: 0; }
.mobile-menu-btn[aria-expanded="true"] .burger span:nth-child(3) { width: 100%; transform: translateY(-6px) rotate(-45deg); }

/* ==========================================================
   NAVIGATION — DESKTOP
   ========================================================== */
.crc-nav { display: flex; align-items: stretch; height: 100%; }
.crc-nav-head, .crc-nav-foot, .crc-nav-overlay { display: none; }

.crc-menu { display: flex; align-items: stretch; list-style: none; margin: 0; padding: 0; gap: var(--nav-bp-gap); height: 100%; flex-wrap: nowrap; }
.crc-menu > .crc-menu-item { display: flex; align-items: center; position: relative; }
.crc-menu > .crc-menu-item.has-mega { position: static; }
.crc-menu-row { display: flex; align-items: center; }

.crc-menu-link { position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 10px 12px; font-size: 14.5px; font-weight: 600; color: var(--gray-800); text-decoration: none; border-radius: 10px; white-space: nowrap; transition: color .2s; }
.crc-menu-link .crc-menu-link-icon { font-size: 18px; color: var(--red-primary); }
.crc-menu > .crc-menu-item > .crc-menu-row > .crc-menu-link::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2.5px; border-radius: 2px; background: var(--red-primary); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-out); }
.crc-menu > .crc-menu-item.has-children > .crc-menu-row > .crc-menu-link { padding-right: 4px; }
.crc-menu > .crc-menu-item.has-children > .crc-menu-row > .crc-menu-link::after { right: 0; }
.crc-menu > .crc-menu-item:hover > .crc-menu-row > .crc-menu-link,
.crc-menu > .crc-menu-item.is-open > .crc-menu-row > .crc-menu-link,
.crc-menu > .current-menu-item > .crc-menu-row > .crc-menu-link,
.crc-menu > .current-menu-ancestor > .crc-menu-row > .crc-menu-link,
.crc-menu > .current-menu-parent > .crc-menu-row > .crc-menu-link { color: var(--red-primary); }
.crc-menu > .crc-menu-item:hover > .crc-menu-row > .crc-menu-link::after,
.crc-menu > .crc-menu-item.is-open > .crc-menu-row > .crc-menu-link::after,
.crc-menu > .current-menu-item > .crc-menu-row > .crc-menu-link::after,
.crc-menu > .current-menu-ancestor > .crc-menu-row > .crc-menu-link::after,
.crc-menu > .current-menu-parent > .crc-menu-row > .crc-menu-link::after { transform: scaleX(1); }

.crc-sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 32px; padding: 0; margin-right: 4px; border: 0; background: transparent; color: var(--gray-600); cursor: pointer; border-radius: 8px; font-size: 14px; transition: color .2s, background .2s; }
.crc-sub-toggle .crc-icon { transition: transform .35s var(--ease-out); --crc-icon-stroke: 2.2; }
.crc-sub-toggle:hover, .crc-sub-toggle:focus-visible { color: var(--red-primary); background: var(--gray-100); }
.crc-menu-item.is-open > .crc-menu-row > .crc-sub-toggle .crc-icon { transform: rotate(180deg); }
.crc-menu-item.is-open > .crc-menu-row > .crc-sub-toggle { color: var(--red-primary); }

:is(.crc-menu-link, .crc-sub-toggle, .crc-mega-link, .crc-mega-heading, .crc-mega-intro-cta):focus-visible { outline: 2px solid var(--red-primary); outline-offset: 2px; }

/* ---------- Panneaux (commun) ---------- */
.crc-sub { position: absolute; top: 100%; z-index: 50; opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(10px); transition: opacity .22s ease, transform .32s var(--ease-out), visibility 0s linear .32s; }
/* Pont invisible : le pointeur ne « tombe » jamais entre le lien et le panneau. */
.crc-sub::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.crc-menu-item.is-open > .crc-sub,
html:not(.crc-js) .crc-menu-item:hover > .crc-sub,
html:not(.crc-js) .crc-menu-item:focus-within > .crc-sub { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .22s ease, transform .32s var(--ease-out), visibility 0s; }

/* ---------- Liste déroulante enrichie ---------- */
.crc-sub--dropdown { left: -8px; min-width: 320px; }
.crc-sub--dropdown > .crc-sub-inner { background: var(--white); border-radius: 16px; padding: 8px; border: 1px solid var(--gray-200); box-shadow: 0 24px 48px -16px rgba(26,26,46,.22), 0 2px 6px rgba(26,26,46,.05); }
.crc-sub--dropdown::after { content: ''; position: absolute; top: -6px; left: 30px; width: 12px; height: 12px; background: var(--white); border-left: 1px solid var(--gray-200); border-top: 1px solid var(--gray-200); transform: rotate(45deg); border-radius: 2px 0 0 0; }
.crc-dropdown { list-style: none; margin: 0; padding: 0; }
.crc-dropdown > .crc-menu-item { position: relative; }
.crc-dropdown .crc-menu-row { display: flex; align-items: center; }
.crc-dropdown .crc-menu-row > .crc-mega-link { flex: 1; }
.crc-dropdown .crc-sub-toggle { transform: rotate(-90deg); }
/* Sous-menus latéraux (3e niveau et +) */
.crc-sub--dropdown .crc-sub--dropdown { top: -9px; left: calc(100% + 10px); }
.crc-sub--dropdown .crc-sub--dropdown::before { left: -14px; top: 0; bottom: 0; width: 14px; height: auto; }
.crc-sub--dropdown .crc-sub--dropdown::after { display: none; }
.crc-sub--dropdown.is-flip { left: auto; right: -8px; }
.crc-sub--dropdown.is-flip::after { left: auto; right: 30px; }
.crc-sub--dropdown .crc-sub--dropdown.is-flip { left: auto; right: calc(100% + 10px); }

/* ---------- Lien enrichi (dropdown + méga) ---------- */
.crc-mega-link { display: flex; align-items: center; gap: 14px; padding: 10px 12px; border-radius: 12px; text-decoration: none; color: var(--dark); transition: background .2s ease; }
.crc-mega-ico { width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 25px; color: var(--red-primary); background: color-mix(in srgb, var(--red-primary) 9%, white); transition: background .25s ease, color .25s ease, transform .35s var(--ease-out); }
.crc-mega-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.crc-mega-txt strong { font-size: 14.5px; font-weight: 700; line-height: 1.3; }
.crc-mega-txt small { font-size: 12.5px; color: var(--gray-600); line-height: 1.45; margin-top: 2px; }
.crc-mega-arrow { font-size: 16px; color: var(--red-primary); opacity: 0; transform: translateX(-6px); transition: opacity .2s, transform .3s var(--ease-out); }
.crc-mega-link:hover, .crc-mega-link:focus-visible, .crc-mega-link.is-current { background: var(--gray-100); }
.crc-mega-link:hover .crc-mega-ico, .crc-mega-link:focus-visible .crc-mega-ico, .crc-mega-link.is-current .crc-mega-ico { background: var(--red-primary); color: var(--white); transform: scale(1.04) rotate(-3deg); --crc-icon-fill-opacity: .28; }
.crc-mega-link:hover .crc-mega-ico .crc-i-fill, .crc-mega-link.is-current .crc-mega-ico .crc-i-fill { fill: var(--white); }
.crc-mega-link:hover .crc-mega-arrow, .crc-mega-link:focus-visible .crc-mega-arrow { opacity: 1; transform: none; }
.crc-mega-link.is-current strong { color: var(--red-primary); }

/* ---------- Méga-menu pleine largeur ---------- */
.crc-sub--mega { left: 0; right: 0; }
.crc-sub--mega > .crc-sub-inner { background: var(--white); border-top: 1px solid var(--gray-200); box-shadow: 0 40px 60px -30px rgba(26,26,46,.35); }
.crc-mega-wrap { max-width: 1280px; margin: 0 auto; padding: 28px 24px; display: grid; grid-template-columns: 300px 1fr; gap: 32px; }

.crc-mega-intro { position: relative; overflow: hidden; border-radius: 20px; padding: 28px 26px; color: var(--white); background: linear-gradient(150deg, var(--dark) 0%, var(--red-dark) 70%, var(--red-primary) 130%); display: flex; flex-direction: column; align-items: flex-start; isolation: isolate; }
.crc-mega-intro-pattern { position: absolute; inset: 0; z-index: -1; opacity: .12; background-image: var(--crc-crescent-pattern); background-size: 46px 46px; animation: crcPatternDrift 40s linear infinite; }
.crc-mega-intro-icon { width: 56px; height: 56px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 30px; color: var(--gold); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); margin-bottom: 18px; }
.crc-mega-intro-title { font-size: 22px; font-weight: 800; letter-spacing: -.3px; line-height: 1.2; margin: 0 0 8px; }
.crc-mega-intro-text { font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.78); margin: 0 0 18px; }
.crc-mega-intro-cta { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--white); color: var(--red-primary); font-weight: 700; font-size: 13.5px; text-decoration: none; transition: transform .25s var(--ease-out), box-shadow .25s; }
.crc-mega-intro-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -10px rgba(0,0,0,.5); }

.crc-mega-body { --crc-mega-cols: 2; display: grid; grid-template-columns: repeat(var(--crc-mega-cols), minmax(0, 1fr)); gap: 8px 24px; align-content: start; }
.crc-mega-grid { list-style: none; margin: 0; padding: 0; display: contents; }
.crc-mega-col { min-width: 0; }
.crc-mega-heading { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; color: var(--gray-600); text-decoration: none; padding: 6px 12px 10px; margin-bottom: 4px; border-bottom: 1px solid var(--gray-200); }
.crc-mega-heading:hover { color: var(--red-primary); }
.crc-mega-list { list-style: none; margin: 0; padding: 0; }

.crc-mega-bar { padding: 14px max(24px, calc((100% - 1232px) / 2)); display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 13.5px; color: var(--gray-600); border-top: 1px solid var(--gray-200); }
.crc-sub--mega .crc-mega-bar { background: var(--gray-100); }
.crc-mega-bar span { display: inline-flex; align-items: center; gap: 8px; }
.crc-mega-bar .crc-icon { color: var(--red-primary); font-size: 17px; }
.crc-mega-bar a { color: var(--dark); font-weight: 700; text-decoration: none; }
.crc-mega-bar a:hover { color: var(--red-primary); }
.crc-mega-bar-donate { display: inline-flex; align-items: center; gap: 8px; }

/* Apparition échelonnée des liens du panneau */
.crc-sub .crc-mega-grid > li, .crc-sub .crc-mega-col, .crc-sub .crc-dropdown > li { opacity: 0; transform: translateY(6px); transition: opacity .3s ease, transform .4s var(--ease-out); }
.crc-menu-item.is-open > .crc-sub .crc-mega-grid > li,
.crc-menu-item.is-open > .crc-sub .crc-mega-col,
.crc-menu-item.is-open > .crc-sub .crc-dropdown > li,
html:not(.crc-js) .crc-sub li, html:not(.crc-js) .crc-sub .crc-mega-col { opacity: 1; transform: none; }
.crc-menu-item.is-open > .crc-sub :is(.crc-mega-grid > li, .crc-mega-col, .crc-dropdown > li):nth-child(2) { transition-delay: .04s; }
.crc-menu-item.is-open > .crc-sub :is(.crc-mega-grid > li, .crc-mega-col, .crc-dropdown > li):nth-child(3) { transition-delay: .08s; }
.crc-menu-item.is-open > .crc-sub :is(.crc-mega-grid > li, .crc-mega-col, .crc-dropdown > li):nth-child(4) { transition-delay: .12s; }
.crc-menu-item.is-open > .crc-sub :is(.crc-mega-grid > li, .crc-mega-col, .crc-dropdown > li):nth-child(5) { transition-delay: .16s; }
.crc-menu-item.is-open > .crc-sub :is(.crc-mega-grid > li, .crc-mega-col, .crc-dropdown > li):nth-child(n+6) { transition-delay: .2s; }

@keyframes crcPatternDrift { from { background-position: 0 0; } to { background-position: 460px -460px; } }

/* Desktop intermédiaire */
@media (max-width: 1280px) and (min-width: 1101px) {
	:root { --nav-bp-gap: 0px; }
	.header-container { gap: 14px; padding: 0 18px; }
	.crc-menu-link { padding: 10px 9px; font-size: 13.8px; }
	.logo .custom-logo, .logo img { max-width: 220px; }
	.logo-text .sub-title { display: none; }
	.header-donate { padding: 10px 15px; font-size: 13.5px; }
	.crc-mega-wrap { grid-template-columns: 260px 1fr; gap: 24px; }
}

/* ==========================================================
   NAVIGATION — TABLETTE & MOBILE (tiroir latéral)
   ========================================================== */
@media (max-width: 1100px) {
	:root { --header-h: 72px; }
	.mobile-menu-btn { display: inline-flex; }
	.logo .custom-logo, .logo img { max-height: 48px; max-width: 200px; }

	.crc-nav { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1200; width: min(400px, 90vw); height: 100vh; height: 100dvh; background: var(--white); display: flex; flex-direction: column; transform: translateX(105%); visibility: hidden; transition: transform .45s var(--ease-out), visibility 0s linear .45s; box-shadow: -24px 0 60px -20px rgba(26,26,46,.35); }
	.crc-nav.is-open { transform: none; visibility: visible; transition: transform .45s var(--ease-out), visibility 0s; }
	.crc-nav-overlay { display: block; position: fixed; inset: 0; z-index: 1150; background: rgba(26,26,46,.55); opacity: 0; pointer-events: none; transition: opacity .35s ease; }
	.crc-nav-overlay[hidden] { display: block; }
	.crc-nav-overlay.is-visible { opacity: 1; pointer-events: auto; }

	.crc-nav-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 14px 22px; border-bottom: 1px solid var(--gray-200); flex-shrink: 0; }
	.crc-nav-head-title { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; color: var(--dark); }
	.crc-nav-head-title .crc-icon { color: var(--red-primary); font-size: 24px; }
	.crc-nav-close { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--gray-200); background: var(--white); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; color: var(--dark); cursor: pointer; }
	.crc-nav-close:hover { color: var(--red-primary); border-color: var(--red-primary); }

	.crc-menu { flex-direction: column; align-items: stretch; height: auto; gap: 0; padding: 10px 14px 20px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; flex: 1; }
	.crc-menu > .crc-menu-item { display: block; border-bottom: 1px solid var(--gray-200); position: static; }
	.crc-menu > .crc-menu-item:last-child { border-bottom: 0; }
	.crc-menu-row { justify-content: space-between; }
	.crc-menu-link { flex: 1; font-size: 16px; padding: 15px 8px; white-space: normal; }
	.crc-menu > .crc-menu-item > .crc-menu-row > .crc-menu-link::after { display: none; }
	.crc-sub-toggle { width: 44px; height: 44px; margin: 0; border-radius: 12px; background: var(--gray-100); font-size: 16px; }
	.crc-dropdown .crc-sub-toggle { transform: none; width: 38px; height: 38px; }

	/* Accordéons (hauteur animée via grid-template-rows) */
	.crc-sub, .crc-sub--dropdown .crc-sub--dropdown { position: static; display: grid; grid-template-rows: 0fr; opacity: 1; visibility: visible; pointer-events: auto; transform: none; min-width: 0; transition: grid-template-rows .4s var(--ease-out); }
	.crc-sub::before, .crc-sub::after { display: none !important; }
	.crc-sub > .crc-sub-inner { overflow: hidden; min-height: 0; background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; }
	.crc-menu-item.is-open > .crc-sub { grid-template-rows: 1fr; }
	.crc-sub .crc-mega-grid > li, .crc-sub .crc-mega-col, .crc-sub .crc-dropdown > li { opacity: 1; transform: none; }

	.crc-dropdown { padding: 0 0 10px 6px; }
	.crc-sub--dropdown .crc-sub--dropdown .crc-dropdown { padding-left: 16px; border-left: 2px solid var(--gray-200); margin-left: 26px; }
	.crc-mega-link { padding: 9px 8px; gap: 12px; }
	.crc-mega-ico { width: 38px; height: 38px; font-size: 20px; border-radius: 11px; }
	.crc-mega-txt strong { font-size: 14.5px; }
	.crc-mega-txt small { font-size: 12px; }
	.crc-mega-arrow { display: none; }

	.crc-mega-wrap { display: block; padding: 0 0 10px 6px; }
	.crc-mega-intro, .crc-mega-bar { display: none; }
	.crc-mega-body { display: block; }
	.crc-mega-heading { padding: 12px 8px 8px; border: 0; }

	.crc-nav-foot { display: flex; flex-direction: column; gap: 6px; padding: 16px 20px calc(18px + env(safe-area-inset-bottom)); border-top: 1px solid var(--gray-200); background: var(--gray-100); flex-shrink: 0; }
	.crc-nav-donate { justify-content: center; border-radius: 999px; padding: 14px; font-size: 15px; margin-bottom: 6px; }
	.crc-nav-contact { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--gray-800); text-decoration: none; padding: 4px 2px; }
	.crc-nav-contact .crc-icon { color: var(--red-primary); font-size: 18px; }

	body.crc-nav-open { overflow: hidden; }
}

@media (max-width: 560px) {
	.header-container { padding: 0 16px; gap: 10px; }
	.header-donate { padding: 0; width: 46px; height: 46px; justify-content: center; font-size: 0; gap: 0; }
	.header-donate .crc-icon { font-size: 20px; }
	.logo-text .sub-title { display: none; }
	.logo-text .main-title { font-size: 15px; }
	.top-bar-left a:nth-child(2) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.crc-sub, .crc-nav, .crc-nav-overlay, .crc-mega-intro-pattern { transition: none !important; animation: none !important; }
}
