/* =========================================================
   CARRÉMENT SAINT-CHAMOND — DESIGN SYSTEM PUBLIC
   Chargé partout avant header/footer/pages.
   Les valeurs suivent client-assets/config.php.
   ========================================================= */

:root{
    --csc-primary:#4A93C8;
    --csc-primary-hover:#286B9A;
    --csc-primary-soft:#EAF3F9;
    --csc-accent:#E9B98D;
    --csc-accent-strong:#E98754;

    --csc-bg:#F6F8F9;
    --csc-surface:#FFFFFF;
    --csc-surface-soft:#EAF3F9;
    --csc-text:#192B38;
    --csc-text-light:#657783;
    --csc-border:#E4E9EB;

    --csc-dark:#182C3A;
    --csc-dark-surface:#203848;
    --csc-dark-text:#F5F9FC;
    --csc-dark-text-light:#BED0DC;
    --csc-dark-border:rgba(255,255,255,.16);

    --csc-success:#22c55e;
    --csc-warning:#f59e0b;
    --csc-error:#ef4444;

    --csc-shadow-sm:0 8px 18px rgba(15,23,42,.06);
    --csc-shadow-md:0 14px 30px rgba(15,23,42,.10);
    --csc-shadow-lg:0 22px 55px rgba(15,23,42,.14);
    --csc-shadow-accent:0 18px 44px rgba(74,147,200,.20);

    --csc-radius-sm:10px;
    --csc-radius-md:14px;
    --csc-radius-lg:20px;
    --csc-radius-xl:28px;
    --csc-radius-pill:999px;

    --csc-space-xs:6px;
    --csc-space-sm:10px;
    --csc-space-md:18px;
    --csc-space-lg:30px;
    --csc-space-xl:48px;
    --csc-section-space:96px;

    --csc-container:1360px;
    --csc-hero-container:1480px;
    --csc-content:820px;
    --csc-header-height:82px;
    --csc-gutter:24px;

    --csc-motion-fast:140ms;
    --csc-motion:180ms;
    --csc-motion-slow:300ms;
    --csc-ease:ease;

    /* Alias conservés pour les anciens composants CSC. */
    --csc-blue:var(--csc-primary);
    --csc-blue-dark:var(--csc-dark);
    --csc-blue-soft:var(--csc-primary-soft);
    --csc-orange:var(--csc-accent-strong);
    --csc-ink:var(--csc-text);
    --csc-muted:var(--csc-text-light);
    --csc-line:var(--csc-border);
    --csc-white:var(--csc-surface);
    --csc-radius:var(--csc-radius-lg);
    --csc-shadow:var(--csc-shadow-md);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--csc-bg);color:var(--csc-text)}
img,svg{max-width:100%}
a,button,input,textarea,select{font:inherit}
a{color:inherit}

.csc-wrap{
    width:min(var(--csc-container),calc(100% - (var(--csc-gutter) * 2)));
    margin-inline:auto;
}

.csc-wrap--hero{
    width:min(var(--csc-hero-container),calc(100% - (var(--csc-gutter) * 2)));
    margin-inline:auto;
}

.csc-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:0 24px;
    border:0;
    border-radius:var(--csc-radius-pill);
    text-decoration:none;
    font-weight:800;
    transition:transform var(--csc-motion) var(--csc-ease),box-shadow var(--csc-motion) var(--csc-ease),background var(--csc-motion) var(--csc-ease);
}
.csc-btn:hover{transform:translateY(-2px)}
.csc-btn:focus-visible,.csc-text-link:focus-visible,.csc-sector-pill:focus-visible{outline:3px solid rgba(74,147,200,.28);outline-offset:3px}
.csc-btn--primary{background:var(--csc-primary);color:#fff;box-shadow:var(--csc-shadow-accent)}
.csc-btn--primary:hover{background:var(--csc-primary-hover)}
.csc-btn--ghost{background:var(--csc-surface);color:var(--csc-primary);border:1px solid #b9dff6}
.csc-btn--orange{background:var(--csc-accent-strong);color:#fff}

.csc-text-link{color:var(--csc-primary);font-weight:800;text-decoration:none}
.csc-text-link:hover{text-decoration:underline;text-underline-offset:4px}
.csc-text-link--orange{color:var(--csc-accent-strong)}

.csc-kicker{
    display:block;
    margin-bottom:10px;
    color:var(--csc-primary);
    font-size:12px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.csc-kicker--orange{color:var(--csc-accent-strong)}

.screen-reader-text{
    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;
}

@media(max-width:760px){
    :root{--csc-gutter:16px;--csc-section-space:64px}
    .csc-btn{min-height:48px;padding-inline:20px}
}

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

/* Police commune : cohérence avec le moteur de polices du thème. */

/* Montserrat locale — client-assets uniquement, sans changement du moteur Sycow. */
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-v31-latin/montserrat-v31-latin-300.woff2") format("woff2");font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-v31-latin/montserrat-v31-latin-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-v31-latin/montserrat-v31-latin-500.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-v31-latin/montserrat-v31-latin-800.woff2") format("woff2");font-style:normal;font-weight:800;font-display:swap}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-v31-latin/montserrat-v31-latin-900.woff2") format("woff2");font-style:normal;font-weight:900;font-display:swap}
:root{
    --csc-font:"Montserrat",Arial,sans-serif;
    --sy-font-body:"Montserrat",Arial,sans-serif;
    --sy-font-heading:"Montserrat",Arial,sans-serif;
    --sy-font-button:"Montserrat",Arial,sans-serif;
    --sy-font-menu:"Montserrat",Arial,sans-serif;
}
html,body,body :is(h1,h2,h3,h4,h5,h6,p,span,div,a,li,button,input,select,textarea,label,small,strong,b,blockquote,table,th,td){font-family:var(--csc-font)}
