/**
 * CALIGO — styles de base du thème (front).
 */

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	overflow-x: hidden;
	background: var(--wp--preset--color--ink, #0a0a0a);
	color: var(--wp--preset--color--ivory, #ede7dc);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--wp--preset--color--amber, #c2955a);
	color: var(--wp--preset--color--ink, #0a0a0a);
}

:focus-visible {
	outline: 1px solid var(--wp--preset--color--amber, #c2955a);
	outline-offset: 4px;
}

img,
video {
	max-width: 100%;
}

/* Grain argentique, très discret, sur l'ensemble du site. */
body::after {
	content: "";
	position: fixed;
	inset: -100%;
	z-index: 9990;
	pointer-events: none;
	opacity: 0.06;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: caligo-grain 0.9s steps(5) infinite;
}

/* En mode Jour, le grain devient sombre pour rester perceptible sur le papier. */
html[data-theme="day"] body::after {
	filter: invert(1);
	opacity: 0.05;
}

@keyframes caligo-grain {
	0% { transform: translate3d(0, 0, 0); }
	20% { transform: translate3d(-4%, 3%, 0); }
	40% { transform: translate3d(3%, -5%, 0); }
	60% { transform: translate3d(-6%, -2%, 0); }
	80% { transform: translate3d(5%, 4%, 0); }
	100% { transform: translate3d(0, 0, 0); }
}

/* Page d'accueil : les sections s'enchaînent sans espace. */
.c-onepage,
.c-onepage__content {
	margin: 0;
}

.c-onepage__content > * {
	margin-block: 0 !important;
}

.c-site-header,
.c-site-footer {
	margin: 0 !important;
}

/* Pages de contenu (mentions légales, confidentialité…) */

.c-page {
	min-height: 70vh;
	padding: clamp(140px, 24vh, 240px) clamp(20px, 4.5vw, 72px) clamp(96px, 16vh, 180px);
}

.c-page__title {
	margin-bottom: clamp(40px, 8vh, 80px);
	font-size: clamp(2.6rem, 1.4rem + 4vw, 5.5rem);
	line-height: 1;
}

.c-page__content h2 {
	margin-top: 2.5em;
}

.c-page__content p,
.c-page__content li {
	color: rgba(var(--cg-ivory-rgb), 0.78);
}

.c-404 {
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.c-404__title {
	margin: 0;
	font-size: clamp(6rem, 3rem + 14vw, 16rem);
	font-style: italic;
	line-height: 0.9;
	color: var(--wp--preset--color--amber, #c2955a);
}

.c-404__text {
	font-family: var(--wp--preset--font-family--bodoni-moda, serif);
	font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem);
}

.c-404__link {
	font-size: 0.75rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	body::after {
		animation: none;
	}
}
