/**
 * Rendu « hors éditeur » (aperçu assemblé + index démo) :
 * uniquement les widgets visibles, pas les cadres de colonnes ni les barres du builder.
 */

.wd-builder-front .wd-builder-block-toolbar,
.wd-builder-front .wd-builder-section-toolbar {
    display: none !important;
}

/* Libellés « Colonne N » résiduels */
.wd-builder-front .wd-col-empty-hint {
    display: none !important;
}

/* Colonne de section sans bloc enfant : retirée du flux grille */
.wd-builder-front .wd-builder-section .wd-section-col-slot:not(:has(> .wd-builder-block)) {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

/* Bloc « Colonnes » (widget à deux zones) */
.wd-builder-front .wd-builder-block[data-wd-block-type='columns'] .wd-col-slot:not(:has(> .wd-builder-block)) {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.wd-builder-front .wd-builder-section > .wd-section-columns {
    gap: 0;
}

.wd-builder-front .wd-builder-block[data-wd-block-type='columns'] > .grid {
    gap: 0;
}

/* Colonne avec widget : pas de cadre « zone constructeur » autour du bloc */
.wd-builder-front .wd-builder-section .wd-section-col-slot:has(> .wd-builder-block) {
    border-width: 0 !important;
    border-style: none !important;
    background-color: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

.wd-builder-front .wd-builder-block[data-wd-block-type='columns'] .wd-col-slot:has(> .wd-builder-block) {
    border-width: 0 !important;
    border-style: none !important;
    background-color: transparent !important;
    padding: 0 !important;
    border-radius: 0 !important;
}

/* Carte « section » du builder : enveloppe neutre en lecture publique */
.wd-builder-front .wd-builder-section.wd-bc {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
    --tw-ring-offset-shadow: 0 0 #0000 !important;
    --tw-ring-shadow: 0 0 #0000 !important;
}

/*
 * Widgets (titre, texte, colonnes, image, menu…) racine hors section :
 * enlever la « carte » Tailwind résiduelle dans l’aperçu/site.
 * Pas de !important : les styles inline de l’onglet Apparence restent prioritaires.
 */
.wd-builder-front .wd-builder-block.wd-bc:not(.wd-builder-section) {
    border-style: none;
    border-width: 0;
    border-color: transparent;
    outline: none;
    box-shadow: none;
    background-color: transparent;
    background-image: none;
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
}

/* Zone « espaceur » décorative sans cadre lisible hors éditeur */
.wd-builder-front [data-wd-block-type='spacer'] [data-wd-f='label'] {
    border-style: none;
    border-width: 0;
    background-color: transparent;
}

/* Zone image vide : pas de trait de carte (garder état erreur avec .bg-rose-50 si présent) */
.wd-builder-front
    [data-wd-block-type='image']
    [data-wd-f='placeholder']:not(.bg-rose-50) {
    border-style: none;
    border-width: 0;
    background-color: transparent;
}

/* Ancienne légende catalogue (ex. « Navigation principale · En-tête ») — caches HTML hors éditeur */
.wd-builder-front [data-wd-f='menuLegend'] {
    display: none !important;
}

/* Même répartition colonnes que l’éditeur (données wd-sec-ncol / wd-sec-preset-*) */
@media (min-width: 768px) {
    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_left[data-wd-sec-ncol='2'] {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_right[data-wd-sec-ncol='2'] {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) !important;
    }
}

@media (min-width: 640px) {
    .wd-builder-front .wd-section-columns.wd-sec-preset-mid_wide[data-wd-sec-ncol='3'] {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_left[data-wd-sec-ncol='3'] {
        grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_right[data-wd-sec-ncol='3'] {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_left[data-wd-sec-ncol='4'] {
        grid-template-columns:
            minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_right[data-wd-sec-ncol='4'] {
        grid-template-columns:
            minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-edges_narrow[data-wd-sec-ncol='4'] {
        grid-template-columns:
            minmax(0, 1fr) minmax(0, 2fr) minmax(0, 2fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_left[data-wd-sec-ncol='5'] {
        grid-template-columns:
            minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) !important;
    }

    .wd-builder-front .wd-section-columns.wd-sec-preset-wide_right[data-wd-sec-ncol='5'] {
        grid-template-columns:
            minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr) !important;
    }
}

/* Image : ne dépend pas des utilitaires Tailwind arbitraires (aperçu / index démo) */
.wd-builder-front .wd-builder-block[data-wd-block-type='image'] img.wd-bc-img-el:not(.hidden) {
    max-height: min(70vh, 560px);
    width: 100%;
    object-fit: contain;
}

/* Logo en-tête : le script pose max-height inline ; éviter que la règle « image pleine » impose width 100 % */
.wd-builder-front .wd-bc-img-logo img.wd-bc-img-el:not(.hidden) {
    width: auto;
    max-width: min(320px, 100%);
    object-fit: contain;
}

/* Menu barre icônes + capsule Accueil + bouton Réserver (--wd-* posés par wd-widget-appearance.js) */
.wd-bc-menu-root--icons {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.wd-bc-menu-toolbar-icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(0.75rem, 2vw, 1.35rem);
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.wd-bc-menu-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 2.65rem;
    min-height: 2.65rem;
    padding: 0.4rem;
    border-radius: 9999px;
    border: 0;
    background: transparent;
    color: var(--wd-menu-muted, #334155);
    text-decoration: none;
    line-height: 0;
}

.wd-bc-menu-ico:not(.wd-bc-menu-ico--pill):hover {
    opacity: 0.9;
    text-decoration: none;
    color: var(--wd-ico-hov, currentColor);
}

.wd-bc-menu-ico--pill:hover {
    filter: brightness(1.06);
    text-decoration: none;
}

.wd-bc-menu-ico:focus-visible {
    outline: 2px solid var(--wd-menu-accent, #14532d);
    outline-offset: 2px;
}

.wd-bc-menu-ico svg {
    display: block;
    width: var(--wd-ico-size, 22px);
    height: var(--wd-ico-size, 22px);
}

.wd-bc-menu-ico--pill {
    background: var(--wd-menu-accent, #14532d);
    color: #fff;
}

.wd-bc-menu-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-inline-start: 0.15rem;
    padding: 0.55rem clamp(1.1rem, 3vw, 1.65rem);
    border-radius: 9999px;
    border: 0;
    background: var(--wd-menu-accent, #14532d);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-decoration: none;
    white-space: nowrap;
    line-height: 1.2;
}

.wd-bc-menu-cta:hover {
    filter: brightness(1.06);
    text-decoration: none;
    color: #fff;
}

.wd-bc-logo-figure {
    margin-inline: 0;
}

/*
 * Rendu assemblé (apercu-page.php + index.php) : aucun débordement latéral sur la fenêtre ;
 * le trio en-tête / page / pied utilise la même coquille #wd-pub-shell en flex colonne sur le body.
 */
html {
    overflow-x: clip;
}

body.wd-builder-front #wd-apercu-header .wd-bc-html-content {
    overflow-x: visible;
    overflow-y: visible;
    max-height: none;
}

body.wd-builder-front #wd-apercu-header header {
    box-sizing: border-box;
    max-width: 100%;
    max-height: none;
    overflow: visible;
}

/* Sections pleine largeur du constructeur déjà limitées par overflow-x-hidden sur body */
body.wd-builder-front #wd-apercu-header,
body.wd-builder-front #wd-apercu-main,
body.wd-builder-front #wd-apercu-footer {
    min-width: 0;
    max-width: 100%;
}

/* Arrière-plan section / widget (couleur, image, vidéo) — même rendu qu’en éditeur */
.wd-builder-front .wd-builder-block.wd-has-bg-layer,
.wd-builder-front .wd-builder-section.wd-has-bg-layer {
    position: relative;
    overflow: hidden;
}

.wd-builder-front .wd-bg-layer {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    border-radius: inherit;
}

.wd-builder-front .wd-bg-layer__color,
.wd-builder-front .wd-bg-layer__image,
.wd-builder-front .wd-bg-layer__overlay {
    position: absolute;
    inset: 0;
}

.wd-builder-front .wd-bg-layer__image {
    background-position: center;
    background-repeat: no-repeat;
}

.wd-builder-front .wd-bg-layer__image.wd-bg-fit-cover {
    background-size: cover;
}

.wd-builder-front .wd-bg-layer__image.wd-bg-fit-contain {
    background-size: contain;
}

.wd-builder-front .wd-bg-layer__video,
.wd-builder-front .wd-bg-layer__iframe {
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.wd-builder-front .wd-bg-layer__overlay {
    z-index: 1;
}

.wd-builder-front .wd-builder-block.wd-has-bg-layer > :not(.wd-bg-layer):not(.wd-builder-block-toolbar),
.wd-builder-front .wd-builder-section.wd-has-bg-layer > :not(.wd-bg-layer):not(.wd-builder-section-toolbar) {
    position: relative;
    z-index: 1;
}

/* Hauteur minimale des sections hero (classes posées par le constructeur) */
.wd-builder-front .wd-builder-section > .wd-section-columns.wd-section-grid-min-h-50vh {
    min-height: 50vh;
}

.wd-builder-front .wd-builder-section > .wd-section-columns.wd-section-grid-min-h-70vh {
    min-height: 70vh;
}

.wd-builder-front .wd-builder-section > .wd-section-columns.wd-section-grid-min-h-100vh {
    min-height: 100vh;
}

.wd-builder-front .wd-builder-section.wd-has-bg-layer.wd-bc {
    background-color: transparent !important;
    background-image: none !important;
}

.wd-builder-front .wd-section-col-slot.wd-has-bg-layer {
    position: relative;
    overflow: hidden;
}

.wd-builder-front .wd-section-col-slot.wd-has-bg-layer > :not(.wd-bg-layer) {
    position: relative;
    z-index: 1;
}

.wd-builder-front .wd-section-col-slot.wd-col-min-h-50 {
    min-height: 50vh;
}

.wd-builder-front .wd-section-col-slot.wd-col-min-h-70 {
    min-height: 70vh;
}

.wd-builder-front .wd-section-col-slot.wd-col-min-h-100 {
    min-height: 100vh;
}
