/*
Theme Name: GP Editorial
Theme URI: https://goodiespersonnalisés.com/
Author: Allaux
Description: Thème enfant éditorial de goodiespersonnalisés.com. Direction « épuré & éditorial » : titres Literata, corps Manrope, une seule couleur d'accent, beaucoup d'air. La charte est verrouillée dans theme.json pour que la rédaction reste sans risque.
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gp-editorial
Tags: blog, editorial, one-column, block-patterns, full-site-editing, accessibility-ready
*/

/*
 * Ce fichier ne contient que les primitives globales que theme.json ne sait pas
 * exprimer (états de focus, éléments de formulaire natifs, détails typographiques).
 * Toute la charte — couleurs, typographie, espacements — vit dans theme.json.
 * Les feuilles de style de composants vont dans assets/css/ et sont chargées
 * depuis un fichier déposé dans inc/.
 */

:root {
	--gp-radius: 2px;
	--gp-measure: 68ch;
	--gp-transition: 150ms ease;
}

/* Rendu typographique -------------------------------------------------- */

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

/* Césure et équilibre des titres longs (titres d'articles en français). */
h1, h2, h3, h4, h5, h6,
.wp-block-post-title,
.wp-block-query-title {
	text-wrap: balance;
	overflow-wrap: break-word;
}

p, li {
	text-wrap: pretty;
}

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

/* Accessibilité : anneau de focus visible et homogène ------------------- */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
	border-radius: var(--gp-radius);
}

/* Formes : rayon de 2px, aucune ombre portée --------------------------- */

img,
.wp-block-image img,
.wp-block-post-featured-image img {
	border-radius: var(--gp-radius);
	height: auto;
	max-width: 100%;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea,
select {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--gp-radius);
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--manrope);
	font-size: var(--wp--preset--font-size--medium);
	padding: 0.6rem 0.8rem;
}

input::placeholder,
textarea::placeholder {
	color: var(--wp--preset--color--contrast-2);
	opacity: 1;
}

/* Liens : soulignement discret, décalé de la ligne de base -------------- */

.wp-block-post-content a:where(:not(.wp-element-button)),
.entry-content a:where(:not(.wp-element-button)) {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	transition: color var(--gp-transition);
}

/* Mesure de lecture ---------------------------------------------------- */

.gp-measure {
	max-width: var(--gp-measure);
}

/* Utilitaire : texte réservé aux lecteurs d'écran ---------------------- */

.gp-sr-only {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* Respect des préférences système -------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
