/* Soft Coastal — architecture de pages : hiérarchie calme, états lisibles, formulaires secondaires repliés. */
.site-editor-layout .editor-sidebar { gap: 0.85rem; }
.editor-sidebar-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.3rem; border: 1px solid rgba(22, 91, 103, 0.11); }
.editor-sidebar-tab { display: block; min-width: 0; border-radius: 8px; color: #5b7a82; font-weight: 800; text-align: center; text-decoration: none; transition: color 180ms cubic-bezier(.23,1,.32,1), background-color 180ms cubic-bezier(.23,1,.32,1), box-shadow 180ms cubic-bezier(.23,1,.32,1); }
.editor-sidebar-tab:hover { color: #176b73; background: rgba(255,255,255,0.65); }
.editor-sidebar-tab.is-active { background: #fff; }
.editor-media-panel { padding: 0.9rem; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 12px; background: rgba(255,255,255,0.74); }
.editor-tab-heading h2 { margin: 0.15rem 0 0; color: #1a404b; font: 800 1.05rem Manrope, sans-serif; }
.editor-tab-heading p:not(.list-label) { margin: 0.45rem 0 0.8rem; color: #66858c; font-size: 0.78rem; line-height: 1.45; }
/* Soft Coastal — rail naturel : le menu garde la hauteur de son contenu et évite tout étirement artificiel. */
.admin-rail { align-self: start; max-height: none; overflow: visible; }
.admin-nav { flex: 0 0 auto; min-height: 0; overflow: visible; }
.tenant-card { flex: 0 0 auto; margin-top: 0.85rem; }
.admin-rail > form { flex: 0 0 auto; }
.page-order-lock { align-self: center; padding: 0.28rem 0.48rem; border-radius: 999px; color: #58757b; background: rgba(218, 239, 235, 0.65); font-size: 0.68rem; font-weight: 800; white-space: nowrap; }
.site-preview-banner { position: sticky; top: 0.75rem; z-index: 20; width: fit-content; max-width: calc(100% - 2rem); margin: 0.75rem auto -0.25rem; padding: 0.55rem 0.9rem; border: 1px solid rgba(18, 69, 83, 0.16); border-radius: 999px; color: #174653; background: rgba(244, 252, 250, 0.94); box-shadow: 0 8px 20px rgba(20, 77, 87, 0.12); backdrop-filter: blur(10px); font-size: 0.82rem; font-weight: 800; text-align: center; }
.site-page-manager { padding: 1rem; border: 1px solid rgba(20, 86, 102, 0.13); border-radius: 14px; background: linear-gradient(145deg, #f6fcfb, #f1f8f7); box-shadow: 0 9px 20px rgba(33, 83, 92, 0.06); }
.page-manager-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.page-manager-heading h2 { margin: 0.1rem 0 0; color: #193f4a; font-size: 1.05rem; }
.page-count { min-width: 1.8rem; padding: 0.22rem 0.45rem; border-radius: 999px; color: #116c73; background: #d8efea; text-align: center; font-weight: 800; font-size: 0.78rem; }
.page-manager-note { margin: 0.65rem 0 0.85rem; color: #607b82; font-size: 0.82rem; line-height: 1.45; }
.page-list { display: grid; gap: 0.42rem; }
.page-list-item { display: flex; align-items: center; justify-content: space-between; gap: 0.35rem; padding: 0.55rem; border: 1px solid transparent; border-radius: 11px; transition: background-color 180ms cubic-bezier(.23,1,.32,1), border-color 180ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1); }
.page-list-item:hover { background: #fff; border-color: rgba(18, 116, 124, 0.13); transform: translateX(2px); }
.page-list-item.is-selected { background: #fff; border-color: rgba(15, 120, 128, 0.32); box-shadow: 0 5px 12px rgba(36, 99, 105, 0.08); }
.page-select-link { display: flex; align-items: center; min-width: 0; gap: 0.55rem; color: inherit; text-decoration: none; }
.page-select-link strong, .page-select-link small { display: block; overflow: hidden; max-width: 12rem; text-overflow: ellipsis; white-space: nowrap; }
.page-select-link strong { color: #1a404b; font-size: 0.88rem; }
.page-select-link small { margin-top: 0.08rem; color: #739097; font-size: 0.74rem; }
.page-status { display: block; flex: 0 0 auto; width: 0.56rem; height: 0.56rem; border-radius: 50%; }
.page-status.is-published { background: #32a58e; box-shadow: 0 0 0 3px rgba(50, 165, 142, 0.14); }
.page-status.is-draft { background: #bc9b55; box-shadow: 0 0 0 3px rgba(188, 155, 85, 0.13); }
.page-order-actions { display: flex; gap: 0.18rem; }
.page-order-actions form { margin: 0; }
.page-order-actions button { width: 1.65rem; height: 1.65rem; border: 0; border-radius: 7px; color: #4d6d75; background: transparent; font-weight: 800; cursor: pointer; }
.page-order-actions button:hover { color: #0f767d; background: #e4f4f1; }
.page-create-panel, .editor-settings { border: 1px solid rgba(22, 91, 103, 0.11); border-radius: 11px; background: rgba(255,255,255,0.68); }
.page-create-panel { margin-top: 0.85rem; }
.page-create-panel summary, .editor-settings summary { padding: 0.7rem 0.8rem; color: #214954; cursor: pointer; font-size: 0.86rem; font-weight: 800; list-style: none; }
.page-create-panel summary::-webkit-details-marker, .editor-settings summary::-webkit-details-marker { display: none; }
.page-create-panel summary::after, .editor-settings summary::after { content: '+'; float: right; color: #188087; font-size: 1rem; }
.page-create-panel[open] summary::after, .editor-settings[open] summary::after { content: '−'; }
.compact-form { padding: 0.1rem 0.8rem 0.85rem; }
.compact-form label small { display: block; margin-top: 0.25rem; color: #718e95; font-size: 0.72rem; line-height: 1.35; }
.visual-picker { margin: 0.1rem 0 0.8rem; overflow: hidden; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 11px; background: rgba(247, 253, 252, 0.82); }
.visual-picker > summary { padding: 0.7rem 0.75rem; color: #1f5863; cursor: pointer; font-size: 0.83rem; font-weight: 800; list-style: none; }
.visual-picker > summary::after { float: right; color: #188087; content: '+'; font-size: 1rem; }
.visual-picker[open] > summary::after { content: '−'; }
.visual-picker > p { margin: 0 0.75rem 0.75rem; color: #66858c; font-size: 0.75rem; line-height: 1.45; }
.visual-picker-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(118px, 150px)); justify-content: start; gap: 0.55rem; padding: 0 0.75rem 0.75rem; }
.visual-choice { display: grid; gap: 0.4rem; width: 100%; min-width: 0; padding: 0.4rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 10px; color: #3f666e; background: #fff; cursor: pointer; font-size: 0.72rem; font-weight: 700; line-height: 1.25; transition: border-color 180ms cubic-bezier(.23,1,.32,1), box-shadow 180ms cubic-bezier(.23,1,.32,1), transform 180ms cubic-bezier(.23,1,.32,1); }
.visual-choice:hover { border-color: rgba(20, 139, 147, 0.36); transform: translateY(-1px); }
.visual-choice:has(input:checked) { border-color: #168992; box-shadow: 0 0 0 3px rgba(22, 137, 146, 0.13); }
.visual-choice input { position: absolute; opacity: 0; pointer-events: none; }
.visual-choice-preview { display: block; overflow: hidden; width: 124px; height: 70px; max-width: 100%; border-radius: 7px; background-color: #e8f4f1; background-position: center; background-repeat: no-repeat; background-size: cover; }
.visual-choice-thumb { display: block; width: 124px; height: 70px; max-width: 124px; max-height: 70px; object-fit: cover; border-radius: 7px; }
.editor-form .visual-picker-grid { grid-template-columns: repeat(auto-fill, 132px) !important; justify-content: start; width: auto !important; }
.editor-form .visual-choice { width: 132px !important; max-width: 132px !important; }
.editor-form .visual-choice-preview { width: 124px !important; height: 70px !important; min-height: 70px !important; max-height: 70px !important; aspect-ratio: auto !important; }
.visual-picker-empty { grid-column: 1 / -1; margin: 0 !important; padding: 0.55rem; border-radius: 8px; color: #66858c; background: #edf7f5; }
.editor-settings { padding: 0; }
.editor-settings .editor-domain-link { margin: 0 0.8rem 0.8rem; }
.danger-inline-form { margin: 0 0.8rem 0.85rem; }
.danger-text { color: #a34242; }
.site-nav-links { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem 1.2rem; }
.site-nav-links > a:not(.site-book-link) { position: relative; }
.site-nav-links > a.is-current:not(.site-book-link)::after { position: absolute; right: 0; bottom: -0.35rem; left: 0; height: 2px; border-radius: 2px; background: var(--brand); content: ''; }
.site-inline-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.1rem; color: var(--brand); font-weight: 800; text-decoration: none; }
.site-inline-link span { transition: transform 180ms cubic-bezier(.23,1,.32,1); }
.site-inline-link:hover span { transform: translateX(3px); }
.site-image-text { background: linear-gradient(135deg, rgba(225, 242, 239, 0.55), rgba(255,255,255,0)); }
.section-library { margin-top: 0.65rem; overflow: hidden; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 11px; background: rgba(255,255,255,0.72); }
.section-library summary { padding: 0.7rem 0.8rem; color: #17616a; cursor: pointer; font-size: 0.85rem; font-weight: 800; list-style: none; }
.section-library summary::-webkit-details-marker { display: none; }
.section-library[open] summary { border-bottom: 1px solid rgba(22, 91, 103, 0.09); }
.section-library > p { margin: 0.7rem 0.8rem; color: #67858b; font-size: 0.75rem; line-height: 1.45; }
.section-library-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.42rem; padding: 0 0.7rem 0.75rem; }
.section-library-grid form { margin: 0; }
.section-library-card { display: grid; width: 100%; min-height: 5.9rem; padding: 0.6rem; border: 1px solid rgba(22, 91, 103, 0.11); border-radius: 10px; color: #31545d; background: #fff; text-align: left; cursor: pointer; transition: transform 180ms cubic-bezier(.23,1,.32,1), border-color 180ms cubic-bezier(.23,1,.32,1), box-shadow 180ms cubic-bezier(.23,1,.32,1); }
.section-library-card:hover { border-color: rgba(17, 124, 133, 0.35); box-shadow: 0 5px 12px rgba(30, 93, 100, 0.08); transform: translateY(-1px); }
.section-library-card strong { color: #1c4c57; font-size: 0.76rem; }
.section-library-card span { margin-top: 0.22rem; color: #759197; font-size: 0.66rem; line-height: 1.3; }
.section-library-card b { margin-top: 0.35rem; color: #14818a; font-size: 0.69rem; }
.section-detail-fields, .section-image-grid { display: grid; gap: 0.55rem; margin: 0 0 0.8rem; padding: 0.75rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 10px; background: rgba(244, 252, 250, 0.68); }
.section-layout-settings { margin: 0 0 0.8rem; overflow: hidden; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 10px; background: rgba(246, 252, 251, 0.72); }
.section-layout-settings summary { padding: 0.72rem 0.8rem; color: #275a64; cursor: pointer; font-size: 0.82rem; font-weight: 800; }
.section-layout-settings > p { margin: 0; padding: 0 0.8rem 0.7rem; color: #718d93; font-size: 0.74rem; line-height: 1.4; }
.section-layout-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem; padding: 0 0.8rem 0.8rem; }
.section-layout-grid label { color: #41676f; font-size: 0.72rem; font-weight: 800; }
.section-layout-grid select { width: 100%; margin-top: 0.3rem; }
.brand-settings { margin: 0.75rem 0; overflow: hidden; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 10px; background: rgba(246, 252, 251, 0.72); }
.brand-settings summary { padding: 0.72rem 0.8rem; color: #275a64; cursor: pointer; font-size: 0.82rem; font-weight: 800; }
.brand-settings > p { margin: 0; padding: 0 0.8rem 0.7rem; color: #718d93; font-size: 0.74rem; line-height: 1.4; }
.brand-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; padding: 0 0.8rem 0.85rem; }
.brand-settings-grid label { color: #41676f; font-size: 0.73rem; font-weight: 800; }
.brand-settings-grid select { width: 100%; margin-top: 0.3rem; }
.section-detail-fields legend, .section-image-grid legend { padding: 0 0.25rem; color: #35616a; font-size: 0.75rem; font-weight: 800; }
.section-image-grid { grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); }
.section-image-choice { position: relative; display: grid; gap: 0.3rem; min-width: 0; padding: 0.35rem; border: 1px solid transparent; border-radius: 8px; cursor: pointer; }
.section-image-choice:has(input:checked) { border-color: #158b94; background: #fff; box-shadow: 0 0 0 2px rgba(21, 139, 148, 0.12); }
.section-image-choice input { position: absolute; opacity: 0; }
.section-image-choice img { display: block; width: 104px; height: 72px; max-width: 100%; object-fit: cover; border-radius: 6px; }
.section-image-choice span { overflow: hidden; color: #58777e; font-size: 0.68rem; text-overflow: ellipsis; white-space: nowrap; }
.form-note { grid-column: 1 / -1; margin: 0; color: #718e95; font-size: 0.76rem; }
.site-section-intro { max-width: 43rem; }
.site-gallery, .site-highlights, .site-faq, .site-cta-section { padding: clamp(2.8rem, 7vw, 6rem) clamp(1.2rem, 7vw, 7rem); }
.site-gallery { background: #f6fbfa; }
.site-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.site-gallery-grid img { display: block; width: 100%; min-height: 12rem; height: 100%; border-radius: 14px; object-fit: cover; box-shadow: 0 13px 28px rgba(28, 85, 91, 0.11); }
.site-highlight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.site-highlight-grid article { min-height: 10rem; padding: 1.35rem; border-radius: 14px; background: #fff; box-shadow: 0 9px 21px rgba(31, 83, 91, 0.08); }
.site-highlight-grid span { color: var(--brand); font-size: 0.77rem; font-weight: 800; letter-spacing: 0.12em; }
.site-highlight-grid h3 { margin: 2.3rem 0 0; color: var(--ink); font-size: 1.1rem; }
.site-faq { background: linear-gradient(135deg, rgba(237, 247, 245, 0.8), rgba(255,255,255,0)); }
.site-faq-list { display: grid; gap: 0.7rem; max-width: 52rem; margin-top: 1.8rem; }
.site-faq-list details { padding: 1rem 1.15rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 12px; background: #fff; }
.site-faq-list summary { color: var(--ink); cursor: pointer; font-weight: 800; }
.site-faq-list p { margin: 0.75rem 0 0; color: #526d74; line-height: 1.6; }
.site-cta-section { display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: #fff; background: linear-gradient(120deg, var(--brand), #236f79); }
.site-cta-section h2, .site-cta-section p, .site-cta-section .section-kicker { color: #fff; }
.site-cta-section .site-cta { flex: 0 0 auto; background: #fff; color: var(--ink); }
.site-brand img { display: block; width: auto; max-width: 11rem; height: 2.35rem; object-fit: contain; object-position: left center; }
.site-font-editorial h1, .site-font-editorial h2, .site-font-editorial h3, .site-font-editorial .site-brand { font-family: Georgia, 'Times New Roman', serif; letter-spacing: -0.025em; }
.site-font-classic { font-family: 'Source Sans 3', Arial, sans-serif; }
.site-font-classic h1, .site-font-classic h2, .site-font-classic h3 { letter-spacing: -0.015em; }
.site-buttons-pill .site-cta, .site-buttons-pill .site-book-link { border-radius: 999px; }
.site-buttons-straight .site-cta, .site-buttons-straight .site-book-link { border-radius: 6px; }
.tenant-site .section-tone-soft:not(.site-cta-section) { background: linear-gradient(135deg, rgba(227, 243, 240, 0.92), rgba(246, 242, 255, 0.72)); }
.tenant-site .section-tone-ink:not(.site-cta-section) { color: #fff; background: var(--ink); }
.tenant-site .section-tone-ink:not(.site-cta-section) h1, .tenant-site .section-tone-ink:not(.site-cta-section) h2, .tenant-site .section-tone-ink:not(.site-cta-section) h3, .tenant-site .section-tone-ink:not(.site-cta-section) p, .tenant-site .section-tone-ink:not(.site-cta-section) .section-kicker { color: #fff; }
.tenant-site .section-tone-ink:not(.site-cta-section) .site-inline-link { color: #d8f4ef; }
.tenant-site .section-align-center { text-align: center; }
.tenant-site .section-align-center .site-section-intro, .tenant-site .section-align-center .site-faq-list { margin-right: auto; margin-left: auto; }
.tenant-site .section-align-center .site-highlight-grid { text-align: left; }
.tenant-site .section-spacing-compact { padding-top: clamp(1.8rem, 4vw, 3.6rem); padding-bottom: clamp(1.8rem, 4vw, 3.6rem); }
.tenant-site .section-spacing-spacious { padding-top: clamp(4rem, 9vw, 8rem); padding-bottom: clamp(4rem, 9vw, 8rem); }
@media (max-width: 760px) { .site-nav-links { gap: 0.65rem 0.85rem; } .site-nav-links > a.is-current:not(.site-book-link)::after { bottom: -0.2rem; } .page-select-link strong, .page-select-link small { max-width: 9rem; } .visual-picker-grid { grid-template-columns: repeat(2, minmax(112px, 1fr)); } .site-gallery-grid, .site-highlight-grid { grid-template-columns: 1fr; } .site-gallery-grid img { min-height: 13rem; } .site-cta-section { display: grid; } .section-library-grid, .brand-settings-grid, .section-layout-grid { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .admin-rail { position: static; height: auto; max-height: none; overflow: visible; } .admin-nav { min-height: auto; overflow: visible; } }
@media (prefers-reduced-motion: reduce) { .page-list-item, .site-inline-link span { transition: none; } .page-list-item:hover, .site-inline-link:hover span { transform: none; } }


/* P1 — canevas guidé de l’éditeur : aperçu intégré, réglages contextuels et vues Bureau/Mobile. */
.site-editor-layout { grid-template-columns: minmax(250px, 285px) minmax(0, 1fr); }
.site-editor-layout .editor-sidebar { scrollbar-width: thin; }

.editor-top .header-actions { align-items: center; flex-wrap: wrap; }
.editor-save-state { display: inline-flex; align-items: center; gap: 0.42rem; min-height: 2rem; padding: 0.38rem 0.68rem; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 999px; color: #526f76; background: rgba(255, 255, 255, 0.76); font-size: 0.72rem; font-weight: 800; white-space: nowrap; }
.editor-save-state::before { width: 0.48rem; height: 0.48rem; border-radius: 50%; background: #bc9b55; content: ''; }
.editor-save-state.is-published::before { background: #32a58e; box-shadow: 0 0 0 3px rgba(50, 165, 142, 0.13); }
.editor-save-state.has-unsaved { color: #855d17; border-color: rgba(188, 155, 85, 0.28); background: #fffaf0; }
.editor-save-state.has-unsaved::before { background: #c48922; }
.section-nav { border-radius: 9px; border-bottom-color: transparent; transition: color 160ms cubic-bezier(.23,1,.32,1), background-color 160ms cubic-bezier(.23,1,.32,1), box-shadow 160ms cubic-bezier(.23,1,.32,1); }
.section-nav:hover { color: #176b73; background: rgba(232, 246, 243, 0.74); }
.section-nav.is-active { color: #174d57; background: #e5f4f1; box-shadow: inset 3px 0 #168a92; }
.section-nav.is-active strong { color: #174d57; }

.site-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgba(22, 91, 103, 0.1); }

.site-preview-toolbar h2 { font: 800 1rem Manrope, sans-serif; }
.preview-device-switcher { display: inline-flex; padding: 0.24rem; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 10px; background: rgba(222, 241, 237, 0.74); }
.preview-device-switcher button { min-height: 2rem; padding: 0.38rem 0.72rem; border: 0; border-radius: 7px; color: #5b777e; background: transparent; cursor: pointer; font-size: 0.73rem; font-weight: 800; }
.preview-device-switcher button:hover { color: #176b73; }
.preview-device-switcher button.is-active { color: #174d57; background: #fff; box-shadow: 0 3px 9px rgba(32, 84, 92, 0.11); }
.site-preview-stage { display: flex; justify-content: center; padding: 0.9rem; overflow: auto; background-position: 0 0, 0 8px, 8px -8px, -8px 0; }
.site-preview-frame { height: 33rem; }
.site-preview-frame.is-mobile { width: min(390px, 100%); height: 42rem; }

.site-preview-help { border-top: 1px solid rgba(22, 91, 103, 0.09); }
.sections-workspace { scroll-margin-top: 1rem; }
.section-editor-card[hidden] { display: none; }
.section-editor-card.is-active { border-color: rgba(15, 120, 128, 0.3); }
@media (max-width: 1180px) {
    
    .site-editor-layout .editor-sidebar { overflow: visible; }
}
@media (max-width: 700px) {
    .editor-top .header-actions { display: grid; align-items: stretch; }
    .editor-top .header-actions form, .editor-top .header-actions .button, .editor-save-state { width: 100%; }
    .editor-top .header-actions .button, .editor-top .header-actions button { justify-content: center; text-align: center; }
    .editor-save-state { justify-content: center; margin-top: 0.7rem; }
    
    .preview-device-switcher { display: grid; grid-template-columns: 1fr 1fr; }
    
    
    
    .section-editor-card { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .section-nav, .site-preview-frame { transition: none; }
}

@media (max-width: 700px) {
    .admin-shell:has([data-site-editor]) { grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 100vw; overflow-x: hidden; }
    .admin-shell:has([data-site-editor]) .admin-rail,
    .admin-shell:has([data-site-editor]) .admin-main,
    .admin-shell:has([data-site-editor]) .admin-nav,
    .admin-shell:has([data-site-editor]) .site-editor-layout,
    .admin-shell:has([data-site-editor]) .editor-sidebar,
    .admin-shell:has([data-site-editor]) .site-editor-main,
    .admin-shell:has([data-site-editor]) .site-preview-workspace,
    .admin-shell:has([data-site-editor]) .sections-workspace { min-width: 0; width: 100%; max-width: 100%; }
    .admin-shell:has([data-site-editor]) .admin-nav { overflow-x: auto; }
}


/* P1b — états de sauvegarde automatique et protection contre les conflits d’édition. */
.editor-save-state.is-saving { color: #176b73; border-color: rgba(22, 139, 152, 0.25); background: #f0fbf9; }
.editor-save-state.is-saving::before { background: #168b94; animation: editor-save-pulse 900ms ease-in-out infinite alternate; }
.editor-save-state.has-error { color: #9c3e3e; border-color: rgba(181, 68, 68, 0.25); background: #fff5f4; }
.editor-save-state.has-error::before { background: #b94b4b; }
.editor-save-state.has-conflict { color: #714894; border-color: rgba(113, 72, 148, 0.25); background: #fbf6ff; }
.editor-save-state.has-conflict::before { background: #8359a5; }
.editor-top [data-publish-button]:disabled { cursor: not-allowed; opacity: 0.52; }
.section-save-row { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; margin-top: 0.2rem; }
.section-save-status { min-width: 0; color: #667f86; font-size: 0.74rem; font-weight: 700; line-height: 1.35; text-align: right; }
.section-save-status:empty { display: none; }
.section-save-status.is-saving { color: #18717a; }
.section-save-status.is-saved { color: #287c68; }
.section-save-status.has-error { color: #a33f3f; }
.section-save-status.has-conflict { max-width: 28rem; color: #754796; }
@keyframes editor-save-pulse { from { opacity: 0.38; transform: scale(0.78); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 700px) {
    .section-save-row { display: grid; }
    .section-save-row .button { width: 100%; justify-content: center; }
    .section-save-status { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .editor-save-state.is-saving::before { animation: none; }
}


/* P1c — navigation mobile complète pour toutes les pages du site. */
.site-mobile-menu { position: relative; display: none; }
.site-mobile-menu > summary { display: inline-flex; align-items: center; gap: 0.58rem; min-height: 2.45rem; padding: 0.52rem 0.72rem; border: 1px solid color-mix(in srgb, var(--ink) 14%, transparent); border-radius: 9px; color: var(--ink); background: color-mix(in srgb, var(--surface) 92%, transparent); cursor: pointer; font-size: 0.78rem; font-weight: 800; list-style: none; }
.site-mobile-menu > summary::-webkit-details-marker { display: none; }
.site-mobile-menu > summary:focus-visible { outline: 3px solid color-mix(in srgb, var(--brand) 28%, transparent); outline-offset: 3px; }
.site-mobile-menu-icon { display: grid; width: 1rem; gap: 0.18rem; }
.site-mobile-menu-icon i { display: block; width: 100%; height: 2px; border-radius: 2px; background: currentColor; transition: transform 160ms cubic-bezier(.23,1,.32,1), opacity 160ms cubic-bezier(.23,1,.32,1); }
.site-mobile-menu[open] .site-mobile-menu-icon i:first-child { transform: translateY(5px) rotate(45deg); }
.site-mobile-menu[open] .site-mobile-menu-icon i:nth-child(2) { opacity: 0; }
.site-mobile-menu[open] .site-mobile-menu-icon i:last-child { transform: translateY(-5px) rotate(-45deg); }
.site-mobile-menu-panel { position: absolute; z-index: 30; top: calc(100% + 0.55rem); right: 0; display: grid; width: min(18rem, calc(100vw - 2rem)); max-height: calc(100vh - 6rem); padding: 0.5rem; overflow-y: auto; border: 1px solid color-mix(in srgb, var(--ink) 13%, transparent); border-radius: 13px; background: var(--surface); box-shadow: 0 18px 42px color-mix(in srgb, var(--ink) 18%, transparent); }
.site-mobile-menu-panel a { display: flex; align-items: center; min-height: 2.65rem; padding: 0.62rem 0.72rem; border-radius: 9px; color: var(--ink); font-size: 0.84rem; font-weight: 700; text-decoration: none; }
.site-mobile-menu-panel a:hover { background: color-mix(in srgb, var(--brand) 9%, var(--surface)); }
.site-mobile-menu-panel a.is-current { color: var(--brand); background: color-mix(in srgb, var(--brand) 12%, var(--surface)); }
.site-mobile-menu-panel .site-book-link { justify-content: center; margin-top: 0.35rem; color: #fff; background: var(--brand); }
.site-mobile-menu-panel .site-book-link:hover { color: #fff; background: color-mix(in srgb, var(--brand) 86%, var(--ink)); }
@media (max-width: 700px) {
    .site-nav > .site-nav-links { display: none; }
    .site-mobile-menu { display: block; }
}
@media (prefers-reduced-motion: reduce) {
    .site-mobile-menu-icon i { transition: none; }
}


/* Patch consolidé — vérité fonctionnelle, confiance, médias et SEO guidé. */
.editor-sidebar-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.publish-review { position: relative; }
.publish-review > summary { cursor: pointer; list-style: none; }
.publish-review > summary::-webkit-details-marker { display: none; }
.publish-review-panel { position: absolute; z-index: 50; top: calc(100% + 0.55rem); right: 0; width: min(21rem, calc(100vw - 2rem)); padding: 1rem; border: 1px solid rgba(22, 91, 103, 0.16); border-radius: 13px; background: #fff; box-shadow: 0 18px 42px rgba(24, 69, 77, 0.18); }
.publish-review-panel strong { color: #193f4a; }
.publish-review-panel ul { margin: 0.7rem 0 0.9rem; padding-left: 1.2rem; color: #5c777e; font-size: 0.8rem; line-height: 1.65; }
.publish-review-panel form, .publish-review-panel .button { width: 100%; }
.secondary-inline-form { margin: 0 0.8rem 0.8rem; }
.move-actions button:disabled { cursor: not-allowed; opacity: 0.3; }
.visual-choice-placeholder { display: grid; width: 124px; height: 70px; place-items: center; border-radius: 7px; color: #628087; background: #e7f2f0; }
.seo-editor { display: grid; gap: 0.7rem; margin: 0 0 0.8rem; padding: 0.8rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 11px; background: #f7fbfa; }
.seo-editor legend { padding: 0 0.3rem; color: #285862; font-size: 0.78rem; font-weight: 800; }
.seo-editor label small { color: #708a90; text-align: right; }
.seo-editor label.is-over-recommendation small { color: #a65d25; }
.seo-preview { display: grid; gap: 0.25rem; padding: 0.85rem; border: 1px solid #dce7e5; border-radius: 9px; background: #fff; }
.seo-preview span { overflow: hidden; color: #47704f; font-size: 0.7rem; text-overflow: ellipsis; white-space: nowrap; }
.seo-preview strong { overflow: hidden; color: #254fa2; font-size: 1rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.seo-preview p { display: -webkit-box; margin: 0; overflow: hidden; color: #53646b; font-size: 0.75rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.seo-checklist { display: grid; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.seo-checklist li { color: #7b8e92; font-size: 0.74rem; }
.seo-checklist li::before { margin-right: 0.4rem; content: '○'; }
.seo-checklist li.is-done { color: #287c68; }
.seo-checklist li.is-done::before { content: '✓'; }
.media-search-form { margin-bottom: 0.75rem; }
.media-search-form > label { color: #41676f; font-size: 0.73rem; font-weight: 800; }
.media-search-form > div { display: flex; gap: 0.4rem; margin-top: 0.3rem; }
.media-search-form input { min-width: 0; flex: 1; }
.media-management-grid { display: grid; gap: 0.7rem; margin-top: 0.8rem; }
.media-management-card { display: grid; grid-template-columns: 5rem minmax(0, 1fr); gap: 0.7rem; padding: 0.65rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 10px; background: #fff; }
.media-management-card > img { grid-row: 1 / span 3; width: 5rem; height: 5rem; border-radius: 8px; object-fit: cover; }
.media-management-card > div { display: grid; min-width: 0; gap: 0.12rem; }
.media-management-card > div strong, .media-management-card > div small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.media-management-card > div strong { color: #234d57; font-size: 0.78rem; }
.media-management-card > div small { color: #738b91; font-size: 0.68rem; }
.media-management-card form { grid-column: 2; margin: 0; }
.media-management-card form label { font-size: 0.7rem; }
.media-management-card form input { margin-top: 0.2rem; }
.media-management-card .danger-text { font-size: 0.7rem; }
.media-usage-note { grid-column: 2; margin: 0; color: #7b6960; font-size: 0.68rem; line-height: 1.35; }
.media-pagination { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-top: 0.8rem; font-size: 0.72rem; }
.media-pagination a { color: #15747d; font-weight: 800; text-decoration: none; }
.media-pagination span { color: #9aa8aa; }
.editor-history-panel { padding: 0.9rem; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 12px; background: rgba(255,255,255,0.74); }
.publication-history { display: grid; gap: 0.55rem; }
.publication-history article { display: grid; gap: 0.55rem; padding: 0.7rem; border: 1px solid rgba(22, 91, 103, 0.11); border-radius: 9px; background: #fff; }
.publication-history article > div { display: grid; gap: 0.15rem; }
.publication-history strong { color: #214b55; font-size: 0.78rem; }
.publication-history small { color: #758e93; font-size: 0.68rem; }
.publication-history form { margin: 0; }
.site-brand { display: grid; gap: 0.12rem; color: var(--ink); }
.site-brand > span { display: block; }
.site-brand small { max-width: 15rem; color: color-mix(in srgb, var(--ink) 65%, transparent); font-size: 0.62rem; font-weight: 600; letter-spacing: 0; line-height: 1.2; }
.site-image-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.8fr); align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.site-image-text > img { display: block; width: 100%; min-height: 18rem; max-height: 30rem; border-radius: 16px; object-fit: cover; box-shadow: 0 14px 32px rgba(28, 85, 91, 0.12); }
.booking-list, .booking-calendar { align-self: center; display: grid; gap: 0.55rem; }
.booking-list article, .booking-calendar article { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; padding: 0.8rem; border-radius: 11px; background: #fff; box-shadow: 0 8px 18px rgba(55,51,107,.08); }
.booking-list article > div, .booking-calendar article > div { display: grid; gap: 0.15rem; }
.booking-list strong, .booking-calendar strong { color: var(--ink); font-size: 0.83rem; }
.booking-list span, .booking-calendar span { color: #6c7190; font-size: 0.7rem; }
.booking-list a { flex: 0 0 auto; padding: 0.48rem 0.65rem; border-radius: 7px; color: #fff; background: var(--brand); font-size: 0.7rem; font-weight: 800; text-decoration: none; }
.booking-calendar time { display: grid; min-width: 3rem; place-items: center; padding: 0.4rem; border-radius: 8px; color: #fff; background: var(--brand); text-transform: uppercase; }
.booking-calendar time b { font-size: 1rem; }
.booking-calendar time span { color: #fff; font-size: 0.58rem; }
@media (max-width: 980px) {
    .site-image-text { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .editor-sidebar-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .publish-review, .publish-review > summary { width: 100%; }
    .publish-review-panel { position: fixed; top: 50%; right: 1rem; left: 1rem; width: auto; transform: translateY(-50%); }
    .media-search-form > div { display: grid; }
    .media-management-card { grid-template-columns: 4rem minmax(0, 1fr); }
    .media-management-card > img { width: 4rem; height: 4rem; }
    .site-brand small { max-width: 10rem; }
    .booking-list article { align-items: stretch; flex-direction: column; }
    .booking-list a { text-align: center; }
}

.editor-history-actions { display: inline-flex; gap: 0.35rem; }
.editor-history-actions .button { min-height: 2rem; padding: 0.42rem 0.65rem; font-size: 0.72rem; }
.editor-history-actions .button:disabled { cursor: not-allowed; opacity: 0.42; }
@media (max-width: 700px) {
    .editor-history-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .editor-history-actions .button { width: 100%; margin-top: 0; }
}

@media (max-width: 700px) {
    .admin-shell:has([data-site-editor]) .admin-rail { display: flex; min-height: 0; padding: 1rem 1.1rem; align-items: center; }
    .admin-shell:has([data-site-editor]) .admin-nav { display: none; }
    .admin-shell:has([data-site-editor]) .app-wordmark { margin: 0; }
}

.publish-review-panel li.publish-review-warning { color: #9a5b24; font-weight: 750; }


/* P2 — éditeur hybride : grille contrainte, blocs structurés et thèmes réutilisables. */
.template-theme-library { margin-top: 0.85rem; overflow: hidden; border: 1px solid rgba(22, 91, 103, 0.13); border-radius: 11px; background: rgba(255,255,255,0.72); }
.template-theme-library > summary { padding: 0.72rem 0.8rem; color: #275a64; cursor: pointer; font-size: 0.84rem; font-weight: 800; list-style: none; }
.template-theme-library > summary::-webkit-details-marker { display: none; }
.template-theme-library > summary::after { float: right; color: #188087; content: '+'; font-size: 1rem; }
.template-theme-library[open] > summary::after { content: '−'; }
.template-theme-library > p { margin: 0; padding: 0 0.8rem 0.7rem; color: #718d93; font-size: 0.74rem; line-height: 1.4; }
.template-theme-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; padding: 0 0.75rem 0.75rem; }
.template-theme-card { display: grid; gap: 0.35rem; min-width: 0; padding: 0.65rem; border: 1px solid rgba(22, 91, 103, 0.12); border-radius: 10px; background: #fff; }
.template-theme-card.is-current { border-color: #168992; box-shadow: inset 0 0 0 1px rgba(22,137,146,.18); }
.template-theme-card strong { color: #214d57; font-size: 0.75rem; }
.template-theme-card small { min-height: 2.4em; color: #718c92; font-size: 0.66rem; line-height: 1.25; }
.template-theme-card .text-button { padding: 0; text-align: left; font-size: 0.7rem; }
.template-theme-swatches { display: flex; gap: 0.22rem; }
.template-theme-swatches i { display: block; width: 1.15rem; height: 1.15rem; border: 1px solid rgba(0,0,0,.07); border-radius: 50%; }
.builder-section-sorter { display: grid; gap: 0.26rem; }
.builder-section-sorter .section-nav { cursor: grab; user-select: none; }
.builder-section-sorter .section-nav.is-dragging { opacity: 0.46; }
.builder-section-handle { color: #83a0a4; font-size: 1rem; letter-spacing: -0.28rem; transform: rotate(90deg); }
.template-builder { margin: 0 0 0.85rem; border: 1px solid rgba(21, 123, 132, 0.22); }
.template-builder-heading { display: flex; justify-content: space-between; gap: 0.7rem; margin-bottom: 0.75rem; }
.template-builder-heading .list-label { margin: 0; }
.template-builder-heading h3 { margin: 0.12rem 0 0; color: #1c4e59; }
.template-builder-heading p:not(.list-label) { max-width: 35rem; margin: 0.28rem 0 0; color: #69858c; font-size: 0.73rem; line-height: 1.4; }
.template-builder-badge { flex: 0 0 auto; padding: 0.26rem 0.48rem; border-radius: 999px; color: #176f78; background: #dff2ee; font-size: 0.68rem; font-weight: 800; }
.template-builder-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); border: 1px dashed rgba(22, 123, 132, 0.22); background-image: linear-gradient(90deg, rgba(30,137,144,.055) 1px, transparent 1px); background-size: calc(100% / 12) 100%; }
.template-builder-block { position: relative; display: grid; min-width: 0; border: 1px solid rgba(22, 91, 103, 0.14); background: #fff; cursor: grab; transition: box-shadow 160ms cubic-bezier(.23,1,.32,1), transform 160ms cubic-bezier(.23,1,.32,1), border-color 160ms cubic-bezier(.23,1,.32,1); }
.template-builder-block:hover { z-index: 1; transform: translateY(-1px); }
.template-builder-block.is-dragging { opacity: .45; }
.template-builder-block.is-resizing { border-color: #148d96; box-shadow: 0 0 0 3px rgba(20,141,150,.16); cursor: ew-resize; }
.template-builder-block.span-3 { grid-column: span 3; }
.template-builder-block.span-4 { grid-column: span 4; }
.template-builder-block.span-6 { grid-column: span 6; }
.template-builder-block.span-8 { grid-column: span 8; }
.template-builder-block.span-12 { grid-column: span 12; }
.template-builder-block-head { display: flex; align-items: center; min-width: 0; gap: 0.38rem; border-bottom: 1px solid rgba(22,91,103,.09); color: #416870; background: #f7fbfa; font-size: 0.68rem; }
.template-builder-block-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.template-builder-drag-handle { color: #82a2a5; font-size: .95rem; letter-spacing: -.24rem; transform: rotate(90deg); }
.template-builder-resize { display: inline-grid; width: 1.5rem; height: 1.45rem; place-items: center; margin-left: auto; padding: 0; border: 0; border-radius: 5px; color: #468087; background: transparent; cursor: ew-resize; font-size: .85rem; }
.template-builder-resize:hover { color: #126f78; background: #e5f4f1; }
.template-builder-block-preview { display: grid; align-content: center; gap: 0.3rem; color: #52737a; }
.template-builder-block-preview > strong { overflow: hidden; color: #204a55; font-size: 0.8rem; text-overflow: ellipsis; white-space: nowrap; }
.template-builder-block-preview > p { display: -webkit-box; margin: 0; overflow: hidden; font-size: .68rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.template-builder-preview-eyebrow { color: #1a8089; font-size: .56rem; font-weight: 800; letter-spacing: .09em; }
.template-builder-block-preview img { display: block; width: 100%; min-height: 5rem; border-radius: 5px; object-fit: cover; }
.template-builder-empty-image { display: grid; min-height: 5rem; place-items: center; border: 1px dashed #bdd3d0; border-radius: 5px; color: #789499; font-size: .68rem; }
.template-builder-button-preview { display: inline-flex; width: fit-content; padding: .48rem .62rem; border-radius: 7px; color: #fff; background: #168b94; font-size: .68rem; font-weight: 800; }
.template-builder-button-preview.is-soft { color: #1d555f; background: #e3f3ef; }
.template-builder-block-preview blockquote { display: grid; gap: .4rem; margin: 0; color: #355d66; font-size: .74rem; font-style: italic; line-height: 1.4; }
.template-builder-block-preview blockquote small { color: #799499; font-size: .62rem; font-style: normal; }
.template-builder-block-preview b { color: #137a83; font-size: .86rem; }
.template-builder-properties { border-top: 1px solid rgba(22,91,103,.09); }
.template-builder-properties summary { padding: .47rem .6rem; color: #28616a; cursor: pointer; font-size: .68rem; font-weight: 800; list-style: none; }
.template-builder-properties summary::-webkit-details-marker { display: none; }
.template-builder-properties summary::after { float: right; content: '+'; }
.template-builder-properties[open] summary::after { content: '−'; }
.template-builder-properties form { display: grid; gap: .45rem; padding: 0 .6rem .6rem; }
.template-builder-properties label { display: grid; gap: .2rem; color: #4b737b; font-size: .66rem; font-weight: 700; }
.template-builder-properties input, .template-builder-properties textarea, .template-builder-properties select { min-width: 0; padding: .42rem .5rem; font-size: .72rem; }
.template-builder-properties textarea { min-height: 3.5rem; resize: vertical; }
.template-builder-properties .text-button { padding: .15rem 0; text-align: left; font-size: .7rem; }
.template-builder-status { color: #34806e; font-size: .65rem; line-height: 1.3; }
.template-builder-status.has-error { color: #a04747; }
.template-builder-library { margin-top: .6rem; border: 1px solid rgba(22,91,103,.12); }
.template-builder-library > summary { padding: .55rem .65rem; color: #1e6770; cursor: pointer; font-size: .74rem; font-weight: 800; list-style: none; }
.template-builder-library > summary::-webkit-details-marker { display: none; }
.template-builder-library-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; padding: 0 .55rem .55rem; }
.template-builder-library-card { display: grid; min-height: 4.2rem; gap: .28rem; padding: .48rem; border: 1px solid rgba(22,91,103,.11); border-radius: 7px; color: #28545d; background: #f9fcfb; text-align: left; cursor: pointer; }
.template-builder-library-card:hover { border-color: rgba(20,137,146,.4); background: #fff; }
.template-builder-library-card strong { font-size: .68rem; }
.template-builder-library-card small { color: #779196; font-size: .6rem; line-height: 1.25; }
.site-builder-section { padding: clamp(2.8rem, 7vw, 6rem) clamp(1.2rem, 7vw, 7rem); background: var(--surface); }
.site-builder-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(.9rem, 2vw, 1.5rem); max-width: 76rem; margin: 0 auto; }
.site-builder-block { min-width: 0; }
.site-builder-span-3 { grid-column: span 3; }
.site-builder-span-4 { grid-column: span 4; }
.site-builder-span-6 { grid-column: span 6; }
.site-builder-span-8 { grid-column: span 8; }
.site-builder-span-12 { grid-column: span 12; }
.site-builder-text h2, .site-builder-pricing h2, .site-builder-booking h2, .site-builder-contact h2 { margin: .1rem 0 .65rem; color: var(--ink); font-size: clamp(1.45rem, 3vw, 2.35rem); line-height: 1.13; }
.site-builder-text > p:not(.section-kicker), .site-builder-pricing > p, .site-builder-booking > p, .site-builder-contact > p { max-width: 43rem; margin: 0; color: color-mix(in srgb, var(--ink) 70%, transparent); line-height: 1.65; }
.site-builder-image img { display: block; width: 100%; min-height: 15rem; height: 100%; border-radius: 15px; object-fit: cover; box-shadow: 0 14px 30px rgba(25,78,84,.13); }
.site-builder-button { display: flex; align-items: center; }
.site-builder-button .site-cta.soft { color: var(--ink); background: color-mix(in srgb, var(--brand) 14%, var(--surface)); }
.site-builder-booking, .site-builder-pricing, .site-builder-contact { padding: clamp(1.25rem, 3vw, 2.2rem); border-radius: 15px; background: color-mix(in srgb, var(--booking) 70%, var(--surface)); }
.site-builder-pricing { background: #fff; box-shadow: 0 12px 26px rgba(25,78,84,.09); }
.site-builder-price { display: block; margin: .75rem 0; color: var(--brand); font-size: 1.45rem; }
.site-builder-testimonial { padding: 1.5rem; border-left: 3px solid var(--brand); background: color-mix(in srgb, var(--brand) 7%, var(--surface)); }
.site-builder-testimonial blockquote { display: grid; gap: .8rem; margin: 0; color: var(--ink); font-family: Georgia, 'Times New Roman', serif; font-size: clamp(1.05rem, 2vw, 1.45rem); line-height: 1.5; }
.site-builder-testimonial footer { color: color-mix(in srgb, var(--ink) 64%, transparent); font-family: Manrope, sans-serif; font-size: .78rem; font-style: normal; }
@media (max-width: 820px) { .template-theme-grid { grid-template-columns: 1fr; } .template-builder-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-builder-span-3, .site-builder-span-4, .site-builder-span-6, .site-builder-span-8 { grid-column: span 12; } }
@media (max-width: 700px) { .template-builder-heading { display: grid; } .template-builder-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); background-size: 25% 100%; } .template-builder-block.span-3, .template-builder-block.span-4, .template-builder-block.span-6, .template-builder-block.span-8, .template-builder-block.span-12 { grid-column: span 4; } .template-builder-library-grid { grid-template-columns: 1fr 1fr; } .site-builder-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .template-builder-block { transition: none; } .template-builder-block:hover { transform: none; } }
.template-builder-remove { display: inline-grid; width: 1.35rem; height: 1.35rem; place-items: center; margin-left: auto; padding: 0; border: 0; border-radius: 5px; color: #a34b4b; background: transparent; cursor: pointer; font-size: 1rem; line-height: 1; }
.template-builder-remove:hover { background: #fff0ef; }
.template-builder-remove + .template-builder-resize { margin-left: 0; }


/* P3 — studio visuel inspiré de Squarespace : canevas au premier plan, inspecteur contextuel et commandes sobres. */
.site-editor-layout { grid-template-columns: minmax(17rem, 20rem) minmax(0, 1fr); }
.site-editor-layout .editor-sidebar { border: 1px solid rgba(23, 72, 82, 0.10); border-radius: 18px; background: linear-gradient(160deg, rgba(255,255,255,.92), rgba(243,249,248,.94)); box-shadow: 0 13px 30px rgba(33,83,92,.07); }
.editor-top { padding: 1rem 1.15rem; border: 1px solid rgba(23,72,82,.10); border-radius: 18px; background: rgba(255,255,255,.78); box-shadow: 0 10px 26px rgba(33,83,92,.055); }
.editor-top .eyebrow { color: #0e7782; letter-spacing: .12em; }
.editor-top h1 { letter-spacing: -.035em; }
.editor-top .header-actions { justify-content: flex-end; }
.editor-sidebar-tabs { position: sticky; top: .4rem; z-index: 3; margin: -.05rem -.05rem .7rem; padding: .34rem; border-radius: 13px; background: #edf6f4; }
.editor-sidebar-tab { min-height: 2.35rem; padding: .56rem .25rem; font-size: .7rem; }
.editor-sidebar-tab.is-active { color: #123f49; box-shadow: 0 4px 12px rgba(21,71,81,.11); }
.editor-structure-heading { display: flex; align-items: center; justify-content: space-between; gap: .65rem; margin-top: 1rem; padding: .1rem .35rem; }
.editor-structure-heading .list-spaced { margin: 0; }
.editor-structure-heading > span { color: #7b969b; font-size: .65rem; font-weight: 700; }
.builder-section-sorter { padding: .25rem; border-radius: 12px; background: rgba(231,243,240,.56); }
.builder-section-sorter .section-nav { min-height: 3.45rem; padding: .58rem .62rem; border: 1px solid transparent; background: transparent; }
.builder-section-sorter .section-nav:hover { border-color: rgba(17,124,133,.15); background: rgba(255,255,255,.88); }
.builder-section-sorter .section-nav.is-active { border-color: rgba(17,124,133,.18); background: #fff; box-shadow: 0 5px 14px rgba(35,88,96,.08), inset 3px 0 #168a92; }
.builder-section-handle { opacity: .72; cursor: grab; }
.site-preview-workspace { overflow: visible; }
.site-preview-toolbar { position: sticky; top: .75rem; z-index: 6; margin-bottom: .85rem; border: 1px solid rgba(23,72,82,.12); border-radius: 14px; background: rgba(255,255,255,.9); box-shadow: 0 12px 27px rgba(33,83,92,.10); backdrop-filter: blur(14px); }
.site-preview-toolbar h2 { letter-spacing: -.025em; }
.site-preview-controls { display: inline-flex; align-items: center; gap: .55rem; }
.editor-canvas-mode, .preview-device-switcher { padding: .2rem; }
.editor-canvas-mode { display: inline-flex; }
.editor-canvas-mode button, .preview-device-switcher button { border-radius: 7px; }

.site-preview-stage { min-height: 42rem; padding: clamp(.8rem, 2vw, 1.5rem); background-color: #dfeae8; background-image: radial-gradient(rgba(23,72,82,.12) .65px, transparent .65px); background-size: 12px 12px; box-shadow: inset 0 1px 0 rgba(255,255,255,.75); }
.site-preview-frame { height: min(68vh, 48rem); }
.site-preview-frame.is-mobile { height: min(70vh, 48rem); }
.site-preview-help { display: flex; align-items: center; min-height: 2.6rem; margin-top: .65rem; padding: .15rem .35rem; border: 0; background: transparent; }
.site-preview-help::before { display: inline-grid; width: 1.35rem; height: 1.35rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #e5f4f1; font-family: Georgia, serif; font-weight: 700; }
.sections-workspace { margin-top: 1.25rem; }
.section-editor-card.is-active { overflow: hidden; border: 1px solid rgba(20,129,138,.28); border-radius: 16px; box-shadow: 0 15px 34px rgba(28,82,90,.08); }
.section-editor-head { padding-bottom: .9rem; border-bottom: 1px solid rgba(23,72,82,.09); }
.template-builder { padding: 1rem; border-color: rgba(15,123,133,.18); border-radius: 15px; background: linear-gradient(155deg, #f4fbfa 0%, #fbfdfd 70%); }
.template-builder-heading { align-items: center; }
.template-builder-heading h3 { font-size: 1rem; letter-spacing: -.015em; }
.template-builder-grid { gap: .65rem; padding: .7rem; border-color: rgba(20,133,142,.24); border-radius: 12px; background-color: rgba(255,255,255,.8); }
.template-builder-block { min-height: 6.6rem; border-radius: 11px; box-shadow: 0 5px 13px rgba(30,80,86,.055); }
.template-builder-block:hover { border-color: rgba(17,135,145,.48); box-shadow: 0 9px 20px rgba(22,93,100,.12); }
.template-builder-block.is-selected { z-index: 2; border-color: #078b98; box-shadow: 0 0 0 3px rgba(7,139,152,.14), 0 12px 24px rgba(21,91,99,.13); }
.template-builder-block.is-selected .template-builder-block-head { color: #0e6e78; background: #e7f7f4; }
.template-builder-block-head { min-height: 2.25rem; padding: .5rem .6rem; border-radius: 10px 10px 0 0; }
.template-builder-block-preview { min-height: 5.35rem; padding: .76rem; }
.template-builder-properties[open] { background: #fbfefd; }
.template-builder-properties[open] summary { color: #126f78; background: rgba(231,247,244,.62); }
.template-builder-library { border-style: dashed; border-radius: 11px; background: rgba(255,255,255,.62); }
.template-builder-library > summary { min-height: 2.6rem; display: flex; align-items: center; }
.template-builder-library > summary::after { margin-left: auto; content: '+'; font-size: 1.1rem; }
.template-builder-library[open] > summary::after { content: '−'; }
.site-editor-layout.is-canvas-preview .site-preview-workspace { filter: saturate(1.03); }
.site-editor-layout.is-canvas-preview [data-editor-inspector] { opacity: .62; transition: opacity 160ms cubic-bezier(.23,1,.32,1); }
.site-editor-layout.is-canvas-preview [data-editor-inspector]::before { display: block; margin: 0 0 .8rem; padding: .6rem .75rem; border-radius: 9px; color: #5e777d; background: #f0f5f4; content: 'Mode Aperçu actif — revenez à Modifier pour ajuster le contenu.'; font-size: .76rem; font-weight: 700; }
@media (max-width: 1180px) {
    .site-editor-layout { grid-template-columns: 1fr; }
    
    .site-preview-toolbar { position: static; }
}
@media (max-width: 700px) {
    .editor-top { padding: .85rem; border-radius: 14px; }
    .site-editor-layout .editor-sidebar { padding: .25rem; border-radius: 14px; }
    .editor-sidebar-tabs { position: static; margin: 0 0 .55rem; }
    .site-preview-toolbar { display: grid; gap: .7rem; padding: .75rem; border-radius: 12px; }
    .site-preview-controls { display: grid; gap: .4rem; }
    .editor-canvas-mode, .preview-device-switcher { display: grid; grid-template-columns: 1fr 1fr; }
    .editor-canvas-mode button, .preview-device-switcher button { width: 100%; }
    .site-preview-stage { border-radius: 14px; }
    
    .site-preview-frame.is-mobile { height: 38rem; }
    .site-preview-help { min-height: 3rem; font-size: .71rem; }
    .template-builder { padding: .75rem; border-radius: 13px; }
    .template-builder-block { min-height: 5.8rem; }
    .editor-structure-heading > span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .template-builder-block, .site-editor-layout.is-canvas-preview [data-editor-inspector] { transition: none; }
}


/* P4 — studio pleine largeur : panneau d’outils plus lisible et mode focus repliable. */
.site-editor-layout { grid-template-columns: minmax(22rem, 25rem) minmax(0, 1fr); gap: 1.35rem; transition: grid-template-columns 220ms cubic-bezier(.23,1,.32,1), gap 220ms cubic-bezier(.23,1,.32,1); }
.site-editor-main { min-width: 0; }
.site-editor-layout .editor-sidebar { position: sticky; top: .75rem; align-self: start; max-height: calc(100vh - 1.5rem); padding: .48rem; overflow: auto; scrollbar-color: rgba(19,111,120,.28) transparent; transition: width 220ms cubic-bezier(.23,1,.32,1), min-width 220ms cubic-bezier(.23,1,.32,1), padding 220ms cubic-bezier(.23,1,.32,1), opacity 160ms ease, border-color 160ms ease, box-shadow 160ms ease; }
.site-editor-layout .editor-sidebar::-webkit-scrollbar { width: .45rem; }
.site-editor-layout .editor-sidebar::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(19,111,120,.24); }
.site-editor-layout .editor-sidebar .site-page-manager,
.site-editor-layout .editor-sidebar .editor-settings,
.site-editor-layout .editor-sidebar .editor-media-panel,
.site-editor-layout .editor-sidebar .editor-history-panel { padding-inline: .38rem; }
.site-editor-layout .editor-sidebar .page-manager-heading h2 { font-size: 1.22rem; letter-spacing: -.025em; }
.site-editor-layout .editor-sidebar .page-manager-note { max-width: 29rem; font-size: .78rem; line-height: 1.55; }
.site-editor-layout .editor-sidebar .page-list-item { min-height: 3.7rem; }
.site-editor-layout .editor-sidebar .section-nav { min-height: 3.8rem; }
.editor-sidebar-toggle { display: inline-flex; min-height: 2.25rem; align-items: center; justify-content: center; gap: .4rem; padding: .35rem .6rem; border: 1px solid rgba(23,72,82,.14); border-radius: 8px; color: #345c64; background: #fff; box-shadow: 0 2px 8px rgba(23,72,82,.07); cursor: pointer; font-size: .69rem; font-weight: 800; white-space: nowrap; }
.editor-sidebar-toggle:hover { border-color: rgba(13,128,138,.42); color: #0d747d; background: #f8fdfc; }
.editor-sidebar-toggle > span[aria-hidden="true"] { color: #117f89; font-size: 1rem; line-height: 1; }
.site-editor-layout.is-sidebar-collapsed { grid-template-columns: 0 minmax(0, 1fr); gap: 0; }
.site-editor-layout.is-sidebar-collapsed .editor-sidebar { width: 0; min-width: 0; max-height: 0; padding: 0; border-color: transparent; opacity: 0; box-shadow: none; pointer-events: none; }
.site-editor-layout.is-sidebar-collapsed .site-preview-toolbar { margin-left: 0; }
.site-editor-layout.is-sidebar-collapsed .site-preview-stage { padding: clamp(1rem, 2.5vw, 2rem); }
.site-editor-layout.is-sidebar-collapsed .site-preview-frame { height: min(76vh, 56rem); }
@media (max-width: 1180px) {
    .site-editor-layout .editor-sidebar { position: static; max-height: none; }
    .site-editor-layout.is-sidebar-collapsed { grid-template-columns: 1fr; }
    .site-editor-layout.is-sidebar-collapsed .editor-sidebar { display: none; }
}
@media (max-width: 700px) {
    .editor-sidebar-toggle { min-height: 2rem; padding: .3rem .45rem; }
    .editor-sidebar-toggle [data-editor-sidebar-toggle-label] { display: none; }
    .site-preview-controls { grid-template-columns: auto 1fr 1fr; }
    .site-editor-layout .editor-sidebar { overflow: visible; }
    .site-editor-layout .editor-sidebar .page-manager-note { font-size: .73rem; }
}
@media (prefers-reduced-motion: reduce) {
    .site-editor-layout, .site-editor-layout .editor-sidebar { transition: none; }
}


/* P5 — menu principal Projexo : rail plus lisible, repliable et indépendant du studio. */
.admin-shell { grid-template-columns: minmax(19rem, 21rem) minmax(0, 1fr); transition: grid-template-columns 220ms cubic-bezier(.23,1,.32,1); }
.admin-main { min-width: 0; }
.admin-rail { position: sticky; top: 0; height: 100vh; min-height: 100vh; padding: 1.65rem 1.35rem; overflow-y: auto; scrollbar-color: rgba(19,111,120,.25) transparent; transition: width 220ms cubic-bezier(.23,1,.32,1), min-width 220ms cubic-bezier(.23,1,.32,1), padding 220ms cubic-bezier(.23,1,.32,1), opacity 160ms ease; }
.admin-rail::-webkit-scrollbar { width: .45rem; }
.admin-rail::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(19,111,120,.22); }
.app-wordmark { font-size: 1.9rem; }
.admin-nav { gap: .72rem; }
.admin-nav > .admin-nav-group-home > a,
.admin-nav .nav-disclosure > summary,
.admin-nav .nav-disclosure-links > a { min-height: 3.45rem; }
.admin-nav .nav-disclosure > summary { font-size: 1.02rem; }
.admin-nav .nav-disclosure > summary small { font-size: .72rem; }
.admin-nav .nav-disclosure-links > a { font-size: .91rem; }
.admin-rail-toggle { position: fixed; z-index: 50; top: 1rem; left: calc(clamp(19rem, 21vw, 21rem) - 1.3rem); display: inline-grid; width: 2.65rem; height: 2.65rem; place-items: center; padding: 0; border: 1px solid rgba(18,72,83,.16); border-radius: 50%; color: #115f69; background: rgba(255,255,255,.97); box-shadow: 0 7px 18px rgba(20,72,82,.15); cursor: pointer; transition: left 220ms cubic-bezier(.23,1,.32,1), color 160ms ease, border-color 160ms ease, transform 160ms ease; }
.admin-rail-toggle:hover { border-color: rgba(12,128,139,.48); color: #087c87; transform: scale(1.05); }
.admin-rail-toggle > span[aria-hidden="true"] { font-size: 1.65rem; line-height: 1; }
.admin-rail-toggle [data-admin-rail-toggle-label] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.admin-shell.is-admin-rail-collapsed { grid-template-columns: 0 minmax(0, 1fr); }
.admin-shell.is-admin-rail-collapsed .admin-rail { width: 0; min-width: 0; padding-right: 0; padding-left: 0; opacity: 0; overflow: hidden; }
.admin-shell.is-admin-rail-collapsed .admin-rail-toggle { left: .8rem; }
.admin-shell.is-admin-rail-collapsed .admin-main { padding-left: clamp(2.6rem, 4vw, 4.5rem); }
@media (max-width: 980px) {
    .admin-shell { grid-template-columns: minmax(17rem, 19rem) minmax(0, 1fr); }
    .admin-rail-toggle { left: calc(clamp(17rem, 19vw, 19rem) - 1.25rem); }
}
@media (max-width: 700px) {
    .admin-rail-toggle { position: fixed; top: .65rem; left: .65rem; width: 2.4rem; height: 2.4rem; }
    .admin-shell.is-admin-rail-collapsed { grid-template-columns: 1fr; }
    .admin-shell.is-admin-rail-collapsed .admin-rail { display: none; }
    .admin-shell.is-admin-rail-collapsed .admin-main { padding-left: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
    .admin-shell, .admin-rail, .admin-rail-toggle { transition: none; }
}


/* P6 — Studio Editor Projexo : bibliothèque, canevas et inspecteur contextuel.
   Les choix de mise en page restent contraints : aucun CSS libre n'est exposé aux tenants. */
.site-editor-layout { align-items: start; }
.site-editor-main { display: grid; grid-template-columns: minmax(32rem, 1fr) minmax(20.5rem, 25rem); align-items: start; gap: 1rem; }
.site-preview-workspace { min-width: 0; position: sticky; top: .75rem; padding: .72rem; border: 1px solid rgba(12, 85, 94, .14); border-radius: 18px; background: linear-gradient(135deg, rgba(234, 249, 246, .96), rgba(247, 252, 251, .94)), #f5fbfa; box-shadow: 0 18px 48px rgba(17, 78, 85, .11); }
.site-preview-toolbar { min-height: 3.45rem; padding: .18rem .18rem .7rem; }
.site-preview-toolbar > div:first-child { display: flex; min-width: 0; align-items: baseline; gap: .55rem; }
.site-preview-toolbar .list-label { margin: 0; color: #48747a; }
.site-preview-toolbar h2 { margin: 0; color: #153f48; font-size: 1.08rem; }
.site-preview-controls { flex-wrap: wrap; justify-content: flex-end; }
.editor-canvas-mode, .preview-device-switcher { display: inline-flex; overflow: hidden; border: 1px solid rgba(17, 88, 96, .15); border-radius: 9px; background: rgba(255, 255, 255, .78); box-shadow: 0 2px 8px rgba(18, 75, 81, .05); }
.editor-canvas-mode button, .preview-device-switcher button { min-height: 2.18rem; padding: .34rem .6rem; border: 0; border-right: 1px solid rgba(17, 88, 96, .1); color: #537177; background: transparent; cursor: pointer; font-size: .7rem; font-weight: 800; }
.editor-canvas-mode button:last-child, .preview-device-switcher button:last-child { border-right: 0; }
.editor-canvas-mode button.is-active, .preview-device-switcher button.is-active { color: #0b6e78; background: #e7f7f4; box-shadow: inset 0 -2px 0 #16a0aa; }
.site-preview-stage { min-height: clamp(31rem, 68vh, 56rem); padding: clamp(.55rem, 1.25vw, 1rem); border: 1px solid rgba(24, 90, 98, .12); border-radius: 14px; background: radial-gradient(circle at 0 0, rgba(255,255,255,.92), rgba(239, 248, 246, .82) 48%, rgba(219, 239, 237, .84)), #e3f1ef; }
.site-preview-frame { width: 100%; height: clamp(30rem, 63vh, 51rem); overflow: hidden; border: 1px solid rgba(18, 76, 84, .18); border-radius: 9px; background: #fff; box-shadow: 0 12px 32px rgba(24, 76, 81, .13); transition: width 220ms cubic-bezier(.23,1,.32,1), box-shadow 180ms cubic-bezier(.23,1,.32,1); }
.site-preview-frame.is-tablet { width: min(100%, 48rem); margin: 0 auto; box-shadow: 0 12px 32px rgba(24, 76, 81, .16), 0 0 0 .45rem rgba(255,255,255,.58); }
.site-preview-frame.is-mobile { width: min(100%, 24.375rem); margin: 0 auto; border-radius: 1.35rem; box-shadow: 0 15px 35px rgba(24, 76, 81, .2), 0 0 0 .5rem rgba(255,255,255,.58); }
.site-preview-frame iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.site-preview-help { margin: .7rem .2rem 0; color: #52727a; font-size: .74rem; line-height: 1.45; }
.site-preview-help::before { content: '◌'; margin-right: .35rem; color: #07929e; font-size: .95rem; }

/* L'inspecteur devient un panneau indépendant et ne prolonge plus la page sous le canevas. */
.studio-inspector-shell { position: sticky; top: .75rem; max-height: calc(100vh - 1.5rem); overflow: hidden auto; border: 1px solid rgba(12, 85, 94, .16); border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 16px 42px rgba(20, 74, 80, .1); scrollbar-color: rgba(10, 126, 136, .3) transparent; transition: width 220ms cubic-bezier(.23,1,.32,1), opacity 160ms cubic-bezier(.23,1,.32,1), transform 220ms cubic-bezier(.23,1,.32,1); }
.studio-inspector-shell::-webkit-scrollbar { width: .42rem; }
.studio-inspector-shell::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(10, 126, 136, .25); }
.studio-inspector-header { position: sticky; z-index: 3; top: 0; display: flex; min-height: 4.55rem; align-items: center; justify-content: space-between; gap: .6rem; padding: .72rem .8rem; border-bottom: 1px solid rgba(19, 91, 99, .12); background: rgba(250, 254, 253, .96); backdrop-filter: blur(10px); }
.studio-inspector-header p { margin: 0 0 .1rem; color: #5d7e84; font-size: .62rem; font-weight: 850; letter-spacing: .11em; }
.studio-inspector-header h2 { margin: 0; color: #173f47; font-size: .98rem; }
.studio-inspector-header small { display: block; max-width: 13rem; overflow: hidden; color: #6c8589; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.studio-inspector-close { display: inline-grid; width: 2.05rem; height: 2.05rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(18, 87, 95, .15); border-radius: 8px; color: #37686f; background: #fff; cursor: pointer; font-weight: 800; }
.studio-inspector-close:hover { color: #087780; border-color: rgba(7, 139, 152, .44); background: #edfaf8; }
.studio-inspector-shell .sections-workspace { margin: 0; padding: .7rem; }
.studio-inspector-shell .section-editor-card { margin: 0; border: 0; border-radius: 11px; box-shadow: none; }
.studio-inspector-shell .section-editor-head { position: sticky; z-index: 2; top: 4.55rem; margin: -.05rem 0 .65rem; padding: .55rem .12rem .65rem; border-bottom: 1px solid rgba(20, 84, 92, .1); background: #fff; }
.studio-inspector-shell .section-editor-head h2 { font-size: 1.08rem; }
.studio-inspector-shell .template-builder { padding: .6rem; border-radius: 11px; }
.studio-inspector-shell .template-builder-heading { align-items: flex-start; }
.studio-inspector-shell .template-builder-heading p { display: none; }
.studio-inspector-shell .template-builder-heading h3 { font-size: .91rem; }
.studio-inspector-shell .template-builder-heading > div > p:last-child { display: none; }
.studio-inspector-shell .template-builder-grid { grid-template-columns: 1fr; gap: .55rem; }
.studio-inspector-shell .template-builder-block { grid-column: span 1; min-height: auto; }
.studio-inspector-shell .template-builder-block-preview { min-height: 3.6rem; }
.studio-inspector-shell .template-builder-properties { border-top: 1px solid rgba(21, 90, 98, .1); }
.studio-inspector-shell .template-builder-library-grid { grid-template-columns: 1fr 1fr; }
.studio-inspector-shell .editor-form { margin-top: .75rem; }
.studio-inspector-shell .section-layout-settings { margin-top: .7rem; }
.site-editor-main.is-inspector-collapsed { grid-template-columns: minmax(0, 1fr) 0; }
.site-editor-main.is-inspector-collapsed .studio-inspector-shell { width: 0; padding: 0; border-color: transparent; opacity: 0; pointer-events: none; transform: translateX(1rem); }
.site-editor-main.is-inspector-collapsed .site-preview-workspace { max-width: none; }
.studio-inspector-reopen { position: absolute; z-index: 4; top: .85rem; right: .9rem; display: none; min-height: 2.15rem; align-items: center; gap: .35rem; padding: .35rem .58rem; border: 1px solid rgba(12,85,94,.16); border-radius: 8px; color: #196872; background: rgba(255,255,255,.96); box-shadow: 0 3px 12px rgba(19,74,81,.1); cursor: pointer; font-size: .7rem; font-weight: 800; }
.site-editor-main.is-inspector-collapsed .studio-inspector-reopen { display: inline-flex; }

/* Diagnostic responsive : informe, ne force aucun CSS libre. */
.studio-responsive-panel { margin: .75rem 0 0; padding: .65rem; border: 1px solid rgba(16, 112, 121, .14); border-radius: 10px; background: #f7fcfb; }
.studio-responsive-panel > header { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; }
.studio-responsive-panel h3 { margin: 0; color: #24545b; font-size: .8rem; }
.studio-responsive-panel small { color: #69868a; font-size: .67rem; }
.studio-responsive-list { display: grid; gap: .38rem; margin: .55rem 0 0; padding: 0; list-style: none; }
.studio-responsive-list li { position: relative; padding-left: 1.1rem; color: #53767b; font-size: .72rem; line-height: 1.38; }
.studio-responsive-list li::before { position: absolute; left: 0; content: '✓'; color: #129275; font-weight: 900; }
.studio-responsive-list li.is-warning::before { content: '!'; color: #b87126; }
.studio-responsive-list li.is-warning { color: #87521f; }

/* Insertion contrôlée et commentaires contextuels. */
.studio-section-library { margin: .55rem 0 .8rem; }
.studio-section-library summary { cursor: pointer; font-size: .75rem; font-weight: 850; color: #0d747d; }
.studio-section-library-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .42rem; margin-top: .55rem; }
.studio-section-library-grid button { min-height: 4rem; padding: .48rem; border: 1px solid rgba(18, 100, 108, .15); border-radius: 9px; text-align: left; color: #214d54; background: #fff; cursor: pointer; }
.studio-section-library-grid button:hover { border-color: rgba(7, 139, 152, .48); background: #effbf9; }
.studio-section-library-grid strong, .studio-section-library-grid small { display: block; }
.studio-section-library-grid strong { font-size: .71rem; }
.studio-section-library-grid small { margin-top: .16rem; color: #6a8589; font-size: .65rem; line-height: 1.28; }
.studio-comment-panel { margin-top: .8rem; padding: .65rem; border: 1px solid rgba(32, 97, 105, .15); border-radius: 10px; background: #fbfdfd; }
.studio-comment-panel summary { color: #24545b; cursor: pointer; font-size: .8rem; font-weight: 850; }
.studio-comment-list { display: grid; gap: .45rem; margin: .6rem 0; }
.studio-comment { padding: .5rem; border-radius: 8px; background: #f0f8f7; }
.studio-comment strong, .studio-comment time { display: block; }
.studio-comment strong { color: #315b62; font-size: .69rem; }
.studio-comment time { margin-top: .08rem; color: #7a9497; font-size: .61rem; }
.studio-comment p { margin: .34rem 0 0; color: #3c6268; font-size: .73rem; line-height: 1.4; white-space: pre-wrap; }
.studio-comment-form textarea { min-height: 4.3rem; resize: vertical; }
.studio-comment-empty { margin: .55rem 0; color: #6d8589; font-size: .72rem; }

@media (max-width: 1320px) { .site-editor-main { grid-template-columns: minmax(27rem, 1fr) minmax(18.5rem, 21rem); } .site-preview-controls { gap: .28rem; } .editor-sidebar-toggle [data-editor-sidebar-toggle-label] { display: none; } }
@media (max-width: 1080px) { .site-editor-main { grid-template-columns: minmax(0, 1fr); } .site-preview-workspace { position: static; } .studio-inspector-shell { position: static; max-height: none; } .site-editor-main.is-inspector-collapsed { grid-template-columns: minmax(0, 1fr); } .site-editor-main.is-inspector-collapsed .studio-inspector-shell { display: none; } .site-preview-frame { height: min(67vh, 46rem); } }
@media (max-width: 700px) { .site-preview-workspace { padding: .5rem; border-radius: 14px; } .site-preview-toolbar { align-items: flex-start; } .site-preview-toolbar > div:first-child { display: block; } .site-preview-toolbar h2 { margin-top: .15rem; } .site-preview-controls { justify-content: flex-start; } .preview-device-switcher button[data-preview-device="tablet"] { display: none; } .site-preview-stage { min-height: 28rem; padding: .35rem; } .site-preview-frame { height: 32rem; } .site-preview-frame.is-mobile { width: min(100%, 23rem); } .studio-inspector-shell { border-radius: 14px; } .studio-section-library-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .site-preview-frame, .studio-inspector-shell { transition: none; } }

/* Studio responsive overrides: typed CSS variables written by tenant-scoped Studio data. */
.studio-responsive-section { display: contents; }
.studio-has-desktop-spacing-top > section, .studio-has-desktop-spacing-top > footer { padding-top: var(--studio-desktop-spacing-top); }
.studio-has-desktop-spacing-bottom > section, .studio-has-desktop-spacing-bottom > footer { padding-bottom: var(--studio-desktop-spacing-bottom); }
.studio-has-desktop-max-width > section, .studio-has-desktop-max-width > footer { max-width: var(--studio-desktop-max-width); margin-right: auto; margin-left: auto; }
.studio-has-desktop-font-scale > section, .studio-has-desktop-font-scale > footer { font-size: calc(1rem * var(--studio-desktop-font-scale)); }
.studio-has-desktop-direction > .site-image-text, .studio-has-desktop-direction > .site-cta-section { flex-direction: var(--studio-desktop-direction); }
.studio-device-hidden-desktop { display: none; }
@media (max-width: 980px) {
    .studio-device-hidden-desktop { display: contents; }
    .studio-device-hidden-tablet { display: none; }
    .studio-has-tablet-spacing-top > section, .studio-has-tablet-spacing-top > footer { padding-top: var(--studio-tablet-spacing-top); }
    .studio-has-tablet-spacing-bottom > section, .studio-has-tablet-spacing-bottom > footer { padding-bottom: var(--studio-tablet-spacing-bottom); }
    .studio-has-tablet-max-width > section, .studio-has-tablet-max-width > footer { max-width: var(--studio-tablet-max-width); }
    .studio-has-tablet-font-scale > section, .studio-has-tablet-font-scale > footer { font-size: calc(1rem * var(--studio-tablet-font-scale)); }
    .studio-has-tablet-direction > .site-image-text, .studio-has-tablet-direction > .site-cta-section { flex-direction: var(--studio-tablet-direction); }
}
@media (max-width: 700px) {
    .studio-device-hidden-tablet { display: contents; }
    .studio-device-hidden-mobile { display: none; }
    .studio-has-mobile-spacing-top > section, .studio-has-mobile-spacing-top > footer { padding-top: var(--studio-mobile-spacing-top); }
    .studio-has-mobile-spacing-bottom > section, .studio-has-mobile-spacing-bottom > footer { padding-bottom: var(--studio-mobile-spacing-bottom); }
    .studio-has-mobile-max-width > section, .studio-has-mobile-max-width > footer { max-width: var(--studio-mobile-max-width); }
    .studio-has-mobile-font-scale > section, .studio-has-mobile-font-scale > footer { font-size: calc(1rem * var(--studio-mobile-font-scale)); }
    .studio-has-mobile-direction > .site-image-text, .studio-has-mobile-direction > .site-cta-section { flex-direction: var(--studio-mobile-direction); }
}

.site-builder-custom { min-width: 0; overflow-wrap: anywhere; }
.site-builder-custom a { color: var(--brand); font-weight: 800; }
.site-builder-custom ul, .site-builder-custom ol { padding-left: 1.25rem; }

.tenant-site .site-builder-grid { max-width: min(var(--studio-site-max-width, 76rem), 100%); }
.tenant-site .site-builder-block, .tenant-site .site-gallery-grid img, .tenant-site .site-highlight-grid article, .tenant-site .site-faq-list details { border-radius: var(--studio-site-radius, 14px); }

.site-studio-form { padding: 1.2rem; border: 1px solid rgba(22, 91, 103, .13); border-radius: var(--studio-site-radius, 14px); background: #fff; box-shadow: 0 9px 21px rgba(31, 83, 91, .08); }
.site-studio-form h2 { margin-top: 0; }.site-studio-form form { display: grid; gap: .75rem; }.site-form-field { display: grid; gap: .3rem; color: #345660; font-size: .82rem; font-weight: 800; }.site-form-field b { color: #a24343; }.site-form-field input:not([type="checkbox"]), .site-form-field textarea, .site-form-field select { width: 100%; min-height: 2.5rem; padding: .55rem .65rem; border: 1px solid rgba(22, 91, 103, .2); border-radius: 7px; color: var(--ink); background: #fff; font: inherit; }.site-form-field textarea { min-height: 7rem; resize: vertical; }.site-form-honeypot { position: absolute!important; left: -10000px!important; width: 1px!important; height: 1px!important; overflow: hidden!important; }.site-form-success { padding: .7rem; border-radius: 8px; color: #196c62; background: #e7f7f0; font-weight: 700; }.site-form-error { display: block; margin-top: -.45rem; color: #a34343; font-size: .75rem; }.site-studio-form-empty { padding: .85rem; border: 1px dashed rgba(22, 91, 103, .25); border-radius: 8px; color: #687f85; }

.site-studio-cms h2 { margin-top: 0; }.site-studio-cms-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }.site-studio-cms-grid article { padding: 1rem; border: 1px solid rgba(22, 91, 103, .13); border-radius: var(--studio-site-radius, 14px); background: #fff; box-shadow: 0 9px 21px rgba(31, 83, 91, .08); }.site-studio-cms-grid h3 { margin: 0 0 .35rem; color: var(--ink); }.site-studio-cms-grid p { margin: 0; color: #526b73; }


/* Studio Fullscreen — réglages persistants par élément. */
.tenant-site .site-builder-block.studio-block-has-padding { padding: var(--studio-block-padding); }
.tenant-site .site-builder-block.studio-block-has-min-height { min-height: var(--studio-block-min-height); }
.tenant-site .site-builder-block.studio-block-has-border-radius { border-radius: var(--studio-block-radius); overflow: hidden; }
.tenant-site .site-builder-block.studio-block-has-border-width { border: var(--studio-block-border-width) solid var(--studio-block-border-color, transparent); }
.tenant-site .site-builder-block.studio-block-has-background { background: var(--studio-block-background); }
.tenant-site .site-builder-block.studio-block-has-text,
.tenant-site .site-builder-block.studio-block-has-text h2,
.tenant-site .site-builder-block.studio-block-has-text h3,
.tenant-site .site-builder-block.studio-block-has-text p,
.tenant-site .site-builder-block.studio-block-has-text blockquote,
.tenant-site .site-builder-block.studio-block-has-text .site-builder-price { color: var(--studio-block-text) !important; }
.tenant-site .site-builder-block.studio-block-vertical-center,
.tenant-site .site-builder-block.studio-block-vertical-end { display: flex; }
.tenant-site .site-builder-block.studio-block-vertical-center { align-items: center; }
.tenant-site .site-builder-block.studio-block-vertical-end { align-items: flex-end; }
.tenant-site .site-builder-block.studio-block-align-center { margin-right: auto; margin-left: auto; text-align: center; }
.tenant-site .site-builder-block.studio-block-align-right { margin-left: auto; text-align: right; }
.tenant-site .site-builder-block.studio-block-align-center .site-cta,
.tenant-site .site-builder-block.studio-block-align-center .site-inline-link { margin-right: auto; margin-left: auto; }
.tenant-site .site-builder-block.studio-block-align-right .site-cta,
.tenant-site .site-builder-block.studio-block-align-right .site-inline-link { margin-left: auto; }
.tenant-site .site-builder-block.studio-block-width-small { width: 100%; max-width: 22rem; }
.tenant-site .site-builder-block.studio-block-width-medium { width: 100%; max-width: 34rem; }
.tenant-site .site-builder-block.studio-block-width-large { width: 100%; max-width: 52rem; }
.tenant-site .site-builder-block.studio-block-shadow-soft { box-shadow: 0 8px 18px rgba(25,78,84,.10); }
.tenant-site .site-builder-block.studio-block-shadow-medium { box-shadow: 0 14px 30px rgba(25,78,84,.16); }
.tenant-site .site-builder-block.studio-block-shadow-strong { box-shadow: 0 22px 44px rgba(25,78,84,.24); }
.tenant-site .site-builder-block.studio-block-heading-small h2 { font-size: 1.35rem; }
.tenant-site .site-builder-block.studio-block-heading-medium h2 { font-size: 2rem; }
.tenant-site .site-builder-block.studio-block-heading-large h2 { font-size: 2.7rem; }
.tenant-site .site-builder-block.studio-block-heading-xl h2 { font-size: clamp(3rem, 5vw, 4.5rem); }
.tenant-site .site-builder-block.studio-block-body-small > p { font-size: .8rem; }
.tenant-site .site-builder-block.studio-block-body-medium > p { font-size: 1rem; }
.tenant-site .site-builder-block.studio-block-body-large > p { font-size: 1.14rem; }
.tenant-site .site-builder-block .site-cta { transition: transform .16s ease, box-shadow .16s ease; }
.tenant-site .site-builder-block.studio-block-button-small .site-cta { padding: .52rem .7rem; font-size: .7rem; }
.tenant-site .site-builder-block.studio-block-button-large .site-cta { padding: .98rem 1.3rem; font-size: .88rem; }
.tenant-site .site-builder-block .site-inline-link { font-size: var(--studio-block-button-size, inherit); }
.tenant-site .site-builder-block.site-builder-image img { object-fit: var(--studio-block-image-fit, cover); object-position: var(--studio-block-image-position, center); }
.tenant-site .site-builder-block.site-builder-image.studio-block-image-small img { min-height: 9rem; height: 9rem; }
.tenant-site .site-builder-block.site-builder-image.studio-block-image-medium img { min-height: 16rem; height: 16rem; }
.tenant-site .site-builder-block.site-builder-image.studio-block-image-large img { min-height: 25rem; height: 25rem; }

/* Studio navigation menus — Header, Footer and custom groups. */
.site-footer-with-menus { display: grid; grid-template-columns: minmax(10rem, .9fr) minmax(0, 2.2fr) auto; gap: clamp(1rem, 4vw, 3.5rem); align-items: start; }
.site-footer-brand { display: grid; gap: .35rem; }
.site-footer-brand strong { display: block; }
.site-footer-brand span { color: color-mix(in srgb, currentColor 68%, transparent); font-size: .82rem; line-height: 1.45; }
.site-footer-menus { display: flex; flex-wrap: wrap; gap: 1.5rem clamp(1.5rem, 4vw, 3.5rem); }
.site-footer-menu { display: grid; gap: .48rem; min-width: 8rem; }
.site-footer-menu > span { color: color-mix(in srgb, currentColor 72%, transparent); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.site-footer-menu > div { display: grid; gap: .38rem; }
.site-footer-menu a, .site-footer-team-link { color: inherit; font-size: .88rem; text-decoration: none; transition: color 160ms cubic-bezier(.23,1,.32,1); }
.site-footer-menu a:hover, .site-footer-team-link:hover { color: var(--brand); }
.site-footer-team-link { justify-self: end; font-weight: 800; white-space: nowrap; }
@media (max-width: 760px) {
    .site-footer-with-menus { grid-template-columns: 1fr; gap: 1.5rem; }
    .site-footer-menus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
    .site-footer-team-link { justify-self: start; }
}
