/**
 * Nsite — shell visuel type OpenAI / LibreChat + composants shadcn (dimensions Metronic/shadcn-kit).
 * Variables de design : `cms-shadcn-tokens.css` (:root + alias --oai-*).
 * Chargé après style.css + cms-shadcn-tokens.css.
 */

body {
    background-color: var(--oai-bg) !important;
    color: var(--oai-text) !important;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

/* ========== Header shell (flex, sans float) — réf. OpenAI ========== */
.header.nsite-shell-header {
    float: none !important;
    background-color: var(--shell-header-bg) !important;
    border-bottom: 1px solid var(--oai-header-border) !important;
    box-shadow: none !important;
}

.header.nsite-shell-header.sticky-bar.stick {
    background-color: var(--shell-header-bg) !important;
    border-bottom: 1px solid var(--oai-header-border) !important;
    box-shadow: var(--oai-header-sticky-shadow) !important;
}

.header .main-header.nsite-shell-header__bar,
.header .main-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    min-height: var(--oai-header-h) !important;
    padding-top: 0.375rem !important;
    padding-bottom: 0.375rem !important;
}

.header .header-left.nsite-shell-header__left,
.header .header-left {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    gap: 0.75rem !important;
}

@media (min-width: 1200px) {
    .header .header-left.nsite-shell-header__left,
    .header .header-left {
        gap: 1.5rem !important;
    }
}

.header .header-logo.nsite-shell-header__logo,
.header .header-logo {
    flex: 0 0 auto !important;
    max-width: 9rem !important;
    width: auto !important;
}

.header .header-logo img {
    max-height: 2rem;
    width: auto;
    object-fit: contain;
}

.header .header-nav.nsite-shell-header__nav,
.header .header-nav {
    display: flex !important;
    align-items: center !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
}

.header .nav-main-menu {
    width: 100% !important;
}

.header .main-menu.nsite-shell-menu,
.header .main-menu {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.25rem !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.header .main-menu > li {
    float: none !important;
    padding-right: 0 !important;
}

.header .main-menu > li > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.35rem !important;
    min-height: 2.5rem !important;
    padding: 0.375rem 0.875rem !important;
    border-radius: var(--oai-radius) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    line-height: 1.25rem !important;
    color: var(--oai-nav-link) !important;
    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}

.header .main-menu > li > a:hover,
.header .main-menu > li.active > a {
    color: var(--oai-nav-link-hover) !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
}

.header .main-menu > li.has-children > a::after {
    opacity: 0.65;
}

.header .header-right.nsite-shell-header__actions,
.header .header-right {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex: 0 0 auto !important;
    width: auto !important;
    gap: 0.5rem !important;
    padding: 0 !important;
    margin-left: auto !important;
}

@media (min-width: 768px) {
    .header .header-right.nsite-shell-header__actions,
    .header .header-right {
        gap: 0.75rem !important;
    }
}

/* Bouton icône recherche (Metronic / shadcn icon size) */
.nsite-icon-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2.25rem !important;
    height: 2.25rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid transparent !important;
    border-radius: var(--oai-radius) !important;
    background: transparent !important;
    color: var(--oai-text-muted) !important;
    cursor: pointer !important;
    transition:
        background-color 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease;
}

.nsite-icon-btn:hover {
    color: #fafafa !important;
    background-color: rgba(255, 255, 255, 0.08) !important;
    border-color: var(--oai-border) !important;
}

.nsite-icon-btn:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.header.nsite-shell-header .nsite-icon-btn {
    color: var(--oai-nav-link) !important;
}

.header.nsite-shell-header .nsite-icon-btn:hover {
    color: var(--oai-nav-link-hover) !important;
}

/* Boutons pilule type OpenAI (Connexion + CTA principal) */
.nsite-header-ctas {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
}

@media (min-width: 768px) {
    .nsite-header-ctas {
        gap: 0.625rem !important;
    }
}

.nsite-header-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.375rem !important;
    min-height: 2.5rem !important;
    padding: 0 1rem !important;
    border-radius: var(--radius) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    line-height: 1.25rem !important;
    text-decoration: none !important;
    border: 1px solid transparent !important;
    white-space: nowrap !important;
    transition:
        background-color 0.15s ease,
        color 0.15s ease,
        border-color 0.15s ease,
        box-shadow 0.15s ease !important;
}

.nsite-header-btn__icon {
    flex-shrink: 0 !important;
    opacity: 0.92 !important;
}

.nsite-header-btn--secondary {
    background-color: var(--secondary) !important;
    color: var(--secondary-foreground) !important;
    border-color: var(--border) !important;
}

.nsite-header-btn--secondary:hover {
    background-color: color-mix(in srgb, var(--secondary) 88%, #ffffff) !important;
    color: var(--secondary-foreground) !important;
}

.nsite-header-btn--primary {
    background-color: var(--primary) !important;
    color: var(--primary-foreground) !important;
    border-color: var(--primary) !important;
}

.nsite-header-btn--primary:hover {
    background-color: color-mix(in srgb, var(--primary) 90%, #ffffff) !important;
    color: var(--primary-foreground) !important;
    border-color: color-mix(in srgb, var(--primary) 90%, #ffffff) !important;
}

.nsite-header-btn:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 2px var(--background),
        0 0 0 4px var(--ring) !important;
}

.nsite-header-btn--primary:focus-visible {
    box-shadow:
        0 0 0 2px var(--background),
        0 0 0 4px var(--ring) !important;
}

/* Typographie */
h1,
h2,
h3,
h4,
h5,
h6,
.text-heading-1,
.text-heading-2,
.text-heading-3,
.text-heading-4,
.text-heading-5,
.text-heading-6,
.text-heading-7,
.font-bold,
strong {
    color: #fafafa !important;
    letter-spacing: -0.02em;
}

p,
li,
.text-body,
.ck-content {
    color: var(--oai-text-muted);
}

a {
    color: #d4d4d4 !important;
}

a:hover {
    color: #fafafa !important;
}

/* Hiérarchie type doc OpenAI (pages contenu principal) */
.nsite-oai-doc h1,
.nsite-oai-doc .text-heading-1 {
    font-size: clamp(1.875rem, 2.8vw, 2.25rem) !important;
    line-height: 1.15 !important;
    font-weight: 600 !important;
}

.nsite-oai-doc h2,
.nsite-oai-doc .text-heading-2 {
    font-size: clamp(1.5rem, 2.2vw, 1.75rem) !important;
    line-height: 1.2 !important;
    font-weight: 600 !important;
}

.nsite-oai-doc h3,
.nsite-oai-doc .text-heading-3 {
    font-size: clamp(1.25rem, 1.8vw, 1.375rem) !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
}

.nsite-oai-doc h4,
.nsite-oai-doc .text-heading-4 {
    font-size: 1.125rem !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

.nsite-oai-doc h5,
.nsite-oai-doc h6,
.nsite-oai-doc .text-heading-5,
.nsite-oai-doc .text-heading-6 {
    font-size: 1rem !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
}

.nsite-oai-doc p,
.nsite-oai-doc li {
    font-size: 0.9375rem !important;
    line-height: 1.65 !important;
}

.nsite-oai-page-hero h1,
.nsite-oai-page-hero .h1 {
    font-size: clamp(1.875rem, 3vw, 2.5rem) !important;
    line-height: 1.12 !important;
    font-weight: 600 !important;
    letter-spacing: -0.03em !important;
}

.text-muted,
.color-gray-500,
.color-grey-300,
.text-semibold {
    color: var(--oai-text-dim) !important;
}

.section,
.page-content,
.bg-gray-100 {
    background-color: transparent !important;
}

.container,
.container-fluid {
    color: inherit;
}

/* Header top */
.header-top {
    background-color: var(--oai-bg-soft) !important;
    border-bottom: 1px solid var(--oai-border) !important;
}

.header-top a,
.header-top .dropdown-toggle,
.header-top .text-white {
    color: var(--oai-text-muted) !important;
}

.header-top a:hover {
    color: #fafafa !important;
}

.header-top .btn.dropdown-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--oai-btn-h-sm) !important;
    padding: 0.25rem 0.625rem !important;
    font-size: 0.8125rem !important;
    border-radius: var(--oai-radius) !important;
    border: 1px solid var(--input, var(--oai-border-input)) !important;
    background-color: transparent !important;
    color: var(--muted-foreground) !important;
    box-shadow: none !important;
}

.header-top .btn.dropdown-toggle:hover {
    background-color: var(--accent) !important;
    color: var(--foreground) !important;
}

.header-top .btn.dropdown-toggle:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.header {
    background-color: var(--shell-header-bg) !important;
    border-bottom: 1px solid var(--oai-header-border) !important;
}

.header.sticky-bar.stick,
.header.header-absolute.sticky-bar.stick {
    background-color: var(--shell-header-bg) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--oai-header-sticky-shadow) !important;
}

/* Mega-menu / dropdowns — forme carte */
.header .main-menu li div.sub-menu,
.header .main-menu li > ul {
    background-color: var(--oai-surface) !important;
    border: 1px solid var(--oai-border) !important;
    border-bottom: none !important;
    border-radius: var(--oai-radius-lg) !important;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.55) !important;
    padding: 0.75rem 0 !important;
}

.header .main-menu li div.sub-menu .menu-inner li a,
.header .main-menu li > ul li a {
    color: var(--oai-text) !important;
    border-radius: var(--oai-radius) !important;
    display: flex !important;
    align-items: center !important;
    min-height: 2.25rem !important;
}

.header .main-menu li div.sub-menu .menu-inner li a:hover {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
}

.burger-icon > span::before,
.burger-icon > span::after {
    background-color: #e5e5e5 !important;
}

/* ========== Boutons shadcn-like (rounded-md, h-10, ring focus) ========== */
/* CTA principal : surface claire type OpenAI (lisible même si --primary-color est noir dans le CMS) */
.nsite-btn-primary,
.btn.btn-brand-1,
.btn-brand-1-full {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--oai-btn-h) !important;
    height: auto !important;
    padding: 0.5rem 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    line-height: 1.25rem !important;
    border-radius: var(--oai-radius) !important;
    background-color: #fafafa !important;
    border: 1px solid #e5e5e5 !important;
    color: #0a0a0a !important;
    letter-spacing: 0.01em;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease,
        box-shadow 0.15s ease;
}

.nsite-btn-primary:focus-visible,
.btn.btn-brand-1:focus-visible,
.btn-brand-1-full:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.btn.btn-brand-1 svg,
.btn-brand-1-full svg {
    color: #0a0a0a !important;
    flex-shrink: 0;
}

.btn.btn-brand-1:hover,
.btn-brand-1-full:hover {
    background-color: #e5e5e5 !important;
    border-color: #d4d4d4 !important;
    color: #0a0a0a !important;
}

.btn-sm.btn-brand-1,
.btn.btn-sm.btn-brand-1 {
    min-height: var(--oai-btn-h-sm) !important;
    padding: 0.375rem 0.75rem !important;
    font-size: 0.8125rem !important;
}

.btn.btn-brand-1-small {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--oai-btn-h-sm) !important;
    padding: 0.375rem 0.75rem !important;
    font-size: 0.8125rem !important;
    line-height: 1.25rem !important;
    border-radius: var(--oai-radius) !important;
    background-color: #fafafa !important;
    border: 1px solid #e5e5e5 !important;
    color: #0a0a0a !important;
    font-weight: 600 !important;
}

.btn.btn-brand-1-small:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.btn.btn-brand-1-small:hover {
    background-color: #e5e5e5 !important;
    border-color: #d4d4d4 !important;
    color: #0a0a0a !important;
}

.btn.btn-default,
.btn-outline-primary,
.btn-outline-secondary {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--oai-btn-h) !important;
    padding: 0.5rem 1rem !important;
    border-radius: var(--oai-radius) !important;
    border: 1px solid var(--input, var(--oai-border-input)) !important;
    color: #fafafa !important;
    background: transparent !important;
    font-size: 0.875rem !important;
}

.btn.btn-default:hover {
    background-color: var(--oai-surface) !important;
    border-color: #525252 !important;
    color: #fff !important;
}

.btn-primary {
    border-radius: var(--oai-radius) !important;
    min-height: var(--oai-btn-h) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.btn.btn-tag,
.btn-tag {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 1.75rem !important;
    padding: 0.125rem 0.5rem !important;
    background-color: var(--oai-surface) !important;
    color: var(--oai-text) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: var(--oai-radius) !important;
    font-size: 0.75rem !important;
}

/* Connexion sociale — outline shadcn (ne cible pas .btn-full seul, ex. CTA register) */
.btn.btn-border-80 {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: var(--oai-btn-h) !important;
    padding: 0.5rem 1rem !important;
    border-radius: var(--oai-radius) !important;
    border: 1px solid var(--input, var(--oai-border-input)) !important;
    background: transparent !important;
    color: var(--foreground) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
}

.btn.btn-border-80.btn-full {
    width: 100%;
}

.btn.btn-border-80:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.btn.btn-border-80:hover {
    background-color: var(--accent) !important;
    color: var(--accent-foreground) !important;
}

/* ========== Champs formulaires = shadcn Input (h-10, px-3 py-2, ring) ========== */
.form-control,
.form-select,
textarea.form-control,
input.form-control,
select.form-control,
.contact-form .contact-form-input,
.input-group .form-control {
    display: block;
    width: 100%;
    min-height: var(--oai-input-h) !important;
    height: var(--oai-input-h) !important;
    padding: 0.5rem 0.75rem !important; /* py-2 px-3 */
    font-size: var(--oai-font-size-input) !important;
    line-height: var(--oai-line-input) !important;
    border-radius: var(--oai-radius) !important;
    border: 1px solid var(--input, var(--oai-border-input)) !important;
    background-color: var(--oai-bg-soft) !important;
    color: #fafafa !important;
    box-shadow: none !important;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

textarea.form-control {
    min-height: 6rem !important;
    height: auto !important;
}

.form-control::placeholder,
.form-select::placeholder,
.contact-form .contact-form-input::placeholder {
    color: var(--oai-text-dim) !important;
    opacity: 1;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
input.form-control:focus,
select.form-control:focus,
.contact-form .contact-form-input:focus {
    border-color: #737373 !important;
    background-color: var(--oai-bg-soft) !important;
    color: #fafafa !important;
    outline: none !important;
    box-shadow:
        0 0 0 var(--oai-ring-offset) var(--oai-bg),
        0 0 0 calc(var(--oai-ring-offset) + 2px) var(--oai-ring) !important;
}

.form-label,
label:not(.btn) {
    color: var(--oai-text-muted) !important;
    font-size: 0.8125rem !important;
    font-weight: 500;
    margin-bottom: 0.375rem;
}

.form-floating > label {
    color: var(--oai-text-dim) !important;
}

.form-check-input {
    width: 1rem;
    height: 1rem;
    border-radius: 0.25rem;
    background-color: var(--oai-bg-soft);
    border-color: var(--input, var(--oai-border-input));
}

.form-check-input:checked {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.input-group-text {
    display: inline-flex;
    align-items: center;
    min-height: var(--oai-input-h) !important;
    padding: 0.5rem 0.75rem !important;
    background-color: var(--oai-surface);
    border: 1px solid var(--input, var(--oai-border-input));
    border-radius: var(--oai-radius) !important;
    color: var(--oai-text-muted);
    font-size: var(--oai-font-size-input);
}

/* ========== Recherche plein écran type capture OpenAI (#000, trait ~50vw, pas de carte) ========== */
body:has(#search-autocomplete-modal.show) .header-top {
    display: none !important;
}

body:has(#search-autocomplete-modal.show) .modal-backdrop.show {
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    background-color: var(--shell-header-bg) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body:has(#search-autocomplete-modal.show) .header.nsite-shell-header {
    z-index: 20010 !important;
}

/* Repli sans :has() (navigateurs anciens) — mêmes règles que ci-dessus */
body.nsite-search-open .header-top {
    display: none !important;
}

body.nsite-search-open .modal-backdrop.show {
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100dvh !important;
    background-color: var(--shell-header-bg) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.nsite-search-open .header.nsite-shell-header {
    z-index: 20010 !important;
}

body.nsite-search-open .header.nsite-shell-header.sticky-bar.stick {
    z-index: 20010 !important;
}

#search-autocomplete-modal.nsite-search-modal {
    z-index: 20000 !important;
}

/* Racine .modal = calque #000 plein viewport (OpenAI, aucune fuite sous le header) */
#search-autocomplete-modal.nsite-search-modal.modal.show {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background-color: var(--shell-header-bg) !important;
}

/* Annuler toute « carte » Bootstrap sur .modal-content de ce modal */
#search-autocomplete-modal .modal-content {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    background: transparent !important;
}

.nsite-search-modal.modal {
    pointer-events: none !important;
}

.nsite-search-modal .modal-dialog {
    pointer-events: auto !important;
}

.nsite-search-modal__dialog {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 clamp(1rem, 4vw, 2.5rem) !important;
    margin-top: calc(var(--oai-header-h) + clamp(2.25rem, 10vh, 5.5rem)) !important;
}

.nsite-search-modal.modal.fade .modal-dialog {
    opacity: 0;
    transform: translateY(-0.35rem);
    transition:
        opacity 0.16s ease-out,
        transform 0.16s ease-out;
}

.nsite-search-modal.modal.show .modal-dialog {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .nsite-search-modal.modal.fade .modal-dialog {
        transition: none !important;
        transform: none !important;
    }
}

.nsite-search-modal__content {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 0 !important;
    flex: 0 1 auto !important;
    color: #fafafa !important;
    background: transparent !important;
    position: relative !important;
}

.nsite-search-modal__close--floating {
    position: fixed !important;
    top: max(0.65rem, env(safe-area-inset-top, 0px)) !important;
    right: max(0.65rem, env(safe-area-inset-right, 0px)) !important;
    z-index: 20020 !important;
    padding: 0.5rem !important;
    margin: 0 !important;
    filter: invert(1) grayscale(1) !important;
    opacity: 0.8 !important;
    pointer-events: auto !important;
}

.nsite-search-modal__close--floating:hover {
    opacity: 1 !important;
}

.nsite-search-modal__body {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: min(52rem, 94vw) !important;
    margin: 0 auto !important;
    padding: 0 !important;
    flex: 0 1 auto !important;
    min-height: 0 !important;
}

.nsite-search-oai-wrap {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    gap: 2rem !important;
    min-height: 0 !important;
}

.nsite-search-oai__shell {
    width: min(720px, 50vw) !important;
    max-width: 92vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

@media (max-width: 767.98px) {
    .nsite-search-oai__shell {
        width: 100% !important;
        max-width: 100% !important;
    }
}

.nsite-search-oai {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
}

.nsite-search-oai__row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 1rem !important;
    flex-wrap: nowrap !important;
}

.nsite-search-oai__input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: auto !important;
    padding: 0.35rem 0 0.65rem !important;
    font-size: clamp(1.35rem, 3.8vw, 2rem) !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.02em !important;
    color: #fafafa !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.nsite-search-oai__input::placeholder {
    color: #737373 !important;
    opacity: 1 !important;
}

.nsite-search-oai__input:focus {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    color: #ffffff !important;
    outline: none !important;
}

.nsite-search-oai__rule {
    height: 1px !important;
    margin-top: 0 !important;
    background: var(--oai-search-rule) !important;
    width: 100% !important;
}

.nsite-search-oai__submit {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: 2.75rem !important;
    height: 2.75rem !important;
    padding: 0 !important;
    margin-bottom: 0 !important;
    border: none !important;
    border-radius: 9999px !important;
    background: var(--oai-search-submit-bg) !important;
    color: #fafafa !important;
    cursor: pointer !important;
    transition:
        background-color 0.15s ease,
        color 0.15s ease !important;
}

.nsite-search-oai__submit:hover {
    background: var(--oai-search-submit-bg-hover) !important;
    color: #ffffff !important;
}

.nsite-search-oai__submit:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 2px var(--shell-header-bg),
        0 0 0 4px var(--oai-ring) !important;
}

.nsite-search-oai__submit.button-loading {
    pointer-events: none !important;
    opacity: 0.65 !important;
}

.nsite-search-oai__message {
    width: min(720px, 50vw) !important;
    max-width: 92vw !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    font-size: 0.875rem !important;
    min-height: 1.25rem;
}

#search-autocomplete-modal .search-results {
    width: 100% !important;
    max-width: min(52rem, 94vw) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-height: min(44vh, 22rem) !important;
    overflow: hidden auto !important;
    padding-right: 0.25rem !important;
    scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
    scrollbar-width: thin;
}

#search-autocomplete-modal .search-results::-webkit-scrollbar {
    width: 6px;
}

#search-autocomplete-modal .search-results::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.22);
    border-radius: 999px;
}

/* Liste résultats type OpenAI (méta + titre + extrait + vignette) */
#search-autocomplete-modal .nsite-search-results-oai {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #a1a1aa !important;
}

.nsite-search-results-oai__label {
    margin: 0 0 0.25rem !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: #71717a !important;
}

.nsite-search-results-oai__item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 6.5rem !important;
    gap: 1.25rem 1.5rem !important;
    align-items: start !important;
    padding: 1.35rem 0 !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.nsite-search-results-oai__item--no-thumb {
    grid-template-columns: minmax(0, 1fr) !important;
}

.nsite-search-results-oai__item:first-of-type {
    padding-top: 0 !important;
}

.nsite-search-results-oai__meta {
    margin: 0 0 0.4rem !important;
    font-size: 0.8125rem !important;
    line-height: 1.4 !important;
    color: #a1a1aa !important;
}

.nsite-search-results-oai__type {
    color: #a1a1aa !important;
}

.nsite-search-results-oai__date {
    color: #71717a !important;
}

.nsite-search-results-oai__title {
    margin: 0 0 0.5rem !important;
    font-size: clamp(1rem, 2.4vw, 1.125rem) !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.02em !important;
}

.nsite-search-results-oai__title a {
    color: #ffffff !important;
    text-decoration: none !important;
}

.nsite-search-results-oai__title a:hover {
    color: #fafafa !important;
    opacity: 0.88 !important;
}

.nsite-search-results-oai__excerpt {
    margin: 0 !important;
    font-size: 0.875rem !important;
    line-height: 1.55 !important;
    color: #a1a1aa !important;
}

.nsite-search-results-oai__product-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.5rem 0.75rem !important;
    margin-top: 0.5rem !important;
    font-size: 0.875rem !important;
}

.nsite-search-results-oai__reviews {
    color: #71717a !important;
}

.nsite-search-results-oai__price {
    color: #fafafa !important;
    font-weight: 600 !important;
}

.nsite-search-results-oai__price-old {
    color: #71717a !important;
    text-decoration: line-through !important;
    font-weight: 400 !important;
}

.nsite-search-results-oai__thumb {
    display: block !important;
    width: 6.5rem !important;
    height: 6.5rem !important;
    flex-shrink: 0 !important;
    border-radius: 0.5rem !important;
    overflow: hidden !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    background: #18181b !important;
}

.nsite-search-results-oai__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

body:has(#search-autocomplete-modal.show) .header.nsite-shell-header.sticky-bar.stick,
body.nsite-search-open .header.nsite-shell-header.sticky-bar.stick {
    z-index: 20010 !important;
}

.select2-container--default .select2-selection--single {
    min-height: var(--oai-input-h) !important;
    height: var(--oai-input-h) !important;
    border-radius: var(--oai-radius) !important;
    border-color: var(--oai-border-input) !important;
    background: var(--oai-bg-soft) !important;
    display: flex !important;
    align-items: center !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #fafafa !important;
    line-height: var(--oai-input-h) !important;
    font-size: var(--oai-font-size-input) !important;
    padding-left: 0.75rem !important;
}

/* ========== Cartes — shadcn Card (rounded-lg, border, pas d’ombre) ========== */
.card-blog-grid,
.card-blog-list,
.card-testimonial-grid,
.card-testimonial-list,
.product-item-2,
.sidebar,
.auth-card,
.card,
.card-grid-inner,
.box-border,
.comments-area .single-comment,
.panel,
.box-skew,
.bg-white {
    background-color: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    color: var(--muted-foreground) !important;
    box-shadow: none !important;
}

.card-blog-grid .card-image img,
.card-blog-list .card-image img {
    border-radius: var(--oai-radius) !important;
}

.card-blog-grid .card-info a,
.card-blog-grid .title,
.card-testimonial-grid .text-lg,
.product-item-2 .product-name {
    color: #fafafa !important;
}

.card-blog-grid .date-post,
.card-blog-grid .time-read {
    color: var(--oai-text-dim) !important;
}

@media (hover: hover) and (pointer: fine) {
    .card-blog-grid:hover,
    .card-testimonial-grid:hover,
    .product-item-2:hover {
        border-color: color-mix(in srgb, var(--border) 70%, #ffffff) !important;
        background-color: var(--accent) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .card-blog-grid,
    .card-testimonial-grid,
    .product-item-2,
    .header .main-menu > li > a {
        transition: none !important;
    }
}

.table,
.table-compare {
    color: var(--oai-text-muted);
    --bs-table-bg: transparent;
    --bs-table-color: var(--oai-text-muted);
}

.table thead th,
.table-compare thead tr th {
    background-color: var(--oai-surface) !important;
    color: #fafafa !important;
    border-color: var(--oai-border) !important;
    font-weight: 600;
    font-size: 0.8125rem;
    padding: 0.75rem 1rem !important;
}

.table tbody td,
.table-compare tbody tr td {
    border-color: var(--oai-border) !important;
    color: var(--oai-text-muted) !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.875rem;
}

.faq-section .accordion-item,
.accordion .accordion-item {
    background-color: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
    margin-bottom: 0.5rem;
    overflow: hidden;
}

.faq-section .accordion-button,
.accordion .accordion-button {
    background-color: transparent !important;
    color: var(--foreground) !important;
    font-size: 0.875rem;
    font-weight: 500;
    min-height: 3rem;
    padding: 0.75rem 1rem !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

.faq-section .accordion-button:focus,
.accordion .accordion-button:focus {
    box-shadow: none !important;
    border-color: transparent !important;
    outline: none !important;
}

.faq-section .accordion-button:focus-visible,
.accordion .accordion-button:focus-visible {
    outline: none !important;
    box-shadow:
        0 0 0 2px var(--background),
        0 0 0 4px var(--ring) !important;
}

.faq-section .accordion-button:not(.collapsed),
.accordion .accordion-button:not(.collapsed) {
    color: var(--foreground) !important;
    background-color: var(--accent) !important;
}

.faq-section .accordion-body,
.accordion .accordion-body {
    color: var(--muted-foreground);
    font-size: 0.875rem;
    padding: 0 1rem 1rem !important;
}

.breadcrumb,
.breadcrumb-item a,
.page-header .breadcrumb-item a {
    color: var(--oai-text-dim) !important;
}

.breadcrumb-item.active {
    color: var(--oai-text-muted) !important;
}

.page-header h1,
.page-header .page-title {
    color: #fafafa !important;
}

.footer.nsite-footer-oai {
    --footer-background-color: var(--oai-bg) !important;
    --footer-bottom-background-color: var(--oai-bg) !important;
    --footer-heading-color: #a1a1aa !important;
    --footer-text-color: #d4d4d8 !important;
}

.footer.nsite-footer-oai .footer-1,
.footer.nsite-footer-oai .footer-2 {
    background-color: var(--oai-bg) !important;
    background-image: none !important;
}

.footer.nsite-footer-oai .footer-1 {
    border-top: 1px solid var(--oai-border);
    padding-top: 3.5rem !important;
    padding-bottom: 2.5rem !important;
}

.footer.nsite-footer-oai .footer-2 {
    border-top: 1px solid var(--oai-border);
    padding-top: 1.25rem !important;
    padding-bottom: 1.5rem !important;
}

.footer.nsite-footer-oai .footer-bottom {
    border-top: none !important;
    background-color: transparent !important;
    padding: 0 !important;
}

/* Grille principale : remplace les largeurs Metronic par une grille fluide */
.footer.nsite-footer-oai .nsite-footer-oai__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem 2rem;
    margin: 0 !important;
    justify-content: flex-start;
}

.footer.nsite-footer-oai .nsite-footer-oai__grid > [class*='col-'] {
    flex: 1 1 12rem;
    max-width: 100%;
    width: auto !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__grid > .width-20,
.footer.nsite-footer-oai .nsite-footer-oai__widget--brand {
    flex: 1 1 16rem;
    max-width: 22rem;
}

.footer.nsite-footer-oai .width-20,
.footer.nsite-footer-oai .width-16,
.footer.nsite-footer-oai .width-23 {
    width: auto !important;
}

/* Titres de colonnes type OpenAI (gris, petits, uppercase) */
.footer.nsite-footer-oai .nsite-footer-oai__col-title,
.footer.nsite-footer-oai .nsite-footer-oai__widget h5,
.footer.nsite-footer-oai .nsite-footer-oai__widget h6 {
    color: #8e8e8e !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    margin-bottom: 1rem !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__widget p,
.footer.nsite-footer-oai .nsite-footer-oai__widget .font-md,
.footer.nsite-footer-oai .nsite-footer-oai__widget .font-sm {
    color: #a3a3a3 !important;
    line-height: 1.55 !important;
}

.footer.nsite-footer-oai .menu-footer {
    display: block !important;
}

.footer.nsite-footer-oai .menu-footer li {
    margin-bottom: 0.35rem !important;
}

.footer.nsite-footer-oai .menu-footer a {
    color: #fafafa !important;
    font-size: 0.9375rem !important;
    font-weight: 400 !important;
    padding: 0.2rem 0 !important;
    border-radius: var(--oai-radius);
    text-decoration: none !important;
}

.footer.nsite-footer-oai .menu-footer a:hover {
    color: #d4d4d4 !important;
    padding-left: 0 !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__widget img {
    max-height: 2rem;
    width: auto;
}

.footer.nsite-footer-oai .nsite-footer-oai__widget--apps .d-flex img {
    max-height: 2.5rem;
    border-radius: var(--oai-radius);
    opacity: 0.92;
}

.footer.nsite-footer-oai .nsite-footer-oai__widget--apps .d-flex a:hover img {
    opacity: 1;
}

/* Barre inférieure : réseaux | légal + copyright | langue */
.footer.nsite-footer-oai .nsite-footer-oai__subbar-inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
}

@media (min-width: 992px) {
    .footer.nsite-footer-oai .nsite-footer-oai__subbar-inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 1.5rem;
    }
}

.footer.nsite-footer-oai .nsite-footer-oai__subbar-left {
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (min-width: 992px) {
    .footer.nsite-footer-oai .nsite-footer-oai__subbar-left {
        justify-content: flex-start;
        flex: 0 0 auto;
    }
}

.footer.nsite-footer-oai .nsite-footer-oai__social {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.footer.nsite-footer-oai .nsite-footer-oai__social-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--oai-radius);
    opacity: 0.85;
    transition: opacity 0.15s ease;
}

.footer.nsite-footer-oai .nsite-footer-oai__social-link:hover {
    opacity: 1;
}

.footer.nsite-footer-oai .nsite-footer-oai__social-link img {
    width: 1.25rem;
    height: 1.25rem;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.footer.nsite-footer-oai .nsite-footer-oai__subbar-center {
    flex: 1 1 auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.footer.nsite-footer-oai .nsite-footer-oai__legal-list {
    margin: 0 !important;
    padding: 0 !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__legal-list li {
    display: inline-block !important;
    margin: 0 0.35rem !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__legal-list a {
    color: #fafafa !important;
    font-size: 0.8125rem !important;
    padding: 0.15rem 0.35rem !important;
    text-decoration: underline !important;
    text-underline-offset: 0.15em;
}

.footer.nsite-footer-oai .nsite-footer-oai__legal-list a:hover {
    color: #e5e5e5 !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__copyright {
    margin: 0 !important;
    font-size: 0.8125rem !important;
    color: #8e8e8e !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__subbar-right {
    display: flex;
    justify-content: center;
}

@media (min-width: 992px) {
    .footer.nsite-footer-oai .nsite-footer-oai__subbar-right {
        justify-content: flex-end;
        flex: 0 0 auto;
    }
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .box-dropdown-cart {
    display: inline-flex !important;
    align-items: center;
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .box-dropdown-cart > span.font-lg {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem !important;
    border-radius: 9999px !important;
    background-color: var(--oai-surface) !important;
    border: 1px solid var(--oai-border) !important;
    cursor: pointer;
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .color-grey-900,
.footer.nsite-footer-oai .nsite-footer-oai__lang .arrow-down {
    color: #fafafa !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .dropdown-account {
    right: 0;
    left: auto;
}

/* Bouton retour en haut */
#scrollUp {
    width: 2.75rem !important;
    height: 2.75rem !important;
    border-radius: 9999px !important;
    background-color: #14b8a6 !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35) !important;
}

#scrollUp i {
    line-height: 2.75rem !important;
    font-size: 1.1rem !important;
}

.footer.nsite-footer-oai .color-grey-400 {
    color: #a3a3a3 !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .d-none.d-lg-block {
    display: inline-flex !important;
}

.footer.nsite-footer-oai .nsite-footer-oai__lang .nav-tabs-mobile,
.footer.nsite-footer-oai .nsite-footer-oai__lang .tab-content {
    display: none !important;
}

.modal-content {
    background-color: var(--oai-surface) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: var(--oai-radius-lg) !important;
    color: var(--oai-text);
}

.modal-header,
.modal-footer {
    border-color: var(--oai-border) !important;
    padding: 0.75rem 1rem !important;
}

.modal .btn-close {
    filter: invert(1);
    opacity: 0.7;
}

.pagination li a,
.page-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    min-height: 2.25rem;
    border-radius: var(--oai-radius) !important;
    background-color: var(--oai-surface) !important;
    border-color: var(--oai-border) !important;
    color: var(--oai-text-muted) !important;
    font-size: 0.875rem;
}

.page-link:hover,
.pagination li a:hover {
    background-color: var(--oai-surface-hover) !important;
    color: #fafafa !important;
}

.auth-card,
.banner-login,
.line-login,
.line-register {
    background-color: var(--oai-surface) !important;
}

.cart-sidebar {
    background-color: var(--oai-surface) !important;
    border-left-color: var(--oai-border) !important;
    color: var(--oai-text);
}

.cart-sidebar .cart-header {
    border-bottom-color: var(--oai-border) !important;
}

#toast-container > div {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
    border-radius: var(--oai-radius-lg);
}

.box-newsletter,
.bg-1,
.bg-2,
.bg-3,
.bg-4,
.bg-5 {
    background-color: var(--oai-surface) !important;
    color: var(--oai-text-muted) !important;
}

.box-newsletter h1,
.box-newsletter h2,
.box-newsletter h3,
.box-newsletter .color-white {
    color: #fafafa !important;
}

.oai-light-section {
    background-color: #fafafa !important;
    color: #171717 !important;
}

.oai-light-section h1,
.oai-light-section h2,
.oai-light-section h3 {
    color: #0a0a0a !important;
}

/* ========== Dropdowns (langue, compte, devises) : forme shadcn + texte lisible sur fond clair ==========
   Les liens globaux du mode sombre ne doivent pas s’appliquer dans les panneaux blancs du thème. */

.header .dropdown-account,
.header .dropdown-cart,
.box-dropdown-cart .dropdown-account {
    background-color: #fafafa !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: var(--oai-radius-lg) !important;
    box-shadow:
        0 4px 6px -1px rgb(0 0 0 / 0.08),
        0 10px 28px rgb(0 0 0 / 0.12) !important;
    padding: 0.5rem 0.75rem !important;
}

.header .dropdown-account ul,
.box-dropdown-cart .dropdown-account ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.header .dropdown-account ul li,
.box-dropdown-cart .dropdown-account ul li {
    margin: 0 !important;
    display: block !important;
}

.header .dropdown-account a,
.header .dropdown-account a span,
.box-dropdown-cart .dropdown-account a,
.box-dropdown-cart .dropdown-account a span {
    color: #171717 !important;
    border-radius: var(--oai-radius) !important;
}

.header .dropdown-account a,
.box-dropdown-cart .dropdown-account a {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    min-height: 2.25rem !important;
    padding: 0.375rem 0.5rem !important;
    text-decoration: none !important;
}

.header .dropdown-account a:hover,
.box-dropdown-cart .dropdown-account a:hover {
    color: #0a0a0a !important;
    background-color: rgba(0, 0, 0, 0.06) !important;
}

/* Libellé « Français » sur le header sombre */
.header .box-dropdown-cart .icon-account,
.header .box-dropdown-cart .icon-account .color-grey-900 {
    color: #e5e5e5 !important;
}

.header-top .dropdown-menu {
    background-color: #fafafa !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: var(--oai-radius-lg) !important;
    padding: 0.35rem 0 !important;
    box-shadow: 0 10px 28px rgb(0 0 0 / 0.12) !important;
}

.header-top .dropdown-menu .dropdown-item {
    color: #171717 !important;
    font-size: 0.875rem !important;
    border-radius: var(--oai-radius) !important;
    padding: 0.375rem 0.75rem !important;
}

.header-top .dropdown-menu .dropdown-item:hover,
.header-top .dropdown-menu .dropdown-item:focus {
    background-color: rgba(0, 0, 0, 0.06) !important;
    color: #0a0a0a !important;
}

/* Menus Bootstrap génériques dans le header (si utilisés) */
.header .dropdown-menu {
    background-color: #fafafa !important;
    border: 1px solid #e5e5e5 !important;
    border-radius: var(--oai-radius-lg) !important;
}

.header .dropdown-menu .dropdown-item {
    color: #171717 !important;
}

.header .dropdown-menu .dropdown-item:hover {
    background-color: rgba(0, 0, 0, 0.06) !important;
    color: #0a0a0a !important;
}

/* =============================================================================
   Pages CMS (À propos, etc.) — rendu type OpenAI / shadcn sur fond noir
   Conteneur : layouts page-detail + default (main.nsite-oai-doc).
   ============================================================================= */

main.nsite-oai-doc {
    flex: 1 0 auto;
    width: 100%;
    background-color: var(--oai-bg);
}

.nsite-oai-doc__body.section,
.nsite-oai-doc .section {
    background-color: transparent !important;
}

.nsite-oai-doc__container.container {
    max-width: 80rem !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

@media (min-width: 768px) {
    .nsite-oai-doc__container.container {
        padding-left: 2rem !important;
        padding-right: 2rem !important;
    }
}

.nsite-oai-page-hero {
    padding-bottom: 2.5rem !important;
    border-bottom: 1px solid var(--oai-border);
    background: transparent !important;
}

.nsite-oai-page-hero .box-bg-term {
    display: none;
}

.nsite-oai-page-hero .breadcrumbs {
    margin-bottom: 1.5rem !important;
}

.nsite-oai-page-hero .breadcrumbs ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nsite-oai-page-hero .breadcrumbs a {
    color: var(--oai-text-dim) !important;
    font-size: 0.8125rem !important;
    font-weight: 500;
}

.nsite-oai-page-hero .breadcrumbs a:hover {
    color: var(--oai-text) !important;
}

.nsite-oai-page-hero .content-main .h1,
.nsite-oai-page-hero h1 {
    font-size: clamp(2.25rem, 5vw, 3.25rem) !important;
    font-weight: 600 !important;
    letter-spacing: -0.04em !important;
    line-height: 1.1 !important;
    color: #fafafa !important;
    border: 0 !important;
}

.nsite-oai-page-hero .text-muted {
    color: var(--oai-text-muted) !important;
    font-size: 1.0625rem !important;
    line-height: 1.6 !important;
    max-width: 36rem;
    margin-left: auto !important;
    margin-right: auto !important;
}

.nsite-oai-doc__inner,
.nsite-oai-doc .content-detail {
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .ck-content {
    font-size: 1.0625rem !important;
    line-height: 1.65 !important;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .ck-content > *:first-child {
    margin-top: 0 !important;
}

.nsite-oai-doc .ck-content h1,
.nsite-oai-doc .ck-content h2,
.nsite-oai-doc .ck-content h3,
.nsite-oai-doc .ck-content h4 {
    color: #fafafa !important;
    font-weight: 600 !important;
    letter-spacing: -0.03em;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

.nsite-oai-doc .ck-content h2 {
    font-size: clamp(1.5rem, 3vw, 2rem) !important;
}

.nsite-oai-doc .ck-content h3 {
    font-size: 1.25rem !important;
}

.nsite-oai-doc .ck-content p {
    margin-bottom: 1.25rem;
}

.nsite-oai-doc .ck-content a {
    color: #e5e5e5 !important;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.nsite-oai-doc .ck-content a:hover {
    color: #ffffff !important;
}

.nsite-oai-doc .ck-content img,
.nsite-oai-doc .ck-content video {
    border-radius: var(--oai-radius-lg) !important;
}

.nsite-oai-doc .ck-content blockquote {
    border-left: 3px solid var(--oai-border);
    padding-left: 1.25rem;
    margin: 1.5rem 0;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .section {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.nsite-oai-doc .section.pt-40 {
    padding-top: 3rem !important;
}

.nsite-oai-doc .section.mt-50,
.nsite-oai-doc .section.mt-60,
.nsite-oai-doc .section.mt-100,
.nsite-oai-doc .section.mt-110,
.nsite-oai-doc .section.mt-150 {
    margin-top: 0 !important;
}

.nsite-oai-doc .banner-about {
    background: none !important;
    background-image: none !important;
}

.nsite-oai-doc .color-brand-1,
.nsite-oai-doc h1.color-brand-1,
.nsite-oai-doc h2.color-brand-1,
.nsite-oai-doc h3.color-brand-1,
.nsite-oai-doc h4.color-brand-1 {
    color: #fafafa !important;
}

.nsite-oai-doc .color-grey-900,
.nsite-oai-doc .color-grey-800,
.nsite-oai-doc .color-grey-700,
.nsite-oai-doc .color-grey-600,
.nsite-oai-doc .color-grey-500,
.nsite-oai-doc .color-grey-400,
.nsite-oai-doc .color-grey-300 {
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .font-md,
.nsite-oai-doc .font-lg,
.nsite-oai-doc .font-sm {
    color: inherit !important;
}

.nsite-oai-doc .box-radius-border {
    background-color: var(--oai-surface) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: var(--oai-radius-lg) !important;
    box-shadow: none !important;
}

.nsite-oai-doc .box-list-numbers .item-list-number {
    border-color: var(--oai-border) !important;
}

.nsite-oai-doc .box-image-bg {
    background-color: var(--oai-bg-soft) !important;
    border-radius: var(--oai-radius-lg);
}

.nsite-oai-doc .list-ticks li {
    color: var(--oai-text-muted) !important;
    border-color: var(--oai-border) !important;
}

.nsite-oai-doc .list-ticks li svg {
    color: var(--oai-text) !important;
}

.nsite-oai-doc .img-reveal img {
    border-radius: var(--oai-radius-lg) !important;
    border: 1px solid var(--oai-border);
}

.nsite-oai-doc .bg-grey-60,
.nsite-oai-doc .bg-grey-80,
.nsite-oai-doc .bg-core-value {
    background-color: var(--oai-surface) !important;
    background-image: none !important;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .bg-white {
    background-color: var(--oai-surface) !important;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .btn:not(.btn-brand-1):not(.btn-default) {
    border-radius: 9999px !important;
    min-height: var(--oai-btn-h) !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    font-weight: 600 !important;
}

.nsite-oai-doc .btn.btn-brand-1,
.nsite-oai-doc a.btn-brand-1 {
    background-color: #fafafa !important;
    color: #0a0a0a !important;
    border: 1px solid #fafafa !important;
    border-radius: 9999px !important;
}

.nsite-oai-doc .btn.btn-brand-1:hover,
.nsite-oai-doc a.btn-brand-1:hover {
    background-color: #e5e5e5 !important;
    color: #000000 !important;
}

.nsite-oai-doc .btn.btn-default {
    background: transparent !important;
    color: #fafafa !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: 9999px !important;
}

.nsite-oai-doc .btn.btn-default:hover {
    background: var(--oai-surface-hover) !important;
    color: #ffffff !important;
}

/* ----- Page À propos (seed about-us.html) : grille + citation + CTA ----- */
.nsite-oai-doc .nsite-oai-about__lede {
    max-width: 40rem;
    margin: 0 auto 2.5rem;
    text-align: center;
    font-size: 1.125rem !important;
    line-height: 1.65 !important;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .nsite-oai-about-split ~ .nsite-oai-about-split .row {
    flex-direction: row-reverse;
}

@media (max-width: 991.98px) {
    .nsite-oai-doc .nsite-oai-about-split ~ .nsite-oai-about-split .row {
        flex-direction: column-reverse;
    }
}

.nsite-oai-doc .nsite-oai-about__statement {
    margin: 2rem auto 3rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
    max-width: 52rem;
    border-radius: var(--oai-radius-lg);
    background-color: var(--oai-surface-raised) !important;
    border: 1px solid var(--oai-border);
}

.nsite-oai-doc .nsite-oai-about__statement p {
    margin: 0 !important;
    font-size: clamp(1.35rem, 3vw, 1.85rem) !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.03em;
    color: #fafafa !important;
}

.nsite-oai-doc .nsite-oai-about__careers {
    text-align: center;
    padding: 2.5rem 1rem 1rem;
    max-width: 36rem;
    margin: 0 auto;
}

.nsite-oai-doc .nsite-oai-about__careers-title {
    font-size: 1.5rem !important;
    font-weight: 600 !important;
    color: #fafafa !important;
    margin: 0 0 0.75rem !important;
}

.nsite-oai-doc .nsite-oai-about__careers-text {
    margin: 0 0 1.25rem !important;
    color: var(--oai-text-muted) !important;
    font-size: 1rem !important;
}

.nsite-oai-doc a.nsite-oai-about__pill {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.55rem 1.35rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    border-radius: 9999px !important;
    background-color: #fafafa !important;
    color: #0a0a0a !important;
    border: 1px solid #fafafa !important;
    text-decoration: none !important;
}

.nsite-oai-doc a.nsite-oai-about__pill:hover {
    background-color: #e5e5e5 !important;
    color: #000000 !important;
}

.nsite-oai-doc .nsite-oai-about__grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
}

@media (min-width: 768px) {
    .nsite-oai-doc .nsite-oai-about__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .nsite-oai-doc .nsite-oai-about__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.nsite-oai-doc .nsite-oai-about__card {
    border-radius: var(--oai-radius-lg);
    border: 1px solid var(--oai-border);
    background-color: var(--oai-surface) !important;
    padding: 1.25rem 1.25rem 1.35rem;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.nsite-oai-doc .nsite-oai-about__card:hover {
    border-color: #52525b;
    background-color: var(--oai-surface-raised) !important;
}

.nsite-oai-doc .nsite-oai-about__card-thumb {
    aspect-ratio: 1 / 1;
    border-radius: var(--oai-radius-lg);
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.nsite-oai-doc .nsite-oai-about__card-thumb--mint {
    background: linear-gradient(145deg, #bbf7d0 0%, #86efac 40%, #4ade80 100%);
}

.nsite-oai-doc .nsite-oai-about__card-thumb--sky {
    background: linear-gradient(145deg, #bae6fd 0%, #7dd3fc 45%, #38bdf8 100%);
}

.nsite-oai-doc .nsite-oai-about__card-thumb--rose {
    background: linear-gradient(145deg, #fecdd3 0%, #fda4af 45%, #fb7185 100%);
}

.nsite-oai-doc .nsite-oai-about__card-thumb--amber {
    background: linear-gradient(145deg, #fde68a 0%, #fcd34d 45%, #fbbf24 100%);
}

.nsite-oai-doc .nsite-oai-about__card-title {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #fafafa !important;
    margin: 0 0 0.5rem !important;
}

.nsite-oai-doc .nsite-oai-about__card-desc {
    margin: 0 !important;
    font-size: 0.875rem !important;
    line-height: 1.55 !important;
    color: var(--oai-text-muted) !important;
}

.nsite-oai-doc .box-cover-border {
    background-color: var(--oai-surface-raised) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: 1rem !important;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35) !important;
}

.nsite-oai-doc .box-info-video .btn-tag {
    background-color: var(--oai-surface-hover) !important;
    color: var(--oai-text-muted) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: 9999px !important;
}

/* =============================================================================
   Accueil (shortcodes) — style proche maquettes Iori / OpenAI (composants CMS)
   Scope : body#page-home + .ck-content.nsite-home-oai
   ============================================================================= */

body#page-home .nsite-home-section {
    background-color: transparent !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.ck-content.nsite-home-oai > div {
    margin-bottom: 0;
}

.ck-content.nsite-home-oai .section {
    background-color: transparent !important;
}

/* Hero (banner-1) */
.ck-content.nsite-home-oai .banner-1 {
    padding-top: 2rem;
    padding-bottom: 3rem;
}

.ck-content.nsite-home-oai .banner-1 h1.color-brand-1 {
    color: #fafafa !important;
    font-size: clamp(2rem, 4.5vw, 3.25rem) !important;
    font-weight: 600 !important;
    letter-spacing: -0.035em !important;
    line-height: 1.1 !important;
}

.ck-content.nsite-home-oai .banner-1 .line-under::before {
    background-color: rgba(16, 185, 129, 0.45) !important;
    bottom: 0.35rem;
    height: 0.65rem;
    border-radius: 0.125rem;
}

.ck-content.nsite-home-oai .banner-1 .line-under span {
    color: #34d399 !important;
}

.ck-content.nsite-home-oai .banner-1 .font-md.color-grey-500 {
    color: var(--oai-text-muted) !important;
    font-size: 1.0625rem !important;
    line-height: 1.6 !important;
}

.ck-content.nsite-home-oai .banner-1 img {
    border-radius: 1rem !important;
    border: 1px solid var(--oai-border);
}

/* Bandeau logos (featured-brands style-1) */
.ck-content.nsite-home-oai .box-radius-bottom {
    background: linear-gradient(180deg, #18181b 0%, #141416 100%) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: 1.25rem !important;
    padding: 2.5rem 1.5rem !important;
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.ck-content.nsite-home-oai .box-radius-bottom h3.color-brand-1 {
    color: #fafafa !important;
    font-size: 1.25rem !important;
    font-weight: 600 !important;
}

.ck-content.nsite-home-oai .box-radius-bottom .font-lg.color-grey-500 {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .box-radius-bottom .swiper-slide img {
    opacity: 0.85;
    filter: grayscale(1) brightness(1.15);
}

.ck-content.nsite-home-oai .box-radius-bottom .swiper-slide a:hover img {
    opacity: 1;
    filter: grayscale(0.3) brightness(1.05);
}

/* Grille services (card-offer) */
.ck-content.nsite-home-oai .card-offer {
    background-color: var(--oai-surface) !important;
    border: 1px solid var(--oai-border) !important;
    border-radius: 1rem !important;
    box-shadow: none !important;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease;
}

.ck-content.nsite-home-oai .card-offer:hover {
    border-color: rgba(16, 185, 129, 0.45) !important;
    background-color: var(--oai-surface-raised) !important;
}

.ck-content.nsite-home-oai .card-offer .color-brand-1 {
    color: #fafafa !important;
}

.ck-content.nsite-home-oai .card-offer .color-grey-500,
.ck-content.nsite-home-oai .card-offer .color-gray-500 {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .services .color-brand-1,
.ck-content.nsite-home-oai .services h2.color-brand-1 {
    color: #fafafa !important;
}

.ck-content.nsite-home-oai .services .font-lg {
    color: var(--oai-text-muted) !important;
}

/* Bloc intro vidéo */
.ck-content.nsite-home-oai .intro-video-shortcode .box-cover-video {
    border-radius: 1.25rem !important;
    border: 1px solid rgba(16, 185, 129, 0.25) !important;
    background: linear-gradient(135deg, #064e3b 0%, #022c22 50%, #0f172a 100%) !important;
    overflow: hidden;
}

.ck-content.nsite-home-oai .intro-video-shortcode .color-brand-2 {
    color: #ecfdf5 !important;
}

.ck-content.nsite-home-oai .intro-video-shortcode .btn-tag {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #a7f3d0 !important;
    border: 1px solid rgba(167, 243, 208, 0.35) !important;
    border-radius: 9999px !important;
}

.ck-content.nsite-home-oai .intro-video-shortcode img {
    border-radius: var(--oai-radius-lg);
}

/* Pricing : fond section + cartes déjà claires */
.ck-content.nsite-home-oai .bg-plan.bg-grey-80 {
    background-color: var(--oai-surface) !important;
    border-radius: 1.25rem !important;
    border: 1px solid var(--oai-border) !important;
}

.ck-content.nsite-home-oai .bg-plan .color-brand-1,
.ck-content.nsite-home-oai .bg-plan h2.color-brand-1 {
    color: #fafafa !important;
}

.ck-content.nsite-home-oai .bg-plan .font-lg.color-gray-500,
.ck-content.nsite-home-oai .bg-plan .font-lg.color-grey-500 {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .card-plan.card-plan-2 {
    border-radius: 1rem !important;
    border: 1px solid #e5e5e5 !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}

/* FAQ */
.ck-content.nsite-home-oai .faq-section .color-brand-1,
.ck-content.nsite-home-oai .faq-section h2 {
    color: #fafafa !important;
}

.ck-content.nsite-home-oai .faq-section .color-grey-500,
.ck-content.nsite-home-oai .faq-section .color-gray-500 {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .faq-section .list-faqs a {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .faq-section .list-faqs a.active,
.ck-content.nsite-home-oai .faq-section .list-faqs a:hover {
    color: #34d399 !important;
}

/* Témoignages + blog */
.ck-content.nsite-home-oai .testimonials .color-brand-1,
.ck-content.nsite-home-oai .from-our-blog .color-brand-1 {
    color: #fafafa !important;
}

.ck-content.nsite-home-oai .from-our-blog .color-grey-500,
.ck-content.nsite-home-oai .from-our-blog .color-gray-500,
.ck-content.nsite-home-oai .testimonials .color-grey-500,
.ck-content.nsite-home-oai .testimonials .color-gray-500 {
    color: var(--oai-text-muted) !important;
}

.ck-content.nsite-home-oai .card-testimonial,
.ck-content.nsite-home-oai .card-blog-grid,
.ck-content.nsite-home-oai .card-blog,
.ck-content.nsite-home-oai .item-article {
    background-color: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
}

/* Newsletter / bannières fin de page */
.ck-content.nsite-home-oai .box-radius-32-style-2,
.ck-content.nsite-home-oai .box-newsletter {
    background-color: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius-lg) !important;
}

.ck-content.nsite-home-oai .newsletter-form .form-control {
    border-radius: 9999px !important;
    padding-left: 1.25rem !important;
    padding-right: 7rem !important;
    background-color: var(--oai-bg-soft) !important;
    border-color: var(--oai-border-input) !important;
    color: var(--oai-text) !important;
}

.ck-content.nsite-home-oai .newsletter-form .btn-brand-1-full {
    border-radius: 9999px !important;
    background: linear-gradient(135deg, #10b981, #059669) !important;
    border: none !important;
}
