﻿.admin-body { background: #f5f6f8; }
.admin-shell { min-height: 100vh; display: flex; }
.admin-sidebar { width: 260px; min-height: 100vh; background: #fff; border-right: 1px solid #dee2e6; position: fixed; inset: 0 auto 0 0; z-index: 1040; transition: transform .2s ease, width .2s ease; }
.admin-main { width: 100%; min-width: 0; margin-left: 260px; transition: margin-left .2s ease; }
.admin-nav-link { color: #495057; border-radius: .5rem; display: flex; align-items: center; }
.admin-nav-link:hover { color: #212529; background: #f1f3f5; }
.admin-avatar { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #f1f3f5; }
.admin-backdrop { display: none; }
.category-thumb-placeholder { width: 44px; height: 44px; border-radius: .5rem; background: #f1f3f5; display: inline-flex; align-items: center; justify-content: center; color: #868e96; }
.category-image-preview { min-height: 190px; border: 1px dashed #ced4da; border-radius: .75rem; background: #f8f9fa; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; overflow: hidden; }
.category-image-preview img { width: 100%; height: 190px; object-fit: cover; }
body.admin-sidebar-collapsed .admin-sidebar { width: 82px; }
body.admin-sidebar-collapsed .admin-main { margin-left: 82px; }
body.admin-sidebar-collapsed .admin-sidebar .admin-nav-link span, body.admin-sidebar-collapsed .admin-sidebar .admin-nav-link .bi-chevron-down, body.admin-sidebar-collapsed .admin-sidebar .fw-semibold { display: none; }
@media (max-width: 991.98px) { .admin-sidebar { transform: translateX(-100%); } .admin-main { margin-left: 0; } body.admin-sidebar-open .admin-sidebar { transform: translateX(0); } body.admin-sidebar-open .admin-backdrop { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 1030; } }

.admin-brand, .admin-topbar { min-height: 66px; }
.admin-toast { min-width: min(420px, calc(100vw - 2rem)); }
.public-logo { max-height: 42px; width: auto; }
.home-slide-image { height: clamp(360px, 55vw, 680px); object-fit: cover; }
.home-card-image { aspect-ratio: 1 / 1; object-fit: cover; }

/* Managed public page content. */
.page-content img { max-width: 100%; height: auto; }
.page-content a { overflow-wrap: anywhere; }

.public-footer-logo {
    display: block;
    max-width: 190px;
    max-height: 64px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.preserve-line-breaks {
    white-space: pre-line;
}

/* Admin SortableJS drag handles */
.sort-handle { cursor: grab; user-select: none; color: #6c757d; touch-action: none; }
.sort-handle:active { cursor: grabbing; }
.sortable-ghost { opacity: .45; }

/* Contact page */
.contact-info-card { background: linear-gradient(145deg, #fff, #f7f6f3); }
.contact-map-frame { height: 390px; }
@media (max-width: 767.98px) { .contact-map-frame { height: 300px; } }

/* Contact anti-bot honeypot: invisible to real visitors. */
.contact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Public back-to-top button */
.back-to-top {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 1030;
    width: 3rem;
    height: 3rem;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: #34302c;
    color: #fff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
    font-size: 1.25rem;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease;
}
.back-to-top[hidden] { display: none !important; }
.back-to-top:hover, .back-to-top:focus-visible { background: #544b43; color: #fff; transform: translateY(-2px); }
.back-to-top:focus-visible { outline: 3px solid #c3a985; outline-offset: 3px; }
@media (max-width: 575.98px) { .back-to-top { right: 1rem; bottom: 1rem; } }
@media (prefers-reduced-motion: reduce) { .back-to-top { transition: none; } }

/* Slideshow: transparent captions, selectable alignment. */
.home-slide-caption { background: transparent; text-shadow: 0 2px 7px rgba(0,0,0,.75); }
.home-slide-caption-left { text-align: left; right: 35%; left: 10%; }
.home-slide-caption-center { text-align: center; left: 18%; right: 18%; }
.home-slide-caption-right { text-align: right; left: 35%; right: 10%; }
@media (max-width: 767.98px) {
 .home-slide-caption-left,.home-slide-caption-center,.home-slide-caption-right { left: 12%; right: 12%; }
 .home-slide-caption h1 { font-size: 1.15rem; }
 .home-slide-caption .lead { font-size: .9rem; }
}

/* Product showcase: responsive image/text presentation. */
.home-product-showcase-image { max-height: 440px; object-fit: cover; }

/* La Cire contact form confirmation */
.lacire-contact-success{display:flex;align-items:flex-start;gap:14px;background:#f9f5f3;border:1px solid #e8d8d3;border-left:3px solid #bc9c95;border-radius:8px;padding:18px 20px;color:#403734;margin:20px 0}.lacire-contact-success-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;background:#eadbd6;color:#71534d}.lacire-contact-success strong{display:block;font-weight:600;margin-bottom:5px}.lacire-contact-success p{font-size:.95rem;line-height:1.6;color:#685c57}
