/* Calife Astra : styles communs (charte, en-tête, pied de page, animations). */

/* ---------- Charte ---------- */
body.calife {
	margin: 0;
	background: #ffffff;
	color: #000000;
	font-family: 'Work Sans', sans-serif;
	text-transform: uppercase;
	font-size: 15px;
	line-height: 1.5;
}
body.calife h1, body.calife h2, body.calife h3, body.calife h4, body.calife h5, body.calife h6,
body.calife p, body.calife a, body.calife button, body.calife input, body.calife li, body.calife td, body.calife th {
	font-family: 'Work Sans', sans-serif;
}
body.calife h1, body.calife h2, body.calife h3, body.calife h4 { color: #AA8111; letter-spacing: normal; }
body.calife a { color: #AA8111; }
body.calife a:hover, body.calife a:focus { color: #080641; }
body.calife img { max-width: 100%; }
body.calife video { max-width: none; }

/* ---------- Astra : pleine largeur, sans marges ---------- */
body.calife #page, body.calife .site-content, body.calife #primary, body.calife .site-main,
body.calife article, body.calife .entry-content { margin: 0 !important; padding: 0 !important; background: transparent; }
body.calife .site-content > .ast-container { max-width: none !important; width: 100%; padding: 0 !important; display: block; }
body.calife #primary { width: 100% !important; }
body.calife .entry-header, body.calife .ast-breadcrumbs-wrapper, body.calife #secondary, body.calife .post-navigation, body.calife .comments-area { display: none !important; }
body.calife .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; margin-top: 0; margin-bottom: 0; }
body.calife .entry-content p:empty { display: none; }

/* ---------- En-tête ---------- */
.cal-header {
	position: sticky; top: 0; z-index: 300;
	height: 120px; margin-bottom: -120px; box-sizing: border-box;
	background: transparent; color: #ffffff;
	transition: background .35s ease, transform .3s ease;
}
.admin-bar .cal-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cal-header { top: 46px; } }
.cal-header.is-solid { background: rgba(8, 6, 65, .97); }
.cal-header.is-hidden { transform: translateY(-100%); }
.hdr-in { max-width: 1440px; height: 100%; box-sizing: border-box; margin: 0 auto; padding: 0 40px; display: flex; align-items: center; gap: 40px; }
.cal-logo { display: flex; flex: 0 0 auto; }
.cal-logo img { width: 68px; height: 80px; display: block; }
.main-nav .cal-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 20px; font-size: 14px; letter-spacing: .5px; }
.main-nav .cal-menu li { margin: 0; display: flex; align-items: center; gap: 20px; }
.main-nav .cal-menu li + li::before { content: '|'; color: #ffffff; }
body.calife .main-nav a { color: #ffffff; text-decoration: none; }
body.calife .main-nav a:hover, body.calife .main-nav .current-menu-item > a { color: #AA8111; }
.hdr-lang { position: relative; flex: 0 0 auto; }
body.calife .hdr-lang-btn {
	min-height: 48px; padding: 0 16px; background: rgba(255, 255, 255, .75); color: #080641; border: 0; border-radius: 4px;
	font-family: 'Work Sans', sans-serif; font-size: 13px; font-weight: 500; letter-spacing: .5px; line-height: 1; cursor: pointer;
	text-transform: uppercase; display: flex; align-items: center; gap: 6px; box-shadow: none;
}
body.calife .hdr-lang-btn:hover, body.calife .hdr-lang-btn:focus-visible, .hdr-lang.is-open .hdr-lang-btn { background: #ffffff; color: #080641; }
.hdr-lang-list {
	display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 100%; margin: 0; padding: 6px 0; list-style: none;
	background: #ffffff; border-radius: 4px; box-shadow: 0 8px 24px rgba(8, 6, 65, .18); z-index: 10;
}
.hdr-lang-list::before { content: ''; position: absolute; left: 0; right: 0; top: -8px; height: 8px; }
.hdr-lang:hover .hdr-lang-list, .hdr-lang:focus-within .hdr-lang-list, .hdr-lang.is-open .hdr-lang-list { display: block; }
.hdr-lang-list li, .nav-lang li { margin: 0; }
body.calife .hdr-lang-list a { display: block; padding: 8px 16px; color: #080641; text-decoration: none; font-size: 13px; font-weight: 500; letter-spacing: .5px; white-space: nowrap; }
body.calife .hdr-lang-list a:hover, body.calife .hdr-lang-list a:focus, body.calife .hdr-lang-list a[aria-current] { color: #AA8111; }
.hdr-lang-list .lang-name, .nav-lang .lang-name { display: none; }
.nav-lang { display: none; }
.cal-pills { margin-left: auto; display: flex; flex-direction: column; gap: 6px; }
body.calife .cal-pill {
	display: flex; align-items: center; gap: 10px; background: #ffffff; border: 1px solid #c9b27a; border-radius: 30px;
	padding: 0 22px 0 0; height: 36px; text-decoration: none; color: #AA8111; font-size: 16px; letter-spacing: .5px;
}
body.calife .cal-pill-gift { font-size: 15px; }
.cal-pill-ico { width: 36px; height: 36px; border-radius: 50%; background: #000000; display: flex; align-items: center; justify-content: center; color: #AA8111; }
.cal-pill-ico img { width: 22px; height: 18px; }
.burger { display: none; align-items: center; justify-content: center; width: 48px; height: 48px; background: transparent; border: 1px solid rgba(255, 255, 255, .5); color: #ffffff; padding: 0; border-radius: 0; }
.burger:hover, .burger:focus { background: rgba(255, 255, 255, .1); color: #ffffff; }
@media (max-width: 1100px) {
	.burger { display: flex; }
	.main-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: rgba(8, 6, 65, .97); padding: 20px 40px 30px; }
	.cal-header.nav-open { background: rgba(8, 6, 65, .97); }
	.cal-header.nav-open .main-nav { display: block; }
	.main-nav .cal-menu { flex-direction: column; align-items: flex-start; gap: 16px; font-size: 16px; }
	.main-nav .cal-menu li + li::before { content: none; }
}
@media (max-width: 600px) {
	.hdr-in { gap: 12px; padding: 0 16px; }
	.hdr-lang { display: none; }
	.nav-lang { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 24px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(255, 255, 255, .25); }
	body.calife .nav-lang a { display: flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 12px; box-sizing: border-box; border: 1px solid rgba(255, 255, 255, .5); border-radius: 4px; color: #ffffff; text-decoration: none; font-size: 14px; font-weight: 500; letter-spacing: .5px; }
	body.calife .nav-lang a[aria-current] { background: rgba(255, 255, 255, .75); border-color: transparent; color: #080641; }
	.main-nav { padding: 20px 16px 30px; }
}

/* ---------- Pied de page ---------- */
.cal-footer { background: #080641; color: #AA8111; padding: 40px 30px 30px; }
.cal-footer-in { max-width: 1440px; margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 40px; }
.cal-footer-logo { width: 210px; height: auto; display: block; }
.cal-footer-nav { display: flex; flex-direction: column; gap: 4px; text-align: center; font-size: 12px; letter-spacing: .5px; }
body.calife .cal-footer-nav a { color: #AA8111; text-decoration: none; }
body.calife .cal-footer-nav a:hover { color: #ffffff; }

/* ---------- Animations au défilement (ordinateur seulement) ---------- */
@media (prefers-reduced-motion: no-preference) and (min-width: 1025px) {
	@supports (animation-timeline: view()) {
		.fx-up { animation: fxUp linear both; animation-timeline: view(); }
		.fx-zoom { animation: fxZoom linear both; animation-timeline: view(); }
		.fx-left { animation: fxLeft linear both; animation-timeline: view(); animation-range: entry 0% cover 56%; }
		.fx-right { animation: fxRight linear both; animation-timeline: view(); animation-range: entry 0% cover 56%; }
		.fx-fade { animation: fxFade ease-out both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
	}
}
@keyframes fxUp { from { transform: translateY(90px); } to { transform: translateY(-90px); } }
@keyframes fxZoom { 0% { transform: translateY(70px) scale(.86); } 20% { transform: translateY(40px) scale(1); } 80% { transform: translateY(-40px) scale(1); } 100% { transform: translateY(-70px) scale(.86); } }
@keyframes fxLeft { from { transform: translateX(-140px); } to { transform: translateX(0); } }
@keyframes fxRight { from { transform: translateX(140px); } to { transform: translateX(0); } }
@keyframes fxFade { from { opacity: 0; transform: translateY(-40px); } to { opacity: 1; transform: translateY(0); } }

/* ---------- Pas de défilement horizontal, grands titres réduits sur téléphone ---------- */
html:has(body.calife), body.calife, body.calife #page { overflow-x: clip !important; }
@media (max-width: 600px) {
	body.calife [style*="font-size: 70px"] { font-size: 42px !important; line-height: 42px !important; }
	body.calife [style*="font-size: 64px"] { font-size: 40px !important; line-height: 40px !important; }
	body.calife [style*="font-size: 54px"] { font-size: 36px !important; line-height: 36px !important; }
	body.calife [style*="font-size: 45px"] { font-size: 34px !important; line-height: 34px !important; }
	body.calife [style*="font-size: 40px"] { font-size: 32px !important; line-height: 32px !important; }
	body.calife [style*="font-size: 36px"] { font-size: 28px !important; line-height: 30px !important; }
}

/* ---------- Boutons du contenu : neutralise le style Astra (les styles en ligne s'appliquent) ---------- */
body.calife .entry-content button, body.calife .entry-content button:hover, body.calife .entry-content button:focus {
	background: transparent; border: 0; border-radius: 0; padding: 0; color: inherit; box-shadow: none;
	font-size: inherit; line-height: normal; text-transform: inherit; letter-spacing: inherit;
}
body.calife .entry-content button.car-btn { color: #ffffff; }

/* Astra coupe les mots longs : on garde les titres entiers comme sur le site. */
body.calife h1, body.calife h2, body.calife h3, body.calife h4, body.calife p { overflow-wrap: normal; word-wrap: normal; word-break: normal; hyphens: manual; }
