/*
Theme Name: Efemere
Template: twentytwentyfive
Description: Thème enfant de Twenty Twenty-Five pour Efemere : papier ivoire, nuit et bordeaux, typographie de lecture.
Version: 1.7.1
Requires at least: 6.7
Requires PHP: 7.4
Author: Efemere
Text Domain: efemere
*/

/* ---------- Base ---------- */

::selection {
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--contrast);
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(.wp-site-blocks) a:where(:not(.wp-element-button)) {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 3px;
}

/* ---------- En-tête et pied de page ---------- */

.ef-header {
	border-bottom: 1px solid rgba(232, 201, 193, 0.14);
}

.ef-header .wp-block-site-title a,
.ef-footer .wp-block-site-title a {
	text-decoration: none;
}

.ef-header .wp-block-navigation a {
	text-decoration: none;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.78rem;
	opacity: 0.85;
	transition: opacity 0.2s;
}

.ef-header .wp-block-navigation a:hover {
	opacity: 1;
	text-decoration: underline;
}

.ef-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--accent-3) !important;
	color: var(--wp--preset--color--base) !important;
	padding: clamp(1.5rem, 6vw, 3rem);
}

.ef-header .is-menu-open .wp-block-navigation a {
	font-size: 1.4rem;
	font-family: var(--wp--preset--font-family--vollkorn);
	text-transform: none;
	letter-spacing: 0;
}

.ef-badge {
	display: inline-block;
	padding: 0.15em 0.6em;
	border: 1px solid currentColor;
	border-radius: 999px;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	line-height: 1.6;
}

.ef-footer a {
	text-decoration: none;
	opacity: 0.85;
}

.ef-footer a:hover {
	opacity: 1;
	text-decoration: underline;
}

/* ---------- Héros de l'accueil ---------- */

.ef-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(60rem 30rem at 85% 110%, rgba(176, 138, 90, 0.28), transparent 60%),
		radial-gradient(50rem 28rem at 10% -10%, rgba(140, 28, 58, 0.55), transparent 65%),
		linear-gradient(160deg, #1e1418 0%, #2b1822 55%, #3a1a28 100%);
}

/* Fenêtre éclairée : petite touche de lumière chaude en bas à droite. */
.ef-hero::after {
	content: "";
	position: absolute;
	right: clamp(-6rem, -4vw, -2rem);
	bottom: clamp(-6rem, -4vw, -2rem);
	width: clamp(14rem, 34vw, 28rem);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(240, 196, 140, 0.22), transparent 70%);
	pointer-events: none;
}

.ef-hero > * {
	position: relative;
	z-index: 1;
}

.ef-hero .wp-block-site-title {
	margin: 0;
}

.ef-hero .wp-block-site-title a {
	text-decoration: none;
}

.ef-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.18em;
	font-size: 0.75rem !important;
}

/* ---------- Cartes d'histoires ---------- */

.ef-cards > li,
.ef-cards .wp-block-post {
	display: flex;
}

.ef-card {
	width: 100%;
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 14px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.ef-card:hover {
	transform: translateY(-3px);
	border-color: rgba(140, 28, 58, 0.35);
	box-shadow: 0 18px 40px -24px rgba(36, 26, 31, 0.45);
}

.ef-card .wp-block-post-title a {
	text-decoration: none;
}

.ef-card .wp-block-post-title a::after {
	/* Toute la carte est cliquable. */
	content: "";
	position: absolute;
	inset: 0;
}

.ef-card {
	position: relative;
}

.ef-card .wp-block-post-terms a {
	position: relative;
	z-index: 1;
	text-decoration: none;
}

.ef-card .wp-block-post-excerpt {
	flex: 1;
}

.ef-card .wp-block-post-excerpt__more-text {
	display: none;
}

.ef-card .wp-block-post-featured-image img {
	border-radius: 10px;
}

/* ---------- Lecture d'une histoire ---------- */

.ef-story .wp-block-post-content {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.8;
}

.ef-story .wp-block-post-content > p {
	hyphens: auto;
}

/* Lettrine sur le premier vrai paragraphe (après le temps de lecture et l'éventuelle mention fantasme). */
.ef-story .efs-reading + p:not(.efs-fantasy):not(.efs-person):not(.efs-previous)::first-letter,
.ef-story .efs-person + p:not(.efs-previous)::first-letter,
.ef-story .efs-previous + p::first-letter,
.ef-story .efs-fantasy + p:not(.efs-person):not(.efs-previous)::first-letter {
	float: left;
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 3.6em;
	line-height: 0.85;
	padding: 0.06em 0.12em 0 0;
	color: var(--wp--preset--color--accent-1);
}

.ef-story .wp-block-post-content h2,
.ef-story .wp-block-post-content h3 {
	margin-top: 2.2em;
}

.ef-story .wp-block-post-content hr,
.ef-story .wp-block-separator {
	border: 0;
	text-align: center;
	margin: 2.5em auto;
}

.ef-story .wp-block-post-content hr::before {
	content: "❦";
	color: var(--wp--preset--color--accent-1);
	font-size: 1.2rem;
}

.efs-reading {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.8rem !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
	opacity: 1 !important;
}

.efs-fantasy {
	background: var(--wp--preset--color--accent-5);
	border-left: 3px solid var(--wp--preset--color--accent-1) !important;
	border-radius: 0 10px 10px 0;
	font-size: 0.95em;
	opacity: 1 !important;
}

/* ---------- Formulaire (Contact Form 7) ---------- */

.wpcf7-form label {
	display: block;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.9rem;
	font-weight: 600;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form textarea,
.wpcf7-form select {
	width: 100%;
	box-sizing: border-box;
	margin-top: 0.4rem;
	padding: 0.8rem 0.95rem;
	border: 1px solid rgba(36, 26, 31, 0.22);
	border-radius: 10px;
	background: #fff;
	color: var(--wp--preset--color--contrast);
	font: 400 1rem/1.5 var(--wp--preset--font-family--literata);
	transition: border-color 0.2s, box-shadow 0.2s;
}

.wpcf7-form textarea {
	min-height: 11rem;
	resize: vertical;
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 3px rgba(140, 28, 58, 0.15);
}

.wpcf7-form p {
	margin: 0 0 1.2rem;
}

.wpcf7-form small {
	color: var(--wp--preset--color--accent-4);
}

.wpcf7-submit {
	padding: 0.85rem 2rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent-1);
	color: #fff;
	font: 600 0.95rem var(--wp--preset--font-family--manrope);
	letter-spacing: 0.04em;
	cursor: pointer;
	transition: background 0.2s;
}

.wpcf7-submit:hover {
	background: #6f1530;
}

.wpcf7-not-valid-tip {
	font-size: 0.85rem;
	margin-top: 0.3rem;
}

.wpcf7 form .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 0.8rem 1rem;
	border-radius: 10px;
}

/* ---------- Écran 18+ (extension Efemere Site) ---------- */

.efs-gate__box {
	font-family: var(--wp--preset--font-family--literata);
}

.efs-gate__title {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-weight: 500;
}

.efs-gate__enter,
.efs-gate__leave,
.efs-gate__badge {
	font-family: var(--wp--preset--font-family--manrope);
}

/* ---------- Petits écrans ---------- */

@media (max-width: 600px) {
	.ef-hero .wp-block-buttons {
		flex-direction: column;
		align-items: stretch;
	}

	.ef-hero .wp-block-button,
	.ef-hero .wp-block-button__link {
		width: 100%;
		text-align: center;
	}

	.ef-story .efs-reading + p:not(.efs-fantasy):not(.efs-person):not(.efs-previous)::first-letter,
	.ef-story .efs-person + p:not(.efs-previous)::first-letter,
	.ef-story .efs-previous + p::first-letter,
	.ef-story .efs-fantasy + p:not(.efs-person):not(.efs-previous)::first-letter {
		font-size: 3em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ef-card,
	.ef-card:hover {
		transition: none;
		transform: none;
	}
}

/* ---------- Cases à cocher Contact Form 7 (âge, consentement) ---------- */

.wpcf7-acceptance .wpcf7-list-item {
	display: block;
	margin: 0;
}

.wpcf7-acceptance label {
	display: flex !important;
	gap: 0.6rem;
	align-items: flex-start;
	font-weight: 400 !important;
	font-size: 0.92rem !important;
	line-height: 1.5;
	cursor: pointer;
}

.wpcf7-acceptance input[type="checkbox"] {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.15rem;
	accent-color: var(--wp--preset--color--accent-1);
}

/* ---------- Alignement de l'accueil ----------
   Le bandeau et le texte de présentation s'alignent sur la même marge gauche que le logo,
   le menu, « Dernières histoires » et le pied de page (colonne de 74rem).
   Écrit en CSS pour marcher aussi avec un modèle d'accueil modifié dans l'éditeur de site. */

:root {
	--ef-col: 74rem;
	--ef-col-left: max(0px, calc((100% - var(--ef-col)) / 2));
}

.ef-hero > * {
	margin-left: var(--ef-col-left) !important;
	margin-right: auto !important;
}

main > .ef-hero + .wp-block-group > .wp-block-post-content {
	max-width: 46rem !important;
	margin-left: var(--ef-col-left) !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

main > .ef-hero + .wp-block-group > .wp-block-post-content > * {
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* ---------- Pas de contour au clic ni au toucher ----------
   Les contours de focus n'apparaissent plus à la souris ni au doigt.
   Un repère discret reste uniquement pour la navigation au clavier (touche Tab), par accessibilité. */

* {
	-webkit-tap-highlight-color: transparent;
}

:focus,
:focus:not(:focus-visible),
.wp-block-navigation a:focus,
.wp-block-button__link:focus,
.wp-element-button:focus {
	outline: none !important;
	box-shadow: none;
}

a:focus-visible,
button:focus-visible,
.wp-element-button:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2) !important;
	outline-offset: 3px;
}

/* Champs de formulaire : simple changement de couleur de bordure, sans halo. */
input:focus,
textarea:focus,
select:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
	outline: none !important;
	box-shadow: none !important;
}

input[type="checkbox"]:focus,
input[type="radio"]:focus {
	outline: none !important;
	box-shadow: none !important;
}

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2) !important;
	outline-offset: 2px;
}

::-moz-focus-inner {
	border: 0;
}

.efs-gate__box:focus {
	outline: none;
}

/* ---------- Fin d'histoire : écrire à l'auteur + histoires similaires (extension Efemere Site) ---------- */

.efs-after {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--wp--preset--color--accent-6);
}

.efs-after__write {
	margin: 0 0 2rem;
}

.efs-after__write a {
	text-decoration: none;
}

.efs-after__title {
	margin: 0 0 0.6rem;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.75rem !important;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.efs-after__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.efs-after__list li {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}

.efs-after__list a {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: var(--wp--preset--font-size--large);
	text-decoration: none;
}

.efs-after__list a::after {
	content: " →";
	color: var(--wp--preset--color--accent-1);
}

/* ---------- Personne rencontrée (taxonomie de l'extension Efemere Site) ---------- */

.efs-person {
	margin: 0 0 1.2rem;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.85rem !important;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.efs-person a {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 1.1rem;
	font-style: italic;
	letter-spacing: 0;
	text-decoration: none;
}

.ef-person-story {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.8;
	padding-left: 1.2rem;
	border-left: 3px solid var(--wp--preset--color--accent-2);
}

.ef-person-head .wp-block-query-title {
	font-style: italic;
}

/* ---------- Fiche personne : timeline et « histoire plus longue » ---------- */

.efs-timeline {
	margin-top: 2rem;
}

.efs-timeline__title,
.efs-wish__title {
	margin: 0 0 1rem;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

.efs-timeline__list {
	position: relative;
	margin: 0;
	padding: 0 0 0 1.6rem;
	list-style: none;
}

.efs-timeline__list::before {
	content: "";
	position: absolute;
	left: 0.35rem;
	top: 0.4rem;
	bottom: 0.4rem;
	width: 2px;
	background: var(--wp--preset--color--accent-2);
}

.efs-timeline__item {
	position: relative;
	padding-bottom: 1.4rem;
}

.efs-timeline__item::before {
	content: "";
	position: absolute;
	left: -1.6rem;
	top: 0.35rem;
	width: 0.8rem;
	height: 0.8rem;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	border: 2px solid var(--wp--preset--color--accent-1);
}

.efs-timeline__item:last-child {
	padding-bottom: 0;
}

.efs-timeline__item:last-child::before {
	background: var(--wp--preset--color--accent-1);
}

.efs-timeline__date {
	display: block;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--accent-4);
}

.efs-timeline__text {
	margin-top: 0.2rem;
	line-height: 1.7;
}

.efs-wish {
	margin-top: 2.2rem;
	padding: 1.4rem 1.5rem;
	border-radius: 14px;
	background: linear-gradient(160deg, #2b1822, #3a1a28);
	color: var(--wp--preset--color--base);
}

.efs-wish__title {
	color: var(--wp--preset--color--accent-2);
}

.efs-wish__title span {
	color: #e0607e;
	font-size: 1rem;
	letter-spacing: 0;
}

.efs-wish__text {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: var(--wp--preset--font-size--large);
	font-style: italic;
	line-height: 1.55;
}

.efs-wish__text p:last-child {
	margin-bottom: 0;
}

/* ---------- Blocs « Détails » (FAQ) ---------- */

.wp-block-details {
	margin: 0 0 0.8rem;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	overflow: hidden;
}

.wp-block-details > summary {
	display: flex;
	gap: 1rem;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.2rem;
	cursor: pointer;
	list-style: none;
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}

.wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.wp-block-details > summary::after {
	content: "+";
	flex: none;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 1.3rem;
	color: var(--wp--preset--color--accent-1);
	transition: transform 0.2s;
}

.wp-block-details[open] > summary::after {
	transform: rotate(45deg);
}

.wp-block-details[open] > summary {
	border-bottom: 1px dashed var(--wp--preset--color--accent-6);
}

.wp-block-details > :not(summary) {
	margin: 1rem 1.2rem;
}

.efs-timeline__link {
	display: inline-block;
	margin-top: 0.3rem;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.85rem;
	font-weight: 600;
	text-decoration: none;
}

/* Lien vers l'épisode précédent avec la même personne, en tête d'histoire. */
.efs-previous {
	margin: 0 0 1.6rem !important;
	padding: 0.7rem 1rem;
	border-radius: 10px;
	background: var(--wp--preset--color--accent-5);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.85rem !important;
}

.efs-previous a {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 1.05rem;
	font-style: italic;
	text-decoration: none;
}

/* ---------- Repères de catégories (extension Efemere Site : 2 au plus) ---------- */

.efs-label {
	text-decoration: none;
}

.efs-label--nature {
	display: inline-block;
	padding: 0.1em 0.65em;
	border: 1px solid currentColor;
	border-radius: 999px;
	line-height: 1.6;
}

.wp-block-post-terms .wp-block-post-terms__separator {
	opacity: 0.5;
}

/* Liste complète des thèmes en bas d'histoire */
.efs-after__themes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 2rem;
}

.efs-after__themes a {
	padding: 0.3rem 0.8rem;
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.8rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
}

.efs-after__themes a:hover {
	border-color: var(--wp--preset--color--accent-1);
	color: var(--wp--preset--color--accent-1);
}

/* « Avec Sara » sur les cartes d'histoires */
.efs-card-person {
	margin: -0.2rem 0 0 !important;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.8rem !important;
	letter-spacing: 0.03em;
	color: var(--wp--preset--color--accent-4);
}

.efs-card-person a {
	position: relative;
	z-index: 1;
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 1rem;
	font-style: italic;
	letter-spacing: 0;
	text-decoration: none;
}

.efs-card-person a:hover {
	text-decoration: underline;
}

/* ---------- Fantasme : candidature (extension Efemere Site) ---------- */

.efs-apply {
	margin: 0 0 2.2rem;
	padding: 1.6rem 1.5rem;
	border-radius: 14px;
	background:
		radial-gradient(28rem 14rem at 100% 0%, rgba(140, 28, 58, 0.45), transparent 70%),
		linear-gradient(160deg, #1e1418, #2b1822);
	color: var(--wp--preset--color--base);
}

.efs-apply__title {
	margin: 0 0 0.5rem !important;
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: var(--wp--preset--font-size--x-large) !important;
	font-style: italic;
	line-height: 1.2;
}

.efs-apply__text {
	margin: 0 0 1.2rem !important;
	color: #e8c9c1;
	line-height: 1.6;
}

.efs-apply__button {
	margin: 0 !important;
}

.efs-apply__button a {
	text-decoration: none;
}

/* Gras et citations dans les histoires */
.ef-story .wp-block-post-content strong {
	font-weight: 600;
	color: var(--wp--preset--color--accent-1);
}

.ef-story .wp-block-quote {
	margin: 2.2rem 0;
	padding: 0.4rem 0 0.4rem 1.4rem;
}

.ef-story .wp-block-quote p {
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
}

/* Sous l'encadré de candidature, « Écrire à l'auteur » en bouton secondaire. */
.efs-apply + .efs-after__write .wp-element-button {
	background: transparent;
	border: 1px solid currentColor;
	color: var(--wp--preset--color--accent-1);
}
