@tailwind base;
@tailwind components;
@tailwind utilities;


:root {
    /* Palette projet */
    --vp-primary: #373cf5;
    /* Alias nommage comme les sites CCI (block-menu-primary) */
    --vp-color-bleu: var(--vp-primary);
    --vp-secondary: #009;
    --vp-blue-light: #6877ff;
    --vp-violet: #9f41dd;
    --vp-blue-dark: #00c;
    --vp-grey-light: #f2f2f2;
    --vp-grey: #ccc;
    --vp-grey-dark: #4d4d4d;
    --vp-black: #222;
    --vp-white: #fff;
    --vp-color-theme: var(--vp-primary);
    --vp-px-35: 2.1875rem;
    --vp-px-20: 1.25rem;
    --vp-content-px-mobile: 3rem;
    --vp-px-30: 1.875rem;
    --vp-fw-light: 300;
    --vp-fw-regular: 400;
    --vp-fw-medium: 500;
    --vp-px-18: 1.125rem;
    --vp-px-16: 1rem;
    --vp-px-10: 0.625rem;
    --vp-px-12: 0.75rem;
    --vp-px-22: 1.375rem;
    --vp-px-24: 1.5rem;
    --vp-px-28: 1.75rem;

    /* Transitions (réf. composants type CCI / vp-icon) */
    --vp-transition-fast: 0.35s cubic-bezier(0.4, 0, 0.2, 1);

    /* Bootstrap */
    --bs-primary: var(--vp-primary);
    --bs-primary-rgb: 55, 60, 245;
    --bs-secondary: var(--vp-secondary);
    --bs-secondary-rgb: 0, 0, 153;
    --bs-light: var(--vp-grey-light);
    --bs-light-rgb: 242, 242, 242;
    --bs-dark: var(--vp-black);
    --bs-dark-rgb: 34, 34, 34;
    --bs-body-color: var(--vp-black);
    --bs-body-bg: var(--vp-white);

    /* Tailwind/DaisyUI variables */
    --color-primary: var(--vp-primary);
    --color-secondary: var(--vp-secondary);
    --color-primary-content: #ffffff;
    --color-secondary-content: #ffffff;

    /* Défaut hero overlay (surchargé par les classes .color-*) */
    --vp-color-theme-rgb: 55 60 245;
    --vp-cci-footer-primary: #24304c;
    --vp-cci-footer-secondary: #181f32;

    /* Navbar sticky + sidebar droite */
    --cci-sticky-nav-height: 10rem;
    --cci-sidebar-sticky-gap: 2.5rem;
    --cci-sidebar-sticky-top: calc(var(--cci-sticky-nav-height) + var(--cci-sidebar-sticky-gap));
    --cci-sidebar-sticky-padding-top: 1.5rem;
    /* Anticipation scroll spy sommaire (avant l'arrivée sur le titre) */
    --cci-sommaire-scroll-lead: 6rem;

    /* Barre d'outils sticky dans l'admin (édition page / actualité) */
    --admin-sticky-toolbar-offset: 4.5rem;
}

@media (max-width: 1023px) {
    :root {
        --cci-sticky-nav-height: 7.25rem;
    }
}

@media (max-width: 767.98px) {
    :root {
        --admin-sticky-toolbar-offset: 6.25rem;
    }
}

body.cci-nav-mobile-open {
    overflow: hidden;
}

/*
 * Bootstrap Reboot — uniquement sur les titres sans classe.
 * Les titres avec classe sont stylés dans la section typographie ci-dessous (hors @layer Tailwind).
 */
h1:not([class]),
h2:not([class]),
h3:not([class]),
h4:not([class]),
h5:not([class]),
h6:not([class]) {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    margin: 0;
}

.color-battle {
    --vp-color-theme-l1: #202154;
    --vp-color-theme: #202154;
    --vp-color-theme-f1: #ffc229;
    --vp-color-theme-f2: #ffc229;
    --vp-color-theme-rgb: 32 33 84;
}

.color-chartreuse {
    --vp-color-theme-l1: #bed06b;
    --vp-color-theme: #9aba00;
    --vp-color-theme-f1: #799200;
    --vp-color-theme-f2: #526700;
    --vp-color-theme-rgb: 154 186 0;
}

.color-connected {
    --vp-color-theme-l1: #18acb3;
    --vp-color-theme: #e3034b;
    --vp-color-theme-f1: #d8376b;
    --vp-color-theme-f2: #d8376b;
    --vp-color-theme-rgb: 227 3 75;
}

.color-cyan {
    --vp-color-theme-l1: #67c4e8;
    --vp-color-theme: #00abe0;
    --vp-color-theme-f1: #007ea5;
    --vp-color-theme-f2: #00597c;
    --vp-color-theme-rgb: 0 171 224;
}

.color-espoirs {
    --vp-color-theme-l1: #202154;
    --vp-color-theme: #202154;
    --vp-color-theme-f1: #135bbf;
    --vp-color-theme-f2: #135bbf;
    --vp-color-theme-rgb: 32 33 84;
}

.color-exceptionel {
    --vp-color-theme-l1: #a075ff;
    --vp-color-theme: #a0ff75;
    --vp-color-theme-f1: #ff7575;
    --vp-color-theme-f2: #ffff75;
    --vp-color-theme-rgb: 160 255 117;
}

.color-gae {
    --vp-color-theme-l1: #202154;
    --vp-color-theme: #202154;
    --vp-color-theme-f1: #5ecce9;
    --vp-color-theme-f2: #5ecce9;
    --vp-color-theme-rgb: 32 33 84;
}

.color-international {
    --vp-color-theme-l1: #eaa10f;
    --vp-color-theme: #eaa10f;
    --vp-color-theme-f1: #eaa10f;
    --vp-color-theme-f2: #eaa10f;
    --vp-color-theme-rgb: 234 161 15;
}

.color-jaune {
    --vp-color-theme-l1: #ffd788;
    --vp-color-theme: #ffba31;
    --vp-color-theme-f1: #eaa10f;
    --vp-color-theme-f2: #b77d08;
    --vp-color-theme-rgb: 255 186 49;
}

.color-marron {
    --vp-color-theme-l1: #c18e6c;
    --vp-color-theme: #8e4c20;
    --vp-color-theme-f1: #5b2e15;
    --vp-color-theme-f2: #411c08;
    --vp-color-theme-rgb: 142 76 32;
}

.color-orange {
    --vp-color-theme-l1: #ffaf73;
    --vp-color-theme: #ff791f;
    --vp-color-theme-f1: #bf4d00;
    --vp-color-theme-f2: #993a00;
    --vp-color-theme-rgb: 255 121 31;
}

.color-pitch {
    --vp-color-theme-l1: #202154;
    --vp-color-theme: #202154;
    --vp-color-theme-f1: #24b8ac;
    --vp-color-theme-f2: #24b8ac;
    --vp-color-theme-rgb: 32 33 84;
}

.color-rose {
    --vp-color-theme-l1: #ea94c1;
    --vp-color-theme: #e52e97;
    --vp-color-theme-f1: #c11f84;
    --vp-color-theme-f2: #931161;
    --vp-color-theme-rgb: 229 46 151;
}

.color-rouge {
    --vp-color-theme-l1: #ff8484;
    --vp-color-theme: #e33232;
    --vp-color-theme-f1: #af1b1b;
    --vp-color-theme-f2: #8f0909;
    --vp-color-theme-rgb: 227 50 50;
}

.color-solutionsmobilite {
    --vp-color-theme-l1: #0c5aa5;
    --vp-color-theme: #76b82a;
    --vp-color-theme-f1: #cecece;
    --vp-color-theme-f2: #acd975;
    --vp-color-theme-rgb: 118 184 42;
}

.color-turquoise {
    --vp-color-theme-l1: #54ded9;
    --vp-color-theme: #07c9c3;
    --vp-color-theme-f1: #13aba6;
    --vp-color-theme-f2: #07726f;
    --vp-color-theme-rgb: 7 201 195;
}

.color-vert {
    --vp-color-theme-l1: #9bce7a;
    --vp-color-theme: #4aa528;
    --vp-color-theme-f1: #3c7f20;
    --vp-color-theme-f2: #2d591b;
    --vp-color-theme-rgb: 74 165 40;
}

.color-violet {
    --vp-color-theme-l1: #ab79d3;
    --vp-color-theme: #a518e2;
    --vp-color-theme-f1: #700ba2;
    --vp-color-theme-f2: #511472;
    --vp-color-theme-rgb: 165 24 226;
}

.color-vupar {
    --vp-color-theme-l1: #ffaf73;
    --vp-color-theme: #ff791f;
    --vp-color-theme-f1: #bf4d00;
    --vp-color-theme-f2: #993a00;
    --vp-color-theme-rgb: 255 121 31;
}

html, body {
    font-family: "Fira Sans", sans-serif;
    font-weight: 400;
    font-style: normal;
}

b,
strong {
    font-weight: 700;
}

a, .btn-link {
    color: var(--vp-primary);
}

.bloc-informations-contact__link,
.bloc-informations-contact__link:hover,
.bloc-informations-contact__link:focus,
.bloc-informations-contact__link:visited,
.bloc-informations-contact__link:active {
    color: var(--vp-black);
}

.btn-primary {
    color: #fff;
    background-color: var(--vp-primary);
    border-color: var(--vp-primary);
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(55, 60, 245, 0.35);
}

h1:focus {
    outline: none;
}

.auth-login__header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.auth-login__logo {
    display: block;
    width: 3.5rem;
    height: 3.5rem;
    flex-shrink: 0;
}

.auth-login__title {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
}

/*
 * Typographie PageBuilder — volontairement HORS @layer Tailwind.
 * Bootstrap est chargé sans @layer et l’emporte sur @layer components.
 */
.cci-dynamic-page__main .container {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.cci-page-hero__content .title {
    color: var(--vp-color-theme);
    font-weight: var(--vp-fw-regular);
    font-size: var(--vp-px-24);
    line-height: 1.375rem;
}

/* Nav mobile — sous-menu (hors @layer, sinon écrasé par Reboot + reset) */
h2.cci-nav-mobile__sub-title,
.cci-nav-mobile__sub-header .cci-nav-mobile__sub-title {
    color: var(--vp-primary);
    font-weight: 600;
    font-size: var(--vp-px-18);
    line-height: 1.375rem;
    margin: 0;
}

/* Accueil + footer + listings mobile — padding contenu (.container Bootstrap hors @layer) */
@media (max-width: 767.98px) {
    .home-produits-phares > .container,
    .home-bandeau > .container,
    .cci-actualites-listing > .container {
        padding-left: var(--vp-content-px-mobile) !important;
        padding-right: var(--vp-content-px-mobile) !important;
    }
}

@media (max-width: 1023.98px) {
    .cci-footer-newsletter-band {
        padding-left: max(
            var(--vp-content-px-mobile),
            env(safe-area-inset-left, 0px)
        ) !important;
        padding-right: max(
            var(--vp-content-px-mobile),
            env(safe-area-inset-right, 0px)
        ) !important;
    }

    .cci-footer-main > .container,
    .cci-footer-legal > .container {
        padding-left: max(
            var(--vp-content-px-mobile),
            env(safe-area-inset-left, 0px)
        ) !important;
        padding-right: max(
            var(--vp-content-px-mobile),
            env(safe-area-inset-right, 0px)
        ) !important;
    }
}

.cci-page-hero__content .subtitle {
    color: var(--vp-black);
    font-weight: var(--vp-fw-light);
    font-size: var(--vp-px-20);
    line-height: var(--vp-px-30);
}

.cci-titre-section .vp-text h2 {
    color: var(--vp-white);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-18);
    line-height: 1;
}

.cci-titre-section .vp-text-element .title,
.cci-titre-section .vp-text h3 {
    color: var(--vp-color-theme);
    font-weight: var(--vp-fw-regular);
    font-size: var(--vp-px-18);
    line-height: 1;
}

.vp-tags a,
.vp-tags a:visited {
    display: block;
    color: var(--vp-color-theme);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-10);
    text-transform: uppercase;
    text-decoration: none;
}

.cci-mots-cles-tag-section__trail {
    color: var(--vp-color-theme);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-10);
    line-height: 1;
    text-transform: uppercase;
}

.cci-cards-section__card-title {
    color: var(--vp-white);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-20);
    line-height: 1.25;
    margin: 0;
}

.cci-cards-section__card-description {
    color: var(--vp-white);
    font-weight: var(--vp-fw-regular);
    font-size: var(--vp-px-18);
    line-height: 1.4;
    margin: 0;
    max-width: 28rem;
}

.cci-chiffres-cles-section__value {
    color: var(--vp-white);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-35);
    line-height: 1.15;
    margin: 0;
}

.cci-chiffres-cles-section__description {
    color: var(--vp-white);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-16);
    line-height: 1.35;
    margin: 0;
}

.cci-form-section__title {
    color: var(--vp-color-theme);
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-24);
    line-height: 1.25;
    margin: 0 0 1rem;
}

.cci-form-section__intro {
    color: var(--vp-color-text);
    font-size: var(--vp-px-18);
    line-height: 1.5;
    margin: 0 0 1.5rem;
    max-width: 42rem;
}

.cci-form-section__form {
    max-width: 36rem;
}

.cci-form-section__field .form-label {
    font-weight: var(--vp-fw-medium);
    font-size: var(--vp-px-14);
}

.cci-form-section .cci-slide-up-btn {
    width: auto;
    min-width: 12.5rem;
    max-width: 100%;
    padding-inline: 1.5rem;
    border-color: var(--vp-primary);
    font-size: 0.875rem;
    border-radius: 9999px;
    overflow: hidden;
}

.cci-form-section__alert {
    padding: 1rem 1.25rem;
    border: 1px solid var(--vp-primary);
    border-radius: 0.75rem;
    background-color: var(--vp-white);
    color: var(--vp-black);
    font-size: var(--vp-px-16);
    line-height: 1.5;
}

.cci-form-section__alert--success {
    color: var(--vp-primary);
    font-weight: var(--vp-fw-medium);
}

.cci-form-section__alert--error {
    color: var(--vp-black);
    margin-bottom: 1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Admin — boutons Bootstrap */
.admin-layout .btn {
    border-radius: 0.375rem;
    font-weight: 500;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.admin-layout .btn-primary {
    background-color: var(--vp-primary);
    border-color: var(--vp-primary);
    color: #fff;
}

.admin-layout .btn-primary:hover,
.admin-layout .btn-primary:focus,
.admin-layout .btn-primary:active {
    background-color: #2a2fd4;
    border-color: #2a2fd4;
    color: #fff;
}

.admin-layout .btn-outline-secondary {
    background-color: #fff;
    border-color: #dee2e6;
    color: #333;
}

.admin-layout .btn-outline-secondary:hover,
.admin-layout .btn-outline-secondary:focus,
.admin-layout .btn-outline-secondary:active {
    background-color: #f8f9fa;
    border-color: #ced4da;
    color: #222;
}

.admin-layout .btn-outline-primary {
    background-color: #fff;
    border-color: rgba(55, 60, 245, 0.45);
    color: var(--vp-primary);
}

.admin-layout .btn-outline-primary:hover,
.admin-layout .btn-outline-primary:focus,
.admin-layout .btn-outline-primary:active {
    background-color: rgba(55, 60, 245, 0.08);
    border-color: var(--vp-primary);
    color: var(--vp-primary);
}

.admin-layout .btn-outline-danger {
    background-color: #fff;
    border-color: #f1aeb5;
    color: #dc3545;
}

.admin-layout .btn-outline-danger:hover,
.admin-layout .btn-outline-danger:focus,
.admin-layout .btn-outline-danger:active {
    background-color: #fdf2f3;
    border-color: #dc3545;
    color: #b02a37;
}

.admin-layout .btn-sm {
    border-radius: 0.4375rem;
}

/* Admin — formulaires d'édition (pages, actualités…) */
.admin-edit-tabs {
    border-bottom: 1px solid #eef0f2;
    gap: 0.25rem;
    margin-bottom: 1rem !important;
}

.admin-edit-tabs .nav-link {
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6c757d;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding: 0.5rem 0.75rem;
    margin-bottom: -1px;
}

.admin-edit-tabs .nav-link:hover {
    color: var(--vp-primary);
    border-color: transparent;
}

.admin-edit-tabs .nav-link.active {
    color: var(--vp-primary);
    background: transparent;
    border-color: var(--vp-primary);
}

.admin-scroll-panel,
.admin-scroll-table {
    max-height: 24rem;
    overflow-y: auto;
}

.picto-preview-bg {
    background-color: rgb(226, 226, 226);
    border-color: #cfcfcf;
}

.admin-scroll-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #fff;
    box-shadow: inset 0 -1px 0 #dee2e6;
}

.admin-listing-page {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    padding: 1.5rem;
}

.admin-listing-page__toolbar {
    flex-shrink: 0;
}

.admin-listing-page__filters {
    flex-shrink: 0;
}

.admin-listing-page__filters .card {
    margin-bottom: 1rem !important;
}

.admin-listing-page__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.admin-listing-page__table-card {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.admin-listing-page__table-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.admin-listing-page__table-scroll thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #fff;
    box-shadow: inset 0 -1px 0 #dee2e6;
}

@media (min-width: 641px) {
    .admin-layout main:has(.admin-listing-page),
    .admin-layout main:has(.produits-phares-admin-page) {
        height: 100dvh;
        overflow: hidden;
    }
}

.produits-phares-admin-page {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    padding: 1.5rem;
}

.produits-phares-admin-page__toolbar {
    flex-shrink: 0;
}

.produits-phares-admin-page__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.produits-phares-admin {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.produits-phares-admin__intro,
.produits-phares-admin__selected,
.produits-phares-admin__add-header,
.produits-phares-admin__actions {
    flex-shrink: 0;
}

.produits-phares-admin__add {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.produits-phares-admin__list-scroll {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: var(--bs-border-radius, 0.375rem);
}

.produits-phares-admin__list-scroll .list-group-item:first-child {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.produits-phares-admin__list-scroll .list-group-item:last-child {
    border-bottom-left-radius: calc(var(--bs-border-radius, 0.375rem) - 1px);
    border-bottom-right-radius: calc(var(--bs-border-radius, 0.375rem) - 1px);
}

/* Contexte onglet Accueil : hauteur fixe avec scroll */
.produits-phares-admin--compact .produits-phares-admin__list-scroll {
    flex: none;
    max-height: 24rem;
}

.admin-edit-metadata {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.25rem;
}

.admin-edit-metadata__field {
    min-width: 0;
}

.admin-edit-metadata__field--slug {
    flex: 1 1 14rem;
    max-width: 22rem;
}

.admin-edit-metadata__field--title {
    flex: 2 1 16rem;
}

.admin-edit-metadata .form-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6c757d;
    margin-bottom: 0.2rem;
}

.admin-edit-metadata .input-group-text {
    font-size: 0.8125rem;
    color: #6c757d;
    background: #f8f9fa;
}

.admin-edit-panel {
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background: #fff;
    overflow: hidden;
}

.admin-edit-panel__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid #eef0f2;
    background: #fff;
}

.admin-edit-panel__header .h6 {
    font-size: 1rem;
    font-weight: 600;
}

.admin-edit-panel__body {
    padding: 0.75rem;
}

.admin-edit-panel__body .form-label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #6c757d;
    margin-bottom: 0.2rem;
}

.admin-edit-keywords {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.admin-edit-keyword-row {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.admin-edit-keyword-row .form-control {
    flex: 1;
    min-width: 0;
}

.existing-page-picker-list {
    max-height: 12rem;
    overflow-y: auto;
}

.existing-page-picker-item {
    border: 0;
    border-radius: 0.25rem;
    padding: 0.35rem 0.5rem;
    color: #000;
}

.existing-page-picker-item:hover,
.existing-page-picker-item:focus {
    background-color: #f2f2f2;
    color: #000;
}

.existing-page-picker-item.active {
    background-color: #e9ecef;
    color: #000;
}

/* Page builder */
.page-builder-palette {
    top: var(--admin-sticky-toolbar-offset);
    max-height: calc(100vh - var(--admin-sticky-toolbar-offset) - 1rem);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.page-builder-palette-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.75rem;
    border-bottom: 1px solid #f0f0f0;
    background: #fff;
}

.page-builder-palette-header .h6 {
    font-size: 1rem;
}

.page-builder-palette-body {
    overflow-y: auto;
    padding: 0.5rem 0.65rem 0.65rem;
}

.page-builder-category + .page-builder-category {
    margin-top: 0.5rem;
}

.page-builder-category-toggle {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0.2rem 0;
    margin-bottom: 0.35rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #495057;
    text-align: left;
}

.page-builder-category-toggle:hover {
    color: var(--vp-primary);
}

.page-builder-category-count {
    margin-left: auto;
    font-size: 0.62rem;
    font-weight: 500;
    color: #adb5bd;
    background: #f8f9fa;
    border-radius: 999px;
    padding: 0.05rem 0.35rem;
}

.page-builder-tile-grid {
    --bs-gutter-x: 0.35rem;
    --bs-gutter-y: 0.35rem;
}

.page-builder-tile {
    aspect-ratio: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: 100%;
    padding: 0.35rem 0.25rem;
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    background: #fff;
    cursor: grab;
    text-align: center;
    user-select: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.page-builder-tile:hover {
    border-color: var(--vp-primary);
    background: rgba(55, 60, 245, 0.03);
    box-shadow: 0 2px 6px rgba(55, 60, 245, 0.08);
}

.page-builder-tile:focus-visible {
    outline: 2px solid var(--vp-primary);
    outline-offset: 2px;
}

.page-builder-tile--dragging {
    opacity: 0.55;
}

.page-builder-tile .bi {
    font-size: 0.95rem;
    color: var(--vp-primary);
    flex-shrink: 0;
}

.page-builder-tile-label {
    font-size: 0.8rem;
    line-height: 1.15;
    font-weight: 500;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.page-builder-canvases-split {
    align-items: stretch;
}

.page-builder-canvas--sidebar .page-builder-section-toolbar {
    flex-wrap: wrap;
    gap: 0.35rem;
}

.page-builder-canvas {
    border: 1px solid #e9ecef;
    border-radius: 0.75rem;
    background: #fafbfc;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.page-builder-canvas--drag-over {
    border-color: var(--vp-primary);
    background: rgba(55, 60, 245, 0.04);
}

.page-builder-canvas--sidebar {
    background: #f8f9fa;
}

.page-builder-canvas-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid #eef0f2;
    background: #fff;
    border-radius: 0.65rem 0.65rem 0 0;
}

.page-builder-canvas-header .h6 {
    font-size: 1rem;
}

.page-builder-section-list {
    padding: 0.75rem;
    min-height: 6rem;
}

.page-builder-canvas--empty .page-builder-section-list {
    display: flex;
    align-items: center;
    justify-content: center;
}

.page-builder-canvas-drop-hint {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    color: #adb5bd;
    text-align: center;
    font-size: 0.875rem;
}

.page-builder-canvas-drop-hint .bi {
    font-size: 2rem;
}

.page-builder-section {
    border: 1px solid #e9ecef;
    border-radius: 0.625rem;
    background: #fff;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.page-builder-section + .page-builder-section {
    margin-top: 0.75rem;
}

.page-builder-section--selected {
    border-color: var(--vp-primary);
    box-shadow: 0 0 0 2px rgba(55, 60, 245, 0.12);
}

.page-builder-section--dragging {
    opacity: 0.65;
}

.nested-section-canvas {
    margin-top: 0.25rem;
    padding: 0.75rem;
    border: 1px dashed #dee2e6;
    border-radius: 0.5rem;
    background: #fff;
}

.nested-section-canvas__label {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #6c757d;
}

.nested-section-canvas__list {
    min-height: 3.5rem;
}

.nested-section-canvas__empty-zone {
    margin: 0;
    padding: 0.75rem;
    font-size: 0.8rem;
}

.nested-section-canvas__list .page-builder-section + .page-builder-section {
    margin-top: 0.5rem;
}

.nested-section-canvas__list .page-builder-section {
    border-color: #e3e6ea;
}

.page-builder-section-toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    background: #f8f9fa;
    border-bottom: 1px solid #eef0f2;
}

.page-builder-drag-handle {
    display: inline-flex;
    align-items: center;
    cursor: grab;
    color: #adb5bd;
    padding: 0.15rem;
    flex-shrink: 0;
    touch-action: none;
}

.page-builder-drag-handle:active {
    cursor: grabbing;
}

.page-builder-section-label {
    flex: 1;
    min-width: 0;
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.page-builder-section-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
}

.page-builder-section-preview {
    padding: 0.5rem;
    background: #fff;
}

.page-builder-preview-content {
    pointer-events: none;
    overflow: hidden;
}

.page-builder-preview-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 5rem;
    padding: 1.5rem;
    color: #6c757d;
    background: #f8f9fa;
    border-radius: 0.375rem;
    font-size: 0.875rem;
}

.page-builder-preview-placeholder .bi {
    font-size: 1.75rem;
    color: var(--vp-primary);
    opacity: 0.7;
}

.page-builder-section-editor {
    padding: 1rem;
    border-top: 1px solid #eef0f2;
    background: #fafbfc;
}

.sommaire-editor-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.sommaire-editor-list .form-check {
    min-height: 1.5rem;
    margin-bottom: 0;
}

.sommaire-editor-list__item--h3 {
    padding-left: 1.5rem;
}

.text-section-content p:last-child {
    margin-bottom: 0;
}

/* Affichage public : ql-editor sans le cadre d'édition */
.text-section-content.ql-snow .ql-editor {
    height: auto;
    min-height: 0;
    overflow: visible;
    padding: 0;
    white-space: normal;
}

/* Formats Quill (alignement, tailles) — éditeur admin + contenu public */
.text-section-editor .ql-editor .ql-align-center,
.text-section-content .ql-editor .ql-align-center,
.text-section-content .ql-align-center {
    text-align: center;
}

.text-section-editor .ql-editor .ql-align-right,
.text-section-content .ql-editor .ql-align-right,
.text-section-content .ql-align-right {
    text-align: right;
}

.text-section-editor .ql-editor .ql-align-justify,
.text-section-content .ql-editor .ql-align-justify,
.text-section-content .ql-align-justify {
    text-align: justify;
}

.text-section-editor .ql-editor .ql-size-small,
.text-section-content .ql-editor .ql-size-small,
.text-section-content .ql-size-small {
    font-size: 0.75em;
}

.text-section-editor .ql-editor .ql-size-large,
.text-section-content .ql-editor .ql-size-large,
.text-section-content .ql-size-large {
    font-size: 1.5em;
}

.text-section-editor .ql-editor .ql-size-huge,
.text-section-content .ql-editor .ql-size-huge,
.text-section-content .ql-size-huge {
    font-size: 2.5em;
}

.text-section-editor .ql-editor .ql-font-serif,
.text-section-content .ql-editor .ql-font-serif,
.text-section-content .ql-font-serif {
    font-family: Georgia, Times New Roman, serif;
}

.text-section-editor .ql-editor .ql-font-monospace,
.text-section-content .ql-editor .ql-font-monospace,
.text-section-content .ql-font-monospace {
    font-family: Monaco, Courier New, monospace;
}

/* Soulignement primaire CCI — Quill + bloc contact */
.text-section-editor .ql-editor u,
.text-section-content .ql-editor u,
.text-section-editor .ql-editor a,
.text-section-content .ql-editor a,
.bloc-informations-contact__link,
.bloc-informations-contact__link:hover,
.bloc-informations-contact__link:focus,
.bloc-informations-contact__link:visited,
.bloc-informations-contact__link:active {
    text-decoration: underline;
    -webkit-text-decoration-color: var(--vp-primary);
    text-decoration-color: var(--vp-primary);
    text-decoration-thickness: 0.15rem;
    text-underline-offset: 0.08em;
}

/* Listes Quill — puces rondes primaires (comme bloc contact) */
.text-section-editor .ql-editor ul,
.text-section-content .ql-editor ul,
.text-section-editor .ql-editor ol,
.text-section-content .ql-editor ol {
    margin: 0 0 1rem;
    padding: 0 !important;
}

.text-section-editor .ql-editor ul > li,
.text-section-content .ql-editor ul > li,
.text-section-editor .ql-editor ol > li,
.text-section-content .ql-editor ol > li {
    position: relative;
    list-style: none;
    padding-left: 1.25rem !important;
    margin: 0;
}

.text-section-editor .ql-editor ul > li + li,
.text-section-content .ql-editor ul > li + li,
.text-section-editor .ql-editor ol > li + li,
.text-section-content .ql-editor ol > li + li {
    margin-top: 0.75rem;
}

.text-section-editor .ql-editor ul > li::before,
.text-section-content .ql-editor ul > li::before {
    content: "" !important;
    position: absolute;
    left: 0;
    top: 0.72em;
    width: 0.5rem;
    height: 0.5rem;
    margin: 0 !important;
    border-radius: 9999px;
    background-color: var(--vp-primary);
    transform: translateY(-50%);
    display: block;
    white-space: normal;
    text-align: left;
}

.text-section-editor .ql-editor ol > li::before,
.text-section-content .ql-editor ol > li::before {
    color: var(--vp-primary) !important;
    font-weight: 700;
}

/* Quill : chargé après tailwind, corrections si le preflight masque la toolbar */
.text-section-editor .ql-toolbar.ql-snow {
    border: 1px solid #ccc;
    border-radius: 0.25rem 0.25rem 0 0;
    background: #fff;
}

.text-section-editor .ql-container.ql-snow {
    border: 1px solid #ccc;
    border-top: 0;
    border-radius: 0 0 0.25rem 0.25rem;
    background: #fff;
}

.text-section-editor .ql-toolbar.ql-snow button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 24px;
    padding: 3px 5px;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
}

.text-section-editor .ql-toolbar.ql-snow button:hover {
    background-color: #f2f2f2;
}

.text-section-editor .ql-toolbar.ql-snow .ql-picker-label {
    border: 1px solid transparent;
}

.text-section-editor .ql-toolbar.ql-snow .ql-stroke {
    stroke: #444;
}

.text-section-editor .ql-toolbar.ql-snow .ql-fill {
    fill: #444;
}

.text-section-editor .ql-toolbar.ql-snow .ql-picker {
    color: #444;
}

.text-section-editor .ql-container {
    min-height: 8rem;
    font-size: 1rem;
}

.text-section-editor .ql-editor img,
.text-section-content img {
    max-width: 100%;
    height: auto;
    display: block;
}

.cci-map-section__map {
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 0.25rem;
    z-index: 0;
}

.cci-map-section .leaflet-container {
    font-family: inherit;
}

.situez-nous-modal__address {
    margin-bottom: 0;
    line-height: 1.5;
    white-space: pre-line;
}

.situez-nous-modal__map {
    width: 100%;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    z-index: 0;
}
