/* ==========================================================================
   ABS — styles de base du thème (ex-Astra), partie générale
   Bascule Astra -> Hello Elementor du 28/10/2026.
   Les feuilles de Hello (reset.css, theme.css, header-footer.css) sont
   désactivées dans functions.php : cette feuille les remplace et reprend
   les styles qu'Astra donnait au site (relevé « avant » du 28/10/2026),
   pour tout ce que le kit Elementor et les modèles ne définissent pas.
   Écarts voulus :
   - la palette par défaut d'Astra (bleu #060097, survol violet #c10fff)
     est remplacée par les couleurs du site (Noyer) ;
   - le titre de page du thème est aligné sur la largeur des conteneurs
     Elementor (1280 px) au lieu d'être collé au bord de l'écran.
   La partie WooCommerce est dans astra-compat-woo.css.
   ========================================================================== */

:root {
	--abs-c0: #6B3A1E;      /* Astra couleur 0 (#060097) -> Noyer */
	--abs-c1: #5A2F17;      /* Astra couleur 1 (#c10fff, survol) -> Noyer foncé */
	--abs-c2: #1E293B;      /* Astra couleur 2 (titres hors Elementor, libellés) */
	--abs-border: #F2F5F7;  /* Astra --ast-border-color */
	--abs-input: #475569;   /* Astra texte des champs */
	--abs-font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

/* 0. Base (normalisation d'Astra) */
html { box-sizing: border-box; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: inherit; }
body { margin: 0; background-color: #fff; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
address, blockquote, body, dd, dl, dt, fieldset, figure, h1, h2, h3, h4, h5, h6, hr, iframe, legend, li, ol, p, pre, textarea, ul {
	border: 0; font-size: 100%; font-style: inherit; font-weight: inherit; margin: 0; outline: 0; padding: 0; vertical-align: baseline;
}
a { background-color: transparent; color: var(--abs-c0); text-decoration: none; }
a:hover, a:focus { color: var(--abs-c1); }
a:active, a:hover { outline: 0; }
a:focus { outline: thin dotted; }
small { font-size: 80%; }
img { border: 0; height: auto; max-width: 100%; }
figure { margin: 0; }
ol, ul { margin: 0 0 1.5em 3em; }
ul { list-style: disc; }
ol { list-style: decimal; }
li > ol, li > ul { margin-bottom: 0; margin-left: 1.5em; }
dt { font-weight: 600; }
dd { margin: 0 1.5em 1em; }
::selection { background-color: var(--abs-c0); color: #fff; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); 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: 2px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6); clip: auto !important; color: #21759b; display: block; font-size: .875rem; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
body:not(.logged-in) { position: relative; }

h1, h2, h3, h4, h5, h6 { clear: both; }
cite, dfn, em, i { font-style: italic; }
.site-header a *, .site-footer a *, a { transition: all .2s linear; }
.wp-caption { margin-bottom: 1.5em; max-width: 100%; }
.wp-caption img[class*="wp-image-"] { display: block; margin-left: auto; margin-right: auto; }
.wp-caption .wp-caption-text { margin: .8075em 0; }
.wp-caption-text { text-align: center; }
.page-content { overflow-wrap: break-word; }
.page-content::after { display: table; clear: both; content: ""; }
.page-content > :last-child { margin-bottom: 0; }

/* 1. Taille de base : Astra fixait la racine à 18 px (16,4 px sous 922 px) ;
      les tailles en rem du site en dépendent. */
html { font-size: 112.5%; }
@media (max-width: 921px) { html { font-size: 102.6%; } }

/* 2. Marges des titres et paragraphes */
p { margin-bottom: 1.75em; }
.page-content p { margin-bottom: 1.6em; }
.page-content :where(h1, h2, h3, h4, h5, h6) { margin-bottom: 20px; }
.woocommerce-js h2 { margin-bottom: .7em; }
body .elementor-widget-theme-post-content h1,
body .elementor-widget-theme-post-content h2,
body .elementor-widget-theme-post-content h3,
body .elementor-widget-theme-post-content h4,
body .elementor-widget-theme-post-content h5,
body .elementor-widget-theme-post-content h6 { margin-top: 1.5em; margin-bottom: calc(.3em + 10px); }
h1, h2, h3, h4, h5, h6 { font-weight: 600; }
b, strong { font-weight: 700; }
hr { background-color: #ccc; border: 0; height: 1px; margin-bottom: 1.5em; }
body .elementor hr { background-color: #ccc; margin: 0; }
/* Listes dans le contenu des pages (Astra : .entry-content) */
.page-content ul, .page-content ol { padding-top: revert; padding-right: revert; padding-bottom: revert; margin: revert; padding-left: 20px; }

/* 3. Mise en page des pages hors Elementor et titre de page du thème */
.page-header, body:not([class*="elementor-page-"]) .site-main { max-width: 1280px; margin-inline: auto; padding-inline: 10px; width: 100%; }
body:not(.error404) .page-header .entry-title { font-size: 1.77778rem; font-weight: 600; line-height: 1.2; margin: 0 0 .6em; }
.error404 .page-header .entry-title { text-align: center; color: var(--abs-c2); margin-bottom: 0; }

/* 4. Polices et couleurs des champs et libellés */
button, input, select, textarea { font-family: var(--abs-font-ui); font-weight: inherit; font-size: 1rem; line-height: 1.65; color: inherit; margin: 0; }
button, select { text-transform: none; }
label, legend { color: var(--abs-c2); font-size: 14px; font-weight: 500; line-height: 20px; }
input[type="checkbox"], input[type="radio"] { padding: 0; margin: 0; color: #808285; }
input[type="text"], input[type="number"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="reset"], input[type="tel"], input[type="date"], textarea, select {
	font-size: 16px; font-weight: 400; line-height: 24px; padding: 12px 16px; border-radius: 4px;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05); color: var(--abs-input);
	border: 1px solid var(--abs-border); background-color: #fff;
}
select { padding: 6px 10px; }
input[type="text"]:focus, input[type="number"]:focus, input[type="email"]:focus, input[type="url"]:focus,
input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
	border-color: var(--abs-c0); box-shadow: none; color: var(--abs-input); outline: none;
}
textarea { display: block; overflow: auto; resize: vertical; }

/* 5. Boutons hors widgets Elementor */
button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"] {
	border-style: solid; border-width: 0; border-radius: 4px; color: #fff;
	border-color: var(--abs-c0); background-color: var(--abs-c0);
	font-family: inherit; font-weight: 600; font-size: 1.11111rem; line-height: 1em;
	box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05); cursor: pointer;
	padding: .6em 1em .4em;
}
.button, input[type="button"], input[type="submit"] { padding: 18px 30px; }
button:hover, button:focus, .button:hover, .button:focus, input#submit:hover, input#submit:focus,
input[type="button"]:hover, input[type="button"]:focus, input[type="submit"]:hover, input[type="submit"]:focus,
input[type="reset"]:hover, input[type="reset"]:focus {
	color: #fff; background-color: var(--abs-c1); border-color: var(--abs-c1); text-decoration: none;
}
@media (max-width: 921px) {
	button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"] { padding: 18px 32px; }
}
@media (max-width: 544px) {
	button, .button, input#submit, input[type="button"], input[type="submit"], input[type="reset"] { padding: 15px 28px; }
}
button[disabled], input[disabled] { cursor: default; }

/* 6. Widgets Elementor : réglages d'Astra (boutons, titres) */
body .elementor-button.elementor-size-xs, body .elementor-button.elementor-size-sm, body .elementor-button.elementor-size-md,
body .elementor-button.elementor-size-lg, body .elementor-button.elementor-size-xl, body .elementor-button { font-size: 1.11111rem; }
.elementor-widget-button .elementor-button { border-style: solid; border-width: 0; }
@media (max-width: 921px) {
	.elementor-widget-button .elementor-button.elementor-size-xs, .elementor-widget-button .elementor-button.elementor-size-sm,
	.elementor-widget-button .elementor-button.elementor-size-md, .elementor-widget-button .elementor-button.elementor-size-lg,
	.elementor-widget-button .elementor-button.elementor-size-xl, .elementor-widget-button .elementor-button { padding: 18px 32px; }
}
@media (max-width: 544px) {
	.elementor-widget-button .elementor-button.elementor-size-xs, .elementor-widget-button .elementor-button.elementor-size-sm,
	.elementor-widget-button .elementor-button.elementor-size-md, .elementor-widget-button .elementor-button.elementor-size-lg,
	.elementor-widget-button .elementor-button.elementor-size-xl, .elementor-widget-button .elementor-button { padding: 15px 28px; }
}
/* Astra ne posait cette remise à zéro que sur les pages construites avec Elementor (classe elementor-page) */
:where(body.elementor-page) .elementor-widget-heading .elementor-heading-title { margin: 0; }
.elementor-widget-heading h1.elementor-heading-title { line-height: 1.4em; }
.elementor-widget-heading h2.elementor-heading-title { line-height: 1.3em; }
.elementor-widget-heading h3.elementor-heading-title { line-height: 1.3em; }
.elementor-widget-heading h4.elementor-heading-title { line-height: 1.2em; }

/* 7. Tableaux */
table { border-collapse: collapse; border-spacing: 0; margin: 0 0 1.5em; width: 100%; }
table, td, th { border: 1px solid var(--abs-border); }
td, th { padding: 0; }
th { font-weight: 600; }
/* Tableaux comparatifs des pages catégorie */
.abs-comparatif table { border-width: 1px 0 0 1px; }
.abs-comparatif td, .abs-comparatif th { padding: .7em 1em; border-width: 0 1px 1px 0; }

/* 8. Images des articles */
.single-post [data-elementor-type="single-post"] figure,
.single-post [data-elementor-type="single-post"] img:not(figure img) { box-shadow: 0 0 30px 0 rgba(0, 0, 0, .15); }
