/* ============================================================
   AIRSOFT SARL — CHARTE DE LA PLAQUE (thème clair)
   Référence : plaque 2,50 m × 0,80 m (octobre 2026) — fond blanc,
   bleu royal #003282, noir #101010, capitales grasses condensées
   (Oswald), bandeaux bleus pleins.

   Tout le fichier est dans la couche CSS « plaque » et chaque
   déclaration porte !important : une déclaration !important dans
   une couche l'emporte sur toutes les déclarations !important hors
   couche (style.css, lando-style, design-fix, airsoft-polish…),
   quelle que soit leur spécificité. C'est ici, et seulement ici,
   qu'on règle les couleurs et la typographie du site public.
   ============================================================ */
@layer plaque {


/* ---------- 1. Jetons ---------- */
:root {
    --pq-blue: #003282 !important;
    --pq-blue-hover: #002766 !important;
    --pq-blue-deep: #00245e !important;
    --pq-blue-night: #001a45 !important;
    --pq-blue-tint: #e8eef8 !important;
    --pq-blue-light: #b9cbf0 !important;
    --pq-ink: #101318 !important;
    --pq-text: #343a46 !important;
    --pq-muted: #5d6472 !important;
    --pq-line: #e1e6ee !important;
    --pq-field: #cfd6e2 !important;
    --pq-alt: #f4f6fa !important;
    --pq-shadow: 0 2px 12px rgba(16, 24, 40, 0.06) !important;
    --pq-shadow-hover: 0 16px 36px rgba(0, 50, 130, 0.13) !important;
    --pq-display: 'Oswald', 'Arial Narrow', sans-serif !important;
    --pq-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;

    /* jetons des couches précédentes, ramenés sur le clair */
    --af-bg-deep: #ffffff !important;
    --af-bg-body: #ffffff !important;
    --af-bg-section: #f4f6fa !important;
    --af-bg-card: #ffffff !important;
    --af-bg-card-hover: #ffffff !important;
    --af-text-primary: #101318 !important;
    --af-text-secondary: #343a46 !important;
    --af-text-muted: #5d6472 !important;
    --af-border: #e1e6ee !important;
    --af-border-light: #e1e6ee !important;
    --af-purple: #003282 !important;
    --af-purple-dark: #002766 !important;
    --af-purple-light: #003282 !important;
    --af-purple-text: #003282 !important;
    --af-purple-glow: rgba(0, 50, 130, 0.16) !important;
    --af-gradient: linear-gradient(135deg, #003282 0%, #00245e 100%) !important;
    --af-gradient-card: linear-gradient(#ffffff, #ffffff) !important;
    --af-shadow-card: 0 2px 12px rgba(16, 24, 40, 0.06) !important;
    --af-shadow-card-hover: 0 16px 36px rgba(0, 50, 130, 0.13) !important;
    --ln-black: #ffffff !important;
    --ln-dark: #f4f6fa !important;
    --ln-darker: #f4f6fa !important;
    --ln-bg-body: #ffffff !important;
    --ln-lime: #003282 !important;
    --ln-lime-dark: #002766 !important;
    --ln-lime-glow: rgba(0, 50, 130, 0.16) !important;
    --ln-white: #101318 !important;
    --ln-gray: #343a46 !important;
    --ln-gray-light: #343a46 !important;
    --ln-gray-dark: #f4f6fa !important;
    --ln-border: #e1e6ee !important;
    --ln-papaya: #003282 !important;
    --theme-color: #003282 !important;
    --title-color: #101318 !important;
    --body-color: #343a46 !important;
    --smoke-color: #f4f6fa !important;
    --smoke-color2: #eef2f8;
    --black-color: #101318 !important;
    --black-color2: #343a46;
    --light-color: #5d6472 !important;
    --gray-color: #5d6472 !important;
    --yellow-color: #003282 !important;
    --primary: #003282 !important;
    --primary-dark: #002766 !important;
    --primary-light: #003282 !important;
    --dark: #ffffff !important;
    --dark-lighter: #f4f6fa !important;
    --text-primary: #101318 !important;
    --text-secondary: #343a46 !important;
    --purple-primary: #003282 !important;
    --purple-dark: #002766 !important;
    --purple-light: #003282 !important;
    --th-border-color: #e1e6ee !important;
}

/* ---------- 2. Base ---------- */
html,
body {
    background: #ffffff !important;
    color: var(--pq-text) !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
}
body {
    font-family: var(--pq-body) !important;
}
::selection {
    background: var(--pq-blue) !important;
    color: #ffffff !important;
}
/* curseur personnalisé et particules : pensés pour le fond sombre */
.particle-bg,
.cursor,
.cursor2,
.cursor-dot,
.cursor-outline,
.hero-scroll-indicator {
    display: none !important;
}
h1, h2, h3, h4, h5, h6 {
    color: var(--pq-ink) !important;
    text-shadow: none !important;
}
h1, h2, .display-title, .hero-title, .sec-title {
    font-family: var(--pq-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.005em !important;
    line-height: 1.06 !important;
}
h3, h4 {
    font-family: var(--pq-display) !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
}
p, li, dd, td, label {
    color: var(--pq-text) !important;
}
h1, h2, h3, h4, h5, h6, p, li, dd, dt, td, th, label, span, a, small, strong, em, b, button {
    -webkit-text-fill-color: currentColor !important;
}
a {
    color: var(--pq-blue) !important;
}

/* Mots mis en avant dans les titres : bleu plein, comme « AIRSOFT » sur la plaque */
.accent,
.highlight,
.display-title span,
.hero-title span {
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    -webkit-text-stroke: 0 !important;
    text-shadow: none !important;
}

/* Pastille au-dessus des titres */
.tagline {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 7px 14px !important;
    background: var(--pq-blue-tint) !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-family: var(--pq-body) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
}
.tagline::before {
    background: var(--pq-blue) !important;
    box-shadow: none !important;
}

/* Grands mots en filigrane et halos décoratifs des sections sombres */
section::before,
section::after,
.footer-wrapper::before,
.footer-wrapper::after {
    background: none !important;
    box-shadow: none !important;
    color: rgba(0, 50, 130, 0.03) !important;
    -webkit-text-fill-color: rgba(0, 50, 130, 0.03) !important;
    -webkit-text-stroke: 0 !important;
    opacity: 1 !important;
}

/* ---------- 3. Boutons ---------- */
.th-btn,
button.th-btn,
.pq-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 15px 26px !important;
    background: var(--pq-blue) !important;
    border: 2px solid var(--pq-blue) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: var(--pq-body) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transform: none !important;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s !important;
}
.th-btn:hover,
.th-btn:focus-visible,
.pq-btn:hover,
.pq-btn:focus-visible {
    background: var(--pq-blue-hover) !important;
    border-color: var(--pq-blue-hover) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}
.th-btn::before,
.th-btn::after {
    display: none !important;
}
.th-btn *,
.pq-btn * {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
}
.th-btn.style2 {
    background: transparent !important;
    border-color: var(--pq-blue) !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.th-btn.style2:hover,
.th-btn.style2:focus-visible {
    background: var(--pq-blue) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* ---------- 4. En-tête : logo sur blanc + bandeau bleu ---------- */
.pq-header {
    position: sticky !important;
    top: -92px !important;
    z-index: 990 !important;
    background: #ffffff !important;
    box-shadow: 0 1px 0 var(--pq-line) !important;
}
.pq-header-top {
    display: flex !important;
    align-items: center !important;
    height: 92px !important;
    background: #ffffff !important;
}
.pq-header-top-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
}
.pq-logo {
    display: block !important;
    flex: none !important;
}
.pq-logo img {
    display: block !important;
    width: auto !important;
    height: 58px !important;
    max-width: none !important;
}
.pq-header-contact {
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
}
.pq-contact-item {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    padding-left: 18px !important;
    border-left: 2px solid var(--pq-blue) !important;
    line-height: 1.2 !important;
}
.pq-contact-label {
    color: var(--pq-muted) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
}
.pq-contact-item a,
.pq-phones {
    color: var(--pq-ink) !important;
    font-family: var(--pq-display) !important;
    font-size: 19px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    text-decoration: none !important;
}
.pq-contact-item--mail a {
    font-size: 17px !important;
    text-transform: none !important;
}
.pq-phones a {
    color: var(--pq-blue) !important;
}
.pq-contact-item a:hover {
    color: var(--pq-blue) !important;
    text-decoration: underline !important;
}
.pq-burger {
    display: none !important;
    position: static !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: var(--pq-blue) !important;
    border: 0 !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    color: #ffffff !important;
    transform: none !important;
}

.pq-nav {
    background: var(--pq-blue) !important;
}
.pq-menu {
    display: flex !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.pq-menu > li {
    position: relative !important;
    margin: 0 !important;
    list-style: none !important;
}
.pq-menu > li > a,
.pq-menu > li > button {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    height: 54px !important;
    margin: 0 !important;
    padding: 0 20px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: var(--pq-display) !important;
    font-size: 15.5px !important;
    font-weight: 500 !important;
    letter-spacing: 0.07em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}
.pq-menu > li > a::before,
.pq-menu > li > a::after {
    display: none !important;
}
.pq-menu > li > button::after {
    content: '' !important;
    display: inline-block !important;
    width: 7px !important;
    height: 7px !important;
    margin-top: -4px !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
}
.pq-menu > li > a:hover,
.pq-menu > li > button:hover,
.pq-menu > li:focus-within > button,
.pq-menu > li > a.is-active,
.pq-menu > li > button.is-active {
    background: rgba(255, 255, 255, 0.12) !important;
    box-shadow: inset 0 -3px 0 #ffffff !important;
    color: #ffffff !important;
}
.pq-menu-end {
    margin-left: auto !important;
}
.pq-sub {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    z-index: 20 !important;
    min-width: 330px !important;
    margin: 0 !important;
    padding: 8px !important;
    list-style: none !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-top: 3px solid var(--pq-blue) !important;
    border-radius: 0 0 10px 10px !important;
    box-shadow: 0 18px 40px rgba(16, 24, 40, 0.14) !important;
}
.pq-has-sub:hover .pq-sub,
.pq-has-sub:focus-within .pq-sub,
.pq-has-sub.is-open .pq-sub {
    display: block !important;
}
.pq-sub li {
    margin: 0 !important;
    list-style: none !important;
}
.pq-sub a {
    display: block !important;
    padding: 11px 14px !important;
    border-radius: 6px !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-family: var(--pq-body) !important;
    font-size: 14.5px !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
}
.pq-sub a:hover,
.pq-sub a:focus-visible {
    background: var(--pq-blue-tint) !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}

@media (max-width: 1199.98px) {
    .pq-contact-item--mail {
        display: none !important;
    }
    .pq-menu > li > a,
    .pq-menu > li > button {
        padding: 0 14px !important;
        font-size: 14.5px !important;
    }
}
@media (max-width: 991.98px) {
    .pq-header {
        top: 0 !important;
    }
    .pq-header-top {
        height: 72px !important;
    }
    .pq-logo img {
        height: 40px !important;
    }
    .pq-nav,
    .pq-header-cta {
        display: none !important;
    }
    .pq-burger {
        display: inline-flex !important;
    }
}
@media (max-width: 767.98px) {
    .pq-contact-item--phone {
        display: none !important;
    }
}
@media (max-width: 400px) {
    .pq-logo img {
        height: 34px !important;
    }
}

/* ---------- 5. Accueil : carrousel des solutions ---------- */
/* Mise en page compacte : texte à gauche, logo du produit dans une fenêtre d'application à droite,
   onglets des solutions en bas (barre de progression de l'autoplay). Les propriétés animées
   (opacity, transform, filter) ne portent pas !important : une valeur !important bloquerait l'animation.
   Script : assets/js/airsoft-hero.js. */
.pq-hero {
    --mx: 0;
    --my: 0;
    position: relative !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: linear-gradient(180deg, #f3f6fb 0%, #ffffff 78%) !important;
    border-bottom: 1px solid var(--pq-line) !important;
    isolation: isolate;
}
.pq-hero-deco {
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
    background-image:
        radial-gradient(circle at 76% 44%, rgba(0, 50, 130, 0.10), transparent 42%),
        linear-gradient(rgba(0, 50, 130, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 50, 130, 0.055) 1px, transparent 1px) !important;
    background-size: 100% 100%, 44px 44px, 44px 44px !important;
    -webkit-mask-image: linear-gradient(180deg, #000 55%, transparent 100%) !important;
    mask-image: linear-gradient(180deg, #000 55%, transparent 100%) !important;
    animation: pqDecoIn 1.4s ease-out both;
}
.pq-hero .swiper-slide {
    height: auto !important;
    background: transparent !important;
}
.pq-slide-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
    align-items: center !important;
    gap: 56px !important;
    min-height: clamp(380px, calc(100vh - 146px - 170px), 460px) !important;
    padding: 40px 0 36px !important;
}

/* Texte */
.pq-slide-tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 7px 14px 7px 10px !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 999px !important;
    box-shadow: var(--pq-shadow) !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
}
.pq-slide-tag::before {
    content: '' !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: var(--pq-blue) !important;
    box-shadow: 0 0 0 4px rgba(0, 50, 130, 0.14) !important;
}
.pq-hero .pq-slide-title {
    margin: 18px 0 0 !important;
    padding: 0 !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-size: clamp(2.6rem, 4.6vw, 4.4rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0.005em !important;
}
.pq-slide-title::after {
    content: '' !important;
    display: block !important;
    width: 64px;
    height: 4px !important;
    margin-top: 18px !important;
    border-radius: 2px !important;
    background: var(--pq-blue) !important;
}
.pq-word {
    display: inline-block !important;
    overflow: hidden !important;
    padding-bottom: 0.05em !important;
    vertical-align: top !important;
}
.pq-word > span {
    display: inline-block;
}
.pq-hero .pq-word.is-accent,
.pq-hero .pq-word.is-accent > span {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.pq-hero .pq-slide-lead {
    margin: 18px 0 0 !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-size: 1.2rem !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
}
.pq-hero .pq-slide-desc {
    max-width: 540px !important;
    margin: 10px 0 0 !important;
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
}
.pq-slide-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-top: 28px !important;
}

/* Visuel : halo, anneau en rotation, fenêtre d'application qui flotte, pastilles */
.pq-slide-visual {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    height: clamp(320px, 31vw, 400px) !important;
}
.pq-visual-glow {
    position: absolute !important;
    inset: 4% 8% !important;
    border-radius: 50% !important;
    background: radial-gradient(closest-side, rgba(0, 50, 130, 0.20), rgba(0, 50, 130, 0)) !important;
    pointer-events: none !important;
    animation: pqGlow 7s ease-in-out infinite alternate;
}
.pq-visual-ring {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 400px !important;
    max-width: 92% !important;
    aspect-ratio: 1 !important;
    translate: -50% -50%;
    border: 1.5px dashed rgba(0, 50, 130, 0.22) !important;
    border-radius: 50% !important;
    pointer-events: none !important;
    animation: pqSpin 48s linear infinite;
}
.pq-visual-ring::after {
    content: '' !important;
    position: absolute !important;
    top: 12% !important;
    left: 12% !important;
    width: 12px !important;
    height: 12px !important;
    border-radius: 50% !important;
    background: var(--pq-blue) !important;
    box-shadow: 0 0 0 6px rgba(0, 50, 130, 0.12) !important;
}
.pq-visual-tilt {
    position: relative !important;
    z-index: 1 !important;
    width: min(100%, 470px) !important;
    perspective: 900px;
    transform: translate3d(calc(var(--mx) * 14px), calc(var(--my) * 10px), 0);
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.pq-visual-float {
    animation: pqFloat 6s ease-in-out infinite;
}
.pq-hero figure.pq-visual-card {
    margin: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 34px 70px -24px rgba(0, 36, 94, 0.38), 0 0 0 10px rgba(255, 255, 255, 0.65) !important;
    transform: rotateY(calc(var(--mx) * 7deg)) rotateX(calc(var(--my) * -6deg));
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.pq-visual-bar {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    height: 36px !important;
    padding: 0 14px !important;
    background: var(--pq-alt) !important;
    border-bottom: 1px solid var(--pq-line) !important;
}
.pq-visual-bar i {
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background: #d5dbe6 !important;
}
.pq-visual-bar i:first-child {
    background: var(--pq-blue) !important;
}
/* barre d'adresse stylisée (décor) */
.pq-visual-bar span {
    flex: 0 1 46% !important;
    height: 14px !important;
    margin: 0 auto !important;
    border-radius: 999px !important;
    background: #e4e9f1 !important;
}
.pq-visual-media {
    display: block !important;
    height: clamp(220px, 21vw, 290px) !important;
    padding: 22px 28px !important;
    background: #ffffff !important;
}
.pq-visual-media img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: contain !important;
    filter: none;
}
.pq-chip {
    position: absolute !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    padding: 10px 16px 10px 13px !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 999px !important;
    box-shadow: 0 14px 30px -12px rgba(0, 36, 94, 0.3) !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}
.pq-chip::before {
    content: '' !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: var(--pq-blue) !important;
    box-shadow: 0 0 0 4px rgba(0, 50, 130, 0.14) !important;
}
.pq-chip--a {
    top: 30% !important;
    left: -2% !important;
}
.pq-chip--b {
    right: -1% !important;
    bottom: 8% !important;
}

/* Onglets des solutions */
.pq-hero-nav {
    position: relative !important;
    z-index: 2 !important;
    background: rgba(255, 255, 255, 0.86) !important;
    border-top: 1px solid var(--pq-line) !important;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
}
.pq-hero-nav-inner {
    display: flex !important;
    align-items: stretch !important;
}
.pq-tabs {
    display: flex !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}
.pq-tabs::-webkit-scrollbar {
    display: none !important;
}
.pq-hero button.pq-tab {
    position: relative !important;
    flex: 1 1 0 !important;
    min-width: 104px !important;
    margin: 0 !important;
    padding: 13px 14px 14px !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
    text-align: left !important;
    cursor: pointer !important;
    transition: color 0.2s, background-color 0.2s !important;
}
.pq-hero button.pq-tab:hover,
.pq-hero button.pq-tab:focus-visible {
    background: var(--pq-alt) !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.pq-hero button.pq-tab.is-active {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.pq-tab-bar {
    position: absolute !important;
    top: -1px !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    overflow: hidden !important;
    background: transparent !important;
}
.pq-tab-bar > span {
    display: block !important;
    height: 100% !important;
    background: var(--pq-blue) !important;
    transform-origin: left center;
    transform: scaleX(var(--p, 0));
}
.pq-tab-num {
    display: block !important;
    margin-bottom: 3px !important;
    color: rgba(0, 50, 130, 0.45) !important;
    -webkit-text-fill-color: rgba(0, 50, 130, 0.45) !important;
    font-family: var(--pq-display) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
}
.pq-tab.is-active .pq-tab-num {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.pq-tab-name {
    display: block !important;
    overflow: hidden !important;
    color: inherit !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-overflow: ellipsis !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}
.pq-hero-controls {
    display: flex !important;
    flex: none !important;
    align-items: center !important;
    gap: 10px !important;
    padding-left: 22px !important;
    margin-left: 8px !important;
    border-left: 1px solid var(--pq-line) !important;
}
.pq-counter {
    margin-right: 6px !important;
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
    font-family: var(--pq-display) !important;
    font-size: 14px !important;
    letter-spacing: 0.06em !important;
}
.pq-counter b {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-size: 22px !important;
    font-weight: 700 !important;
}
.pq-hero button.pq-arrow {
    display: grid !important;
    place-items: center !important;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-field) !important;
    border-radius: 50% !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    cursor: pointer !important;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s !important;
}
.pq-hero button.pq-arrow:hover,
.pq-hero button.pq-arrow:focus-visible {
    background: var(--pq-blue) !important;
    border-color: var(--pq-blue) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.pq-arrow i {
    color: inherit !important;
}

/* Effets d'entrée : rejoués à chaque solution affichée (classe swiper-slide-active) */
.pq-hero-js .pq-hero:not(.is-ready) .pq-slide-text > *,
.pq-hero-js .pq-hero:not(.is-ready) .pq-visual-card,
.pq-hero-js .pq-hero:not(.is-ready) .pq-chip {
    opacity: 0;
}
/* la solution qui s'en va s'efface vite, avant que la suivante n'entre (transition posée seulement
   à la sortie : à l'entrée, ce sont les animations ci-dessous qui jouent) */
.pq-hero.is-ready .swiper-slide:not(.swiper-slide-active) .pq-slide-text > * {
    opacity: 0;
    translate: 0 -14px;
    transition: opacity 0.35s ease, translate 0.35s ease;
}
.pq-hero.is-ready .swiper-slide:not(.swiper-slide-active) .pq-slide-visual {
    opacity: 0;
    scale: 0.96;
    transition: opacity 0.4s ease, scale 0.4s ease;
}
.pq-hero.is-ready .swiper-slide-active .pq-slide-tag {
    animation: pqSlideRight 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-word > span {
    animation: pqRise 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    animation-delay: calc(0.2s + var(--i, 0) * 0.09s);
}
.pq-hero.is-ready .swiper-slide-active .pq-slide-title::after {
    animation: pqLine 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.5s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-slide-lead {
    animation: pqFadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.45s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-slide-desc {
    animation: pqFadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.55s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-slide-actions {
    animation: pqFadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.68s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-visual-card {
    animation: pqCardIn 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) 0.15s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-visual-media img {
    animation: pqZoom 1.6s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s both;
}
.pq-hero.is-ready .swiper-slide-active .pq-chip--a {
    animation: pqPop 0.7s cubic-bezier(0.3, 1.4, 0.5, 1) 0.75s both, pqFloat 5s ease-in-out 1.5s infinite;
}
.pq-hero.is-ready .swiper-slide-active .pq-chip--b {
    animation: pqPop 0.7s cubic-bezier(0.3, 1.4, 0.5, 1) 0.9s both, pqFloat 5.5s ease-in-out 1.6s infinite reverse;
}
.pq-hero.is-ready .pq-hero-nav {
    animation: pqFadeUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.3s both;
}

@keyframes pqDecoIn {
    from { opacity: 0; transform: scale(1.04); }
    to { opacity: 1; transform: none; }
}
@keyframes pqRise {
    from { transform: translateY(105%); }
    to { transform: none; }
}
@keyframes pqFadeUp {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: none; }
}
@keyframes pqSlideRight {
    from { opacity: 0; transform: translateX(-18px); }
    to { opacity: 1; transform: none; }
}
@keyframes pqLine {
    from { width: 0; }
    to { width: 64px; }
}
@keyframes pqCardIn {
    from { opacity: 0; transform: translateY(26px) scale(0.93); filter: blur(8px); }
    to { opacity: 1; transform: none; filter: none; }
}
@keyframes pqZoom {
    from { transform: scale(1.12); }
    to { transform: none; }
}
@keyframes pqPop {
    from { opacity: 0; transform: scale(0.7) translateY(10px); }
    to { opacity: 1; transform: none; }
}
@keyframes pqFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}
@keyframes pqGlow {
    from { transform: scale(0.94); opacity: 0.75; }
    to { transform: scale(1.08); opacity: 1; }
}
@keyframes pqSpin {
    to { transform: rotate(360deg); }
}

@media (max-width: 1199.98px) {
    .pq-slide-grid {
        gap: 36px !important;
    }
    .pq-chip--a {
        left: 0 !important;
    }
    .pq-chip--b {
        right: 0 !important;
    }
}
@media (max-width: 991.98px) {
    .pq-slide-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 28px !important;
        min-height: 0 !important;
        padding: 32px 0 30px !important;
    }
    .pq-slide-visual {
        height: 300px !important;
    }
    .pq-visual-tilt {
        width: min(100%, 420px) !important;
    }
    .pq-visual-media {
        height: 210px !important;
    }
}
@media (max-width: 767.98px) {
    .pq-hero-controls {
        display: none !important;
    }
    .pq-slide-grid {
        gap: 22px !important;
        padding: 26px 0 22px !important;
    }
    .pq-hero .pq-slide-title {
        margin-top: 14px !important;
    }
    .pq-slide-title::after {
        margin-top: 14px !important;
    }
    .pq-hero .pq-slide-lead {
        margin-top: 14px !important;
    }
    .pq-hero .pq-slide-desc {
        display: none !important;
    }
    .pq-slide-actions {
        flex-wrap: nowrap !important;
        gap: 10px !important;
        margin-top: 20px !important;
    }
    .pq-slide-actions .th-btn {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        padding: 14px 10px !important;
        font-size: 12px !important;
        letter-spacing: 0.04em !important;
        white-space: nowrap !important;
    }
    .pq-visual-ring {
        max-width: 78% !important;
    }
    .pq-hero button.pq-tab {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        padding: 11px 14px 12px !important;
    }
    .pq-visual-ring::after {
        display: none !important;
    }
    .pq-chip--b {
        bottom: -6px !important;
    }
    .pq-hero .pq-slide-title {
        font-size: clamp(2.2rem, 10vw, 2.8rem) !important;
    }
    .pq-hero .pq-slide-lead {
        font-size: 1.08rem !important;
    }
    .pq-slide-visual {
        height: 224px !important;
    }
    .pq-visual-tilt {
        width: min(82%, 340px) !important;
    }
    .pq-visual-bar {
        height: 28px !important;
    }
    .pq-visual-media {
        height: 150px !important;
        padding: 12px 18px !important;
    }
    .pq-chip {
        padding: 7px 12px 7px 10px !important;
        font-size: 12px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .pq-hero *,
    .pq-hero-deco {
        animation: none !important;
        transition: none !important;
    }
    .pq-hero-js .pq-hero .pq-slide-text > *,
    .pq-hero-js .pq-hero .pq-visual-card,
    .pq-hero-js .pq-hero .pq-chip {
        opacity: 1;
    }
}

.swiper-pagination-bullet {
    background: #c3cddf !important;
    opacity: 1 !important;
}
.swiper-pagination-bullet-active {
    background: var(--pq-blue) !important;
}

/* ---------- 6. Bandeaux bleus (comme la bande des numéros de la plaque) ---------- */
.divider-marquee {
    background: var(--pq-blue) !important;
    border: 0 !important;
    box-shadow: none !important;
}
.divider-marquee span {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    -webkit-text-stroke: 0 !important;
    font-family: var(--pq-display) !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
}
.divider-marquee span::before,
.divider-marquee span::after {
    color: rgba(255, 255, 255, 0.55) !important;
    background-color: rgba(255, 255, 255, 0.55) !important;
}

.cta-final,
.product-cta {
    background: var(--pq-blue) !important;
    background-image: radial-gradient(circle at 88% 15%, rgba(255, 255, 255, 0.09), transparent 45%) !important;
    border: 0 !important;
}
.cta-final::before,
.product-cta::before {
    color: rgba(255, 255, 255, 0.05) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.05) !important;
}
.cta-final h2,
.cta-final h3,
.cta-final p,
.cta-final .display-title,
.product-cta h2,
.product-cta h3,
.product-cta p,
.product-cta .display-title {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.cta-final p,
.product-cta p {
    color: rgba(255, 255, 255, 0.86) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.86) !important;
}
.cta-final .accent,
.cta-final h2 span,
.product-cta .accent,
.product-cta h2 span {
    color: var(--pq-blue-light) !important;
    -webkit-text-fill-color: var(--pq-blue-light) !important;
    -webkit-text-stroke: 0 !important;
}
.cta-final .tagline,
.product-cta .tagline {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.cta-final .tagline::before,
.product-cta .tagline::before {
    background: #ffffff !important;
}
.cta-final .th-btn,
.product-cta .th-btn {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.cta-final .th-btn:hover,
.product-cta .th-btn:hover {
    background: var(--pq-blue-tint) !important;
    border-color: var(--pq-blue-tint) !important;
}
.cta-final .th-btn.style2,
.product-cta .th-btn.style2 {
    background: transparent !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.cta-final .th-btn.style2:hover,
.product-cta .th-btn.style2:hover {
    background: #ffffff !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.product-cta .cta-card,
.cta-final .cta-content {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* ---------- 7. Fonds de sections : blanc, en alternance avec un gris bleuté ---------- */
section {
    background-color: #ffffff !important;
    background-image: none !important;
}
.premium-stats,
.products-grid,
.services-premium,
.team-premium,
.testimonials-premium,
.contact-info-bar,
.features-section,
.contact-section {
    background: #ffffff !important;
}
.about-premium,
.process-timeline,
.partners-marquee,
.faq-premium,
.projects-grid-section,
.contact-map-section {
    background: var(--pq-alt) !important;
}
/* en-têtes des pages intérieures */
.product-hero,
.contact-hero,
.projects-hero,
.service-hero,
.about-hero,
.partners-hero,
.become-partner,
.breadcumb-wrapper {
    background: linear-gradient(180deg, #eef2f8 0%, #ffffff 100%) !important;
    border-bottom: 1px solid var(--pq-line) !important;
}
.product-hero p,
.contact-hero p,
.projects-hero p,
.service-hero p,
.about-hero p,
.partners-hero p,
.breadcumb-wrapper p,
.lead-text {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
}
.breadcumb-wrapper h1,
.breadcumb-title,
.breadcumb-menu li,
.breadcumb-menu a {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}

/* fils d'Ariane des pages produit et service */
.product-breadcrumb,
.service-breadcrumb,
.product-breadcrumb span,
.service-breadcrumb span {
    color: var(--pq-ink) !important;
}
.product-breadcrumb a,
.service-breadcrumb a {
    color: var(--pq-blue) !important;
}
.product-breadcrumb .separator,
.service-breadcrumb .separator {
    color: var(--pq-muted) !important;
}
.tech-pill {
    background: var(--pq-blue-tint) !important;
    border: 1px solid rgba(0, 50, 130, 0.14) !important;
    color: var(--pq-blue) !important;
}

/* ---------- 8. Cartes ---------- */
.product-card-premium,
.service-card-premium,
.team-member-card,
.testimonial-card,
.faq-item,
.contact-card,
.stat-counter,
.feature-card,
.project-card,
.contact-form-card,
.contact-info-item,
.form-wrap1,
.form-wrap1.bg-purple,
.contact-info-wrap,
.mv-card,
.partner-card,
.value-card,
.stat-box,
.equipment-card {
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 12px !important;
    box-shadow: var(--pq-shadow) !important;
    color: var(--pq-text) !important;
}
.product-card-premium:hover,
.service-card-premium:hover,
.team-member-card:hover,
.testimonial-card:hover,
.feature-card:hover,
.project-card:hover,
.contact-card:hover,
.mv-card:hover,
.partner-card:hover {
    border-color: rgba(0, 50, 130, 0.35) !important;
    box-shadow: var(--pq-shadow-hover) !important;
}
.product-card-premium::before,
.product-card-premium::after,
.service-card-premium::before,
.service-card-premium::after,
.team-member-card::before,
.testimonial-card::before,
.feature-card::before,
.project-card::before,
.contact-card::before,
.stat-counter::before,
.stat-counter::after {
    background: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
}

/* Chiffres clés */
.counter-num,
.counter-suffix,
.equipment-card h5 {
    background: none !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-family: var(--pq-display) !important;
    font-weight: 700 !important;
    text-shadow: none !important;
}
.counter-label {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
}
.counter-line {
    background: var(--pq-blue) !important;
}

/* Produits */
.product-img-wrap {
    background: var(--pq-alt) !important;
}
.product-img-wrap::before,
.product-img-wrap::after {
    background: none !important;
    opacity: 0 !important;
}
.product-content {
    background: #ffffff !important;
}
.product-tag,
.project-tag {
    background: var(--pq-blue) !important;
    border: 0 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.product-num,
.project-date,
.project-client {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
}
.product-name,
.project-name {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.product-desc,
.project-desc {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
}
.product-link {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.project-image-wrap {
    background: var(--pq-alt) !important;
}
.project-card.featured {
    border-color: var(--pq-blue) !important;
}

/* Services : le titre ne doit pas passer sous le grand numéro */
.service-card-premium h3 {
    padding-right: 64px !important;
}
.service-num {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    -webkit-text-stroke: 0 !important;
    font-family: var(--pq-display) !important;
    opacity: 1 !important;
}

/* À propos */
.about-img-stack .img-1,
.about-img-stack .img-2 {
    border-color: #ffffff !important;
    box-shadow: 0 18px 40px rgba(16, 24, 40, 0.14) !important;
}
.floating-stat {
    background: var(--pq-blue) !important;
    border: 0 !important;
    box-shadow: 0 16px 34px rgba(0, 50, 130, 0.3) !important;
}
.floating-stat,
.floating-stat * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.features-list li {
    border-color: var(--pq-line) !important;
    color: var(--pq-text) !important;
}
.features-list li::before,
.features-list li i {
    color: var(--pq-blue) !important;
    background-color: var(--pq-blue-tint) !important;
}

/* Méthode */
.step-num {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.process-step {
    border-color: var(--pq-line) !important;
}
.process-step::before {
    background: var(--pq-blue) !important;
    border-color: #ffffff !important;
    box-shadow: 0 0 0 4px var(--pq-blue-tint) !important;
}
.process-step::after {
    background: var(--pq-line) !important;
}

/* Équipe */
.team-member-photo {
    background: linear-gradient(180deg, #eef2f8 0%, #e2e8f2 100%) !important;
}
.team-member-photo::before,
.team-member-photo::after {
    background: none !important;
}
.team-member-fallback {
    background: var(--pq-blue-tint) !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.team-member-info {
    background: #ffffff !important;
}
.team-member-info .position,
.position {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.team-line {
    background: var(--pq-blue) !important;
}

/* Partenaires */
.partners-track img {
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 10px !important;
    filter: none !important;
    opacity: 1 !important;
}

/* Témoignages */
.quote-icon {
    color: var(--pq-blue-tint) !important;
}
.stars,
.stars i {
    color: #e3a008 !important;
}
.testimonial-text {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
}
.author-avatar {
    background: var(--pq-blue) !important;
    border: 0 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.author-name {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.author-role {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
}
.testimonial-author {
    border-color: var(--pq-line) !important;
}

/* FAQ */
.faq-item {
    border-radius: 10px !important;
}
.faq-item.active,
.faq-item.open {
    border-color: var(--pq-blue) !important;
}
.faq-question {
    background: transparent !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.faq-icon {
    border-color: var(--pq-field) !important;
    background: #ffffff !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.faq-answer,
.faq-answer p {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
}

/* Coordonnées */
.contact-card h4,
.contact-info-item h5,
.contact-info_title {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.contact-card a,
.contact-card p,
.contact-info-item a,
.contact-info-item p,
.contact-info_text,
.contact-info_text a {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
}
.contact-card a:hover,
.contact-info-item a:hover {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.contact-card-icon {
    background: var(--pq-blue-tint) !important;
    color: var(--pq-blue) !important;
}

/* Page Contact : panneau de coordonnées en bleu plaque, à côté du formulaire blanc */
.contact-section .contact-info-wrap {
    background: var(--pq-blue) !important;
    border: 0 !important;
    box-shadow: 0 18px 40px rgba(0, 50, 130, 0.22) !important;
}
.contact-section .contact-info-wrap h2,
.contact-section .contact-info-wrap h3,
.contact-section .contact-info-wrap h5,
.contact-section .contact-info-wrap p,
.contact-section .contact-info-wrap a,
.contact-section .contact-info-wrap span {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.contact-section .contact-info-wrap .tagline {
    background: rgba(255, 255, 255, 0.14) !important;
}
.contact-section .contact-info-wrap .tagline::before {
    background: #ffffff !important;
}
.contact-section .contact-info-wrap .contact-info-item {
    background: rgba(255, 255, 255, 0.07) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    box-shadow: none !important;
}
/* Logos et carte : les couches sombres les passaient en blanc / en négatif */
.partner-logo-wrap img,
.partner-card img {
    filter: none !important;
    opacity: 1 !important;
}
.contact-map iframe,
.contact-map-section iframe {
    filter: none !important;
}
.contact-section .contact-info-wrap {
    padding: 28px 24px !important;
}
/* Prise de rendez-vous : titre de colonne à taille raisonnable, pastilles d'icônes retirées */
.contact-info-wrap .sec-title {
    font-size: clamp(1.8rem, 3vw, 2.4rem) !important;
    line-height: 1.1 !important;
}
.contact-info_icon {
    display: none !important;
}
/* Partenaires : secteur et solution sous le nom */
.partner-sector,
.partner-solution {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
    background: transparent !important;
}
.partner-solution {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}

/* ---------- Devis : logos produits, choix du produit, liens ---------- */
/* Les logos produits s'affichent entiers, sur fond blanc, avec une marge */
.product-img-wrap img {
    object-fit: contain !important;
    padding: 18px !important;
    background: #ffffff !important;
}
.product-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px 18px !important;
    margin-top: 6px !important;
}
.product-link--quote {
    display: inline-flex !important;
    align-items: center !important;
    padding: 9px 14px !important;
    background: var(--pq-blue) !important;
    border-radius: 6px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-decoration: none !important;
}
.product-link--quote:hover {
    background: var(--pq-blue-hover) !important;
    color: #ffffff !important;
}
.product-link--quote::after,
.product-link--quote::before {
    display: none !important;
}
.project-quote {
    display: inline-block !important;
    margin-top: 14px !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-decoration: none !important;
}
.project-quote::after {
    content: ' →' !important;
}
.project-quote:hover {
    text-decoration: underline !important;
}
#devis {
    scroll-margin-top: 80px !important;
}
.quote-subject {
    display: flex !important;
    gap: 18px !important;
    align-items: flex-start !important;
    margin: 0 0 24px !important;
    padding: 16px !important;
    background: var(--pq-alt) !important;
    border: 1px solid var(--pq-line) !important;
    border-left: 4px solid var(--pq-blue) !important;
    border-radius: 10px !important;
}
.quote-subject-media {
    flex: none !important;
    display: grid !important;
    place-items: center !important;
    width: 120px !important;
    height: 120px !important;
    padding: 8px !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 8px !important;
}
.quote-subject-media img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
}
.quote-subject-label {
    color: var(--pq-blue) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}
.quote-subject-name {
    margin: 4px 0 6px !important;
    color: var(--pq-ink) !important;
    font-size: 22px !important;
    text-transform: uppercase !important;
}
.quote-subject-desc {
    display: -webkit-box !important;
    -webkit-line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    margin: 0 !important;
    color: var(--pq-text) !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    white-space: pre-line !important;
}
.quote-subject-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 16px !important;
    margin-top: 10px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}
.quote-subject-actions a {
    color: var(--pq-blue) !important;
    text-decoration: underline !important;
}
@media (max-width: 575.98px) {
    .quote-subject {
        flex-direction: column !important;
    }
}

/* Images produits et projets : nettes (les couches sombres les grisaient et les assombrissaient) */
.product-img-wrap img,
.product-card-premium:hover .product-img-wrap img,
.project-image-wrap img,
.project-card:hover .project-image-wrap img {
    filter: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
}
/* Besoin pré-sélectionné (pastille select2) */
.select2-container--default .select2-selection--multiple .select2-selection__choice__display,
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    background: transparent !important;
    border-color: rgba(0, 50, 130, 0.2) !important;
}

/* ---------- Pages services : en-tête texte + illustration, appel final en bandeau bleu ---------- */
.service-hero {
    padding: 64px 0 76px !important;
    background: linear-gradient(180deg, #eef2f8 0%, #ffffff 100%) !important;
    border-bottom: 1px solid var(--pq-line) !important;
    text-align: left !important;
}
.service-hero::before,
.service-hero::after {
    display: none !important;
}
/* ancien dégagement de 180 px prévu pour un en-tête posé sur la page : l'en-tête est maintenant dans le flux */
.service-hero > .container {
    padding-top: 0 !important;
}
.service-hero .service-breadcrumb {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-bottom: 18px !important;
    font-size: 13.5px !important;
}
.service-hero .service-breadcrumb .is-current {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-weight: 600 !important;
}
.service-hero .tagline {
    margin-bottom: 18px !important;
}
.service-hero h1 {
    margin: 0 0 20px !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-family: var(--pq-display) !important;
    font-size: clamp(2.6rem, 5vw, 4.4rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.005em !important;
    line-height: 1.04 !important;
    text-align: left !important;
}
.service-hero .lead-text {
    max-width: 34rem !important;
    margin: 0 !important;
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
    font-size: 1.08rem !important;
    line-height: 1.7 !important;
    text-align: left !important;
}
.service-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 14px !important;
    margin-top: 30px !important;
}
.service-hero-visual {
    padding: 14px !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 26px 60px rgba(16, 24, 40, 0.12), 0 0 0 8px rgba(0, 50, 130, 0.04) !important;
}
.service-visual-svg {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}
.service-cta {
    padding: 84px 0 !important;
    background: var(--pq-blue) !important;
    background-image: radial-gradient(circle at 88% 15%, rgba(255, 255, 255, 0.09), transparent 45%) !important;
}
.service-cta::before,
.service-cta::after {
    display: none !important;
}
.service-cta .cta-card {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.service-cta h2,
.service-cta .cta-card h2 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.service-cta p {
    color: rgba(255, 255, 255, 0.86) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.86) !important;
}
.service-cta .accent,
.service-cta h2 span {
    color: var(--pq-blue-light) !important;
    -webkit-text-fill-color: var(--pq-blue-light) !important;
}
.service-cta .tagline {
    background: rgba(255, 255, 255, 0.14) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.service-cta .tagline::before {
    background: #ffffff !important;
}
.service-cta .th-btn {
    background: #ffffff !important;
    border-color: #ffffff !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.service-cta .th-btn:hover {
    background: var(--pq-blue-tint) !important;
    border-color: var(--pq-blue-tint) !important;
}
.service-cta .th-btn.style2 {
    background: transparent !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.service-cta .th-btn.style2:hover {
    background: #ffffff !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
/* Chiffres clés des pages Sécurité et Réseau : bleu plaque, taille adaptée aux demi-colonnes sur mobile */
.stats-bar .stat-item .stat-num {
    background: none !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-family: var(--pq-display) !important;
    font-size: clamp(2rem, 8vw, 3.2rem) !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}
@media (max-width: 991.98px) {
    .service-hero {
        padding: 40px 0 56px !important;
    }
    .service-hero-visual {
        max-width: 560px !important;
        margin: 0 auto !important;
    }
}

/* Formulaire de devis : choix d'un ou plusieurs produits */
.quote-products {
    margin: 0 0 24px !important;
    padding: 0 !important;
    border: 0 !important;
    min-width: 0 !important;
}
.quote-products legend {
    float: none !important;
    width: auto !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-family: var(--pq-display) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
}
.quote-products legend span {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-family: var(--pq-body) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.quote-products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.quote-product {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
    padding: 12px 10px !important;
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    border-radius: 10px !important;
    box-shadow: inset 0 0 0 1px transparent !important;
    cursor: pointer !important;
    text-align: center !important;
    transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s !important;
}
.quote-product:hover {
    border-color: rgba(0, 50, 130, 0.45) !important;
}
.quote-product input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.quote-product-media {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 64px !important;
}
.quote-product-media img {
    max-width: 100% !important;
    max-height: 64px !important;
    object-fit: contain !important;
}
.quote-product-name {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-family: var(--pq-display) !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}
.quote-product-tag {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
    font-family: var(--pq-body) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.35 !important;
    text-transform: none !important;
}
.quote-product-check {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    width: 20px !important;
    height: 20px !important;
    background: #ffffff !important;
    border: 2px solid var(--pq-field) !important;
    border-radius: 50% !important;
}
.quote-product:has(input:checked) {
    background: var(--pq-blue-tint) !important;
    border-color: var(--pq-blue) !important;
    box-shadow: inset 0 0 0 1px var(--pq-blue) !important;
}
.quote-product:has(input:checked) .quote-product-check {
    background: var(--pq-blue) !important;
    border-color: var(--pq-blue) !important;
}
.quote-product:has(input:checked) .quote-product-check::after {
    content: '' !important;
    position: absolute !important;
    left: 5px !important;
    top: 1px !important;
    width: 6px !important;
    height: 11px !important;
    border: solid #ffffff !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}
.quote-product:has(input:focus-visible) {
    outline: 3px solid rgba(0, 50, 130, 0.35) !important;
    outline-offset: 2px !important;
}
@media (max-width: 767.98px) {
    .quote-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Vérification de l'adresse e-mail / du numéro et résumé des erreurs du formulaire */
.email-check,
.phone-check {
    min-height: 0 !important;
    margin-top: 6px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}
.email-check:empty,
.phone-check:empty {
    display: none !important;
}
.email-check.is-pending,
.phone-check.is-pending {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
}
.email-check.is-ok,
.phone-check.is-ok {
    color: #17663f !important;
    -webkit-text-fill-color: #17663f !important;
}
.email-check.is-error,
.phone-check.is-error {
    color: #b4232c !important;
    -webkit-text-fill-color: #b4232c !important;
}
.form-group:has(.email-check.is-error) input,
.form-group:has(.phone-check.is-error) input,
.form-group:has(> ul > li) input {
    border-color: #b4232c !important;
}

/* Numéro de contact : sélecteur de pays + indicatif (intl-tel-input) */
.iti {
    display: block !important;
    width: 100% !important;
}
.iti__selected-country {
    border-radius: 8px 0 0 8px !important;
}
.iti__selected-country-primary {
    padding: 0 6px 0 14px !important;
}
.iti__selected-dial-code {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-weight: 600 !important;
}
.iti__dropdown-content {
    background: #ffffff !important;
    border: 1px solid var(--pq-field) !important;
    border-radius: 8px !important;
    box-shadow: var(--pq-shadow) !important;
    color: var(--pq-ink) !important;
}
input.iti__search-input {
    padding: 10px 12px 10px 34px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--pq-line) !important;
    border-radius: 8px 8px 0 0 !important;
    box-shadow: none !important;
    font-size: 14px !important;
}
.iti__country {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    font-size: 14px !important;
}
.iti__country.iti__highlight {
    background: var(--pq-blue-tint) !important;
}
.iti__dial-code {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
    font-weight: 600 !important;
}
.form-error-summary {
    margin: 0 0 20px !important;
    padding: 12px 16px !important;
    background: #fdeaea !important;
    border: 1px solid #f0c5c8 !important;
    border-radius: 8px !important;
    color: #b4232c !important;
    -webkit-text-fill-color: #b4232c !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* ---------- 9. Formulaires publics ---------- */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="search"],
textarea,
select {
    background-color: #ffffff !important;
    border: 1px solid var(--pq-field) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.form-control:focus,
.form-select:focus,
input:focus,
textarea:focus,
select:focus {
    border-color: var(--pq-blue) !important;
    box-shadow: 0 0 0 3px rgba(0, 50, 130, 0.15) !important;
    outline: none !important;
}
::placeholder {
    color: #8a91a0 !important;
    -webkit-text-fill-color: #8a91a0 !important;
    opacity: 1 !important;
}
option {
    background: #ffffff !important;
    color: var(--pq-ink) !important;
}
label,
label.required,
.form-label {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.form-subtitle,
.form-text {
    color: var(--pq-muted) !important;
    -webkit-text-fill-color: var(--pq-muted) !important;
}
.select2-container--default .select2-selection--multiple,
.select2-container--default .select2-selection--single {
    background: #ffffff !important;
    border: 1px solid var(--pq-field) !important;
    border-radius: 8px !important;
}
.select2-dropdown {
    background: #ffffff !important;
    border-color: var(--pq-field) !important;
}
.select2-results__option {
    background: #ffffff !important;
    color: var(--pq-ink) !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background: var(--pq-blue) !important;
    color: #ffffff !important;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
    background: var(--pq-blue-tint) !important;
    border: 0 !important;
    color: var(--pq-blue) !important;
}
.select2-container--default .select2-search--inline .select2-search__field {
    color: var(--pq-ink) !important;
}
.invalid-feedback,
.form-error-message,
.form-group > ul > li {
    color: #b4232c !important;
    -webkit-text-fill-color: #b4232c !important;
}
.title-area,
.contact-info {
    background: transparent !important;
}

/* ---------- 10. Pied de page : bandeau bleu de la plaque ---------- */
.pq-footer {
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    background: var(--pq-blue-deep) !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #ffffff !important;
}
.pq-footer::before,
.pq-footer::after {
    display: none !important;
}
.pq-footer .pq-footer-main {
    display: grid !important;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 40px !important;
    padding-top: 56px !important;
    padding-bottom: 44px !important;
}
.pq-footer .pq-footer-brand img {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: 60px !important;
}
.pq-footer .pq-footer-offer {
    margin: 18px 0 0 !important;
    color: rgba(255, 255, 255, 0.82) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.82) !important;
    font-family: var(--pq-display) !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}
.pq-footer .pq-footer-offer strong {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-weight: 700 !important;
}
.pq-footer .pq-footer-offer span {
    margin: 0 8px !important;
    color: rgba(255, 255, 255, 0.45) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.45) !important;
}
.pq-footer .pq-footer-col h2 {
    margin: 0 0 14px !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
}
.pq-footer .pq-footer-col ul {
    display: grid !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}
.pq-footer .pq-footer-col p,
.pq-footer .pq-footer-col li,
.pq-footer .pq-footer-col a {
    margin: 0 0 8px !important;
    color: rgba(255, 255, 255, 0.84) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.84) !important;
    font-size: 14.5px !important;
    line-height: 1.6 !important;
    text-decoration: none !important;
}
.pq-footer .pq-footer-col li {
    margin: 0 !important;
}
.pq-footer .pq-footer-col a:hover {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    text-decoration: underline !important;
}
.pq-footer .pq-footer-phones {
    padding: 18px 0 !important;
    background: var(--pq-blue) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}
.pq-footer .pq-footer-phones .container {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px 20px !important;
}
.pq-footer .pq-footer-phones-label {
    color: rgba(255, 255, 255, 0.78) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.78) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
}
.pq-footer .pq-footer-phones a {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-family: var(--pq-display) !important;
    font-size: clamp(30px, 4.6vw, 48px) !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: 0.03em !important;
    text-decoration: none !important;
}
.pq-footer .pq-footer-phones a:hover {
    text-decoration: underline !important;
}
.pq-footer .pq-footer-phones-sep {
    color: rgba(255, 255, 255, 0.45) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.45) !important;
    font-family: var(--pq-display) !important;
    font-size: clamp(26px, 4vw, 40px) !important;
}
.pq-footer .copyright-wrap {
    padding: 14px 0 !important;
    background: var(--pq-blue-night) !important;
    border: 0 !important;
}
.pq-footer .copyright-text {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.7) !important;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.7) !important;
    font-size: 13px !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    text-transform: none !important;
}
@media (max-width: 991.98px) {
    .pq-footer .pq-footer-main {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    }
    .pq-footer .pq-footer-brand {
        grid-column: 1 / -1 !important;
    }
}
@media (max-width: 575.98px) {
    .pq-footer .pq-footer-main {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 28px !important;
        padding-top: 40px !important;
    }
    .pq-footer .pq-footer-brand img {
        height: 42px !important;
    }
    .pq-footer .pq-footer-phones-label {
        width: 100% !important;
        text-align: center !important;
    }
}

/* ---------- 11. Menus latéraux (mobile et informations) ---------- */
.th-menu-wrapper .th-menu-area,
.sidemenu-wrapper .sidemenu-content {
    background: #ffffff !important;
    border-color: var(--pq-line) !important;
}
.th-menu-wrapper .th-menu-header,
.th-menu-wrapper .th-menu-header .mobile-logo,
.th-menu-wrapper .th-menu-header .mobile-logo a {
    background: #ffffff !important;
    border-color: var(--pq-line) !important;
    box-shadow: none !important;
}
.th-menu-wrapper .th-menu-footer {
    background: var(--pq-alt) !important;
    border-color: var(--pq-line) !important;
}
.th-menu-wrapper .th-menu-header .mobile-logo img,
.side-about .about-logo img {
    width: auto !important;
    max-width: 220px !important;
    height: auto !important;
    max-height: 40px !important;
}
.th-menu-wrapper .th-menu-toggle {
    background: var(--pq-blue) !important;
    color: #ffffff !important;
    border: 0 !important;
}
.th-mobile-menu ul li a,
.th-mobile-menu > ul > li > a {
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
    border-color: var(--pq-line) !important;
    background: transparent !important;
    font-family: var(--pq-display) !important;
    font-weight: 500 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
}
.th-mobile-menu ul li a:hover,
.th-mobile-menu ul li.th-active > a {
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}
.th-mobile-menu ul .sub-menu,
.th-mobile-menu .sub-menu li a {
    background: var(--pq-alt) !important;
    font-family: var(--pq-body) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.th-mobile-menu .th-mean-expand,
.th-mobile-menu .menu-icon {
    color: var(--pq-blue) !important;
    background: transparent !important;
}
.th-menu-footer,
.th-menu-contact a,
.th-menu-social a,
.sidemenu-content p,
.sidemenu-content a,
.sidemenu-content .widget_title,
.contact-label {
    color: var(--pq-text) !important;
    -webkit-text-fill-color: var(--pq-text) !important;
    border-color: var(--pq-line) !important;
}
.th-menu-footer .th-menu-cta {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.th-menu-social a,
.side-social .th-social a {
    background: var(--pq-blue-tint) !important;
    color: var(--pq-blue) !important;
    -webkit-text-fill-color: var(--pq-blue) !important;
}

/* ---------- 12. Assistant de discussion ---------- */
#chatbot-toggle,
.chatbot-input button,
.chat-msg.user .chat-bubble {
    background: var(--pq-blue) !important;
    box-shadow: 0 10px 26px rgba(0, 50, 130, 0.3) !important;
    color: #ffffff !important;
}
.chatbot-badge {
    background: #ffffff !important;
    border: 2px solid var(--pq-blue) !important;
    color: var(--pq-blue) !important;
}
#chatbot-window {
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    box-shadow: 0 24px 60px rgba(16, 24, 40, 0.2) !important;
}
.chatbot-header {
    background: var(--pq-blue) !important;
}
.chatbot-header-info h6,
.chatbot-header-info small {
    color: #ffffff !important;
}
.chatbot-messages {
    background: var(--pq-alt) !important;
}
.chat-msg.bot .chat-bubble {
    background: #ffffff !important;
    border: 1px solid var(--pq-line) !important;
    color: var(--pq-ink) !important;
}
.chat-suggestions button {
    background: #ffffff !important;
    border-color: var(--pq-field) !important;
    color: var(--pq-blue) !important;
}
.chat-suggestions button:hover {
    background: var(--pq-blue) !important;
    color: #ffffff !important;
}
.chatbot-input {
    background: #ffffff !important;
    border-top-color: var(--pq-line) !important;
}
.chatbot-input input {
    background: var(--pq-alt) !important;
    border-color: var(--pq-field) !important;
    color: var(--pq-ink) !important;
    -webkit-text-fill-color: var(--pq-ink) !important;
}
.chatbot-input input::placeholder {
    color: #8a91a0 !important;
}
.typing-indicator span {
    background: var(--pq-blue) !important;
}

}
