@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root {
    /* --- Palette JPSERVICES22 - sombre, industrielle & chaleureuse --- */

    /* Couleur de marque principale (gris très foncé) — fond dominant du site */
    --fond-noir: 2 1 6;             /* #020106 */
    --fond-charbon: 14 13 18;       /* #0e0d12 - cartes / surfaces dark */
    --fond-anthracite: 26 24 32;    /* #1a1820 - encarts dark */
    --fond-acier: 42 39 48;         /* #2a2730 - bordures, séparateurs */

    /* Accents de service (couleurs secondaires) */
    --couleur-primaire: 244 188 75;        /* #f4bc4b - jaune électricité */
    --couleur-primaire-hover: 232 169 37;  /* #e8a925 - jaune profond */
    --couleur-primaire-clair: 253 243 219; /* #fdf3db - jaune ultra clair */

    /* Bleu serrurerie (variante de la "sauge" du système couleur) */
    --couleur-sauge: 95 190 218;           /* #5fbeda - bleu serrurerie */
    --couleur-sauge-clair: 224 244 250;    /* #e0f4fa - bleu très clair */

    /* Slot informatique (blanc cassé chaud) */
    --couleur-info: 245 240 230;           /* #f5f0e6 */

    /* Gris textes */
    --couleur-secondaire: 120 113 108;
    --couleur-secondaire-hover: 87 83 78;
    --couleur-secondaire-clair: 231 229 228;

    /* Backgrounds clairs (sections paire) */
    --fond-doux: #f7f5f1;          /* fond beige/off-white chaleureux */
    --fond-creme: #fbf8f1;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    background-color: rgb(var(--fond-noir));
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #1c1917;
    -webkit-font-smoothing: antialiased;
    background-color: rgb(var(--fond-noir));
}

/* Titres : Bebas Neue (industriel, condensé) avec fallback Oswald */
.font-display {
    font-family: 'Bebas Neue', 'Oswald', 'Inter', system-ui, sans-serif;
    letter-spacing: 0.005em;
    font-weight: 400;
    line-height: 0.95;
}

.font-mono {
    font-family: 'Oswald', 'Bebas Neue', system-ui, sans-serif;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

/* ============ HERO FULL-WIDTH AVEC PHOTO ============ */
.hero-bg {
    position: relative;
    overflow: hidden;
    background-color: rgb(var(--fond-noir));
    isolation: isolate;
}

.hero-bg .hero-photo {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: grayscale(0.15) contrast(1.05) brightness(0.55);
}

.hero-bg::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(110deg, rgba(2, 1, 6, 0.92) 0%, rgba(2, 1, 6, 0.78) 38%, rgba(2, 1, 6, 0.55) 70%, rgba(2, 1, 6, 0.4) 100%),
        radial-gradient(900px 500px at 12% 14%, rgb(var(--couleur-primaire) / 10%), transparent 60%),
        radial-gradient(700px 380px at 92% 90%, rgb(var(--couleur-sauge) / 10%), transparent 60%);
}

.hero-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-image:
        repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.012) 0 2px, transparent 2px 6px);
    opacity: 0.6;
    mix-blend-mode: overlay;
}

.hero-content {
    position: relative;
    z-index: 2;
    color: #f5f5f4;
}

.hero-mini {
    position: relative;
    background-color: rgb(var(--fond-noir));
    overflow: hidden;
    isolation: isolate;
}

.hero-mini .hero-photo {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: grayscale(0.25) contrast(1.05) brightness(0.5);
    z-index: 0;
}

.hero-mini::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(2, 1, 6, 0.94) 0%, rgba(2, 1, 6, 0.7) 60%, rgba(2, 1, 6, 0.55) 100%);
    z-index: 1;
}

.hero-mini > * {
    position: relative;
    z-index: 2;
    color: #f5f5f4;
}

/* ============ SECTIONS ============ */
.section-light {
    background-color: var(--fond-creme);
    color: #1c1917;
    position: relative;
}

.section-light::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 1px 1px, rgba(2, 1, 6, 0.05) 1px, transparent 0);
    background-size: 26px 26px;
    opacity: 0.45;
}

.section-light > * {
    position: relative;
    z-index: 1;
}

.section-cream {
    background-color: var(--fond-doux);
    color: #1c1917;
}

.section-dark {
    position: relative;
    background-color: rgb(var(--fond-noir));
    color: #f5f5f4;
    overflow: hidden;
    isolation: isolate;
}

.section-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        radial-gradient(900px 500px at 8% 10%, rgb(var(--couleur-primaire) / 10%), transparent 60%),
        radial-gradient(700px 380px at 92% 90%, rgb(var(--couleur-sauge) / 8%), transparent 60%);
}

.section-dark > * {
    position: relative;
    z-index: 1;
}

.section-charcoal {
    background-color: rgb(var(--fond-charbon));
    color: #f5f5f4;
    position: relative;
    overflow: hidden;
}

.section-charcoal::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 14px);
    opacity: 0.5;
}

.section-charcoal > * {
    position: relative;
    z-index: 1;
}

/* ============ Pills / badges ============ */
.pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 16px;
    border-radius: 9999px;
    background-color: rgb(var(--couleur-primaire) / 14%);
    color: rgb(var(--couleur-primaire));
    border: 1px solid rgb(var(--couleur-primaire) / 45%);
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.pill-light {
    background-color: rgba(2, 1, 6, 0.06);
    color: rgb(var(--fond-noir));
    border-color: rgba(2, 1, 6, 0.18);
}

.pill-elec {
    background-color: rgb(var(--couleur-primaire) / 16%);
    color: rgb(var(--couleur-primaire-hover));
    border-color: rgb(var(--couleur-primaire) / 50%);
}

.pill-serrure {
    background-color: rgb(var(--couleur-sauge) / 14%);
    color: rgb(var(--couleur-sauge));
    border-color: rgb(var(--couleur-sauge) / 45%);
}

.pill-serrure-light {
    background-color: rgb(var(--couleur-sauge) / 12%);
    color: #1c4d62;
    border-color: rgb(var(--couleur-sauge) / 50%);
}

.pill-dark {
    background-color: rgba(255, 255, 255, 0.06);
    color: #f5f5f4;
    border-color: rgba(255, 255, 255, 0.18);
}

/* ============ Boutons ============ */
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 4px;
    background-color: rgb(var(--couleur-primaire));
    color: #1c1917;
    font-weight: 700;
    font-family: 'Oswald', 'Inter', sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    box-shadow: 0 6px 0 rgb(var(--couleur-primaire-hover)), 0 12px 24px -6px rgba(244, 188, 75, 0.45);
    transition: transform 150ms ease, box-shadow 200ms ease, background-color 150ms ease;
}

.btn-primary:hover {
    transform: translateY(-1px);
    background-color: rgb(var(--couleur-primaire-hover));
    box-shadow: 0 4px 0 #b8841a, 0 10px 22px -6px rgba(244, 188, 75, 0.6);
}

.btn-primary:active {
    transform: translateY(3px);
    box-shadow: 0 2px 0 rgb(var(--couleur-primaire-hover)), 0 4px 10px -2px rgba(244, 188, 75, 0.4);
}

.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 4px;
    background-color: rgb(var(--couleur-sauge));
    color: #082030;
    font-weight: 700;
    font-family: 'Oswald', 'Inter', sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    box-shadow: 0 6px 0 #3ba8c7, 0 12px 24px -6px rgba(95, 190, 218, 0.45);
    transition: transform 150ms ease, background-color 150ms ease;
}

.btn-secondary:hover {
    transform: translateY(-1px);
    background-color: #4daec8;
    box-shadow: 0 4px 0 #2d94b3, 0 10px 22px -6px rgba(95, 190, 218, 0.6);
}

.btn-ghost-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 28px;
    border-radius: 4px;
    background: transparent;
    color: #f5f5f4;
    font-weight: 700;
    font-family: 'Oswald', 'Inter', sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    border: 2px solid rgba(255, 255, 255, 0.4);
    transition: background 150ms ease, border-color 150ms ease;
}

.btn-ghost-dark:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgb(var(--couleur-primaire) / 85%);
    color: rgb(var(--couleur-primaire));
}

.btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 28px;
    border-radius: 4px;
    background: transparent;
    color: rgb(var(--fond-noir));
    font-weight: 700;
    font-family: 'Oswald', 'Inter', sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    border: 2px solid rgba(2, 1, 6, 0.85);
    transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.btn-ghost:hover {
    background: rgb(var(--fond-noir));
    color: rgb(var(--couleur-primaire));
}

.btn-light {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 4px;
    background: #ffffff;
    color: rgb(var(--fond-noir));
    font-weight: 700;
    font-family: 'Oswald', 'Inter', sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-size: 0.9rem;
    box-shadow: 0 6px 0 #d4cfc5, 0 12px 24px -6px rgba(0, 0, 0, 0.3);
    transition: transform 150ms ease, background 150ms ease;
}

.btn-light:hover {
    transform: translateY(-1px);
    background: #faf7f0;
}

/* ============ Icon badges ============ */
.icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 8px;
    background-color: rgb(var(--couleur-primaire) / 16%);
    color: rgb(var(--couleur-primaire));
    font-size: 22px;
    border: 1px solid rgb(var(--couleur-primaire) / 40%);
}

/* Fonds jaune / bleu pleins + dégradé : évite les rgba(var(--x), a) invalides avec variables « R G B » espacées */
.icon-badge-elec {
    background-color: #f4bc4b;
    background-image: linear-gradient(135deg, rgb(var(--couleur-primaire) / 96%) 0%, rgb(var(--couleur-primaire-hover) / 100%) 100%);
    color: #120f0a;
    border: 1px solid rgb(var(--couleur-primaire-hover) / 72%);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.35) inset,
        0 4px 14px rgb(var(--couleur-primaire) / 40%);
}

.icon-badge-elec .fa-solid,
.icon-badge-elec svg {
    color: #120f0a;
}

.icon-badge-serrure {
    background-color: #5fbeda;
    background-image: linear-gradient(135deg, rgb(var(--couleur-sauge) / 96%) 0%, #3ba8c7 100%);
    color: #031820;
    border: 1px solid rgb(var(--couleur-sauge) / 72%);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.3) inset,
        0 4px 14px rgb(var(--couleur-sauge) / 38%);
}

.icon-badge-serrure .fa-solid,
.icon-badge-serrure svg {
    color: #031820;
}

.icon-badge-info {
    background: linear-gradient(135deg, #ffffff 0%, var(--fond-creme) 100%);
    color: rgb(var(--fond-noir));
    border: 1px solid rgba(2, 1, 6, 0.18);
    box-shadow: 0 4px 12px rgba(2, 1, 6, 0.18);
}

.icon-badge-dark {
    background-color: rgba(255, 255, 255, 0.06);
    color: rgb(var(--couleur-primaire));
    border-color: rgba(255, 255, 255, 0.14);
}

/* ============ Cartes ============ */
.service-card {
    position: relative;
    background: rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--fond-acier));
    border-radius: 6px;
    padding: 28px;
    color: #e7e5e4;
    transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
    display: block;
    overflow: hidden;
    isolation: isolate;
}

.service-card::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.012) 0 1px, transparent 1px 8px);
    opacity: 0.7;
}

.service-card .accent-bar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: rgb(var(--couleur-primaire));
}

.service-card.is-elec .accent-bar { background: rgb(var(--couleur-primaire)); }
.service-card.is-serrure .accent-bar { background: rgb(var(--couleur-sauge)); }
.service-card.is-info .accent-bar { background: var(--couleur-info); background: rgb(var(--couleur-info)); }

.service-card:hover {
    transform: translateY(-5px);
    border-color: rgb(var(--couleur-primaire) / 55%);
    box-shadow: 0 24px 50px -22px rgba(244, 188, 75, 0.45);
}

.service-card.is-serrure:hover {
    border-color: rgb(var(--couleur-sauge) / 55%);
    box-shadow: 0 24px 50px -22px rgba(95, 190, 218, 0.45);
}

.service-card.is-info:hover {
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0 24px 50px -22px rgba(255, 255, 255, 0.18);
}

.service-card .cta-arrow {
    transition: transform 200ms ease;
}

.service-card:hover .cta-arrow {
    transform: translateX(6px);
}

.card-light {
    background: #ffffff;
    border: 1px solid rgba(2, 1, 6, 0.1);
    border-radius: 6px;
    padding: 24px;
    transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.card-light:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 34px -20px rgba(2, 1, 6, 0.25);
    border-color: rgb(var(--couleur-primaire) / 45%);
}

.card-dark {
    background: rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--fond-acier));
    border-radius: 6px;
    padding: 24px;
    color: #e7e5e4;
    transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.card-dark:hover {
    transform: translateY(-3px);
    border-color: rgb(var(--couleur-primaire) / 45%);
    box-shadow: 0 18px 34px -20px rgba(244, 188, 75, 0.35);
}

/* ============ Liste check ============ */
.check-list li {
    position: relative;
    padding-left: 36px;
    margin-bottom: 12px;
    color: #3f3f46;
    line-height: 1.55;
}

.check-list-dark li {
    color: #d6d3d1;
}

.check-list li::before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 2px;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background-color: rgb(var(--couleur-primaire));
    color: #1c1917;
    font-size: 11px;
}

.check-list-serrure li::before {
    background-color: rgb(var(--couleur-sauge));
    color: #082030;
}

/* ============ Step number ============ */
.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 4px;
    background: rgb(var(--couleur-primaire));
    color: #1c1917;
    font-weight: 700;
    font-family: 'Bebas Neue', 'Oswald', sans-serif;
    font-size: 28px;
    line-height: 1;
    box-shadow: 0 5px 0 rgb(var(--couleur-primaire-hover));
}

.step-number-light {
    background: rgba(255, 255, 255, 0.1);
    color: rgb(var(--couleur-primaire));
    border: 1px solid rgb(var(--couleur-primaire) / 50%);
    box-shadow: none;
}

/* ============ Accents textuels ============ */
.text-accent {
    color: rgb(var(--couleur-primaire));
}

.text-serrure {
    color: rgb(var(--couleur-sauge));
}

.text-marker {
    background: linear-gradient(180deg, transparent 65%, rgb(var(--couleur-primaire) / 45%) 65%);
    padding: 0 4px;
}

.text-marker-blue {
    background: linear-gradient(180deg, transparent 65%, rgb(var(--couleur-sauge) / 45%) 65%);
    padding: 0 4px;
}

/* ============ Badges et chiffres ============ */
.stat-card {
    text-align: left;
    padding: 22px 22px;
    border-left: 3px solid rgb(var(--couleur-primaire));
    background: rgba(255, 255, 255, 0.03);
    border-radius: 0 6px 6px 0;
}

.stat-card.is-blue {
    border-left-color: rgb(var(--couleur-sauge));
}

.stat-number {
    font-family: 'Bebas Neue', 'Oswald', sans-serif;
    font-weight: 400;
    font-size: 3rem;
    color: rgb(var(--couleur-primaire));
    line-height: 1;
    letter-spacing: 0.01em;
}

.stat-card.is-blue .stat-number {
    color: rgb(var(--couleur-sauge));
}

/* ============ Image frames ============ */
.img-frame {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.6);
    border: 1px solid rgb(var(--fond-acier));
}

.img-frame::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
    pointer-events: none;
}

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.img-rounded {
    border-radius: 6px;
    box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.55);
    display: block;
}

/* ============ FAQ ============ */
details.faq-item {
    border: 1px solid rgb(var(--fond-acier));
    border-radius: 6px;
    padding: 18px 22px;
    background: rgb(var(--fond-charbon));
    color: #d6d3d1;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

details.faq-item[open] {
    border-color: rgb(var(--couleur-primaire) / 55%);
    box-shadow: 0 10px 30px -15px rgba(244, 188, 75, 0.3);
}

details.faq-item summary {
    cursor: pointer;
    font-weight: 600;
    color: #f5f5f4;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

details.faq-item summary::-webkit-details-marker {
    display: none;
}

details.faq-item summary::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12px;
    color: rgb(var(--couleur-primaire));
    transition: transform 200ms ease;
}

details.faq-item[open] summary::after {
    transform: rotate(180deg);
}

details.faq-item > *:not(summary) {
    margin-top: 14px;
    color: #c0bcb7;
    line-height: 1.6;
}

/* FAQ light variant */
details.faq-item-light {
    background: #ffffff;
    color: #3f3f46;
    border-color: rgba(2, 1, 6, 0.1);
}

details.faq-item-light summary {
    color: #1c1917;
}

details.faq-item-light > *:not(summary) {
    color: #57534e;
}

/* ============ City chips ============ */
.city-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--fond-acier));
    border-radius: 4px;
    padding: 10px 12px;
    font-size: 0.825rem;
    font-weight: 600;
    color: #e7e5e4;
    transition: transform 150ms ease, border-color 150ms ease, color 150ms ease;
}

.city-chip:hover {
    transform: translateY(-2px);
    border-color: rgb(var(--couleur-primaire) / 60%);
    color: rgb(var(--couleur-primaire));
}

.city-chip-light {
    background: #ffffff;
    border: 1px solid rgba(2, 1, 6, 0.12);
    color: #1c1917;
}

.city-chip-light:hover {
    border-color: rgb(var(--couleur-primaire-hover) / 70%);
    color: rgb(var(--couleur-primaire-hover));
}

/* ============ Sub-service chips ============ */
.sub-service-chip {
    padding: 14px 10px;
    border-radius: 4px;
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    color: #f5f5f4;
    background: rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--fond-acier));
    transition: transform 150ms ease, border-color 150ms ease, color 150ms ease;
    line-height: 1.4;
}

.sub-service-chip i {
    color: rgb(var(--couleur-primaire));
}

.sub-service-chip.is-blue i {
    color: rgb(var(--couleur-sauge));
}

.sub-service-chip:hover {
    transform: translateY(-3px);
    border-color: rgb(var(--couleur-primaire) / 60%);
}

/* ============ Trust strip (mots-clés du hero) ============ */
.trust-strip {
    background: rgb(var(--fond-charbon));
    border-top: 1px solid rgb(var(--fond-acier));
    border-bottom: 1px solid rgb(var(--fond-acier));
    color: #d6d3d1;
}

.trust-strip .trust-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 500;
    letter-spacing: 0.02em;
}

.trust-strip .trust-item i {
    color: rgb(var(--couleur-primaire));
}

/* ============ Service callout (large bandeau coloré) ============ */
.callout-elec {
    background:
        linear-gradient(120deg, rgba(244, 188, 75, 0.22), rgba(244, 188, 75, 0.04) 60%),
        rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--couleur-primaire) / 35%);
    border-radius: 6px;
    padding: 28px;
    color: #f5f5f4;
}

.callout-serrure {
    background:
        linear-gradient(120deg, rgba(95, 190, 218, 0.22), rgba(95, 190, 218, 0.04) 60%),
        rgb(var(--fond-charbon));
    border: 1px solid rgb(var(--couleur-sauge) / 35%);
    border-radius: 6px;
    padding: 28px;
    color: #f5f5f4;
}

/* ============ Animations subtiles ============ */
.lift {
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.lift:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.4);
}

/* ============ Effet rivets industriels ============ */
.rivet-frame {
    position: relative;
}

.rivet-frame::before,
.rivet-frame::after {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgb(var(--couleur-primaire));
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), inset 0 1px 1px rgba(255, 255, 255, 0.4);
}

.rivet-frame::before { top: 8px; left: 8px; }
.rivet-frame::after { top: 8px; right: 8px; }

/* ============ Scroll bar ============ */
::-webkit-scrollbar {
    width: 12px;
    height: 12px;
}

::-webkit-scrollbar-track {
    background: rgb(var(--fond-noir));
}

::-webkit-scrollbar-thumb {
    background: rgb(var(--fond-acier));
    border-radius: 9999px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgb(var(--couleur-primaire) / 70%);
}

/* ============ Liens texte ============ */
.link-yellow {
    color: rgb(var(--couleur-primaire));
    font-weight: 600;
    border-bottom: 1px dashed rgb(var(--couleur-primaire) / 40%);
}

.link-yellow:hover {
    color: rgb(var(--couleur-primaire-hover));
    border-bottom-color: rgb(var(--couleur-primaire-hover));
}

/* ============ Responsive utilities ============ */
@media (max-width: 768px) {
    .hero-bg .hero-photo {
        filter: grayscale(0.2) contrast(1.05) brightness(0.45);
    }
    .stat-number { font-size: 2.5rem; }
}

/* ============ Form fields (style sombre) ============ */
.field-dark {
    background-color: rgb(var(--fond-anthracite));
    border: 1px solid rgb(var(--fond-acier));
    color: #f5f5f4;
    border-radius: 4px;
    padding: 12px 16px;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.field-dark:focus {
    outline: none;
    border-color: rgb(var(--couleur-primaire));
    box-shadow: 0 0 0 3px rgb(var(--couleur-primaire) / 18%);
}

.field-dark::placeholder {
    color: #78716c;
}

/* ============ Mark service color ============ */
.tag-elec {
    display: inline-flex;
    padding: 4px 10px;
    background: rgb(var(--couleur-primaire));
    color: #1c1917;
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 3px;
}

.tag-serrure {
    display: inline-flex;
    padding: 4px 10px;
    background: rgb(var(--couleur-sauge));
    color: #082030;
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 3px;
}

.tag-info {
    display: inline-flex;
    padding: 4px 10px;
    background: #f5f0e6;
    color: #1c1917;
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 3px;
}
