/**
 * Base Styles - Styles de base communs à toutes les pages
 * Styles globaux, normalize, typography, éléments de base
 */

/* Variables CSS - Gérées via le Customizer WordPress */
:root {
	--primary-color: #0073aa;
	--secondary-color: #23282d;
	--accent-color: #ff6b6b;

	/* Typography - Gérées via le Customizer */
	--font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	--font-headings: var(--font-primary);

	/* Spacing */
	--spacing-xs: 0.5rem;
	--spacing-sm: 1rem;
	--spacing-md: 1.5rem;
	--spacing-lg: 2rem;
	--spacing-xl: 3rem;

	/* Border radius */
	--radius-sm: 4px;
	--radius-md: 6px;
	--radius-lg: 12px;
}

/* Reset de base */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: #fff;
	color: #404040;
	font-family: var(--font-primary);
	font-size: 1rem;
	line-height: 1.5;
}

/* Typography de base */
h1, h2, h3, h4, h5, h6 {
	clear: both;
	font-family: var(--font-headings);
	color: #111827;
	font-weight: 600;
	line-height: 1.2;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.75rem; }
h4 { font-size: 1.5rem; }
h5 { font-size: 1.25rem; }
h6 { font-size: 1rem; }

p {
	margin-bottom: 1.5em;
}

a {
	color: var(--primary-color);
	background-color: transparent;
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover,
a:focus {
	color: var(--secondary-color);
}

/* Éléments de base */
img {
	max-width: 100%;
	height: auto;
	border-style: none;
}

figure {
	margin: 1em 0;
}

/* Listes */
ul, ol {
	margin: 0 0 1.5em 3em;
}

ul { list-style: disc; }
ol { list-style: decimal; }

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

/* Formulaires de base */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea {
	color: #666;
	border: 1px solid #ccc;
	border-radius: var(--radius-md);
	padding: 0.75rem;
	width: 100%;
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--primary-color);
	box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.1);
}

/* Accessibilité */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Alignements */
.alignleft {
	float: left;
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {
	float: right;
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Utilitaires */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
