/* ==========================================================================
   Base du site vitrine Conseils Réunis
   Remplace, pour les pages publiques, le CSS du template (style.css +
   Bootstrap + plugins, plus de 400 Ko) : seules les règles globales dont la
   vitrine dépend sont reprises ici. Les composants sont dans charte.css.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

/* Remise à zéro */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym,
address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead,
tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav,
output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main { display: block; }
main { clear: both; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    background: #F6F4F1;
    color: #1E1E1E;
    font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-size: 14px;
    line-height: 24px;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}

ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote::before, blockquote::after, q::before, q::after { content: none; }
table { border-collapse: collapse; border-spacing: 0; }
img, svg { vertical-align: middle; }
img { max-width: 100%; }
iframe { width: 100%; border: 0; }
strong, b { font-weight: bold; }
label { display: inline-block; margin-bottom: 5px; }

/* Titres */
h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', system-ui, sans-serif; font-weight: 700; color: #1E1E1E; }
h1 { font-weight: 800; font-size: 56px; line-height: 71px; }
h2 { font-size: 36px; line-height: 45px; }
h3 { font-size: 28px; line-height: 35px; }
h4 { font-size: 24px; line-height: 30px; }
h5 { font-size: 20px; line-height: 26px; }
h6 { font-size: 16px; line-height: 26px; }

a { color: #1E1E1E; text-decoration: none; }
a:hover, a *:hover { color: #B3202A; }
p { color: #4A4541; }
a, button, img, input, span, h4 { transition: all .3s ease 0s; }

/* Formulaires */
button, input, optgroup, select, textarea {
    margin: 0;
    font-family: 'Poppins', system-ui, sans-serif;
    font-size: 14px;
    line-height: inherit;
}
button, select { text-transform: none; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
button:not(:disabled), [type="button"]:not(:disabled), [type="submit"]:not(:disabled) { cursor: pointer; }
button { border-radius: 0; }
textarea { resize: vertical; }
fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
legend { float: left; width: 100%; padding: 0; line-height: inherit; }
legend + * { clear: left; }
*:focus, select:focus, button:focus, textarea:focus, input:focus { outline: none; box-shadow: none; }
:focus-visible { outline: 2px solid #B3202A; outline-offset: 2px; }
::placeholder { color: #9A938C; opacity: 1; }
::selection { background: #1E1E1E; color: #fff; }

/* Pagination (structure générée par Laravel, format Bootstrap) */
.pagination { display: flex; padding-left: 0; list-style: none; }
.page-link { position: relative; display: block; text-decoration: none; background: #fff; }
.page-item.disabled .page-link { pointer-events: none; }

/* Texte réservé aux lecteurs d'écran */
.visually-hidden, .sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Bouton « retour en haut de page » (site.js) */
.cr-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 900;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: #B3202A;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(179, 32, 42, .3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .3s, transform .3s, visibility 0s linear .3s, background .2s;
}
.cr-top.is-visible { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.cr-top:hover { background: #8E1820; }
@media (prefers-reduced-motion: reduce) {
    .cr-top { transition: none; }
}
