/* ============================================================
   GALERIE OFFENSTADT — Frontend CSS
   Neumorphisme soyeux & Camaïeu de Bleu Offenstadt (#3b4c6b)
   Fonts: Baskervville (titres), Noto Sans (corps)
   ============================================================ */

:root {
    /* === CAMAÏEU DE BLEU (BASÉ SUR LE BLEU CARACTÉRISTIQUE #3b4c6b) === */
    --navy-deep: #253147;
    --navy-primary: #3b4c6b;
    --navy-medium: #33425e;
    --navy-slate: #3b4c6b;
    --blue-muted: #5d7092;
    --blue-soft: #8596b3;
    --blue-light: #b8c6dc;
    --blue-tint-surface: #eef3f8;
    --blue-tint-card: #f4f7fb;
    --bg-page: #edf2f7;
    --bg-pure: #ffffff;
    
    /* === ACCENT OR GALERIE === */
    --gold-primary: #d2c5a2;
    --gold-light: #f3e5ab;
    --gold-dark: #8f6d14;
    
    /* === NEUMORPHISME DOUX & SATINÉ (OMBRES SUBTILES SANS GLOW AGRESSIF) === */
    --nm-raised: 5px 5px 14px rgba(155, 172, 196, 0.28), -5px -5px 14px rgba(255, 255, 255, 0.8);
    --nm-raised-sm: 3px 3px 8px rgba(155, 172, 196, 0.22), -3px -3px 8px rgba(255, 255, 255, 0.75);
    --nm-raised-lg: 8px 8px 20px rgba(145, 164, 190, 0.3), -8px -8px 20px rgba(255, 255, 255, 0.85);
    --nm-hover: 4px 4px 12px rgba(145, 164, 190, 0.32), -4px -4px 12px rgba(255, 255, 255, 0.85);
    --nm-pressed: inset 2px 2px 5px rgba(155, 172, 196, 0.28), inset -2px -2px 5px rgba(255, 255, 255, 0.8);
    --nm-inset-sm: inset 1px 1px 3px rgba(155, 172, 196, 0.22), inset -1px -1px 3px rgba(255, 255, 255, 0.75);
    
    --nm-border-soft: 1px solid rgba(255, 255, 255, 0.65);
    --nm-border-subtle: 1px solid rgba(180, 195, 216, 0.35);
}

/* === RESET & BASE === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
    scroll-behavior: smooth;
    height: 100%;
    overflow-x: hidden;
    max-width: 100%;
}
[id],
#oeuvres,
#biographie,
#expertise,
.publication-item,
.artiste-gallery-section {
    scroll-margin-top: 100px;
}
body {
    font-family: 'Noto Sans', -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.7;
    color: #445166;
    background: var(--bg-page);
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
    position: relative;
}
a { color: var(--navy-primary); text-decoration: none; transition: color .3s ease; }
a:hover { color: #0d5a78; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: 'Baskervville', Georgia, 'Times New Roman', serif; color: var(--navy-primary); line-height: 1.3; }
h1 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 400; }
h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); }
h3 { font-size: clamp(1.1rem, 2vw, 1.4rem); }

/* === UTILITIES === */
.container { 
    max-width: var(--container-max-width, 1300px); 
    margin: 0 auto; 
    padding: 0 4%; 
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 640px) {
    .container {
        padding: 0 12px !important;
    }
}
.container--narrow { max-width: min(800px, var(--container-max-width, 800px)); }
.section { padding: 60px 0; flex: 1 0 auto; }
.section-alt { background: var(--blue-tint-surface); }
.section-title { text-align: center; margin-bottom: 40px; letter-spacing: 2px; text-transform: uppercase; font-size: 18px; color: var(--blue-muted); }
.text-center { text-align: center; }
.text-muted { color: var(--blue-soft); }
.mt-3 { margin-top: 40px; }
.lead { font-size: 18px; color: var(--navy-slate); max-width: 700px; }

/* Accessibility Screen Reader Only & SEO */
.visually-hidden,
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* === NEUMORPHIC SHADOWS (DOUX & DIFFUS) === */
.nm-raised {
    background: var(--blue-tint-card);
    border-radius: var(--br);
    border: var(--nm-border-soft);
    box-shadow: var(--nm-raised);
}
.nm-pressed {
    background: var(--blue-tint-card);
    border-radius: var(--br);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: var(--nm-pressed);
}
.nm-flat {
    background: var(--blue-tint-card);
    border-radius: var(--br);
    border: var(--nm-border-soft);
    box-shadow: var(--nm-raised-sm);
}

/* === GLOBAL PROGRESS BAR === */
#load-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 3px;
    background: linear-gradient(90deg, #3b4c6b, #5d7092, #3b4c6b);
    background-size: 200% 100%;
    animation: load-shimmer 1.2s ease-in-out infinite;
    z-index: 99999;
    transition: width .4s cubic-bezier(.22,.8,.3,1);
}
@keyframes load-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
#load-progress.done {
    width: 100% !important;
    opacity: 0;
    transition: width .3s ease, opacity .5s ease .3s;
}

/* === ULTRA-MODERN SKELETON PLACEHOLDER (THUMBS & IMAGES) — 100% TRANSPARENT === */
.skel-img {
    position: relative;
    overflow: hidden;
    background: transparent !important;
}
.skel-img::before {
    display: none !important;
}
.skel-img::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 26px;
    height: 26px;
    border: 2px solid rgba(210, 197, 162, 0.25);
    border-top-color: #d2c5a2;
    border-radius: 50%;
    animation: skel-spin 0.85s linear infinite;
    z-index: 3;
    pointer-events: none;
}
@keyframes skel-wave {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
@keyframes skel-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

.skel-img img {
    opacity: 0;
    filter: blur(8px);
    transform: scale(1.02);
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), 
                filter 0.45s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}
.skel-img img.revealed,
img.revealed {
    opacity: 1 !important;
    filter: blur(0) !important;
    transform: scale(1) !important;
}

/* === REVEAL ANIMATIONS (applied via JS IntersectionObserver) === */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .65s cubic-bezier(.22,.8,.3,1), transform .65s cubic-bezier(.22,.8,.3,1);
    will-change: opacity, transform;
}
.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}
/* Stagger for grid children */
.reveal-stagger .reveal:nth-child(1) { transition-delay: .05s; }
.reveal-stagger .reveal:nth-child(2) { transition-delay: .1s; }
.reveal-stagger .reveal:nth-child(3) { transition-delay: .15s; }
.reveal-stagger .reveal:nth-child(4) { transition-delay: .2s; }
.reveal-stagger .reveal:nth-child(5) { transition-delay: .25s; }
.reveal-stagger .reveal:nth-child(6) { transition-delay: .3s; }
.reveal-stagger .reveal:nth-child(7) { transition-delay: .35s; }
.reveal-stagger .reveal:nth-child(8) { transition-delay: .4s; }
.reveal-stagger .reveal:nth-child(9) { transition-delay: .45s; }
.reveal-stagger .reveal:nth-child(10) { transition-delay: .5s; }
.reveal-stagger .reveal:nth-child(11) { transition-delay: .55s; }
.reveal-stagger .reveal:nth-child(12) { transition-delay: .6s; }
/* Text blocks slide from left */
.reveal-left {
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity .65s cubic-bezier(.22,.8,.3,1), transform .65s cubic-bezier(.22,.8,.3,1);
}
.reveal-left.visible {
    opacity: 1;
    transform: translateX(0);
}
/* Cover images slide from right */
.reveal-right {
    opacity: 0;
    transform: translateX(30px);
    transition: opacity .65s cubic-bezier(.22,.8,.3,1), transform .65s cubic-bezier(.22,.8,.3,1);
}
.reveal-right.visible {
    opacity: 1;
    transform: translateX(0);
}
/* Hero always visible immediately */
.hero, .page-hero { opacity: 1; }

/* === BUTTONS === */
.btn {
    display: inline-block;
    padding: 12px 28px;
    border-radius: var(--br);
    font-family: 'Baskervville', serif;
    font-size: 13.5px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--navy-primary);
    background: var(--blue-tint-card);
    border: 1px solid rgba(255, 255, 255, 0.65);
    cursor: pointer;
    transition: all .2s ease;
    text-decoration: none;
    box-shadow: 2px 2px 6px rgba(155, 172, 196, 0.25), -2px -2px 6px rgba(255, 255, 255, 0.7);
}
.btn:hover {
    box-shadow: 3px 3px 10px rgba(145, 164, 190, 0.32), -3px -3px 10px rgba(255, 255, 255, 0.85);
    transform: translateY(-1px);
    color: var(--navy-deep);
    text-decoration: none;
}
.btn:active {
    box-shadow: inset 2px 2px 4px rgba(155, 172, 196, 0.28), inset -2px -2px 4px rgba(255, 255, 255, 0.75);
    transform: translateY(0);
}
.btn-sm { padding: 7px 18px; font-size: 12px; letter-spacing: 1px; border-radius: var(--br); }
.btn-lg { padding: 16px 36px; font-size: 15px; }
.btn-secondary {
    background: var(--blue-tint-card);
    color: var(--navy-slate);
    border: 1px solid rgba(255, 255, 255, 0.65);
    box-shadow: 2px 2px 6px rgba(155, 172, 196, 0.25), -2px -2px 6px rgba(255, 255, 255, 0.7);
}
.btn-secondary:hover {
    color: var(--navy-primary);
    box-shadow: 3px 3px 10px rgba(145, 164, 190, 0.32), -3px -3px 10px rgba(255, 255, 255, 0.85);
    transform: translateY(-1px);
}

/* Primary button (style contemporain bleu nuit avec shimmer) */
.btn-primary {
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    color: #eef3f8 !important;
    border: 1px solid rgba(180, 195, 216, 0.25);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.btn-primary:hover::before {
    left: 100%;
}
.btn-primary:hover {
    color: #ffffff !important;
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
    transform: translateY(-2px);
}

/* === HEADER === */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: rgba(59, 76, 107, 0.96);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    padding: 0;
    transition: background .4s ease;
    box-shadow: 0 2px 20px rgba(0,0,0,.15);
}
.header-brand {
    display: inline-flex;
    align-items: center;
    gap: clamp(8px, 1.2vw, 14px);
    flex-shrink: 0;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.header-brand:hover {
    transform: translateY(-1px);
}
.header-expert-portrait {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    max-height: 56px;
    margin: 0;
    opacity: 0.94;
    transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), filter 0.35s ease;
    text-decoration: none;
    flex-shrink: 0;
}
.header-expert-portrait:hover,
.header-brand:hover .header-expert-portrait {
    opacity: 1;
    transform: scale(1.06);
}
.header-expert-img {
    height: 100%;
    width: auto;
    max-height: 56px;
    object-fit: contain;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3));
    transition: filter 0.35s ease, transform 0.35s ease;
    pointer-events: none;
}
.header-brand:hover .header-expert-img {
    filter: drop-shadow(0 4px 14px rgba(210, 197, 162, 0.55)) drop-shadow(0 2px 6px rgba(0, 0, 0, 0.4));
}
@media (max-width: 960px) {
    .header-brand {
        gap: 8px;
    }
    .header-expert-portrait {
        height: 46px;
        max-height: 46px;
    }
    .header-expert-img {
        max-height: 46px;
    }
}
@media (max-width: 520px) {
    .header-brand {
        gap: 6px;
    }
    .header-expert-portrait {
        height: 38px;
        max-height: 38px;
    }
    .header-expert-img {
        max-height: 38px;
    }
}
.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: var(--container-max-width, 1300px);
    margin: 0 auto;
    padding: 0 4%;
    height: 70px;
}
.site-logo {
    display: block;
    font-family: 'Baskervville', Georgia, serif;
    font-size: 17.5px;
    line-height: 1.15;
    color: #ffffff;
    background: linear-gradient(110deg, #ffffff 0%, #ffffff 38%, #f3e8c9 50%, #ffffff 62%, #ffffff 100%);
    background-size: 250% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: logo-flash-sheen 6.5s ease-in-out infinite;
    text-decoration: none;
    letter-spacing: 1px;
    /* Logo sur 2 lignes (GALERIE / OFFENSTADT ou OFFENSTADT / GALLERY) */
    max-width: 155px;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
    flex-shrink: 0;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.3s ease;
}
@keyframes logo-flash-sheen {
    0%, 55% {
        background-position: 100% 0;
    }
    70%, 100% {
        background-position: 0% 0;
    }
}
.header-brand:hover .site-logo,
.site-logo:hover {
    transform: translateX(2px);
    filter: drop-shadow(0 0 10px rgba(210, 197, 162, 0.55));
}
@media (prefers-reduced-motion: reduce) {
    .site-logo {
        animation: none !important;
        -webkit-text-fill-color: #ffffff;
    }
}

/* Navigation */
.site-nav { 
    display: flex; 
    align-items: center; 
    gap: clamp(10px, 1.4vw, 22px); 
    flex-wrap: nowrap;
}
.site-nav > a,
.site-nav .nav-item > a {
    display: inline-flex;
    align-items: center;
    font-family: 'Baskervville', serif;
    font-size: clamp(11.5px, 0.95vw, 13px);
    line-height: 1;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: rgba(255,255,255,.8);
    transition: color .3s ease;
    white-space: nowrap;
    text-decoration: none;
}
.site-nav a:hover, .site-nav a.active { color: #fff; }

/* Dropdown — sous-menu dynamique */
.nav-item { 
    position: relative; 
    display: inline-flex;
    align-items: center;
}
.nav-item > a { 
    display: inline-flex; 
    align-items: center;
    gap: 4px;
}
.nav-item .caret { 
    font-size: 8px; 
    margin-left: 1px; 
    opacity: .7; 
    line-height: 1;
    display: inline-block;
    transition: transform .25s ease;
}
.nav-item.has-children:hover .caret {
    transform: rotate(180deg);
}
.nav-item .submenu {
    position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    min-width: 200px; background: #3e4d6b; border: 1px solid rgba(255,255,255,.12);
    border-radius: var(--br-sm, var(--br)); box-shadow: 0 10px 30px rgba(0,0,0,.4);
    padding: 6px; opacity: 0; visibility: hidden; transform: translateX(-50%) translateY(8px);
    transition: all .25s cubic-bezier(.4, 0, .2, 1); z-index: 100;
}
.nav-item.has-children:hover .submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.nav-item .submenu a {
    display: block; padding: 9px 14px; border-radius: var(--br-sm, var(--br)); white-space: nowrap;
    font-family: 'Noto Sans', sans-serif; font-size: 13px; letter-spacing: .5px;
    text-transform: none; color: rgba(255,255,255,.85);
}
.nav-item .submenu a:hover, .nav-item .submenu a.active { color: #fff; background: rgba(255,255,255,.08); }
/* Sous-lien mobile (overlay) — indenté */
.menu-overlay nav a.sub-link {
    padding-left: 28px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    gap: 6px;
}
.sub-link-arrow {
    color: var(--gold-primary, #d2c5a2);
    opacity: 0.85;
    font-size: 13px;
}
.lang-switch { display: flex; gap: 6px; margin-left: 12px; }
.lang-switch span, .lang-switch a { font-size: 12px; color: rgba(255,255,255,.5); cursor: pointer; padding: 2px 4px; transition: color .3s ease; text-decoration: none; }
.lang-switch span.active, .lang-switch a.active { color: #fff; border-bottom: 1px solid #fff; }
.lang-switch a:hover { color: #fff; }

/* ============================================================
   MENU TOGGLE — ICÔNE ULTRA-MINIMALISTE & CINÉTIQUE HAUTE COUTURE
   ============================================================ */
.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5.5px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(210, 197, 162, 0.3);
    border-radius: 50%;
    width: 38px;
    height: 38px;
    padding: 0;
    cursor: pointer;
    z-index: 102;
    position: relative;
    margin-left: auto;
    flex-shrink: 0;
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.menu-toggle:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: #d2c5a2;
    transform: scale(1.06);
    box-shadow: 0 4px 14px rgba(210, 197, 162, 0.25);
}

.menu-toggle span {
    display: block;
    height: 1.5px;
    background: #ffffff;
    border-radius: 1px;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                width 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                opacity 0.25s ease,
                background 0.3s ease;
    transform-origin: center;
}

/* Lignes asymétriques signature Haute Couture */
.menu-toggle span:nth-child(1) {
    width: 19px;
}
.menu-toggle span:nth-child(2) {
    width: 12px;
    background: #d2c5a2 !important; /* Ligne centrale dorée */
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.menu-toggle span:nth-child(3) {
    width: 16px;
}

/* Hover : respiration magnétique et alignement parfait */
.menu-toggle:hover span:nth-child(1) {
    width: 19px;
}
.menu-toggle:hover span:nth-child(2) {
    width: 19px;
    background: #f3e8c9 !important;
}
.menu-toggle:hover span:nth-child(3) {
    width: 19px;
}

/* Open : Morphing cinétique précis en croix minimaliste bicolore */
.menu-toggle.open {
    background: rgba(210, 197, 162, 0.15);
    border-color: #d2c5a2;
    transform: rotate(90deg);
}

.menu-toggle.open span:nth-child(1) {
    width: 18px;
    transform: translateY(7px) rotate(45deg);
    background: #ffffff !important;
}

.menu-toggle.open span:nth-child(2) {
    width: 0;
    opacity: 0;
    transform: scaleX(0);
}

.menu-toggle.open span:nth-child(3) {
    width: 18px;
    transform: translateY(-7px) rotate(-45deg);
    background: #d2c5a2 !important; /* Diagonale en or */
}

/* === HIGH-TECH MOBILE DRAWER (LUXURY ART GALLERY STYLING — HARMONISÉ HEADER #3b4c6b) === */
.menu-overlay {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 100%;
    max-width: 400px;
    z-index: 105;
    background: linear-gradient(180deg, #3b4c6b 0%, #253147 100%);
    backdrop-filter: blur(24px) saturate(180%);
    -webkit-backdrop-filter: blur(24px) saturate(180%);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transform: translateX(100%);
    transition: transform .55s cubic-bezier(.32, .72, .3, 1);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
}
.menu-overlay.open {
    transform: translateX(0);
    box-shadow: -15px 0 50px rgba(18, 25, 38, 0.6);
    border-left: 1px solid rgba(255, 255, 255, 0.15);
}
.menu-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    background: radial-gradient(ellipse at 30% 15%, rgba(210, 197, 162, 0.12) 0%, transparent 60%),
                radial-gradient(ellipse at 70% 85%, rgba(133, 150, 179, 0.18) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    transition: opacity .5s ease;
}
.menu-overlay.open::before { opacity: 1; }

.menu-overlay-inner {
    position: relative;
    z-index: 1;
    padding: 28px 24px 32px;
    width: 100%;
    max-width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
    overflow-x: hidden;
}

.menu-overlay-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.menu-overlay-brand {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 15px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #ffffff;
    background: linear-gradient(110deg, #ffffff 0%, #ffffff 38%, #f3e8c9 50%, #ffffff 62%, #ffffff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 600;
}
.menu-overlay-close {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    border-radius: 50%;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    transition: all 0.35s ease;
    box-sizing: border-box;
    position: relative;
}
.menu-overlay-close::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(210, 197, 162, 0.15) 0%, transparent 70%);
    opacity: 0;
    transition: opacity 0.35s ease;
}
.menu-overlay-close svg {
    display: block;
    width: 13px;
    height: 13px;
    margin: auto;
    pointer-events: none;
    transition: transform 0.4s ease, opacity 0.3s ease;
    opacity: 0.85;
    stroke: #ffffff;
}
.menu-overlay-close:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(210, 197, 162, 0.6);
    color: #ffffff;
    box-shadow: 0 0 16px rgba(210, 197, 162, 0.3);
}
.menu-overlay-close:hover::before {
    opacity: 1;
}
.menu-overlay-close:hover svg {
    transform: rotate(90deg);
    opacity: 1;
}

.menu-overlay-label {
    font-family: 'Noto Sans', sans-serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--gold-primary, #d2c5a2);
    margin-bottom: 10px;
}

.menu-overlay nav {
    margin-bottom: 22px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-left: 14px;
}
.menu-overlay nav a {
    display: block;
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(19px, 4vw, 23px);
    color: rgba(255, 255, 255, 0.9);
    padding: 8px 0;
    letter-spacing: 1.2px;
    text-decoration: none !important;
    opacity: 0;
    transform: translateX(25px);
    transition: opacity .45s cubic-bezier(.4, 0, .2, 1), transform .45s cubic-bezier(.4, 0, .2, 1), color .2s ease;
    position: relative;
}
.menu-overlay nav a.active {
    color: #ffffff !important;
    font-weight: 600;
    text-shadow: 0 0 12px rgba(210, 197, 162, 0.5), 0 0 24px rgba(210, 197, 162, 0.25);
}
.menu-overlay nav a.sub-link {
    font-size: 13.5px;
    font-style: italic;
    color: rgba(255, 255, 255, 0.78);
    padding: 4px 0 4px 20px;
    letter-spacing: 0.4px;
    font-family: 'Noto Sans', sans-serif;
}
.menu-overlay nav a.sub-link .sub-link-arrow {
    color: var(--gold-primary, #d2c5a2);
    margin-right: 6px;
    font-style: normal;
    font-weight: bold;
}
.menu-overlay nav a:hover {
    color: #ffffff !important;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.4);
}

/* Staggered appear transitions for menu items */
.menu-overlay.open nav a:nth-child(1) { transition-delay: .08s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(2) { transition-delay: .13s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(3) { transition-delay: .18s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(4) { transition-delay: .23s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(5) { transition-delay: .28s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(6) { transition-delay: .33s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(7) { transition-delay: .38s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(8) { transition-delay: .43s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(9) { transition-delay: .48s; opacity: 1; transform: translateX(0); }
.menu-overlay.open nav a:nth-child(10) { transition-delay: .53s; opacity: 1; transform: translateX(0); }

.menu-overlay-bottom {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.menu-overlay-lang {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    width: 100%;
    gap: 10px;
    font-family: 'Noto Sans', sans-serif;
    margin-bottom: 14px;
    opacity: 0;
    transform: translateY(15px);
    transition: opacity .5s .4s ease, transform .5s .4s ease;
    box-sizing: border-box;
}
.menu-overlay.open .menu-overlay-lang { opacity: 1; transform: translateY(0); }
.lang-pill {
    flex: 1 1 0;
    min-width: 0;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none !important;
    padding: 9px 14px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(0, 0, 0, 0.18);
    transition: all .25s ease;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-sizing: border-box;
}
.lang-pill.active {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.1) 100%);
    color: #ffffff !important;
    border-color: rgba(210, 197, 162, 0.7);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25), 0 0 12px rgba(210, 197, 162, 0.15);
}
.lang-pill:hover {
    color: #ffffff !important;
    border-color: rgba(210, 197, 162, 0.5);
    background: rgba(255, 255, 255, 0.16);
}

/* === PLAN DE NEUILLY-SUR-SEINE & RUE DE LONGCHAMP DANS LE MENU === */
.menu-overlay-map-card {
    margin: 14px 0 16px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    padding: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.3s;
}
.menu-overlay.open .menu-overlay-map-card {
    opacity: 1;
    transform: translateY(0);
}
.menu-map-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.menu-map-title-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
}
.menu-map-icon {
    font-size: 13px;
}
.menu-map-city {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 13.5px;
    letter-spacing: 1px;
    color: #ffffff;
    font-weight: 600;
}
.menu-map-ext-link {
    font-family: 'Noto Sans', sans-serif;
    font-size: 10.5px;
    color: #ffffff;
    text-decoration: none !important;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.2s ease;
}
.menu-map-ext-link:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(210, 197, 162, 0.6);
}
.menu-map-frame {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.4);
    background: #182338;
}
.menu-map-svg {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 380 / 200;
}
.menu-map-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 11px;
    color: rgba(255, 255, 255, 0.85);
    font-family: 'Noto Sans', sans-serif;
}
.menu-map-legend {
    display: flex;
    align-items: center;
    gap: 7px;
}
.legend-blue-line {
    display: inline-block;
    width: 16px;
    height: 3.5px;
    border-radius: var(--br-sm, var(--br));
    background: linear-gradient(90deg, #d2c5a2, #f3e8c9);
    box-shadow: 0 0 6px rgba(210, 197, 162, 0.6);
}
.legend-text strong {
    color: #ffffff;
    font-weight: 600;
}
.menu-map-rdv {
    color: var(--gold-primary, #d2c5a2);
    font-style: italic;
    font-size: 10.5px;
}

/* Radar pulse animation for map pin */
@keyframes mapRadarPulse {
    0% {
        r: 6;
        opacity: 0.8;
    }
    100% {
        r: 22;
        opacity: 0;
    }
}
.map-radar-pulse {
    animation: mapRadarPulse 2.4s infinite cubic-bezier(0.2, 0.8, 0.4, 1);
    transform-origin: 178px 135px;
}

/* GPS Navigation Actions in Mobile Drawer */
.menu-map-actions {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.btn-launch-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 8px 12px;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0.06) 100%);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff !important;
    text-decoration: none !important;
    font-family: 'Noto Sans', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    transition: all 0.25s ease;
    box-sizing: border-box;
}
.btn-launch-nav:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(210, 197, 162, 0.6);
    transform: translateY(-1px);
    color: #ffffff !important;
}
.btn-launch-nav:active {
    transform: translateY(0);
}
.nav-icon-label {
    display: flex;
    align-items: center;
    gap: 8px;
}
.nav-text-primary {
    letter-spacing: 0.3px;
    color: #ffffff;
}
.nav-arrow {
    color: var(--gold-primary, #d2c5a2);
}
.menu-map-gps-apps {
    display: flex;
    gap: 6px;
    margin-top: 6px;
}
.gps-app-pill {
    flex: 1;
    text-align: center;
    padding: 4px 6px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 6px;
    font-size: 10px;
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    transition: all 0.2s ease;
}
.gps-app-pill:hover {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
    border-color: rgba(210, 197, 162, 0.5);
}

.menu-overlay-footer {
    color: rgba(255, 255, 255, 0.35);
    font-size: 11px;
    letter-spacing: 0.5px;
    opacity: 0;
    transition: opacity .5s .5s ease;
}
.menu-overlay.open .menu-overlay-footer { opacity: 1; }

/* Backdrop dim */
.menu-backdrop {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 100;
    background: rgba(0,0,0,.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity .45s cubic-bezier(.4, 0, .2, 1);
}
.menu-backdrop.open { opacity: 1; pointer-events: auto; }

@media (max-width: 1200px) {
    .site-nav { display: none !important; }
    .menu-toggle { display: flex !important; }
    .menu-overlay { max-width: 100%; }
}

/* === MAIN === */
.site-main {
    padding-top: 70px;
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

/* === HERO === */
.hero {
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.hero-content { padding: 60px 20px; z-index: 1; }
.hero h1 { margin-bottom: 30px; }
.hero h1 a {
    font-family: 'Baskervville', serif;
    font-size: clamp(2.5rem, 6vw, 4rem);
    color: #fff;
    line-height: 1.3;
    transition: opacity .35s ease;
}
.hero h1 a:hover { opacity: .8; }
.hero .btn {
    background: rgba(232,236,241,.15);
    color: #fff;
    box-shadow: none;
    border: 1px solid rgba(255,255,255,.3);
}
.hero .btn:hover { background: #fff; color: #3b4c6b; }

/* Hero Accueil — Plein écran Viewport avec carte en verre dépoli haute lisibilité */
.hero-home {
    height: calc(100vh - 70px);
    min-height: 500px;
    max-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    box-sizing: border-box;
}
.hero-home-content {
    width: 100%;
    max-width: 1140px;
    padding: 16px 36px;
    z-index: 1;
    box-sizing: border-box;
}
.hero-home-card {
    background: rgba(45, 58, 80, 0.53);
    backdrop-filter: blur(24px) saturate(130%);
    -webkit-backdrop-filter: blur(24px) saturate(130%);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--br-lg, var(--br, 14px));
    padding: 22px 26px;
    box-shadow: 0 24px 60px rgba(20, 28, 42, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.25);
    box-sizing: border-box;
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
}
.hero-home-inner {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 22px;
    width: 100%;
}
.hero-home-artistes-wrap {
    flex: 1.15;
    display: flex;
    flex-direction: column;
    min-width: 0;
    justify-content: center;
}
.hero-home-kicker-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    padding: 0 4px;
}
.hero-home-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: #d2c5a2;
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.kicker-sparkle {
    font-size: 11px;
    color: #d2c5a2;
}

.hero-home-artistes {
    text-align: left !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.hero-artist-link {
    font-family: 'Baskervville', Georgia, serif !important;
    font-size: 15px !important;
    color: rgba(255, 255, 255, 0.88);
    line-height: 1.35 !important;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
}
.hero-artist-left {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.hero-artist-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #d2c5a2;
    opacity: 0;
    transform: scale(0);
    transition: transform 0.25s ease, opacity 0.25s ease;
    box-shadow: 0 0 6px rgba(210, 197, 162, 0.9);
    flex-shrink: 0;
}
.hero-artist-arrow {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.4);
    transition: transform 0.2s ease, color 0.2s ease;
    margin-left: auto;
    flex-shrink: 0;
}
.hero-artist-link:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateX(2px);
}
.hero-artist-link:hover .hero-artist-arrow {
    color: rgba(255, 255, 255, 0.9);
    transform: translateX(2px);
}
.hero-artist-link.is-active {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.26) !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
    font-weight: 600;
    transform: translateX(3px);
}
/* Animations Smart pour le Hero Showcase */
@keyframes hero-glass-sweep {
    0% {
        transform: translate3d(-180%, 0, 0) rotate(25deg);
        opacity: 0;
    }
    12% {
        opacity: 0.75;
    }
    32% {
        transform: translate3d(260%, 0, 0) rotate(25deg);
        opacity: 0;
    }
    100% {
        transform: translate3d(260%, 0, 0) rotate(25deg);
        opacity: 0;
    }
}

@keyframes hero-dot-pulse {
    0%, 100% {
        box-shadow: 0 0 5px rgba(210, 197, 162, 0.7);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 14px rgba(243, 232, 201, 1), 0 0 20px rgba(210, 197, 162, 0.75);
        transform: scale(1.3);
    }
}

.hero-artist-link.is-active .hero-artist-dot {
    opacity: 1;
    transform: scale(1);
    animation: hero-dot-pulse 2.2s infinite ease-in-out;
}

/* Centre : Vitrine dynamique de l'œuvre */
.hero-home-showcase-preview {
    flex: 1.35;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-width: 440px;
}
.hero-artwork-card {
    background: #3b4c6b;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 8px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-decoration: none;
    color: #ffffff;
    width: 100%;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
                border-color 0.35s ease, 
                box-shadow 0.35s ease;
    position: relative;
    overflow: hidden;
}
/* Reflet de lumière soyeux en balayage automatique & survol */
.hero-artwork-card::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(
        105deg,
        transparent 35%,
        rgba(255, 255, 255, 0.12) 48%,
        rgba(243, 232, 201, 0.35) 50%,
        rgba(255, 255, 255, 0.12) 52%,
        transparent 65%
    );
    pointer-events: none;
    z-index: 10;
    animation: hero-glass-sweep 7s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.hero-artwork-card:hover {
    transform: translateY(-3px) scale(1.008);
    border-color: rgba(210, 197, 162, 0.65);
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.55), 0 0 24px rgba(210, 197, 162, 0.3);
}
.hero-artwork-card.is-no-artwork {
    cursor: default !important;
    pointer-events: none !important;
}
.hero-artwork-card.is-no-artwork:hover {
    transform: none !important;
    border-color: rgba(255, 255, 255, 0.24) !important;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.22) !important;
}
.hero-artwork-media {
    position: relative;
    width: 100%;
    height: 220px;
    border-radius: 6px;
    overflow: hidden;
    background: linear-gradient(135deg, #182236 0%, #0f1624 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.4);
}
.hero-artwork-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.55s cubic-bezier(0.16, 1, 0.3, 1), 
                filter 0.35s ease;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.35));
}
.hero-artwork-card:hover .hero-artwork-img {
    transform: scale(1.035);
}
.hero-artwork-img.is-switching {
    opacity: 0.1;
    transform: scale(0.96);
    filter: blur(3px);
}
.hero-artwork-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: rgba(15, 20, 32, 0.82);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(210, 197, 162, 0.45);
    border-radius: 4px;
    padding: 3px 9px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    color: #f3e8c9;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
    z-index: 4;
}

/* Ligne de progression temporelle horlogère */
.hero-artwork-progress-track {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 2.5px;
    background: rgba(0, 0, 0, 0.4);
    z-index: 5;
    overflow: hidden;
}
.hero-artwork-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, #b8a880, #d2c5a2, #f3e8c9);
    box-shadow: 0 0 8px rgba(210, 197, 162, 0.85);
}

.hero-artwork-caption {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 4px 0;
}
.hero-artwork-title-wrap {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}
.hero-artwork-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 15px;
    font-weight: 600;
    color: #ffffff;
    margin: 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.25s ease;
}
.hero-artwork-card:hover .hero-artwork-title {
    color: #d2c5a2;
}
.hero-artwork-date {
    font-size: 11.5px;
    color: #94a3b8;
    font-style: italic;
    white-space: nowrap;
}
.hero-artwork-medium {
    font-size: 11px;
    color: rgba(226, 232, 240, 0.75);
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hero-artwork-cta {
    display: inline-flex;
    align-items: center;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #d2c5a2;
    margin-top: 2px;
    gap: 4px;
    transition: transform 0.25s ease, color 0.25s ease;
}
.hero-artwork-card:hover .hero-artwork-cta {
    color: #f3e8c9;
    transform: translateX(4px);
}

/* ============================================================
   BOUTON DÉCOUVRIR NOS ARTISTES — LUXE & MICRO-ANIMATION SMART
   ============================================================ */

@keyframes hero-btn-ambient-pulse {
    0%, 100% {
        border-color: rgba(210, 197, 162, 0.38);
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.22);
    }
    50% {
        border-color: rgba(243, 232, 201, 0.7);
        box-shadow: 0 8px 26px rgba(0, 0, 0, 0.45), 0 0 16px rgba(210, 197, 162, 0.32), inset 0 1px 0 rgba(243, 232, 201, 0.38);
    }
}

/* Faisceau lumineux doux biseauté pour bouton horizontal (tablette & mobile) */
@keyframes hero-btn-beam-h {
    0% {
        transform: translate3d(-150%, 0, 0) skewX(-25deg);
        opacity: 0;
    }
    15% {
        opacity: 0.85;
    }
    35% {
        transform: translate3d(250%, 0, 0) skewX(-25deg);
        opacity: 0;
    }
    100% {
        transform: translate3d(250%, 0, 0) skewX(-25deg);
        opacity: 0;
    }
}

/* Faisceau lumineux doux pour bouton vertical (desktop) */
@keyframes hero-btn-beam-v {
    0% {
        transform: translate3d(0, -150%, 0) skewY(-25deg);
        opacity: 0;
    }
    15% {
        opacity: 0.85;
    }
    35% {
        transform: translate3d(0, 250%, 0) skewY(-25deg);
        opacity: 0;
    }
    100% {
        transform: translate3d(0, 250%, 0) skewY(-25deg);
        opacity: 0;
    }
}

.hero-home-btn-wrap {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-shrink: 0;
}

.hero-home-btn-vertical {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 22px 11px !important;
    font-family: 'Noto Sans', -apple-system, sans-serif !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: 2.8px !important;
    text-transform: uppercase;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.05) 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.38) !important;
    border-radius: 8px !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    animation: hero-btn-ambient-pulse 4s ease-in-out infinite;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    text-decoration: none;
    position: relative;
    overflow: hidden;
}

/* Faisceau lumineux aérien ultra-doux (aucun pavé gris, dégradé diffus) */
.hero-home-btn-vertical::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        180deg,
        transparent 0%,
        rgba(255, 255, 255, 0.05) 35%,
        rgba(243, 232, 201, 0.35) 50%,
        rgba(255, 255, 255, 0.05) 65%,
        transparent 100%
    );
    pointer-events: none;
    z-index: 2;
    filter: blur(1.5px);
    animation: hero-btn-beam-v 6s cubic-bezier(0.4, 0, 0.2, 1) infinite 1.5s;
}

.hero-home-btn-vertical:hover {
    background: linear-gradient(180deg, rgba(59, 76, 107, 0.65) 0%, rgba(30, 41, 59, 0.85) 100%) !important;
    border-color: rgba(243, 232, 201, 0.95) !important;
    color: #ffffff !important;
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.5), 0 0 24px rgba(210, 197, 162, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
    transform: rotate(180deg) translateY(3px) scale(1.02) !important;
    animation: none;
}

/* ============================================================
   HERO SHOWCASE RESPONSIVE ADAPTATIF PLEINE SURFACE
   ============================================================ */

/* TABLETTE & ÉCRANS INTERMÉDIAIRES (641px à 1023px) */
@media (max-width: 1023px) and (min-width: 641px) {
    .hero-home-content {
        padding: 16px 24px;
        max-width: 100%;
    }
    .hero-home-card {
        max-width: 900px;
        padding: 20px 22px;
        width: 100%;
    }
    .hero-home-inner {
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        gap: 16px 20px;
        align-items: stretch;
        width: 100%;
    }
    /* Colonne 1 : Artistes en 2 colonnes compactes */
    .hero-home-artistes-wrap {
        grid-column: 1;
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    .hero-home-artistes {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 6px 8px !important;
        width: 100%;
    }
    .hero-artist-link {
        font-size: 13px !important;
        padding: 6px 9px !important;
        line-height: 1.25 !important;
    }
    .hero-artist-link:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-content: space-between;
    }

    /* Colonne 2 : Carte d'œuvre occupant 100% de la hauteur et largeur */
    .hero-home-showcase-preview {
        grid-column: 2;
        width: 100%;
        max-width: 100%;
        height: 100%;
        display: flex;
    }
    .hero-artwork-card {
        width: 100%;
        height: 100%;
        display: flex;
        flex-direction: column;
        margin: 0;
        padding: 10px;
        box-sizing: border-box;
    }
    .hero-artwork-media {
        flex: 1;
        min-height: 180px;
        height: auto;
        width: 100%;
        aspect-ratio: 16 / 10;
        background: linear-gradient(135deg, #182236 0%, #0f1624 100%);
    }

    /* Bouton d'action étiré sur toute la largeur inférieure */
    .hero-home-btn-wrap {
        grid-column: 1 / -1;
        width: 100%;
        max-width: 100%;
        margin-top: 4px;
    }
    .hero-home-btn-vertical {
        writing-mode: horizontal-tb;
        transform: none;
        width: 100%;
        padding: 11px 20px !important;
        text-align: center;
        justify-content: center;
        font-size: 11.5px !important;
        letter-spacing: 2.2px !important;
        border-radius: var(--br-sm, 8px) !important;
    }
    .hero-home-btn-vertical::before {
        background: linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.05) 35%,
            rgba(243, 232, 201, 0.35) 50%,
            rgba(255, 255, 255, 0.05) 65%,
            transparent 100%
        );
        animation: hero-btn-beam-h 6s cubic-bezier(0.4, 0, 0.2, 1) infinite 1.5s;
    }
    .hero-home-btn-vertical:hover {
        transform: translateY(-2px) scale(1.008) !important;
    }
}

/* MOBILE (≤ 640px) */
@media (max-width: 640px) {
    .hero-home {
        height: auto;
        min-height: calc(100vh - 65px);
        padding: 14px 0 68px;
        align-items: center;
    }
    .hero-home-content {
        padding: 6px 10px;
    }
    .hero-home-card {
        padding: 16px 12px;
        background: rgba(45, 58, 80, 0.88);
        border: 1px solid rgba(255, 255, 255, 0.22);
        border-radius: var(--br-lg, var(--br));
        width: 100%;
    }
    .hero-home-inner {
        display: flex;
        flex-direction: column;
        gap: 12px;
        width: 100%;
    }
    .hero-home-artistes-wrap {
        width: 100%;
    }
    .hero-home-kicker {
        font-size: 9.5px;
        letter-spacing: 1.8px;
    }
    .hero-home-artistes {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 5px 6px !important;
        width: 100%;
    }
    .hero-artist-link {
        font-size: 12.5px !important;
        line-height: 1.25 !important;
        padding: 5px 8px !important;
        border-radius: var(--br-sm, var(--br)) !important;
        background: rgba(255, 255, 255, 0.08) !important;
        border: 1px solid rgba(255, 255, 255, 0.14) !important;
        color: rgba(255, 255, 255, 0.9) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        text-shadow: 0 1px 4px rgba(0,0,0,0.6) !important;
    }
    .hero-artist-left {
        min-width: 0;
        overflow: hidden;
    }
    .hero-artist-name {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .hero-artist-arrow {
        margin-left: auto !important;
        flex-shrink: 0 !important;
    }
    .hero-artist-link:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-content: space-between !important;
    }
    .hero-artist-link:hover,
    .hero-artist-link.is-active {
        background: rgba(255, 255, 255, 0.26) !important;
        border-color: rgba(255, 255, 255, 0.55) !important;
        color: #ffffff !important;
        transform: none !important;
    }
    .hero-home-showcase-preview {
        width: 100%;
        max-width: 100%;
        order: 2;
    }
    .hero-artwork-card {
        width: 100%;
        margin: 0;
        padding: 8px;
    }
    .hero-artwork-media {
        width: 100%;
        height: 180px;
        background: linear-gradient(135deg, #182236 0%, #0f1624 100%);
    }
    .hero-home-btn-wrap {
        order: 3;
        width: 100%;
        max-width: 100%;
        margin-top: 2px;
    }
    .hero-home-btn-vertical {
        writing-mode: horizontal-tb;
        transform: none;
        padding: 10px 16px !important;
        width: 100%;
        text-align: center;
        justify-content: center;
        border-radius: var(--br-sm, 8px) !important;
        font-size: 11px !important;
        letter-spacing: 1.8px !important;
    }
    .hero-home-btn-vertical::before {
        background: linear-gradient(
            90deg,
            transparent 0%,
            rgba(255, 255, 255, 0.05) 35%,
            rgba(243, 232, 201, 0.35) 50%,
            rgba(255, 255, 255, 0.05) 65%,
            transparent 100%
        );
        animation: hero-btn-beam-h 6s cubic-bezier(0.4, 0, 0.2, 1) infinite 1.5s;
    }
    .hero-home-btn-vertical:hover {
        transform: translateY(-1px) !important;
    }
}

/* ============================================================
   PAGE HERO (ULTRA-COMPACT, ÉLÉGANT & ANIMÉ)
   ============================================================ */
.page-hero {
    background: linear-gradient(180deg, #eef3f8 0%, #e2ebf4 100%);
    border-bottom: 1px solid rgba(59, 76, 107, 0.12);
    padding: 26px 0 20px;
    text-align: center;
    box-shadow: inset 0 -2px 6px rgba(59, 76, 107, 0.04);
    position: relative;
    transition: all .3s cubic-bezier(.16, 1, .3, 1);
}
/* Micro-Animation fluide et élégante à l'affichage */
@keyframes hero-enter-smooth {
    0% {
        opacity: 0;
        transform: translateY(-8px);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}
.hero-anim-in {
    animation: hero-enter-smooth 0.35s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.page-hero h1 {
    font-size: clamp(1.7rem, 3.2vw, 2.3rem);
    letter-spacing: 0.8px;
    color: #3b4c6b;
    margin: 0 0 6px;
    line-height: 1.2;
    transition: font-size .3s ease, margin .3s ease;
}
.page-hero .lead {
    color: #5d7092;
    font-size: 13.5px;
    line-height: 1.5;
    max-width: 660px;
    margin: 0 auto;
}
.page-hero--small {
    padding: 14px 0 10px;
}
.page-hero--small h1 {
    font-size: 1.25rem;
}
.hero-back-btn {
    margin-top: 10px;
}

/* Boutons dans le bandeau hero (élégants, sans halos blancs agressifs) */
.page-hero .btn {
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.95);
    color: #3b4c6b;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    backdrop-filter: blur(8px);
}
.page-hero .btn:hover {
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
    color: #073344;
}
.page-hero .btn-secondary {
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.85);
    color: #4a5568;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
.page-hero .btn-secondary:hover {
    background: #ffffff;
    color: #3b4c6b;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Animation d'apparition douce et fluide du bandeau sticky */
@keyframes hero-stuck-slide-down {
    0% {
        opacity: 0;
        transform: translate3d(0, -14px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes hero-stuck-content-fade {
    0% {
        opacity: 0;
        transform: scale(0.98);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.custom-page-hero.page-hero--stuck {
    position: static !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: block !important;
    padding: 42px 0 36px !important;
    animation: none !important;
}
.custom-page-hero.page-hero--stuck .container {
    display: block !important;
    align-items: initial !important;
    justify-content: initial !important;
    height: auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    gap: 0 !important;
}
.custom-page-hero.page-hero--stuck h1 {
    font-size: clamp(1.85rem, 4vw, 2.7rem) !important;
}
.custom-page-hero.page-hero--stuck .page-hero-subtitle {
    display: block !important;
    margin: 10px 0 0 0 !important;
}

/* Bandeau fin Sticky sous le header au scroll */
.page-hero--stuck,
.artiste-page .page-hero--stuck {
    position: fixed !important;
    top: 70px !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 90 !important;
    animation: hero-stuck-slide-down 0.32s cubic-bezier(0.16, 1, 0.3, 1) both !important;
    background: rgba(24, 29, 46, 0.96) !important;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.28) !important;
    padding: 0 !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.page-hero--stuck .container,
.artiste-page .page-hero--stuck .container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 44px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    gap: 12px !important;
    width: 100% !important;
    animation: hero-stuck-content-fade 0.28s cubic-bezier(0.16, 1, 0.3, 1) 0.04s both !important;
}
.page-hero--stuck h1,
.page-hero--stuck .artiste-hero-title {
    font-size: 14.5px !important;
    letter-spacing: 1px;
    margin: 0 !important;
    line-height: 1 !important;
    white-space: nowrap;
    color: #ffffff !important;
    flex-shrink: 0;
}
.page-hero--stuck .artiste-hero-content,
.page-hero--stuck .artiste-hero-meta-row,
.page-hero--stuck .artiste-hero-specialty,
.page-hero--stuck .lead,
.page-hero--stuck .artiste-hero-meta,
.page-hero--stuck .artiste-hero-badge,
.page-hero--stuck .page-subtitle {
    display: none !important;
}
.page-hero--stuck .artiste-top-nav,
.page-hero--stuck .artiste-header-nav {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin: 0 !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
}
.page-hero--stuck .artiste-quick-actions {
    margin: 0 !important;
    padding: 3px 6px !important;
    gap: 4px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: var(--br) !important;
    box-shadow: none !important;
}
.page-hero--stuck .artiste-quick-tab {
    padding: 3px 8px !important;
    font-size: 10px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    border-radius: var(--br) !important;
}
.page-hero--stuck .artiste-quick-tab:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
}
.page-hero--stuck .artiste-quick-tab.active {
    background: linear-gradient(135deg, #d4af37 0%, #a67c2e 100%) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(212, 175, 55, 0.4) !important;
}
.page-hero--stuck .btn,
.page-hero--stuck .hero-back-btn {
    padding: 4px 12px !important;
    font-size: 10.5px !important;
    letter-spacing: 0.5px;
    background: rgba(255, 255, 255, 0.14) !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    color: #ffffff !important;
    border-radius: var(--br);
    box-shadow: none !important;
    margin: 0 !important;
    backdrop-filter: blur(8px);
}
.page-hero--stuck .btn:hover,
.page-hero--stuck .hero-back-btn:hover {
    background: rgba(255, 255, 255, 0.28) !important;
    color: #ffffff !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
}
.page-hero-spacer {
    width: 100%;
}

/* ============================================================
   PAGE GALERIE — FILTRES DE PRESTIGE & GRILLE COMPACTE
   ============================================================ */
.gallery-section {
    padding-top: 24px;
    padding-bottom: 60px;
}

/* BARRE DE FILTRES & RECHERCHE */
.gallery-filter-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, var(--br, 14px));
    padding: 16px 20px 14px;
    margin-bottom: 28px;
    box-shadow: 0 4px 20px rgba(59, 76, 107, 0.06);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gallery-filter-form {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.gallery-filter-control {
    position: relative;
    display: flex;
    align-items: center;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.16);
    border-radius: var(--br-sm, 8px);
    transition: all 0.2s ease;
}
.gallery-filter-control:focus-within {
    background: #ffffff;
    border-color: #3b4c6b;
    box-shadow: 0 0 0 3px rgba(59, 76, 107, 0.12);
}

.filter-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 12px;
    color: #64748b;
    flex-shrink: 0;
    pointer-events: none;
}

.select-control {
    flex: 1 1 240px;
    min-width: 200px;
    max-width: 320px;
}
.gallery-select {
    width: 100%;
    padding: 9px 32px 9px 10px;
    font-size: 13px;
    color: #1e293b;
    background: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    font-family: inherit;
    appearance: none;
    -webkit-appearance: none;
}
.select-chevron {
    position: absolute;
    right: 12px;
    font-size: 11px;
    color: #64748b;
    pointer-events: none;
}

.search-control {
    flex: 2 1 320px;
    min-width: 220px;
}
.gallery-input {
    width: 100%;
    padding: 9px 32px 9px 10px;
    font-size: 13px;
    color: #1e293b;
    background: transparent;
    border: none;
    outline: none;
    font-family: inherit;
}
.gallery-input::placeholder {
    color: #94a3b8;
    font-size: 12.5px;
}
.search-clear-btn {
    position: absolute;
    right: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(148, 163, 184, 0.2);
    color: #64748b;
    font-size: 11px;
    text-decoration: none;
    transition: all 0.2s ease;
}
.search-clear-btn:hover {
    background: #3b4c6b;
    color: #ffffff;
}

.gallery-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.gallery-filter-btn {
    padding: 9px 20px;
    font-size: 12.5px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: var(--br-sm, 8px);
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.4) !important;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.2);
}
.gallery-filter-btn:hover {
    background: linear-gradient(135deg, #46597c 0%, #2e3e58 100%) !important;
    border-color: #f3e8c9 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.3);
}
.gallery-reset-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    font-size: 12px;
    font-weight: 600;
    color: #b91c1c !important;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: var(--br-sm, 8px);
    text-decoration: none;
    transition: all 0.2s ease;
}
.gallery-reset-btn:hover {
    background: #fee2e2;
    border-color: #fca5a5;
    transform: translateY(-1px);
}

/* PASTILLES D'ARTISTES RAPIDES (HORIZONTAL SCROLL) */
.gallery-artist-pills {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    padding: 4px 0 2px;
    scrollbar-width: thin;
}
.gallery-artist-pills::-webkit-scrollbar {
    height: 4px;
}
.gallery-artist-pills::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
.artist-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: #f1f5f9;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s ease;
    flex-shrink: 0;
}
.artist-pill:hover {
    background: #e2e8f0;
    color: #1e293b;
    border-color: rgba(59, 76, 107, 0.25);
    transform: translateY(-1px);
}
.artist-pill.is-active {
    background: #3b4c6b;
    color: #ffffff;
    border-color: #3b4c6b;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.25);
}

/* COMPTEUR DE RÉSULTATS */
.gallery-results-count {
    display: flex;
    justify-content: flex-end;
    font-size: 11.5px;
    color: #64748b;
    padding-top: 4px;
    border-top: 1px dashed rgba(59, 76, 107, 0.08);
}
.gallery-results-count strong {
    color: #3b4c6b;
    margin-right: 3px;
}

/* EMPTY STATE */
.gallery-empty-state {
    text-align: center;
    padding: 60px 20px;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, 14px);
    margin-top: 20px;
}
.gallery-empty-icon {
    color: #94a3b8;
    margin-bottom: 14px;
}
.gallery-empty-state h3 {
    font-size: 18px;
    color: #1e293b;
    margin-bottom: 8px;
}
.gallery-empty-state p {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 20px;
}

/* ============================================================
   GRILLE D'ŒUVRES HAUTE DENSITÉ & CARTES COMPACTES DE PRESTIGE
   ============================================================ */
/* ============================================================
   GRILLE D'ŒUVRES HAUTE DENSITÉ & CARTES COMPACTES DE PRESTIGE
   ============================================================ */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 16px;
    row-gap: 20px;
}

@media (max-width: 1280px) {
    .gallery-grid {
        grid-template-columns: repeat(4, 1fr);
        column-gap: 16px;
        row-gap: 18px;
    }
}
@media (max-width: 992px) {
    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
        column-gap: 14px;
        row-gap: 16px;
    }
}
@media (max-width: 680px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 10px;
        row-gap: 14px;
    }
    .gallery-filter-card {
        padding: 12px 14px;
    }
    .gallery-filter-form {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .gallery-filter-control,
    .select-control,
    .search-control {
        max-width: 100%;
        width: 100% !important;
        flex: 0 0 auto !important;
        height: 38px !important;
    }
    .gallery-filter-actions {
        width: 100%;
    }
    .gallery-filter-btn {
        flex: 1;
        height: 36px;
    }
}
@media (max-width: 420px) {
    .gallery-grid {
        column-gap: 8px;
        row-gap: 12px;
    }
}

/* CARTE INDIVIDUELLE D'ŒUVRE */
.gallery-item {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-sm, 10px);
    padding: 8px 8px 10px;
    box-shadow: 0 3px 12px rgba(59, 76, 107, 0.05);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    height: 100%;
    box-sizing: border-box;
}
.gallery-item:hover {
    border-color: rgba(210, 197, 162, 0.85);
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(59, 76, 107, 0.14), 0 0 0 1px rgba(210, 197, 162, 0.4);
}

.gallery-item-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    height: 100%;
    width: 100%;
}

/* CADRE / MÉDIA DE L'ŒUVRE — RATIO 1:1 ÉQUILIBRÉ (PAYSAGE & PORTRAIT) */
.gallery-item-media {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: calc(var(--br-sm, 10px) - 2px);
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    box-sizing: border-box;
    flex-shrink: 0;
}

.gallery-item-img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.06));
    display: block;
}
.gallery-item:hover .gallery-item-img {
    transform: scale(1.04);
}

.gallery-item-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #cbd5e1;
}

/* BADGE VENDU ÉLÉGANT */
.gallery-badge-sold {
    position: absolute;
    top: 6px;
    left: 6px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2.5px 7px;
    background: linear-gradient(135deg, #b91c1c 0%, #991b1b 100%);
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(185, 28, 28, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* SURVOL DÉCOUVRIR */
.gallery-item-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(37, 49, 71, 0.65) 100%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 10px;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
    z-index: 2;
}
.gallery-item:hover .gallery-item-overlay {
    opacity: 1;
}
.gallery-zoom-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3.5px 9px;
    background: rgba(255, 255, 255, 0.95);
    color: #253147;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border-radius: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transform: translateY(4px);
    transition: transform 0.25s ease;
}
.gallery-item:hover .gallery-zoom-pill {
    transform: translateY(0);
}
.zoom-arrow {
    color: #8c7853;
    font-size: 9px;
    transition: transform 0.2s ease;
}
.gallery-item:hover .zoom-arrow {
    transform: translateX(2px);
}

/* CORPS DE LA CARTE */
.gallery-item-body {
    padding: 8px 2px 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    text-align: center;
}

.gallery-item-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 12.5px;
    font-style: italic;
    color: #253147;
    line-height: 1.35;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    transition: color 0.2s ease;
}
.gallery-item:hover .gallery-item-title {
    color: #3b4c6b;
}

.gallery-item-artist {
    font-size: 10.5px;
    font-weight: 700;
    color: #8c7853;
    letter-spacing: 0.4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: uppercase;
    margin: 0;
}

.gallery-item-date {
    font-size: 10px;
    color: #64748b;
}

@media (max-width: 680px) {
    .gallery-item {
        padding: 6px 6px 8px;
    }
    .gallery-item-media {
        padding: 4px;
    }
    .gallery-item-title {
        font-size: 11.5px;
        line-height: 1.3;
    }
    .gallery-item-artist {
        font-size: 9.5px;
    }
}

/* === ARTISTS === */
.artists-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 30px;
}
.artist-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    overflow: hidden;
    text-align: center;
    transition: box-shadow .35s cubic-bezier(.4, 0, .2, 1), transform .35s cubic-bezier(.4, 0, .2, 1);
    display: block;
    text-decoration: none;
    box-shadow: var(--nm-raised);
}
.artist-card-portrait {
    width: 100%;
    height: 250px;
    overflow: hidden;
    background: var(--blue-tint-surface);
}
.artist-card-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transform-origin: center top;
    transition: transform .4s ease;
    filter: hue-rotate(184deg) saturate(25%) sepia(2%);
}
.artist-card:hover .artist-card-portrait img {
    transform: scale(1.05);
}
.artist-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 60px;
    font-weight: bold;
    color: var(--blue-muted);
    background: linear-gradient(135deg, var(--blue-light) 0%, var(--blue-tint-card) 100%);
}
.artist-card-inner {
    padding: 20px;
}
.artist-card:hover {
    box-shadow: var(--nm-hover);
    transform: translateY(-3px);
}
.artist-card h3 { font-size: 20px; letter-spacing: 2px; margin-bottom: 8px; color: var(--navy-primary); }
.artist-card p {
    font-size: 13px;
    color: var(--blue-muted);
    max-height: 100px;
    overflow-y: auto;
    text-align: left;
    margin: 0;
}

/* === ARTISTE DETAIL PAGE === */
.artiste-page {
    position: relative;
}
.artiste-header-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}
.artiste-hero-meta {
    margin-top: 12px;
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}
.artiste-hero-badge {
    display: inline-block;
    padding: 4px 14px;
    border-radius: var(--br);
    background: rgba(36, 47, 68, 0.08);
    color: #3b4c6b;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
}

/* Layout 2 colonnes */
.artiste-layout {
    display: grid;
    grid-template-columns: 360px 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 60px;
}
.artiste-sidebar {
    display: flex;
    flex-direction: column;
    gap: 28px;
    position: sticky;
    top: 90px;
}

/* Carte Portrait */
.artiste-portrait-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 18px;
    box-shadow: var(--nm-raised);
    text-align: center;
}
.artiste-portrait-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    max-height: 440px;
    border-radius: var(--br);
    overflow: hidden;
    background: var(--blue-tint-surface);
    box-shadow: var(--nm-pressed);
    margin-bottom: 14px;
}
.artiste-portrait-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transform-origin: center top;
    transition: transform .6s cubic-bezier(.22, .8, .3, 1);
}
.artiste-portrait-card:hover .artiste-portrait-frame img {
    transform: scale(1.03);
}
.artiste-portrait-caption {
    font-family: 'Baskervville', serif;
    font-size: 15px;
    color: var(--navy-primary);
    letter-spacing: 1px;
}
.artiste-portrait-sub {
    font-size: 12px;
    color: var(--blue-soft);
    margin-top: 2px;
}

/* Fiche repère / Facts */
.artiste-facts-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 24px;
    box-shadow: var(--nm-raised);
}
.artiste-facts-title {
    font-family: 'Baskervville', serif;
    font-size: 16px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-primary);
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--blue-light);
    display: flex;
    align-items: center;
    gap: 8px;
}
.artiste-facts-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.artiste-fact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 13px;
    line-height: 1.5;
}
.artiste-fact-icon {
    font-size: 18px;
    flex-shrink: 0;
    line-height: 1.2;
    filter: grayscale(100%) opacity(0.7);
    -webkit-filter: grayscale(100%) opacity(0.7);
}
.artiste-fact-content {
    flex: 1;
}
.artiste-fact-label {
    display: block;
    font-weight: 600;
    color: var(--navy-primary);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 2px;
}
.artiste-fact-val {
    color: var(--navy-slate);
}

/* Contenu Principal / Biographie */
.artiste-bio-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 36px 40px;
    box-shadow: var(--nm-raised);
    margin-bottom: 36px;
}
.artiste-bio-badge {
    display: inline-block;
    font-family: 'Noto Sans', sans-serif;
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--blue-muted);
    margin-bottom: 12px;
    font-weight: 600;
}
.artiste-bio-title {
    font-size: clamp(1.6rem, 2.5vw, 2.2rem);
    margin-bottom: 24px;
    color: var(--navy-primary);
    line-height: 1.3;
}
.artiste-bio-lead {
    font-size: 16.5px;
    line-height: 1.85;
    color: var(--navy-primary);
    margin-bottom: 20px;
    font-weight: 400;
}
.artiste-bio-lead::first-letter {
    float: left;
    font-family: 'Baskervville', serif;
    font-size: 3.6rem;
    line-height: 0.8;
    padding-top: 4px;
    padding-right: 12px;
    padding-bottom: 2px;
    color: var(--navy-primary);
}
.artiste-bio-text {
    font-size: 15px;
    line-height: 1.85;
    color: #445166;
}
.artiste-bio-text p {
    margin-bottom: 18px;
}
.artiste-bio-quote {
    margin: 32px 0;
    padding: 24px 28px;
    background: var(--blue-tint-surface);
    border-left: 4px solid var(--navy-primary);
    border-radius: 0 var(--br) var(--br) 0;
    box-shadow: var(--nm-inset-sm);
}
.artiste-bio-quote p {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 16px;
    line-height: 1.7;
    color: var(--navy-primary);
    margin-bottom: 6px;
}
.artiste-bio-quote cite {
    display: block;
    font-size: 12px;
    font-style: normal;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--blue-muted);
}

/* Bannière Expertise Spécifique */
.artiste-expertise-card {
    background: linear-gradient(135deg, var(--blue-tint-card) 0%, var(--blue-tint-surface) 100%);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 36px 40px;
    box-shadow: var(--nm-raised);
    margin-bottom: 36px;
    border-top: 3px solid var(--navy-primary);
    position: relative;
    overflow: hidden;
}
.artiste-expertise-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--navy-primary);
    color: #fff;
    padding: 4px 14px;
    border-radius: var(--br);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 16px;
}
.artiste-expertise-title {
    font-size: 1.5rem;
    color: var(--navy-primary);
    margin-bottom: 14px;
}
.artiste-expertise-desc {
    font-size: 14.5px;
    line-height: 1.75;
    color: #445166;
    margin-bottom: 24px;
    max-width: 800px;
}
.artiste-expertise-services {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 16px;
    margin-bottom: 28px;
}
.artiste-service-item {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    padding: 14px 18px;
    border-radius: var(--br);
    box-shadow: var(--nm-raised-sm);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--navy-primary);
}
.artiste-expertise-actions {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
}

/* Carte Publication Associée */
.artiste-pub-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 32px;
    box-shadow: var(--nm-raised);
    margin-bottom: 36px;
}
.artiste-pub-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 28px;
    align-items: center;
}
.artiste-pub-cover {
    border-radius: var(--br-sm, var(--br, 8px));
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(32, 45, 72, 0.15), 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(59, 76, 107, 0.12);
    background: #ffffff;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
.artiste-pub-cover:hover {
    transform: scale(1.025) translateY(-2px);
    box-shadow: 0 12px 30px rgba(32, 45, 72, 0.22);
}
.artiste-pub-cover img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}
.artiste-pub-body h4 {
    font-size: 1.25rem;
    color: var(--navy-primary);
    margin-bottom: 6px;
}
.artiste-pub-sub {
    font-size: 13px;
    color: var(--blue-soft);
    margin-bottom: 12px;
}
.artiste-pub-desc {
    font-size: 14px;
    line-height: 1.7;
    color: #445166;
    margin-bottom: 18px;
}

/* Section Galerie d'œuvres */
.artiste-gallery-section {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--blue-light);
}
.artiste-gallery-header {
    text-align: center;
    margin-bottom: 36px;
}
.artiste-gallery-header h2 {
    font-size: 1.8rem;
    letter-spacing: 2px;
    color: var(--navy-primary);
    margin-bottom: 8px;
}
.artiste-gallery-header p {
    color: var(--blue-muted);
    font-size: 14px;
}

@media (max-width: 992px) {
    .artiste-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .artiste-sidebar {
        position: static;
        max-width: 480px;
        width: 100%;
        margin: 0 auto;
        gap: 20px;
    }
    .artiste-portrait-frame {
        max-height: 360px;
    }
    .artiste-bio-card, .artiste-expertise-card {
        padding: 26px 22px;
    }
    .artiste-pub-layout {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .artiste-pub-cover {
        max-width: 240px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .artiste-header-nav {
        gap: 10px;
        margin-bottom: 18px;
    }
    .artiste-nav-pills {
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
    }
    .artiste-nav-pills::-webkit-scrollbar {
        display: none;
    }
    .artiste-pill-btn,
    .artiste-back-link {
        padding: 6px 12px;
        font-size: 11px;
        white-space: nowrap;
    }
    .artiste-identity-card {
        padding: 16px 14px;
    }
    .artiste-portrait-card {
        padding: 14px 12px;
    }
    .artiste-portrait-frame {
        aspect-ratio: 1 / 1;
        max-height: 280px;
        margin-bottom: 10px;
    }
    .artiste-facts-card {
        padding: 18px 16px;
    }
    .artiste-facts-title {
        font-size: 14px;
        margin-bottom: 14px;
    }
    .artiste-bio-card, .artiste-expertise-card {
        padding: 20px 16px;
        border-radius: var(--br-sm, 10px);
    }
    .artiste-bio-title {
        font-size: 1.35rem;
        margin-bottom: 16px;
    }
    .artiste-bio-lead {
        font-size: 14.5px;
        line-height: 1.65;
    }
    .artiste-bio-lead::first-letter {
        font-size: 2.8rem;
        padding-right: 8px;
    }
    .artiste-bio-text {
        font-size: 13.5px;
        line-height: 1.65;
    }
    .artiste-expertise-actions {
        flex-direction: column;
        width: 100%;
    }
    .artiste-expertise-actions .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
}


/* === NEWS === */
.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 30px;
}
.news-card {
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    overflow: hidden;
    transition: box-shadow .35s cubic-bezier(.4, 0, .2, 1), transform .35s cubic-bezier(.4, 0, .2, 1);
    display: block;
    text-decoration: none;
    box-shadow: var(--nm-raised);
}
.news-card:hover {
    box-shadow: var(--nm-hover);
    transform: translateY(-3px);
}
.news-card img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}
.news-card:hover img {
    transform: scale(1.04);
}
.news-card-body { padding: 22px; }
.news-card-body h3 { font-size: 16px; margin-bottom: 6px; color: var(--navy-primary); }
.news-card-body time { font-size: 12px; color: var(--blue-soft); display: block; margin-bottom: 8px; }
.news-card-body p { font-size: 13.5px; color: var(--blue-muted); line-height: 1.6; }

/* === OEUVRE DETAIL AVEC FOND ŒUVRE ÉCLAIRCI & LUMINEUX === */
.oeuvre-detail {
    position: relative;
    overflow: hidden;
    background-color: #f8fafc;
    padding: 56px 0 68px;
    width: 100%;
}
.oeuvre-detail-backdrop {
    position: absolute;
    top: -5%;
    left: -5%;
    width: 110%;
    height: 110%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.65;
    filter: blur(8px) brightness(1.05) saturate(1.08);
    pointer-events: none;
    z-index: 0;
    transform: translateZ(0);
}
.oeuvre-detail-vignette {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.2) 0%, rgba(248, 250, 252, 0.45) 55%, rgba(241, 245, 249, 0.75) 100%);
    pointer-events: none;
    z-index: 1;
}
.oeuvre-detail-container {
    position: relative;
    z-index: 2;
}
.oeuvre-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 56px;
    align-items: start;
    width: 100%;
    max-width: 100%;
}
.oeuvre-photos,
.oeuvre-infos {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}
.oeuvre-photo-main {
    border-radius: var(--br-lg, var(--br));
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12), 0 2px 8px rgba(15, 23, 42, 0.06);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    border: 1px solid rgba(220, 228, 238, 0.85);
    background: #ffffff;
}
.oeuvre-photo-main img {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: var(--br);
}
.oeuvre-photo-thumbs { display: flex; gap: 12px; margin-top: 16px; }
.oeuvre-thumb {
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--br);
    overflow: hidden;
    width: 80px; height: 80px;
    cursor: pointer;
    padding: 0;
    background: rgba(14, 20, 34, 0.7);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
    transition: all .3s cubic-bezier(.4, 0, .2, 1);
}
.oeuvre-thumb img { width: 100%; height: 100%; object-fit: cover; }
.oeuvre-thumb:hover { transform: translateY(-2px); border-color: #3b4c6b; box-shadow: 0 6px 20px rgba(59, 76, 107, 0.3); }
.oeuvre-thumb.active { border-color: #38bdf8; box-shadow: 0 0 14px rgba(56, 189, 248, 0.5); }

/* === OEUVRE INFOS — CARTE BLANCHE ÉLÉGANTE & HAUTE LISIBILITÉ === */
.oeuvre-infos {
    position: relative;
    background: #ffffff;
    border: 1px solid rgba(220, 228, 238, 0.85);
    border-radius: var(--br-lg, var(--br));
    padding: 38px 42px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.04);
    box-sizing: border-box;
    overflow: hidden;
}

.oeuvre-infos::before,
.oeuvre-infos::after {
    display: none;
}

.oeuvre-infos-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.oeuvre-artist-kicker .oeuvre-artist-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    color: var(--navy-primary, #3b4c6b);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 6px 14px;
    background: #f1f5f9;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.oeuvre-artist-kicker .oeuvre-artist-link:hover {
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff;
    border-color: var(--navy-primary, #3b4c6b);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(36, 47, 68, 0.18);
}
.oeuvre-artist-kicker .oeuvre-artist-arrow {
    font-size: 14px;
    transition: transform 0.2s ease;
    margin-left: 2px;
}
.oeuvre-artist-kicker .oeuvre-artist-link:hover .oeuvre-artist-arrow {
    transform: translateX(3px);
}
.oeuvre-artist-kicker .oeuvre-artist-name {
    display: inline-block;
}

.oeuvre-vendu-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    border-radius: 20px;
}

.oeuvre-main-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.75rem, 2.8vw, 2.35rem);
    line-height: 1.25;
    color: #1e293b;
    margin: 0 0 8px 0;
    letter-spacing: -0.2px;
    font-weight: 400;
}
.oeuvre-main-title em { font-style: italic; }
.oeuvre-title-date {
    font-style: normal;
    font-weight: 400;
    color: #64748b;
    font-size: 0.88em;
    white-space: nowrap;
}

.oeuvre-title-alt {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 15px;
    color: #64748b;
    margin: 0 0 16px 0;
    line-height: 1.4;
}

.oeuvre-infos-divider {
    height: 1px;
    background: linear-gradient(90deg, #e2e8f0 0%, #cbd5e1 50%, #f1f5f9 100%);
    margin: 16px 0 20px 0;
    width: 100%;
}

.oeuvre-description {
    font-size: 15.5px;
    line-height: 1.85;
    color: #334155;
    margin-bottom: 20px;
    font-weight: 400;
    letter-spacing: 0.01em;
}

.oeuvre-notice {
    margin: 18px 0 22px 0;
    padding: 18px 22px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 3.5px solid var(--navy-primary, #3b4c6b);
    border-radius: var(--br-sm, 6px);
    color: #334155;
}
.oeuvre-notice h3 {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--navy-primary, #3b4c6b);
    margin-bottom: 8px;
}
.oeuvre-notice-content {
    font-size: 14px;
    line-height: 1.7;
    color: #475569;
}

/* === CALL TO ACTION : OEUVRE INFOS === */
.oeuvre-inquiry-cta {
    margin-top: 24px;
    padding: 22px 24px 20px;
    background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid rgba(180, 195, 216, 0.45);
    border-radius: var(--br-sm, 8px);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04);
    position: relative;
    box-sizing: border-box;
}
.oeuvre-inquiry-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2.5px;
    background: linear-gradient(90deg, #3b4c6b 0%, #8596b3 50%, #d2c5a2 100%);
    border-top-left-radius: var(--br-sm, 8px);
    border-top-right-radius: var(--br-sm, 8px);
}
.oeuvre-inquiry-cta-header {
    margin-bottom: 8px;
}
.oeuvre-inquiry-cta-kicker {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: #8c7853;
    display: inline-block;
}
.oeuvre-inquiry-cta-text {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 14.5px;
    line-height: 1.6;
    color: #1e293b;
    margin: 0 0 16px 0;
}
.oeuvre-artist-scroll-link-wrap {
    margin-top: 14px;
    text-align: center;
}
.oeuvre-artist-scroll-link {
    font-size: 11.5px;
    color: #64748b;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s ease;
}
.oeuvre-artist-scroll-link:hover {
    color: var(--navy-primary, #3b4c6b);
    text-decoration: underline;
}

.oeuvre-actions {
    margin-top: 0;
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 14px;
    width: 100%;
    align-items: stretch;
}
.oeuvre-actions .btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 13px 18px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    border-radius: var(--br);
    box-sizing: border-box;
    white-space: normal; /* libellés longs jamais coupés : repli au lieu du nowrap rogné */
    line-height: 1.35;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
.oeuvre-actions .btn-primary {
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff !important;
    border: 1px solid var(--navy-primary, #3b4c6b);
    box-shadow: 0 4px 12px rgba(36, 47, 68, 0.22);
}
.oeuvre-actions .btn-primary:hover {
    background: #1e2638;
    border-color: #1e2638;
    box-shadow: 0 6px 18px rgba(36, 47, 68, 0.32);
    transform: translateY(-2px);
}
.oeuvre-actions .btn-secondary {
    background: #ffffff;
    color: var(--navy-primary, #3b4c6b) !important;
    border: 1px solid #cbd5e1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}
.oeuvre-actions .btn-secondary:hover {
    background: #f8fafc;
    border-color: #94a3b8;
    color: #0f172a !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

@media (max-width: 992px) {
    .oeuvre-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }
    .oeuvre-infos {
        padding: 24px 20px;
    }
    .oeuvre-actions {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 640px) {
    .oeuvre-detail {
        padding: 14px 0 28px !important;
    }
    .oeuvre-infos {
        padding: 16px 14px !important;
        border-radius: var(--br-sm, 10px) !important;
        width: 100% !important;
    }
    .oeuvre-main-title {
        font-size: 1.25rem !important;
        line-height: 1.3 !important;
        margin-bottom: 6px !important;
    }
    .oeuvre-artist-kicker .oeuvre-artist-link {
        padding: 4px 10px !important;
        font-size: 10.5px !important;
    }
    .oeuvre-description {
        font-size: 12.5px !important;
        line-height: 1.55 !important;
    }
    .oeuvre-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        width: 100% !important;
        margin-top: 18px !important;
    }
    .oeuvre-actions .btn {
        width: 100% !important;
        min-height: 38px !important;
        height: auto !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 10px !important;
        padding: 6px 8px !important;
        letter-spacing: 0.3px !important;
        text-transform: uppercase !important;
        font-weight: 700 !important;
        white-space: normal !important;
        text-align: center !important;
        line-height: 1.25 !important;
        box-sizing: border-box !important;
    }
    .oeuvre-actions .btn:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
    }
}

/* ============================================================
   OEUVRE PAGE — FOCUS ARTISTE (CARTE BLANCHE STYLE GALERIE)
   ============================================================ */
.oeuvre-artist-section {
    padding: 70px 0 80px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}

.oeuvre-artist-card {
    background: #ffffff;
    border: 1px solid rgba(220, 228, 238, 0.85);
    border-radius: var(--br-lg, 12px);
    padding: 44px 48px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.06), 0 2px 6px rgba(15, 23, 42, 0.03);
}

.oeuvre-artist-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    padding-bottom: 22px;
    margin-bottom: 32px;
    border-bottom: 1px solid #f1f5f9;
}
.oeuvre-artist-header-left {
    flex: 1;
    min-width: 0;
}
.oeuvre-artist-kicker {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: var(--navy-primary, #3b4c6b);
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    padding: 4px 12px;
    border-radius: var(--br-pill, 20px);
    margin-bottom: 12px;
}
.oeuvre-artist-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.8rem, 2.8vw, 2.4rem);
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 6px 0;
    line-height: 1.25;
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}
.oeuvre-artist-dates {
    font-family: var(--font-body, system-ui, sans-serif);
    font-size: 15px;
    font-weight: 500;
    color: #64748b;
    letter-spacing: 0;
}
.oeuvre-artist-subtitle {
    font-size: 15px;
    color: #64748b;
    font-style: italic;
    margin: 0;
    line-height: 1.5;
}
.oeuvre-artist-header-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
    text-decoration: none;
    padding: 8px 18px;
    border-radius: var(--br); /* suit le réglage border-radius admin */
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    white-space: nowrap;
    transition: all 0.2s ease;
    flex-shrink: 0;
}
.oeuvre-artist-header-link:hover {
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff !important;
    border-color: var(--navy-primary, #3b4c6b);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(36, 47, 68, 0.15);
}

.oeuvre-artist-grid {
    display: grid;
    grid-template-columns: 290px 1fr;
    gap: 48px;
    align-items: start;
}

.oeuvre-artist-col-media {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.oeuvre-artist-portrait {
    border-radius: var(--br-lg, 10px);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: #f1f5f9;
    border: 1px solid rgba(36, 47, 68, 0.1);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}
.oeuvre-artist-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    filter: hue-rotate(184deg) saturate(25%) sepia(2%);
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.oeuvre-artist-portrait:hover img {
    transform: scale(1.04);
}

.oeuvre-artist-facts {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--br-lg, 10px);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.oeuvre-facts-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 4px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e2e8f0;
}
.oeuvre-facts-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.oeuvre-fact-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.oeuvre-fact-icon {
    font-size: 16px;
    line-height: 1;
    margin-top: 2px;
    flex-shrink: 0;
}
.oeuvre-fact-text {
    flex: 1;
    min-width: 0;
}
.oeuvre-fact-label {
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #1e293b;
    margin-bottom: 2px;
}
.oeuvre-fact-val {
    display: block;
    font-size: 12.5px;
    color: #475569;
    line-height: 1.45;
}

.oeuvre-artist-col-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}
.oeuvre-artist-bio {
    font-size: 15.5px;
    line-height: 1.85;
    color: #334155;
    margin-bottom: 32px;
}
.oeuvre-artist-bio p {
    margin-bottom: 16px;
}
.oeuvre-artist-bio p:last-child {
    margin-bottom: 0;
}
.oeuvre-artist-bio-lead {
    font-size: 16.5px;
    font-weight: 500;
    color: #0f172a;
    line-height: 1.85;
}

.oeuvre-artist-actions {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 16px;
    padding-top: 24px;
    border-top: 1px solid #f1f5f9;
}
.oeuvre-artist-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 14px 20px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.8px;
    border-radius: var(--br); /* suit le réglage border-radius admin */
    transition: all 0.25s ease;
    box-sizing: border-box;
    white-space: normal;
    line-height: 1.35;
}
.oeuvre-artist-actions .btn-primary {
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.2);
}
.oeuvre-artist-actions .btn-primary:hover {
    background: #121624;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(36, 47, 68, 0.3);
}
.oeuvre-artist-actions .btn-secondary {
    background: #ffffff;
    color: var(--navy-primary, #3b4c6b) !important;
    border: 1px solid #cbd5e1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.oeuvre-artist-actions .btn-secondary:hover {
    background: #f8fafc;
    border-color: #94a3b8;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}

@media (max-width: 992px) {
    .oeuvre-artist-card {
        padding: 32px 24px;
    }
    .oeuvre-artist-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .oeuvre-artist-col-media {
        max-width: 320px;
    }
    .oeuvre-artist-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
}

@media (max-width: 640px) {
    .oeuvre-artist-card {
        padding: 24px 18px;
    }
    .oeuvre-artist-actions {
        grid-template-columns: 1fr;
    }
    .oeuvre-artist-col-media {
        max-width: 100%;
    }
}

/* === OEUVRE SLIDER (Autres œuvres de l'artiste) === */
.oeuvre-slider {
    position: relative;
    padding: 0 40px;
    margin-top: 24px;
}
.slider-track {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding: 16px 8px 24px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.slider-track::-webkit-scrollbar {
    display: none;
}
.slider-card {
    flex: 0 0 240px;
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    padding: 14px;
    text-decoration: none;
    box-shadow: var(--nm-raised-sm);
    transition: transform .35s ease, box-shadow .35s ease;
    text-align: center;
}
.slider-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--nm-hover);
}
.slider-card-img {
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: var(--br);
    overflow: hidden;
    background: var(--blue-tint-surface);
    margin-bottom: 10px;
    box-shadow: var(--nm-inset-sm);
}
.slider-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.slider-card:hover .slider-card-img img {
    transform: scale(1.05);
}
.slider-card h4 {
    font-family: 'Baskervville', serif;
    font-size: 13px;
    letter-spacing: 1px;
    color: #3b4c6b;
    line-height: 1.3;
}
.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #eef3f8;
    border: none;
    cursor: pointer;
    box-shadow: 4px 4px 8px #b8c6dc, -4px -4px 8px #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    color: #3b4c6b;
    z-index: 10;
    transition: opacity .25s ease, visibility .25s ease, box-shadow .25s ease, background .25s ease;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.slider-arrow:hover {
    box-shadow: 2px 2px 4px #b8c6dc, -2px -2px 4px #ffffff;
    background: #dfe5ec;
}
.slider-prev { left: -10px; }
.slider-next { right: -10px; }

@media (max-width: 900px) {
    .oeuvre-artist-grid {
        grid-template-columns: 1fr;
    }
    .oeuvre-artist-col-media {
        max-width: 320px;
        margin: 0 auto;
    }
    .oeuvre-artist-card {
        padding: 24px;
    }
}

/* === ACTUALITE DETAIL (2 COLONNES DESKTOP, SUCCÉDANT MOBILE/TABLETTE) === */
.actualite-section {
    padding: 40px 0 80px;
}
.actualite-detail {
    max-width: var(--container-max-width, 1240px);
    margin: 0 auto;
    width: 100%;
}
.actualite-mobile-header {
    display: none;
    margin-bottom: 24px;
}
.actualite-desktop-header {
    display: block;
    margin-bottom: 20px;
}
.actualite-detail h1 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    color: #3b4c6b;
    line-height: 1.25;
    margin: 0 0 10px 0;
    letter-spacing: -0.2px;
}
.actualite-detail time {
    font-size: 13px;
    font-weight: 500;
    color: #8596b3;
    letter-spacing: 0.5px;
    display: inline-block;
    margin-bottom: 18px;
}
.actualite-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 50px;
    align-items: start;
    margin-bottom: 48px;
}
.actualite-grid--section {
    margin-top: 40px;
    padding-top: 40px;
    border-top: 1px solid #dce4ee;
}
.actualite-col-media {
    min-width: 0;
    width: 100%;
}
.actualite-col-content {
    min-width: 0;
    width: 100%;
}
.actualite-col-content--full {
    max-width: 800px;
    margin: 0 auto;
}
.actualite-illustration {
    margin: 0 0 20px 0;
    width: 100%;
}
.actualite-illustration a {
    display: block;
    cursor: zoom-in;
}
.actualite-illustration img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: var(--br);
    box-shadow: 8px 8px 20px #b8c6dc, -8px -8px 20px #ffffff;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.actualite-illustration a:hover img {
    transform: translateY(-2px);
    box-shadow: 10px 10px 24px #c5d0e0, -10px -10px 24px #ffffff;
}
.actualite-illustration figcaption {
    font-size: 13px;
    color: #8596b3;
    margin-top: 10px;
    text-align: center;
    font-style: italic;
    line-height: 1.5;
}
.actualite-illustration--standalone {
    max-width: 900px;
    margin: 40px auto 24px;
}
.actualite-texte {
    font-size: 15.5px;
    line-height: 1.85;
    color: #4a5568;
}
.actualite-texte p {
    margin-bottom: 16px;
}
.actualite-texte p:last-child {
    margin-bottom: 0;
}
.actualite-texte--standalone {
    max-width: 900px;
    margin: 24px auto;
}

/* RESPONSIVE MOBILE & TABLETTE (< 992px) */
@media (max-width: 992px) {
    .actualite-section {
        padding: 24px 0 60px;
    }
    .actualite-mobile-header {
        display: block;
        margin-bottom: 20px;
    }
    .actualite-desktop-header {
        display: none;
    }
    .actualite-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 24px !important;
        margin-bottom: 36px;
    }
    .actualite-grid--section {
        margin-top: 30px;
        padding-top: 30px;
    }
}

/* === CONTACT FORM === */
.contact-form { max-width: 600px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 13px; color: var(--navy-slate); }
.form-group label .req { color: #8f2214; }
.form-control {
    width: 100%;
    padding: 12px 16px;
    border: var(--nm-border-soft);
    border-radius: var(--br);
    font-size: 14px;
    font-family: inherit;
    background: var(--blue-tint-card);
    box-shadow: var(--nm-pressed);
    transition: box-shadow .35s ease, border-color .35s ease;
    color: var(--navy-primary);
}
.form-control:focus {
    outline: none;
    border-color: var(--blue-soft);
    box-shadow: inset 4px 4px 10px rgba(155, 172, 196, 0.5), inset -4px -4px 10px rgba(255, 255, 255, 0.95);
}
textarea.form-control { resize: vertical; min-height: 120px; }

/* Filters */
.filters { margin-bottom: 40px; }
.filters-form {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: center;
}
.filter-select, .filter-input {
    width: 100%;
    padding: 10px 16px;
    border: var(--nm-border-soft);
    border-radius: var(--br);
    font-size: 13px;
    font-family: inherit;
    background: var(--blue-tint-card);
    box-shadow: var(--nm-pressed);
    color: var(--navy-slate);
}
.filter-select:focus, .filter-input:focus { outline: none; border-color: var(--blue-soft); }
@media (max-width: 600px) {
    .filters-form { grid-template-columns: 1fr; }
    .filters-form .btn { width: 100%; justify-content: center; }
}

/* Page content */
.page-content { font-size: 15px; line-height: 1.8; }
.page-content p { margin-bottom: 12px; }

/* Alerts */
.alert-success {
    background: #eef3f8;
    color: #27ae60;
    padding: 16px 20px;
    border-radius: var(--br);
    margin-bottom: 20px;
    box-shadow: 4px 4px 8px #b8c6dc, -4px -4px 8px #ffffff;
}
.alert-error {
    background: #eef3f8;
    color: #8f2214;
    padding: 16px 20px;
    border-radius: var(--br);
    margin-bottom: 20px;
    box-shadow: 4px 4px 8px #b8c6dc, -4px -4px 8px #ffffff;
}

/* Empty state */
.empty-state { text-align: center; padding: 60px 20px; color: #8596b3; }

/* Contact infos */
.contact-infos {
    padding: 24px;
    background: #eef3f8;
    border-radius: var(--br);
    box-shadow: 6px 6px 12px #b8c6dc, -6px -6px 12px #ffffff;
}
.contact-infos p { margin-bottom: 8px; }

/* Contact success card */
.contact-success-card {
    text-align: center;
    padding: 48px 32px;
    background: #eef3f8;
    border-radius: var(--br);
    box-shadow: 8px 8px 20px rgba(163,177,198,.55), -8px -8px 20px rgba(255,255,255,.9);
    max-width: 480px;
    margin: 0 auto;
    animation: success-fade-in .6s cubic-bezier(.22,.8,.3,1) both;
}
@keyframes success-fade-in {
    from { opacity: 0; transform: translateY(20px) scale(.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.contact-success-icon {
    margin: 0 auto 20px;
    width: 80px;
    height: 80px;
}
.contact-success-circle {
    stroke-dasharray: 226;
    stroke-dashoffset: 226;
    animation: success-circle .8s .2s cubic-bezier(.22,.8,.3,1) forwards;
}
@keyframes success-circle {
    to { stroke-dashoffset: 0; }
}
.contact-success-check {
    stroke-dasharray: 60;
    stroke-dashoffset: 60;
    animation: success-check .5s .7s cubic-bezier(.22,.8,.3,1) forwards;
}
@keyframes success-check {
    to { stroke-dashoffset: 0; }
}
.contact-success-card h2 {
    font-size: 1.6rem;
    margin-bottom: 10px;
    color: #27ae60;
}
.contact-success-card p {
    color: #4a5568;
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 6px;
}
.contact-success-sub {
    color: #8596b3 !important;
    font-size: 14px !important;
}
.contact-success-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 24px;
    flex-wrap: wrap;
}
.contact-success-actions .btn { min-width: 140px; }

/* === FOOTER — CONTEMPORARY GALLERY EDITION (ALIGNED & BALANCED) === */
.site-footer {
    position: relative;
    background: linear-gradient(180deg, #151829 0%, #0d1017 100%);
    color: rgba(255, 255, 255, 0.75);
    padding: 0;
    margin-top: auto;
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
/* Luminous gradient border-top */
.site-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(180, 195, 216, 0.4) 25%, rgba(226, 234, 244, 0.7) 50%, rgba(180, 195, 216, 0.4) 75%, transparent 100%);
}

.footer-inner {
    max-width: var(--container-max-width, 1280px);
    margin: 0 auto;
    padding: 64px 40px 52px;
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 1fr 1fr;
    gap: 40px;
    align-items: stretch;
    box-sizing: border-box;
}

/* Cartes de colonnes — Toutes les 4 colonnes partagent la même carte
   pour une présentation homogène et des bas de colonnes alignés */
.footer-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* padding-top: 0; */
    margin-top: 0;
}
.footer-card {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid rgba(180, 195, 216, 0.10);
    border-radius: var(--br-sm, var(--br));
    padding: 38px 28px 34px;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
.footer-card > h4,
.footer-card > .footer-brand-title {
    align-self: flex-start;
}

@media (max-width: 1100px) and (min-width: 769px) {
    .footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 32px 36px;
        padding: 48px 32px 40px;
        align-items: start;
    }
    .footer-card {
        padding: 36px 26px 32px;
    }
}
@media (max-width: 768px) {
    .footer-inner {
        grid-template-columns: 1fr;
        gap: 28px;
        padding: 44px 20px 36px;
        align-items: start;
    }
    .footer-card {
        padding: 36px 24px 30px;
        justify-content: flex-start;
    }
}
.footer-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* padding-top: 0; */
    margin-top: 0;
}

/* Harmonized Column Headings (Aligned on the exact same baseline) */
.footer-col h4,
.footer-brand-title {
    margin: 0 0 20px 0;
    padding: 0;
    line-height: 1.25;
}

.footer-col h4 {
    color: #eef3f8;
    font-family: 'Noto Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    position: relative;
    padding-bottom: 10px;
    display: inline-block;
}
.footer-col h4::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 32px;
    height: 1.5px;
    background: linear-gradient(90deg, rgba(180, 195, 216, 0.7), transparent);
    border-radius: var(--br-sm, var(--br));
}

/* Brand column */
.footer-brand-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    color: #ffffff;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    font-weight: 600;
}
.footer-tagline {
    font-size: 13px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.55);
    margin: 0 0 20px 0;
    max-width: 300px;
}
.footer-sfep-badge {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(180, 195, 216, 0.14);
    border-left: 3px solid rgba(180, 195, 216, 0.6);
    border-radius: var(--br-sm, var(--br));
    padding: 10px 14px;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
.footer-sfep-badge:hover {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(180, 195, 216, 0.35);
    border-left-color: #ffffff;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    transform: translateY(-1px);
}
.footer-sfep-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.footer-sfep-text strong {
    font-size: 12.5px;
    color: #eef3f8;
    letter-spacing: 0.3px;
    font-weight: 600;
}
.footer-sfep-text span {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.5);
    letter-spacing: 0.2px;
}

/* === DESKTOP FOOTER MAP CARD === */
.footer-desktop-map-card {
    display: none !important;
}
@media (min-width: 1201px) {
    .footer-desktop-map-card {
        display: block !important;
        width: 100%;
        box-sizing: border-box;
        margin-top: 14px;
        background: rgba(255, 255, 255, 0.025);
        border: 1px solid rgba(180, 195, 216, 0.12);
        border-radius: var(--br-sm, var(--br));
        padding: 10px 12px;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
        transition: border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
    }
    .footer-desktop-map-card:hover {
        border-color: rgba(180, 195, 216, 0.3);
        background: rgba(255, 255, 255, 0.04);
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
    }
}
.footer-map-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.footer-map-title-wrap {
    display: flex;
    align-items: center;
    gap: 5px;
}
.footer-map-icon {
    font-size: 12px;
}
.footer-map-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 12px;
    color: #eef3f8;
    font-weight: 600;
    letter-spacing: 0.5px;
}
.footer-map-ext-link {
    font-size: 10.5px;
    color: #8596b3;
    text-decoration: none !important;
    padding: 2px 7px;
    border-radius: var(--br-sm, var(--br));
    background: rgba(132, 148, 176, 0.1);
    border: 1px solid rgba(132, 148, 176, 0.18);
    display: inline-flex;
    align-items: center;
    gap: 3px;
    transition: all 0.25s ease;
}
.footer-map-ext-link:hover {
    color: #ffffff !important;
    background: rgba(132, 148, 176, 0.22);
    border-color: rgba(180, 195, 216, 0.4);
}
.footer-map-frame {
    position: relative;
    border-radius: var(--br-sm, var(--br));
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: #0f1219;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.4);
}
.footer-map-svg {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 380 / 150;
    max-height: 150px;
}
.footer-map-actions {
    margin-top: 8px;
}
.footer-btn-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    box-sizing: border-box;
    padding: 6px 10px;
    border-radius: var(--br-sm, var(--br));
    background: linear-gradient(135deg, rgba(36, 47, 68, 0.9) 0%, rgba(21, 25, 40, 0.95) 100%);
    border: 1px solid rgba(180, 195, 216, 0.2);
    color: #eef3f8 !important;
    text-decoration: none !important;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3px;
    transition: all 0.25s ease;
}
.footer-btn-nav:hover {
    background: linear-gradient(135deg, rgba(45, 53, 77, 0.95) 0%, rgba(36, 47, 68, 1) 100%);
    border-color: rgba(180, 195, 216, 0.45);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    color: #ffffff !important;
}
.footer-nav-arrow {
    color: #b8c6dc;
    font-size: 11px;
    transition: transform 0.25s ease, color 0.25s ease;
}
.footer-btn-nav:hover .footer-nav-arrow {
    transform: translateX(3px);
    color: #ffffff;
}

/* Navigation & Links Columns */
.footer-nav-list,
.footer-links-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
}
.footer-nav-parent,
.footer-links-list a {
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.65) !important;
    display: inline-flex;
    align-items: center;
    padding: 3px 0;
    transition: all .25s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    position: relative;
    line-height: 1.4;
}
.footer-nav-parent::after,
.footer-links-list a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: rgba(180, 195, 216, 0.6);
    transition: width 0.3s ease;
}
.footer-nav-parent:hover,
.footer-links-list a:hover {
    color: #ffffff !important;
    transform: translateX(4px);
}
.footer-nav-parent:hover::after,
.footer-links-list a:hover::after {
    width: 100%;
}
.footer-subnav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 12px;
    margin: 2px 0 6px 4px;
    border-left: 1.5px solid rgba(180, 195, 216, 0.22);
}
.footer-nav-child {
    font-size: 11.5px !important;
    color: rgba(255, 255, 255, 0.45) !important;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 1px 0;
    transition: all .25s ease;
    text-decoration: none;
}
.footer-nav-child .sub-arrow {
    font-size: 10px;
    color: #5d7092;
    transition: transform .2s ease, color .2s ease;
}
.footer-nav-child:hover {
    color: #eef3f8 !important;
    transform: translateX(4px);
}
.footer-nav-child:hover .sub-arrow {
    color: #b8c6dc;
}

/* Contact Column */
.footer-contact-items {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
    width: 100%;
}
.footer-contact-item {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.72);
    transition: color 0.2s ease;
}
.footer-contact-item:hover {
    color: rgba(255, 255, 255, 0.95);
}
.footer-contact-item .fci-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: var(--br-sm, var(--br));
    background: rgba(180, 195, 216, 0.08);
    border: 1px solid rgba(180, 195, 216, 0.14);
    transition: all 0.25s ease;
}
.footer-contact-item:hover .fci-icon {
    background: rgba(180, 195, 216, 0.15);
    border-color: rgba(180, 195, 216, 0.3);
}
.fci-svg {
    width: 13px;
    height: 13px;
    stroke: rgba(180, 195, 216, 0.75);
    transition: stroke .25s ease;
}
.footer-contact-item:hover .fci-svg {
    stroke: #eef3f8;
}
.footer-contact-item a {
    color: rgba(255, 255, 255, 0.8) !important;
    text-decoration: none;
    transition: color .2s ease;
}
.footer-contact-item a:hover {
    color: #ffffff !important;
}

/* CTA button in footer */
.footer-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    border: 1px solid rgba(180, 195, 216, 0.25);
    color: #eef3f8 !important;
    border-radius: var(--br);
    padding: 12px 18px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.footer-cta-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.footer-cta-btn:hover::before {
    left: 100%;
}
.footer-cta-btn:hover {
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
}

/* Footer bottom */
.footer-bottom {
    margin-top: 0;
    border-top: 1px solid rgba(180, 195, 216, 0.1);
    padding: 22px 0;
    background: rgba(8, 10, 18, 0.6);
}
.footer-bottom-inner {
    max-width: var(--container-max-width, 1280px);
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
}
.footer-bottom-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 4px;
    width: 100%;
}
.footer-bottom-copy {
    text-align: center;
    color: rgba(255, 255, 255, 0.55);
    font-size: 12px;
    letter-spacing: 0.2px;
}
.footer-bottom-affiliation {
    text-align: center;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.38);
    letter-spacing: 0.3px;
}
.footer-back-top {
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(180, 195, 216, 0.08);
    border: 1px solid rgba(180, 195, 216, 0.18);
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none;
    font-size: 14px;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
.footer-back-top:hover {
    background: rgba(180, 195, 216, 0.2);
    border-color: rgba(180, 195, 216, 0.45);
    color: #ffffff !important;
    transform: translateY(calc(-50% - 3px));
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}
@media (max-width: 768px) {
    .footer-bottom-inner {
        padding: 0 24px;
        flex-direction: column;
        gap: 12px;
    }
    .footer-back-top {
        position: static;
        transform: none;
        margin-top: 6px;
    }
    .footer-back-top:hover {
        transform: translateY(-2px);
    }
}

/* Tablet-specific: contact col layout */
@media (min-width: 601px) and (max-width: 1024px) {
    .footer-contact-col {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 16px 24px;
        align-items: start;
    }
    .footer-contact-col h4 {
        grid-column: 1 / -1;
    }
    .footer-contact-items {
        grid-column: 1;
    }
    .footer-cta-btn {
        grid-column: 2;
        align-self: center;
        width: auto;
        min-width: 200px;
    }
}

/* Mobile refinements */
@media (max-width: 600px) {
    .footer-brand-title {
        font-size: 19px;
        margin-bottom: 16px;
    }
    .footer-tagline {
        font-size: 13px;
        max-width: 100%;
        margin-bottom: 18px;
    }
    .footer-sfep-badge {
        padding: 10px 14px;
    }
    .footer-col h4 {
        margin-bottom: 18px;
        padding-bottom: 10px;
    }
    .footer-contact-items {
        gap: 14px;
        margin-bottom: 18px;
    }
    .footer-cta-btn {
        padding: 13px 16px;
        font-size: 11px;
    }
}

/* === OEUVRE SLIDER === */
.oeuvre-slider {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
}
.slider-track {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 10px 0;
    flex: 1;
}
.slider-track::-webkit-scrollbar { display: none; }
.slider-card {
    flex: 0 0 auto;
    width: 220px;
    scroll-snap-align: start;
    text-decoration: none;
    background: #eef3f8;
    border-radius: var(--br);
    padding: 12px;
    box-shadow: 6px 6px 12px #b8c6dc, -6px -6px 12px #ffffff00;
    transition: box-shadow .4s cubic-bezier(.4, 0, .2, 1), transform .4s cubic-bezier(.4, 0, .2, 1);
}
.slider-card:hover { box-shadow: 4px 4px 8px #b8c6dc, -4px -4px 8px #ffffff00; transform: translateY(-2px); }
.slider-card-img {
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: var(--br);
    margin-bottom: 8px;
    background: #d5dbe5;
}
.slider-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.slider-card h4 {
    font-family: 'Baskervville', serif;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #3b4c6b;
    text-align: center;
    line-height: 1.3;
    min-height: 32px;
}
.slider-arrow {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: var(--nm-border-soft);
    border-radius: 50%;
    background: var(--blue-tint-card);
    box-shadow: var(--nm-raised-sm);
    cursor: pointer;
    font-size: 18px;
    color: var(--navy-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: box-shadow .35s cubic-bezier(.4, 0, .2, 1), transform .35s cubic-bezier(.4, 0, .2, 1);
    z-index: 2;
}
.slider-arrow:hover { box-shadow: var(--nm-pressed); }
.slider-prev { margin-right: 10px; }
.slider-next { margin-left: 10px; }
@media (max-width: 768px) {
    .slider-card { width: calc(100vw - 120px); max-width: 300px; scroll-snap-align: center; }
    .slider-track { gap: 0; scroll-snap-type: x mandatory; }
    .slider-arrow { width: 34px; height: 34px; font-size: 15px; }
}

/* === RESPONSIVE === */
@media (max-width: 1200px) {
    .site-nav { display: none !important; }
    .menu-toggle { display: flex !important; }
    .oeuvre-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 30px;
        width: 100% !important;
        max-width: 100% !important;
    }
    .hero h1 a { font-size: 2rem; }
    .gallery-grid { column-gap: 20px; }
}
@media (max-width: 600px) {
    .form-row { grid-template-columns: 1fr; }
    .section { padding: 50px 0; }
}

/* === PUBLICATIONS (ALTERNANCE GAUCHE / DROITE EN QUINCONCE) === */
.publications-list {
    display: flex;
    flex-direction: column;
}

.publication-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
    padding: 50px 0;
    border-top: 1px solid rgba(59, 76, 107, 0.12);
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.publication-item:first-child {
    border-top: none;
    padding-top: 10px;
}

.publication-item.publication-item-reverse {
    grid-template-columns: 1fr 1fr;
}

.publication-cover {
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    perspective: 1200px;
    padding: 10px 8px;
    background: transparent;
    border: none;
    max-height: 440px;
    height: 100%;
}

.publication-text {
    display: flex;
    flex-direction: column;
    padding: 0;
}

.publication-label {
    display: inline-flex;
    align-items: center;
    font-family: 'Noto Sans', -apple-system, sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #8f6d14;
    background: rgba(210, 197, 162, 0.16);
    border: 1px solid rgba(210, 197, 162, 0.42);
    padding: 3px 9px;
    border-radius: 4px;
    margin-bottom: 8px;
    width: fit-content;
}

.publication-item h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.35rem, 1.8vw, 1.65rem);
    line-height: 1.25;
    letter-spacing: -0.2px;
    color: #1e2638;
    margin-bottom: 5px;
}

.publication-subtitle {
    font-size: 13px;
    color: #5d7092;
    font-style: italic;
    font-family: 'Georgia', serif;
    margin-bottom: 12px;
    line-height: 1.45;
}

.publication-desc {
    font-size: 13px;
    line-height: 1.65;
    color: #475569;
    margin-bottom: 14px;
}

.publication-desc p {
    margin-bottom: 8px;
}

.publication-meta-specs {
    margin-top: 6px;
    margin-bottom: 16px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
    width: 100%;
}

.pub-spec-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(59, 76, 107, 0.05);
    padding: 4px 10px;
    border-radius: var(--br-sm, 4px);
    border: 1px solid rgba(59, 76, 107, 0.12);
    font-size: 11px;
    color: #3b4c6b;
    box-sizing: border-box;
    width: auto;
}

.publication-buttons {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.publication-buttons .btn {
    flex: 1 1 auto;
    text-align: center;
    min-width: 0;
    padding: 8px 14px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.8px;
    border-radius: var(--br-sm, 6px);
}

@media (max-width: 900px) {
    .publication-item,
    .publication-item.publication-item-reverse {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 24px 0;
    }
    .publication-cover {
        order: -1;
        padding: 4px 0 8px;
        max-height: 280px;
    }
    .publication-cover img {
        max-height: 260px;
        width: auto;
    }
    .publication-label {
        margin-top: 4px !important;
        margin-bottom: 6px !important;
    }
    .publication-item h2 {
        font-size: 1.25rem !important;
        line-height: 1.25 !important;
        margin-bottom: 4px !important;
    }
    .publication-subtitle {
        font-size: 12px !important;
        margin-bottom: 6px !important;
    }
    .publication-desc {
        font-size: 12px !important;
        line-height: 1.5 !important;
        margin-bottom: 8px !important;
    }
    .publication-meta-specs {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        margin: 6px 0 12px 0 !important;
    }
    .pub-spec-badge {
        display: inline-flex !important;
        width: auto !important;
        padding: 3px 8px !important;
        font-size: 10px !important;
    }
    .publication-buttons {
        display: grid !important;
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) !important;
        gap: 8px !important;
        width: 100% !important;
    }
    .publication-buttons .btn {
        width: 100% !important;
        height: 35px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 10px !important;
        padding: 4px 6px !important;
        letter-spacing: 0.3px !important;
        text-transform: uppercase !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        gap: 4px !important;
    }
    .publication-buttons .btn .btn-order-icon {
        display: inline-flex;
        align-items: center;
        flex-shrink: 0;
    }
    .publication-buttons .btn .btn-order-icon svg {
        width: 11px;
        height: 11px;
    }
    .publication-buttons .btn:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
    }
}

/* === FLIPBOOK === */
.btn-flipbook {
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    color: #eef3f8 !important;
    border: 1px solid rgba(180, 195, 216, 0.25);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-flipbook::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.btn-flipbook:hover::before {
    left: 100%;
}
.btn-flipbook:hover {
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
}

/* === BOUTON COMMANDER — MISE EN VALEUR DISCRÈTE DE PRESTIGE === */
.publication-buttons .btn-order,
.btn-order {
    background: linear-gradient(135deg, #ffffff 0%, #faf6ee 100%) !important;
    color: #2b3a4a !important;
    border: 1.5px solid #d2c5a2 !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px !important;
    box-shadow: 0 2px 10px rgba(140, 120, 83, 0.12), inset 0 1px 0 #ffffff;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    position: relative;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.btn-order .btn-order-icon {
    display: inline-flex;
    align-items: center;
    color: #8c7853;
    transition: transform 0.25s ease, color 0.25s ease;
}
.btn-order:hover {
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%) !important;
    color: #ffffff !important;
    border-color: #3b4c6b !important;
    box-shadow: 0 6px 20px rgba(59, 76, 107, 0.28), 0 0 12px rgba(210, 197, 162, 0.2);
    transform: translateY(-2px);
}
.btn-order:hover .btn-order-icon {
    color: #f3e8c9;
    transform: scale(1.15);
}

/* === LIGHTBOX ZOOM (main.js) === */
.lightbox-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,.94);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s cubic-bezier(.4, 0, .2, 1);
    overflow: hidden;
}
.lightbox-overlay.open { opacity: 1; pointer-events: auto; }
.lightbox-overlay .lightbox-img,
.lightbox-overlay img,
.lightbox img,
#oeuvre-lightbox img {
    max-width: 88vw;
    max-height: 88vh;
    object-fit: contain;
    cursor: zoom-in;
    transform-origin: 50% 50%;
    transition: transform .35s cubic-bezier(.22, .8, .3, 1), filter .25s ease;
    user-select: none;
    -webkit-user-drag: none;
    border-radius: 0 !important;
    margin: auto;
}
.lightbox-overlay .lightbox-img.is-inverted,
.lightbox-overlay img.is-inverted,
#oeuvre-lightbox img.is-inverted {
    filter: invert(1) !important;
}
.lightbox-toolbar {
    position: absolute;
    top: 20px;
    left: 24px;
    z-index: 20;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(18, 22, 36, 0.82);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 4px 6px;
    border-radius: var(--br, 8px);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}
.lightbox-tool-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: transparent;
    border: 1px solid transparent;
    color: rgba(255, 255, 255, 0.88);
    padding: 7px 12px;
    border-radius: var(--br, 6px);
    font-family: 'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.4px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    line-height: 1;
    user-select: none;
    -webkit-user-select: none;
}
.lightbox-tool-btn svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    stroke: currentColor;
}
.lightbox-tool-btn:hover {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}
.lightbox-tool-btn:active {
    transform: scale(0.95);
}
.lightbox-tool-btn.active {
    background: rgba(210, 197, 162, 0.28) !important;
    border-color: rgba(210, 197, 162, 0.6) !important;
    color: #f7eed3 !important;
    box-shadow: 0 0 12px rgba(210, 197, 162, 0.35);
}
.lightbox-close {
    position: absolute;
    top: 20px; right: 30px;
    color: #fff;
    font-size: 36px;
    cursor: pointer;
    z-index: 20;
    transition: opacity .35s ease, transform .2s ease;
    line-height: 1;
}
.lightbox-close:hover { opacity: .7; transform: scale(1.1); }
.lightbox-zoom-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    background: rgba(0,0,0,.6);
    border: 1px solid rgba(255, 255, 255, 0.15);
    padding: 6px 16px;
    border-radius: var(--br, 20px);
    opacity: 0;
    transition: opacity .4s ease;
    pointer-events: none;
    z-index: 15;
}

/* === ULTRA-MODERN LIGHTBOX HD LOADER === */
.lightbox-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 22px 28px;
    background: rgba(18, 22, 36, 0.86);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--br, 16px);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55);
    z-index: 12;
    pointer-events: none;
    animation: loader-pop .3s cubic-bezier(.16, 1, .3, 1) forwards;
}
.lightbox-overlay.is-loading .lightbox-loader {
    display: flex !important;
}
.lightbox-loader-ring {
    position: relative;
    width: 42px;
    height: 42px;
}
.lightbox-loader-ring::before,
.lightbox-loader-ring::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 50%;
}
.lightbox-loader-ring::before {
    border: 3px solid rgba(255, 255, 255, 0.1);
}
.lightbox-loader-ring::after {
    border: 3px solid transparent;
    border-top-color: var(--gold-primary);
    border-right-color: #ffffff;
    animation: ring-spin 0.9s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}
.lightbox-loader-text {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: 'Baskervville', Georgia, serif;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
}
.lightbox-loader-dots {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.lightbox-loader-dots i {
    display: inline-block;
    width: 3px;
    height: 3px;
    background: var(--gold-primary);
    border-radius: 50%;
    animation: dot-pulse 1.4s infinite ease-in-out;
}
.lightbox-loader-dots i:nth-child(2) { animation-delay: .2s; }
.lightbox-loader-dots i:nth-child(3) { animation-delay: .4s; }

@keyframes loader-pop {
    from { opacity: 0; transform: translate(-50%, -46%) scale(0.95); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes ring-spin {
    to { transform: rotate(360deg); }
}
@keyframes dot-pulse {
    0%, 80%, 100% { opacity: 0.2; transform: scale(0.8); }
    40% { opacity: 1; transform: scale(1.3); }
}

@media (max-width: 600px) {
    .lightbox-toolbar {
        top: 14px;
        left: 14px;
        padding: 3px 5px;
        gap: 3px;
    }
    .lightbox-tool-btn {
        padding: 6px 8px;
        font-size: 11px;
    }
    .lightbox-tool-btn span {
        display: none;
    }
    .lightbox-tool-btn svg {
        width: 17px;
        height: 17px;
    }
    .lightbox-close {
        top: 14px;
        right: 16px;
        font-size: 32px;
    }
}

/* Lightbox navigation arrows */
.lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.08);
    border: none;
    color: #fff;
    font-size: 36px;
    cursor: pointer;
    padding: 16px 20px;
    z-index: 10;
    transition: background .35s ease, transform .35s cubic-bezier(.4, 0, .2, 1);
    border-radius: var(--br-sm, var(--br));
    line-height: 1;
}
.lightbox-nav:hover { background: rgba(255,255,255,.2); }
.lightbox-nav-prev { left: 20px; }
.lightbox-nav-next { right: 20px; }
.lightbox-counter-text {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,.7);
    font-size: 14px;
    font-family: 'Noto Sans', sans-serif;
    z-index: 10;
    pointer-events: none;
}

/* === FLIPBOOK FULLSCREEN === */
.flipbook-fullscreen {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 1000;
    background: #1a2b3c;
    display: flex;
    flex-direction: column;
}
.flipbook-toolbar {
    display: flex;
    align-items: center;
    padding: 0 20px;
    height: 52px;
    background: #181d2f;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    gap: 16px;
    flex-shrink: 0;
    z-index: 1001;
}
.flipbook-back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 6px 14px;
    border-radius: var(--br-lg, var(--br));
    transition: all .25s cubic-bezier(.16, 1, .3, 1);
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(8px);
}
.flipbook-back .back-arrow {
    font-size: 14px;
    transition: transform .2s ease;
}
.flipbook-back:hover {
  background: linear-gradient(135deg, #d4af37 0%, #a67c2e 100%);
  border-color: #e3d4a4;
  color: #ffffff !important;
  transform: translateX(-2px);
  box-shadow: 0 4px 14px rgba(212, 175, 55, 0.45);
}
.flipbook-back:hover .back-arrow {
    transform: translateX(-2px);
}
.flipbook-title {
    color: #ffffff;
    font-family: 'Baskervville', Georgia, serif;
    font-size: 14px;
    letter-spacing: 1px;
    margin: 0;
    text-align: center;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.flipbook-spacer { min-width: 120px; }
.flipbook-fullscreen ._df_book { flex: 1; min-height: 0; }
.flipbook-fullscreen .df-container { height: 100% !important; }

.flipbook-container-wrapper { flex: 1; min-height: 0; position: relative; overflow: hidden; }
.flipbook-container-wrapper > div { width: 100%; height: 100%; }
.flipbook-embed { width: 100%; height: 100%; border: none; }
.flipbook-download-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 6px 12px;
    border-radius: var(--br-lg, var(--br));
    transition: all .25s ease;
    white-space: nowrap;
}
.flipbook-download-link:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: #ffffff;
    color: #ffffff !important;
}

/* dFlip viewer — let it manage its own layout, just ensure visibility */
.flipbook-fullscreen .df-container { position: relative !important; overflow: visible !important; }
.flipbook-fullscreen .df-wrapper { bottom: 42px !important; }
.flipbook-fullscreen .df-ui { display: flex !important; visibility: visible !important; opacity: 1 !important; background-color: #fff !important; z-index: 2147483000 !important; height: 42px !important; position: fixed !important; bottom: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; pointer-events: auto !important; }
.flipbook-fullscreen .df-ui * { visibility: visible !important; opacity: 1 !important; }
.flipbook-fullscreen .df-ui-btn { color: #444 !important; }
/* Prevent dFlip canvas from covering toolbar — limit canvas height */
.flipbook-fullscreen .df-container canvas,
.flipbook-fullscreen .df-container .df-page-loading {
  z-index: 1 !important;
  max-height: calc(100% - 42px) !important;
}
.flipbook-fullscreen .df-ui { z-index: 20 !important; }

body.flipbook { background: #1a2b3c; }
body.flipbook .site-header,
body.flipbook .site-footer,
body.flipbook .menu-overlay { display: none; }
body.flipbook .site-main { padding: 0; min-height: 100vh; background: #1a2b3c; }

/* === FLIPBOOK LIST === */
.flipbook-list { display: flex; flex-direction: column; gap: 14px; }
.flipbook-list-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    background: var(--blue-tint-card);
    border: var(--nm-border-soft);
    border-radius: var(--br);
    text-decoration: none;
    transition: box-shadow .35s cubic-bezier(.4, 0, .2, 1), transform .35s cubic-bezier(.4, 0, .2, 1);
    box-shadow: var(--nm-raised-sm);
}
.flipbook-list-item:hover { box-shadow: var(--nm-hover); transform: translateY(-2px); }
.flipbook-list-icon { font-size: 28px; color: var(--navy-primary); flex-shrink: 0; }
.flipbook-list-item strong { color: var(--navy-primary); font-family: 'Baskervville', serif; font-size: 16px; letter-spacing: 1px; display: block; margin-bottom: 4px; }
.flipbook-list-item p { margin: 0; font-size: 13px; color: var(--blue-muted); }

/* === SIMULATION DE LIVRE D'ART / CATALOGUE RAISONNÉ (TRÈS DOUX) === */
.book-soft-3d {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    max-width: 100%;
    max-height: 460px;
    perspective: 1200px;
}

.flipbook-cover-link,
.publication-cover .flipbook-cover-link {
    position: relative;
    display: inline-block;
    max-width: 100%;
    max-height: 460px;
    width: auto;
    border-radius: var(--br-sm, var(--br)) var(--br) var(--br) var(--br-sm, var(--br));
    overflow: hidden;
    background: #faf7f2;
    /* Tranche de papier crème et ombres douces et feutrées */
    box-shadow:
        /* Tranche de pages extérieures (ivoire doux) */
        2px 1px 0px -1px rgba(248, 245, 238, 0.95),
        4px 2px 0px -1.5px rgba(234, 229, 218, 0.90),
        7px 4px 0px -2.5px rgba(222, 215, 201, 0.85),
        /* Tranche inférieure */
        0px 3px 0px -1.5px rgba(234, 229, 218, 0.80),
        /* Ombre de contact douce */
        0 2px 6px rgba(30, 38, 56, 0.08),
        /* Ombre diffuse du livre */
        8px 14px 30px -6px rgba(30, 38, 56, 0.16),
        /* Ambiance douce */
        16px 26px 56px -10px rgba(30, 38, 56, 0.12);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-left: 1px solid rgba(0, 0, 0, 0.15);
    transform-origin: left center;
    transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.25, 1),
                box-shadow 0.45s cubic-bezier(0.2, 0.8, 0.25, 1);
    box-sizing: border-box;
    text-decoration: none !important;
}

/* Pli du dos / rainure de reliure (mors de couverture à gauche) */
.flipbook-cover-link::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 28px;
    background: linear-gradient(90deg, 
        rgba(0, 0, 0, 0.18) 0%, 
        rgba(0, 0, 0, 0.05) 10%, 
        rgba(255, 255, 255, 0.28) 16%, 
        rgba(255, 255, 255, 0.00) 20%, 
        rgba(0, 0, 0, 0.10) 24%, 
        rgba(0, 0, 0, 0.02) 32%, 
        transparent 100%
    );
    border-radius: var(--br-sm, var(--br)) 0 0 var(--br-sm, var(--br));
    pointer-events: none;
    z-index: 2;
    mix-blend-mode: multiply;
}

/* Reflet soyeux doux satiné sur la couverture */
.flipbook-cover-link::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(118deg, 
        rgba(255, 255, 255, 0.15) 0%, 
        rgba(255, 255, 255, 0.04) 26%, 
        transparent 50%, 
        rgba(0, 0, 0, 0.03) 100%
    );
    border-radius: var(--br-sm, var(--br)) var(--br) var(--br) var(--br-sm, var(--br));
    pointer-events: none;
    z-index: 2;
    transition: opacity 0.4s ease;
}

/* Version dédiée Catalogue Raisonné : reliure plus cossue avec tranche d'art généreuse */
.book-catalogue-raisonne .flipbook-cover-link {
    box-shadow:
        /* Tranche de pages d'art plus dense */
        2.5px 1px 0px -1px rgba(250, 247, 242, 0.98),
        5px 2.5px 0px -1.5px rgba(238, 233, 222, 0.92),
        8px 4.5px 0px -2.5px rgba(225, 218, 203, 0.88),
        11px 6.5px 0px -3.5px rgba(212, 204, 188, 0.80),
        /* Tranche inférieure */
        0px 4px 0px -2px rgba(234, 229, 218, 0.85),
        /* Ombre douce réaliste */
        0 3px 8px rgba(30, 38, 56, 0.08),
        10px 18px 36px -6px rgba(30, 38, 56, 0.18),
        20px 32px 64px -10px rgba(30, 38, 56, 0.13);
}

/* Micro-interaction très douce au survol */
.flipbook-cover-link:hover {
    transform: translateY(-5px) rotateY(-2.5deg) rotateX(1deg);
    box-shadow:
        2.5px 1px 0px -1px rgba(250, 247, 242, 0.98),
        5.5px 2.5px 0px -1.5px rgba(238, 233, 222, 0.92),
        9px 4.5px 0px -2.5px rgba(225, 218, 203, 0.88),
        13px 7px 0px -3.5px rgba(212, 204, 188, 0.80),
        0px 5px 0px -2px rgba(234, 229, 218, 0.85),
        0 5px 12px rgba(30, 38, 56, 0.10),
        14px 24px 48px -6px rgba(30, 38, 56, 0.22),
        26px 42px 78px -10px rgba(30, 38, 56, 0.15);
}

.flipbook-cover-img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 440px;
    object-fit: contain;
    border-radius: var(--br-sm, var(--br)) var(--br) var(--br) var(--br-sm, var(--br));
    transition: transform .6s cubic-bezier(.22, .8, .3, 1);
}

.flipbook-cover-link:hover .flipbook-cover-img {
    transform: scale(1.015);
}

.flipbook-cover-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(36, 47, 68, .55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .4s cubic-bezier(.4, 0, .2, 1);
    z-index: 3;
    border-radius: var(--br-sm, var(--br)) var(--br) var(--br) var(--br-sm, var(--br));
}
.flipbook-cover-link:hover .flipbook-cover-overlay { opacity: 1; }
.flipbook-cover-icon { font-size: 44px; margin-bottom: 8px; }
.flipbook-cover-text { color: #fff; font-family: 'Baskervville', serif; font-size: 15px; letter-spacing: 3px; text-transform: uppercase; font-weight: 600; }

/* === LIGHTBOX GALLERY (artiste page) === */
.lightbox {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,.92);
    z-index: 99999;
    align-items: center;
    justify-content: center;
}
.lightbox.active { display: flex; }
.lightbox img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 0;
}
.lightbox-content { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.lightbox-caption { color: #fff; font-family: 'Baskervville', serif; font-size: 18px; text-align: center; }
.lightbox-counter { color: #999; font-size: 13px; font-family: 'Noto Sans', sans-serif; }
.lightbox-close {
    position: absolute; top: 20px; right: 30px;
    background: none; border: none;
    color: #fff; font-size: 40px;
    cursor: pointer; z-index: 1; line-height: 1; opacity: .7;
}
.lightbox-close:hover { opacity: 1; }
.lightbox-prev, .lightbox-next {
    position: absolute; top: 50%;
    transform: translateY(-50%);
    background: none; border: none;
    color: #fff; font-size: 48px;
    cursor: pointer; opacity: .5;
    padding: 20px; z-index: 1;
    transition: opacity .2s;
}
.lightbox-prev { left: 10px; }
.lightbox-next { right: 10px; }
.lightbox-prev:hover, .lightbox-next:hover { opacity: 1; }

/* === RESPONSIVE FLIPBOOK === */
@media (max-width: 768px) {
    .flipbook-toolbar { padding: 0 10px; height: 44px; gap: 10px; }
    .flipbook-title { font-size: 12px; }
    .flipbook-spacer { min-width: 50px; }
    .flipbook-cover-icon { font-size: 36px; }
    .flipbook-cover-text { font-size: 13px; }
}

/* === Page Builder Blocks === */
.block { margin-bottom: 48px; clear: both; }
.block-title {
    font-size: 24px;
    font-weight: 600;
    color: #3b4c6b;
    margin-bottom: 50px;
}
.block-subtitle { font-size: 16px; color: #5d7092; margin-bottom: 16px; font-style: italic; }
.block-text p { line-height: 1.8; margin-bottom: 12px; color: #2c3e50; }

/* Image block */
.block-image figure { margin: 0; }
.block-image img { width: 100%; height: auto; border-radius: var(--br); cursor: pointer; transition: transform .5s cubic-bezier(.22, .8, .3, 1); }
.block-image img:hover { transform: scale(1.01); }
.block-image figcaption { margin-top: 10px; font-size: 13px; color: #7a8a9a; text-align: center; }

/* Video block */
.video-wrapper { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: var(--br); }
.video-wrapper iframe,
.video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

/* PDF block */
.block-pdf .flipbook-container { border-radius: var(--br); overflow: hidden; box-shadow: var(--shadow); }
.block-pdf embed { display: block; }

/* Lightbox override for block images */
.block-image .lightbox-trigger { display: block; }


/* Image block display modes */
.block-image--left { float: left; max-width: 50%; margin: 0 24px 16px 0; }
.block-image--right { float: right; max-width: 50%; margin: 0 0 16px 24px; }
.block-image--center { text-align: center; }
.block-image--center img { margin: 0 auto; display: block; }
.block-image--full img { width: 100%; }
.block-image--left::after, .block-image--right::after { content: ""; display: table; clear: both; }


/* Inline image (merged into text block) */
.block-text--has-image { overflow: visible; position: relative; }
.block-text--has-image::after { content: ""; display: table; clear: both; }
.block-image-inline { margin: 0 0 16px 0; }
.block-image-inline img { max-width: 100%; height: auto; border-radius: var(--br); display: block; }
.block-image-inline--left { float: left; max-width: 45%; margin-right: 24px; }
.block-image-inline--right { float: right; max-width: 45%; margin-left: 24px; }
.block-image-inline figcaption { font-size: 13px; color: #888; margin-top: 6px; font-style: italic; }
@media (max-width: 768px) {
    .block-image-inline--left,
    .block-image-inline--right { float: none; max-width: 100%; margin: 0 0 16px 0; }
}

/* ============================================================
   PAGES DYNAMIQUES (ex: Comité Gen Paul, etc.)
   ============================================================ */
.dynamic-page-section {
    padding: 36px 0 70px;
}
.dynamic-page-card {
    background: linear-gradient(160deg, #ffffff 0%, #f7f9fc 60%, #eef3f8 100%);
    border: 1px solid #dce4ee;
    border-radius: var(--br);
    padding: 48px 52px;
    box-shadow: 0 12px 32px rgba(36, 47, 68, 0.06), 0 2px 6px rgba(36, 47, 68, 0.03);
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* ============================================================
   CUSTOM PAGES & BLOCS DYNAMIQUES (DESIGN LUXE & STRUCTURE)
   ============================================================ */
.custom-page-hero {
    background: linear-gradient(180deg, #182030 0%, #222d42 100%);
    padding: 42px 0 36px;
    text-align: center;
    color: #ffffff;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08), 0 4px 20px rgba(0, 0, 0, 0.15);
}
.custom-page-hero .hero-kicker-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-bottom: 12px;
}
.custom-page-hero .hero-kicker-line {
    display: inline-block;
    width: 32px;
    height: 1px;
    background: rgba(210, 197, 162, 0.35);
}
.custom-page-hero .hero-kicker-text {
    font-family: 'Noto Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: rgba(210, 197, 162, 0.85);
}
.custom-page-hero h1,
.custom-page-hero .page-hero-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.85rem, 4vw, 2.7rem);
    font-weight: 400;
    color: #ffffff !important;
    margin: 0 0 8px 0;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.custom-page-hero .lead,
.custom-page-hero .page-hero-subtitle {
    font-size: 14.5px;
    color: rgba(226, 234, 244, 0.9) !important;
    margin: 8px auto 0 auto;
    max-width: 720px;
    line-height: 1.6;
}

.dynamic-page-section {
    padding: 48px 0 80px;
    background: #f4f6fa;
}
.dynamic-page-card {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    background: #ffffff;
    border-radius: var(--br-lg, var(--br));
    padding: 48px 56px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.05), 0 2px 6px rgba(15, 23, 42, 0.02);
    box-sizing: border-box;
}
/* ============================================================
   GRILLE MULTI-COLONNES POUR PAGES DYNAMIQUES (2, 3, 4 COLONNES)
   ============================================================ */
.dynamic-page-grid {
    display: grid;
    gap: 28px;
    width: 100%;
    box-sizing: border-box;
    align-items: stretch;
}
.dynamic-page-grid--2cols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dynamic-page-grid--3cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.dynamic-page-grid--4cols {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}
.dynamic-page-grid--autocols,
.dynamic-page-grid--auto {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
}

.dynamic-section-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: 14px;
    padding: 22px 24px 8px;
    box-shadow: 0 6px 20px rgba(59, 76, 107, 0.04), 0 1px 3px rgba(0, 0, 0, 0.02);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: 100%;
    transition: all 0.25s ease;
}
.dynamic-section-card:hover {
    border-color: rgba(59, 76, 107, 0.28);
    box-shadow: 0 12px 32px rgba(59, 76, 107, 0.08);
    transform: translateY(-2px);
}
.dynamic-section-card .block-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.28rem;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 8px 0;
    line-height: 1.25;
    padding-left: 10px;
    border-left: 3px solid #d2c5a2;
}
.dynamic-section-card .block-text-lead {
    font-size: 13.5px;
    line-height: 1.6;
    color: #334155;
    font-style: normal;
    margin: 0 0 8px 0;
    padding-bottom: 6px;
    border-bottom: 1px solid #f1f5f9;
}
.dynamic-section-card .block-text-p {
    font-size: 12.5px;
    line-height: 1.55;
    color: #475569;
    margin: 0 0 8px 0;
}
.dynamic-section-card .block-text-subheading {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.12rem;
    color: var(--navy-primary, #3b4c6b);
    margin: 12px 0 6px 0;
    font-weight: 600;
}
.dynamic-section-card .block-meta-card {
    margin: 8px 0 12px 0;
    padding: 12px 14px;
}
.dynamic-section-card .block-image figure {
    margin: 0;
}

/* Colonnes imbriquées dans les cartes de pages */
.dynamic-section-card .block-columns {
    display: grid;
    gap: 20px;
    align-items: center;
    padding: 0;
    width: 100%;
    height: 100%;
}
.dynamic-section-card .block-columns--50-50 {
    grid-template-columns: 1.15fr 0.85fr;
}
.dynamic-section-card .block-columns--30-70 {
    grid-template-columns: 140px 1fr;
}
.dynamic-section-card .block-columns--70-30 {
    grid-template-columns: 1fr 140px;
}
.dynamic-section-card .block-columns--40-60 {
    grid-template-columns: 160px 1fr;
}
.dynamic-section-card .block-columns--60-40 {
    grid-template-columns: 1fr 160px;
}
.dynamic-section-card .block-columns--has-video {
    grid-template-columns: 1.15fr 1fr;
    gap: 18px;
}

.dynamic-section-card .block-column {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
    height: 100%;
}
.dynamic-section-card .block-column .gallery-framed-figure {
    max-width: 100%;
    margin: 0 auto;
    padding: 6px;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}
.dynamic-section-card .block-column .gallery-framed-figure img {
    border-radius: 5px;
    max-height: 200px;
    object-fit: contain;
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    display: block;
}
.dynamic-section-card .block-column .gallery-framed-figure figcaption {
    font-size: 11px;
    color: #64748b;
    margin-top: 5px;
    padding: 2px;
    font-style: italic;
}
.dynamic-section-card .column-action-wrap {
    margin-top: 10px;
}
.dynamic-section-card .column-action-wrap .btn-expertise-gold,
.dynamic-section-card .column-action-wrap .btn-flipbook-showcase {
    padding: 8px 16px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.8px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media (max-width: 1400px) {
    .dynamic-page-grid--4cols {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 1080px) {
    .dynamic-page-grid--3cols {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .dynamic-section-card {
        padding: 20px 18px;
    }
}
@media (max-width: 860px) {
    .dynamic-section-card .block-columns,
    .dynamic-section-card .block-columns--has-video,
    .dynamic-section-card .block-columns--30-70,
    .dynamic-section-card .block-columns--70-30 {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
    }
    .dynamic-section-card .block-column {
        width: 100% !important;
    }
    .dynamic-section-card .block-column .gallery-framed-figure {
        max-width: 220px;
    }
}
@media (max-width: 768px) {
    .dynamic-page-section {
        padding: 20px 0 50px;
    }
    .dynamic-page-card {
        padding: 24px 16px;
        border-radius: var(--br);
    }
    .dynamic-page-grid--4cols,
    .dynamic-page-grid--3cols,
    .dynamic-page-grid--2cols,
    .dynamic-page-grid--autocols,
    .dynamic-page-grid--auto {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .dynamic-section-card {
        padding: 18px 14px;
        border-radius: 12px;
    }
}

/* Badge / Sur-titre */
.block-badge-wrap {
    margin-bottom: 6px;
}
.block-badge-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(210, 197, 162, 0.1);
    color: #966f12;
    border: 1px solid rgba(210, 197, 162, 0.28);
    border-radius: var(--br-pill, var(--br));
    padding: 4px 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

/* 1. BLOC TEXTE */
.block-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.block-text .block-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    color: #1a2233;
    margin: 0 0 12px 0;
    line-height: 1.3;
    padding-left: 14px;
    border-left: 3.5px solid #d2c5a2;
}
.block-text .block-subtitle {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 12px 0;
    font-style: italic;
}
.block-text-subheading {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.25rem;
    color: #202b3e;
    margin: 18px 0 8px 0;
    font-weight: 600;
    letter-spacing: 0.3px;
}
.block-text-lead {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.1rem;
    line-height: 1.65;
    color: #1e293b;
    font-style: italic;
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #f1f5f9;
}
.block-text-p {
    font-size: 14.5px;
    line-height: 1.7;
    color: #334155;
    margin: 0 0 12px 0;
}

/* Carte Métadonnées / Détails de l'œuvre & Vente aux enchères */
.block-meta-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--br, 8px);
    padding: 14px 16px;
    margin: 10px 0 14px 0;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.03);
}
.block-meta-header {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 13.5px;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    gap: 6px;
}
.meta-header-icon {
    font-size: 14px;
}
.block-meta-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.meta-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    padding: 5px 10px;
    border-radius: 6px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    font-size: 13px;
    line-height: 1.4;
    transition: background 0.15s ease;
}
.meta-item:hover {
    background: #f1f5f9;
}
.meta-item--highlight {
    background: #f0fdf4;
    border-color: #bbf7d0;
}
.meta-item--full {
    display: block;
}
.meta-key {
    font-size: 10.5px;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    flex-shrink: 0;
}
.meta-val {
    font-size: 12.5px;
    color: #1e293b;
    text-align: right;
    font-weight: 500;
}
.meta-val--price {
    font-size: 13px;
    font-weight: 700;
    color: #15803d;
    background: #dcfce7;
    padding: 2px 8px;
    border-radius: 4px;
    display: inline-block;
    border: 1px solid #86efac;
}
.meta-val--estimate {
    font-size: 12px;
    font-weight: 600;
    color: #854d0e;
    background: #fef9c3;
    padding: 1px 7px;
    border-radius: 4px;
    display: inline-block;
    border: 1px solid #fef08a;
}
@media (max-width: 600px) {
    .meta-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .meta-val {
        text-align: left;
    }
}

/* Meta-card avec image fusionnée à droite */
.block-meta-with-image {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: 16px;
    align-items: start;
    margin: 10px 0 14px 0;
}
.block-meta-with-image .block-meta-card {
    margin: 0;
}
.block-meta-with-image-data {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.block-meta-with-image-fig {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}
.meta-image-figure {
    margin: 0;
    width: 100%;
    border-radius: var(--br, 8px);
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}
.meta-image-figure img {
    width: 100%;
    max-height: 240px;
    height: auto;
    display: block;
    object-fit: contain;
    background: #f8fafc;
}
.meta-image-figure figcaption {
    font-size: 11px;
    color: #64748b;
    text-align: center;
    padding: 6px 8px;
    line-height: 1.35;
    font-style: italic;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
}
@media (max-width: 768px) {
    .block-meta-with-image {
        grid-template-columns: 1fr;
    }
    .block-meta-with-image-fig {
        order: -1;
    }
}

/* Séparateur Fleur-de-lys Élégant */
.block-separator--fleur {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin: 36px 0;
}
.block-sep-line {
    flex: 1;
    max-width: 140px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(210, 197, 162, 0.4), transparent);
}
.block-sep-fleur {
    color: #d2c5a2;
    font-size: 20px;
    opacity: 0.85;
}

/* 2. BLOC 2 COLONNES */
.block-columns {
    display: grid;
    gap: 48px;
    align-items: center;
    padding: 10px 0;
}
.block-columns--60-40 {
    grid-template-columns: 1.2fr 0.8fr;
}
.block-columns--40-60 {
    grid-template-columns: 0.8fr 1.2fr;
}
.block-columns--50-50 {
    grid-template-columns: 1fr 1fr;
}
.block-columns--30-70 {
    grid-template-columns: 0.7fr 1.3fr;
}
.block-columns--70-30 {
    grid-template-columns: 1.3fr 0.7fr;
}
.block-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
}
.block-column .block-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.95rem;
    color: #3b4c6b;
    margin: 0 0 16px 0;
    line-height: 1.3;
}

/* 3. ENCADREMENT PHOTO D'ART / PASSE-PARTOUT */
.gallery-framed-figure {
    margin: 0 auto;
    max-width: 360px;
    width: 100%;
    text-align: center;
    background: #ffffff;
    padding: 8px;
    border-radius: var(--br);
    border: 1px solid #dbe2ed;
    box-shadow: 0 12px 32px rgba(36, 47, 68, 0.1), 0 2px 8px rgba(36, 47, 68, 0.04);
    transition: transform .35s ease, box-shadow .35s ease;
    box-sizing: border-box;
}
.gallery-framed-figure:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(36, 47, 68, 0.14);
}
.gallery-framed-figure img {
    width: 100%;
    height: auto;
    border-radius: var(--br-sm, var(--br));
    display: block;
    object-fit: cover;
}
.gallery-framed-figure figcaption {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 14px;
    font-style: italic;
    color: #5d7092;
    margin-top: 10px;
    padding: 2px 4px 4px;
    letter-spacing: 0.3px;
}
.block-image--center {
    text-align: center;
}
.block-image--full .gallery-framed-figure {
    max-width: 100%;
}

/* 4. BLOC GALERIE */
.block-gallery {
    margin: 10px 0;
}
.block-gallery-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.6rem;
    color: #3b4c6b;
    margin: 0 0 16px 0;
    text-align: center;
}
.gallery-grid {
    display: grid;
    gap: 20px;
}
.gallery-grid--2cols { grid-template-columns: repeat(2, 1fr); }
.gallery-grid--3cols { grid-template-columns: repeat(3, 1fr); }
.gallery-grid--4cols { grid-template-columns: repeat(4, 1fr); }

/* 5. BLOC VIDÉO */
.block-video {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 10px 0;
}
.block-video .block-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.7rem;
    color: #3b4c6b;
    margin: 0;
}

/* 6. BLOC PDF SHOWCASE (Catalogues & Expositions) */
.block-pdf-showcase {
    margin: 10px 0;
}
.pdf-showcase-card {
    background: #ffffff;
    border: 1px solid #dce4ee;
    border-radius: var(--br);
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    box-shadow: 0 4px 16px rgba(36, 47, 68, 0.04);
    transition: all .3s ease;
}
.pdf-showcase-card:hover {
    border-color: #d2c5a2;
    box-shadow: 0 8px 24px rgba(36, 47, 68, 0.08);
    transform: translateY(-2px);
}
.pdf-showcase-header {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-grow: 1;
}
.pdf-showcase-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--br-sm, var(--br));
    background: linear-gradient(135deg, #f0f4f9 0%, #e5ecf5 100%);
    border: 1px solid #d5dfea;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #3b4c6b;
    flex-shrink: 0;
}
.pdf-showcase-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
}
.pdf-showcase-badge {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: #8f6d14;
}
.pdf-showcase-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.35rem;
    color: #3b4c6b;
    margin: 0;
    letter-spacing: 0.5px;
}
.pdf-showcase-action .btn-flipbook-showcase {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 11px 22px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    white-space: nowrap;
    border-radius: var(--br);
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    color: #eef3f8 !important;
    border: 1px solid rgba(180, 195, 216, 0.25);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    position: relative;
    overflow: hidden;
}
.pdf-showcase-action .btn-flipbook-showcase::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.pdf-showcase-action .btn-flipbook-showcase:hover::before {
    left: 100%;
}
.pdf-showcase-action .btn-flipbook-showcase:hover {
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
}
.btn-expertise-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 24px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    color: #eef3f8 !important;
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    border: 1px solid rgba(180, 195, 216, 0.25);
    border-radius: var(--br);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}
.btn-expertise-gold::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.btn-expertise-gold:hover::before {
    left: 100%;
}
.btn-expertise-gold:hover {
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
}

/* 7. BLOC CITATION / EXERGUE */
.gallery-blockquote {
    margin: 20px 0;
    padding: 24px 32px;
    background: #ffffff;
    border-left: 4px solid #d2c5a2;
    border-radius: 0 var(--br) var(--br) 0;
    box-shadow: 0 4px 16px rgba(36, 47, 68, 0.04);
}
.quote-text {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.25rem;
    font-style: italic;
    line-height: 1.7;
    color: #3b4c6b;
    margin: 0 0 10px 0;
}
.quote-author {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: #8f6d14;
    text-transform: uppercase;
}

/* ============================================================
   HERO SUB-NAV BUTTONS (Pill-shaped luxury style)
   ============================================================ */
.page-hero--small {
    padding: 16px 0;
    background: #f8fafc;
    border-bottom: 1px solid #e2e8f0;
}

.hero-nav-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
}

.hero-nav-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 18px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #3b4c6b;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: var(--br);
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    white-space: nowrap;
}

.hero-nav-btn:hover {
    color: #8f6d14 !important;
    border-color: #d2c5a2;
    background: #fffdf7;
    box-shadow: 0 4px 12px rgba(210, 197, 162, 0.18);
    transform: translateY(-1.5px);
}

.hero-nav-btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.hero-nav-btn strong {
    font-weight: 700;
    color: #3b4c6b;
}

.hero-nav-btn:hover strong {
    color: #8f6d14;
}

/* RESPONSIVE PAGES DYNAMIQUES & CENTRAGE BOUTONS MOBILE/TABLETTE */
@media (max-width: 992px) {
    .hero-nav-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        width: 100% !important;
    }
    .hero-nav-btn {
        flex: 1 1 auto;
        min-width: 0;
        padding: 7px 10px !important;
        font-size: 10.5px !important;
        letter-spacing: 0.3px !important;
        text-align: center !important;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .dynamic-page-card {
        padding: 28px 20px;
        gap: 24px;
    }
    .block-columns {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        width: 100% !important;
    }
    .block-column {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .block-column img,
    .block-column figure,
    .block-column .gallery-framed-figure {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Centrage des boutons en mobile & tablette */
    .column-action-wrap,
    .publication-action-row,
    .block-button,
    .block-column .column-action-wrap {
        text-align: center !important;
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        margin: 14px auto 0 !important;
    }
    .column-action-wrap .btn-expertise-gold,
    .column-action-wrap .btn-flipbook-showcase,
    .publication-action-row .btn-expertise-gold,
    .block-button a,
    .block-button button {
        text-align: center !important;
        display: inline-flex !important;
        justify-content: center !important;
    }

    .gallery-grid--3cols,
    .gallery-grid--4cols {
        grid-template-columns: repeat(2, 1fr);
    }
    .gallery-framed-figure {
        max-width: 290px;
    }
    .pdf-showcase-card {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
        padding: 18px 20px;
    }
    .pdf-showcase-header {
        display: flex;
        flex-direction: row;
        align-items: center;
        text-align: left;
        gap: 14px;
        width: 100%;
    }
    .pdf-showcase-icon {
        margin: 0;
    }
    .pdf-showcase-content {
        text-align: left;
    }
    .pdf-showcase-action {
        width: 100%;
        display: flex;
        justify-content: center;
        text-align: center;
    }
    .pdf-showcase-action .btn-flipbook-showcase {
        width: 100%;
        justify-content: center;
        box-sizing: border-box;
    }
}
@media (max-width: 600px) {
    .gallery-grid--2cols {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 420px) {
    .hero-nav-btn {
        padding: 6px 8px !important;
        font-size: 9.5px !important;
        letter-spacing: 0.2px !important;
    }
}

/* Animation de déplacement et permutation de bloc dans l'admin */
@keyframes blockPulseHighlight {
    0% {
        box-shadow: 0 0 0 4px rgba(210, 197, 162, 0.75), 0 8px 24px rgba(210, 197, 162, 0.25);
        border-color: #d2c5a2 !important;
        background-color: #fffdf5 !important;
        transform: scale(1.015);
    }
    50% {
        box-shadow: 0 0 0 3px rgba(210, 197, 162, 0.45), 0 6px 18px rgba(36, 47, 68, 0.12);
        border-color: #d4af37 !important;
        background-color: #fefcf7 !important;
    }
    100% {
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
        border-color: #e2e8f0;
        background-color: #ffffff;
        transform: scale(1);
    }
}

.block-pulse-highlight {
    animation: blockPulseHighlight 1.1s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
    z-index: 10 !important;
}

.block-moving-active {
    pointer-events: none !important;
}

/* === EXPERTISE PAGE — ARTIST CARDS & ARTWORK CAROUSEL */
/* === EXPERTISE PAGE — ARTIST CARDS & ARTWORK CAROUSEL */
.expertise-artists-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    align-items: stretch;
}
.expertise-artist-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: var(--br-lg, var(--br, 12px));
    padding: 22px 22px 18px 22px;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.02);
    transition: all 0.25s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
@media (min-width: 993px) {
    .expertise-artist-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }
    .expertise-artist-card:last-child:nth-child(odd) .expertise-artist-main {
        grid-template-columns: 120px 1fr;
        gap: 24px;
    }
}
.expertise-artist-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #d2c5a2, #3b4c6b);
    opacity: 0.75;
    transition: opacity 0.25s ease;
}
.expertise-artist-card:hover {
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.04);
    transform: translateY(-2px);
    border-color: #cbd5e1;
}
.expertise-artist-card:hover::before {
    opacity: 1;
}
.expertise-artist-main {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 18px;
    align-items: start;
    margin-bottom: 12px;
}
.expertise-artist-portrait-col {
    position: relative;
    width: 100%;
}
.expertise-portrait-wrapper {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
    transition: all 0.25s ease;
    box-sizing: border-box;
    position: relative;
}
.expertise-portrait-wrapper:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.1);
    border-color: #cbd5e1;
}
.expertise-portrait-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform 0.4s ease;
}
.expertise-portrait-wrapper:hover img {
    transform: scale(1.05);
}
.expertise-portrait-overlay {
    position: absolute;
    inset: 0;
    background: rgba(30, 34, 55, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
}
.portrait-zoom-pill {
    background: #3b4c6b;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    padding: 4px 10px;
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    transform: translateY(4px);
    transition: transform 0.25s ease;
}
.expertise-portrait-wrapper:hover .expertise-portrait-overlay {
    opacity: 1;
}
.expertise-portrait-wrapper:hover .portrait-zoom-pill {
    transform: translateY(0);
}
.expertise-portrait-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: #94a3b8;
}
.expertise-artist-info-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.expertise-artist-heading {
    margin-bottom: 6px;
}
.expertise-artist-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.expertise-artist-title-row h2 {
    margin: 0;
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.25rem, 1.6vw, 1.5rem);
    font-weight: 700;
    letter-spacing: -0.2px;
    line-height: 1.2;
}
.expertise-artist-title-row h2 a {
    color: #3b4c6b;
    text-decoration: none;
    transition: color 0.2s ease;
}
.expertise-artist-title-row h2 a:hover {
    color: #4c628a;
}
.expertise-dates-badge {
    font-size: 10.5px;
    font-weight: 600;
    font-family: 'Noto Sans', -apple-system, sans-serif;
    letter-spacing: 0.4px;
    color: #3b4c6b;
    background: rgba(59, 76, 107, 0.08);
    border: 1px solid rgba(59, 76, 107, 0.18);
    padding: 2px 7px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
}
.expertise-cert-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 700;
    color: #8f6d14;
    background: rgba(210, 197, 162, 0.16);
    border: 1px solid rgba(210, 197, 162, 0.42);
    padding: 2px 8px;
    border-radius: 4px;
    margin-bottom: 6px;
    width: fit-content;
    letter-spacing: 0.3px;
}
.expertise-bio-excerpt,
.expertise-artist-bio {
    font-size: 12.5px;
    line-height: 1.5;
    color: #475569;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-align: left;
}
.expertise-artist-cta-wrap {
    margin-top: 4px;
}
.btn-artist-primary {
    background: #3b4c6b;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 6px 14px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    border-radius: var(--br); /* suit le réglage border-radius admin */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    box-sizing: border-box;
    line-height: 1.25;
    width: fit-content;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.22);
}
.btn-artist-primary:hover {
    background: #4c628a;
    border-color: #d2c5a2;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.35);
    color: #ffffff !important;
}
.btn-artist-primary .btn-arrow {
    color: #d2c5a2;
    font-size: 12px;
    transition: transform 0.2s ease;
}
.btn-artist-primary:hover .btn-arrow {
    transform: translateX(3px);
}

.expertise-artist-works-wrapper {
    padding-top: 12px;
    border-top: 1px solid #f1f5f9;
    margin-top: auto;
}
.expertise-works-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    flex-wrap: wrap;
    gap: 6px;
}
.expertise-works-title {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #64748b;
}
.expertise-works-hint {
    font-size: 10.5px;
    color: #94a3b8;
    font-style: italic;
}
.expertise-slider-container {
    position: relative;
    display: flex;
    align-items: center;
}

/* CARTE HORIZONTALE COMPACTE POUR ŒUVRE UNIQUE */
.expertise-single-work-wrapper {
    width: 100%;
}
.exp-work-card--single {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 8px 12px;
    text-decoration: none;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.exp-work-card--single:hover {
    background: #ffffff;
    border-color: #cbd5e1;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
    transform: translateY(-1px);
}
.exp-work-card--single .exp-work-img {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 6px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    position: relative;
}
.exp-work-card--single .exp-work-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.exp-work-card--single .exp-work-details {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.exp-single-kicker {
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #966f12;
    display: block;
}
.exp-work-card--single .exp-work-title {
    font-size: 12px;
    font-weight: 600;
    color: #1e293b;
    margin: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.exp-work-card--single .exp-work-date {
    font-size: 10.5px;
    color: #64748b;
}
.exp-single-action {
    flex-shrink: 0;
}
.exp-single-btn {
    font-size: 10.5px;
    font-weight: 700;
    color: #3b4c6b;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.25);
    padding: 4px 10px;
    border-radius: 4px;
    display: inline-block;
    transition: all 0.2s ease;
}
.exp-work-card--single:hover .exp-single-btn {
    background: #3b4c6b;
    color: #ffffff;
    border-color: #3b4c6b;
}

/* CARROUSEL D'ŒUVRES MULTIPLES */
.exp-slider-track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 2px 6px 2px;
    width: 100%;
}
.exp-slider-track::-webkit-scrollbar {
    display: none;
}
.exp-work-card:not(.exp-work-card--single) {
    flex: 0 0 100px;
    scroll-snap-align: start;
    text-decoration: none;
    color: inherit;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.04);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    display: flex;
    flex-direction: column;
}
.exp-work-card:not(.exp-work-card--single):hover {
    transform: translateY(-2px);
    border-color: rgba(59, 76, 107, 0.35);
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.12);
}
.exp-work-card:not(.exp-work-card--single) .exp-work-img {
    position: relative;
    width: 100%;
    height: 85px;
    background: #f8fafc;
    overflow: hidden;
}
.exp-work-card:not(.exp-work-card--single) .exp-work-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}
.exp-work-card:not(.exp-work-card--single):hover .exp-work-img img {
    transform: scale(1.06);
}
.exp-work-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}
.exp-work-sold {
    position: absolute;
    top: 3px;
    right: 3px;
    background: rgba(143, 34, 20, 0.9);
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    padding: 1px 4px;
    border-radius: 3px;
}
.exp-work-card:not(.exp-work-card--single) .exp-work-details {
    padding: 4px 6px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.exp-work-card:not(.exp-work-card--single) .exp-work-title {
    font-size: 10.5px;
    margin: 0 0 1px 0;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
}
.exp-work-card:not(.exp-work-card--single) .exp-work-date {
    font-size: 9.5px;
    color: #64748b;
}
.exp-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.25);
    width: 26px;
    height: 26px;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: #3b4c6b;
    transition: all 0.2s ease;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.exp-prev { left: -8px; }
.exp-next { right: -8px; }
.exp-arrow:hover {
    background: #3b4c6b;
    color: #ffffff;
    border-color: #3b4c6b;
}
/* BANDEAU RECHERCHE & EXPERTISE QUAND PAS D'ŒUVRE EN GALERIE */
.expertise-no-works-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: linear-gradient(135deg, rgba(59, 76, 107, 0.04) 0%, rgba(59, 76, 107, 0.08) 100%);
    border: 1px solid rgba(59, 76, 107, 0.16);
    padding: 10px 14px;
    border-radius: 8px;
    width: 100%;
    box-sizing: border-box;
    transition: all 0.2s ease;
}
.expertise-no-works-box:hover {
    border-color: rgba(59, 76, 107, 0.3);
    background: linear-gradient(135deg, rgba(59, 76, 107, 0.06) 0%, rgba(59, 76, 107, 0.11) 100%);
}
.no-works-text {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    flex: 1;
    min-width: 0;
}
.no-works-icon {
    font-size: 16px;
    line-height: 1.2;
    flex-shrink: 0;
    margin-top: 1px;
}
.no-works-text p {
    font-size: 12px;
    color: #475569;
    margin: 0;
    line-height: 1.45;
}
.no-works-text p strong {
    color: #3b4c6b;
    font-weight: 600;
}
.btn-no-works {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    font-family: 'Noto Sans', sans-serif;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: #3b4c6b;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.32);
    padding: 6px 13px;
    border-radius: 6px;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(59, 76, 107, 0.08);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.btn-no-works:hover {
    background: #3b4c6b;
    color: #ffffff !important;
    border-color: #3b4c6b;
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.25);
    transform: translateY(-1px);
}

/* Tablette & Responsive (<= 992px) */
@media (max-width: 992px) {
    .expertise-artists-container {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .expertise-artist-main {
        grid-template-columns: 120px 1fr;
        gap: 20px;
    }
}

/* Mobile (<= 640px) */
@media (max-width: 640px) {
    .expertise-artist-card {
        padding: 14px 14px 12px 14px !important;
        border-radius: var(--br-sm, 10px) !important;
    }
    .expertise-artist-main {
        display: grid !important;
        grid-template-columns: 78px 1fr !important;
        align-items: start !important;
        text-align: left !important;
        gap: 12px !important;
        margin-bottom: 8px !important;
    }
    .expertise-artist-portrait-col {
        width: 78px !important;
        display: block !important;
    }
    .expertise-portrait-wrapper {
        width: 78px !important;
        max-width: 78px !important;
        aspect-ratio: 1 / 1 !important;
        margin: 0 !important;
        border-radius: 6px !important;
    }
    .expertise-artist-info-col {
        width: 100% !important;
        text-align: left !important;
        align-items: flex-start !important;
    }
    .expertise-artist-title-row {
        justify-content: flex-start !important;
        gap: 6px !important;
        margin-bottom: 2px !important;
    }
    .expertise-artist-title-row h2 {
        font-size: 1.15rem !important;
        line-height: 1.2 !important;
    }
    .expertise-dates-badge {
        font-size: 9.5px !important;
        padding: 1px 5px !important;
    }
    .expertise-cert-badge {
        margin: 2px 0 3px 0 !important;
        font-size: 9.5px !important;
        padding: 2px 6px !important;
    }
    .expertise-specialty-text {
        text-align: left !important;
        font-size: 11px !important;
        line-height: 1.35 !important;
        margin-bottom: 4px !important;
    }
    .expertise-bio-excerpt,
    .expertise-artist-bio {
        text-align: left !important;
        font-size: 11.5px !important;
        line-height: 1.4 !important;
        margin-bottom: 6px !important;
        -webkit-line-clamp: 2 !important;
    }
    .expertise-artist-cta-wrap {
        display: flex !important;
        justify-content: flex-start !important;
        width: 100% !important;
        margin-top: 4px !important;
    }
    .btn-monographie-direct,
    .btn-artist-primary {
        width: 100% !important;
        justify-content: center !important;
        padding: 6px 12px !important;
        height: 32px !important;
        font-size: 10.5px !important;
        letter-spacing: 0.4px !important;
    }
    .exp-prev { left: -6px; }
    .exp-next { right: -6px; }
    .expertise-no-works-box {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px 14px;
        text-align: left;
    }
    .no-works-text {
        align-items: flex-start;
        text-align: left;
        gap: 8px;
    }
    .no-works-text p {
        font-size: 11.5px;
        line-height: 1.45;
        text-align: left;
    }
    .btn-no-works {
        width: 100%;
        text-align: center;
        justify-content: center;
        padding: 8px 12px;
        font-size: 11px;
        box-sizing: border-box;
    }
}

/* Écrans Mobiles Compacts (<= 520px) */
@media (max-width: 520px) {
    .expertise-artist-card {
        padding: 16px 12px 12px 12px;
    }
    .expertise-portrait-wrapper {
        width: 90px;
        max-width: 90px;
    }
    .expertise-artist-title-row h2 {
        font-size: 1.25rem;
    }
    .oeuvre-artist-actions,
    .oeuvre-actions,
    .artiste-expertise-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        width: 100%;
    }
    .btn-artist-primary,
    .btn-artist-secondary,
    .oeuvre-actions .btn,
    .expertise-artist-actions .btn,
    .artiste-expertise-actions .btn {
        width: 100%;
        min-height: 40px;
        font-size: 9.5px;
        padding: 8px 6px;
        letter-spacing: 0.2px;
        white-space: normal;
        text-align: center;
        line-height: 1.25;
    }
}

@media (max-width: 350px) {
    .expertise-artist-actions,
    .oeuvre-artist-actions,
    .oeuvre-actions,
    .artiste-expertise-actions {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }
}

/* ============================================================
   PAGE ARTISTE DÉDIÉE (DESIGN HAUTE COUTURE / AWWWARDS PRESTIGE)
   ============================================================ */
.artiste-page .page-hero,
.artiste-hero-stage {
    position: relative;
    background: radial-gradient(ellipse at 50% 25%, #1d253b 0%, #111624 85%);
    border-bottom: 1px solid rgba(212, 175, 55, 0.18);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    padding: 24px 0 30px;
    overflow: hidden;
    text-align: center;
}

.artiste-hero-stage::before {
    content: '';
    position: absolute;
    top: -30%;
    left: 50%;
    /* transform: translateX(-50%); */
    width: 650px;
    height: 380px;
    background: radial-gradient(ellipse, rgba(255, 255, 255, 0.08) 0%, rgba(132, 148, 176, 0.05) 50%, transparent 75%);
    pointer-events: none;
    z-index: 0;
}

.artiste-top-bar,
.artiste-top-nav {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 22px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    width: 100%;
}

.artiste-back-link,
.hero-back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 34px;
    padding: 0 14px;
    color: rgba(255, 255, 255, 0.85) !important;
    text-decoration: none !important;
    font-family: 'Noto Sans', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    line-height: 1;
    border-radius: var(--br-lg, var(--br));
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.12);
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    margin: 0;
    vertical-align: middle;
}
.artiste-back-link .back-arrow {
    font-size: 13px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease;
    color: #b8c6dc;
    position: relative;
    top: -0.5px;
}
.artiste-back-link .back-text {
    line-height: 1;
    display: inline-block;
}
.artiste-back-link:hover,
.hero-back-btn:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(180, 195, 216, 0.45);
    transform: translateX(-2px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.artiste-back-link:hover .back-arrow {
    transform: translateX(-3px);
    color: #ffffff;
}

.artiste-nav-pills,
.artiste-quick-actions {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 34px;
    padding: 3px;
    background: rgba(14, 18, 30, 0.65);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--br-lg, var(--br));
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    white-space: nowrap;
    box-sizing: border-box;
    margin: 0;
    vertical-align: middle;
}
.artiste-nav-pills::-webkit-scrollbar,
.artiste-quick-actions::-webkit-scrollbar {
    display: none;
}
.artiste-pill-btn,
.artiste-quick-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 26px;
    padding: 0 12px;
    border-radius: var(--br);
    font-family: 'Baskervville', Georgia, serif;
    font-size: 11px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    line-height: 1;
    color: rgba(255, 255, 255, 0.75) !important;
    text-decoration: none !important;
    transition: all 0.25s ease;
    white-space: nowrap;
    flex-shrink: 0;
    box-sizing: border-box;
    margin: 0;
}
.artiste-pill-btn:hover,
.artiste-quick-tab:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12);
}
.artiste-pill-btn.active,
.artiste-quick-tab.active {
    background: linear-gradient(135deg, #3b4c6b 0%, #2f3a58 100%);
    color: #ffffff !important;
    border: 1px solid rgba(180, 195, 216, 0.45);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.artiste-pill-btn .pill-count {
    font-size: 10px;
    opacity: 0.9;
    color: #b8c6dc;
    line-height: 1;
}

/* Central Identity Showcase */
.artiste-identity-card,
.artiste-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 880px;
    margin: 0 auto;
}

.artiste-kicker-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}
.artiste-kicker-text {
  font-family: 'Noto Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #cbd5e1;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7);
}

.artiste-kicker-line {
  display: block;
  width: 34px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(59, 76, 107, 0.45));
}

.artiste-kicker-wrap .artiste-kicker-line:last-child {
  background: linear-gradient(90deg, rgba(59, 76, 107, 0.45), transparent);
}

.artiste-identity-name,
.artiste-hero-title,
.artiste-page .page-hero h1,
.artiste-page .page-hero .artiste-hero-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    color: #ffffff !important;
    margin: 0 0 12px 0;
    line-height: 1.15;
    letter-spacing: 0.8px;
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    text-align: center;
}

/* Badge officiel / Comité / Catalogue dans le hero artiste — Haute Lisibilité */
.artiste-cert-badge-wrap {
    margin-top: 8px;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    width: 100%;
}
.artiste-hero-stage .expertise-cert-badge,
.artiste-identity-card .expertise-cert-badge,
.artiste-cert-badge-wrap .expertise-cert-badge {
    color: #ffffff !important;
    background: linear-gradient(135deg, rgba(32, 48, 80, 0.85) 0%, rgba(18, 25, 44, 0.95) 100%) !important;
    border: 1px solid rgba(59, 76, 107, 0.5) !important;
    border-top: 1.5px solid rgba(255, 255, 255, 0.7) !important;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    font-size: 13px !important;
    font-weight: 600 !important;
    padding: 6px 18px !important;
    border-radius: var(--br-lg, var(--br)) !important;
    letter-spacing: 0.4px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.7) !important;
}
.artiste-hero-stage .expertise-cert-badge .cert-icon,
.artiste-identity-card .expertise-cert-badge .cert-icon,
.artiste-cert-badge-wrap .expertise-cert-badge .cert-icon {
    color: #3b4c6b !important;
    font-size: 13px !important;
}

/* Compartmentalized Metadata Ribbon */
.artiste-meta-ribbon,
.artiste-hero-meta-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 6px 20px;
    backdrop-filter: blur(8px);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
    max-width: 100%;
}
.artiste-meta-cell {
    display: flex;
    align-items: center;
    gap: 7px;
}
.artiste-meta-dates .meta-icon {
    font-size: 12px;
    color: #ebd9a2;
}
.artiste-meta-dates .meta-val {
    font-family: 'Noto Sans', sans-serif;
    font-size: 12.5px;
    font-weight: 600;
    color: #f7eed3;
    letter-spacing: 1px;
}
.artiste-meta-divider {
    display: block;
    width: 1px;
    height: 16px;
    background: rgba(212, 175, 55, 0.35);
}
.artiste-meta-movement .meta-val-italic {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(0.92rem, 1.8vw, 1.05rem);
    font-style: italic;
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: 0.3px;
}

/* Grille 2 colonnes Artiste */
.artiste-layout {
    display: grid;
    grid-template-columns: 290px 1fr;
    gap: 40px;
    align-items: start;
}
.artiste-sidebar {
    position: sticky;
    top: 90px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.artiste-portrait-card {
    background: #eef3f8;
    border-radius: var(--br);
    padding: 16px;
    box-shadow: 8px 8px 16px #b8c6dc, -8px -8px 16px #ffffff;
    text-align: center;
}
.artiste-portrait-frame {
    border-radius: calc(var(--br) - 4px);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: #dfe3e9;
    box-shadow: inset 2px 2px 4px #b8c6dc, inset -2px -2px 4px #ffffff;
    margin-bottom: 12px;
}
.artiste-portrait-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}
.artiste-portrait-caption strong {
    font-size: 15px;
    color: #3b4c6b;
    display: block;
}
.artiste-portrait-sub {
    font-size: 12px;
    color: #8596b3;
    margin-top: 2px;
}
.artiste-facts-card {
    background: #eef3f8;
    border-radius: var(--br);
    padding: 20px;
    box-shadow: 6px 6px 12px #b8c6dc, -6px -6px 12px #ffffff;
}
.artiste-facts-title {
    font-size: 13.5px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #3b4c6b;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid #b8c6dc;
    padding-bottom: 10px;
}
.artiste-facts-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.artiste-fact-item {
    display: flex;
    gap: 10px;
    font-size: 12.5px;
    line-height: 1.45;
}
.artiste-fact-icon {
    font-size: 15px;
    flex-shrink: 0;
    filter: grayscale(100%) opacity(0.8);
    -webkit-filter: grayscale(100%) opacity(0.8);
}
.artiste-fact-label {
    display: block;
    font-weight: 600;
    font-size: 11px;
    color: #3b4c6b;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.artiste-fact-val {
    color: #4a5568;
}

.artiste-main-content {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.artiste-bio-card {
    background: #eef3f8;
    border-radius: var(--br);
    padding: 36px;
    box-shadow: 8px 8px 16px #b8c6dc, -8px -8px 16px #ffffff;
}
.artiste-bio-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #5d7092;
    margin-bottom: 8px;
}
.artiste-bio-title {
    font-size: clamp(1.4rem, 2.5vw, 1.9rem);
    color: #3b4c6b;
    margin-bottom: 20px;
}
.artiste-bio-lead {
    font-size: 16px;
    line-height: 1.8;
    color: #3b4c6b;
    font-weight: 500;
    margin-bottom: 20px;
}
.artiste-bio-quote {
    border-left: 3px solid #3b4c6b;
    padding: 14px 20px;
    margin: 24px 0;
    background: rgba(223, 227, 233, 0.4);
    border-radius: 0 var(--br-sm, var(--br)) var(--br-sm, var(--br)) 0;
    font-style: italic;
    color: #334155;
}
.artiste-bio-quote cite {
    display: block;
    font-size: 12px;
    margin-top: 8px;
    color: #8596b3;
    font-style: normal;
}
.artiste-bio-text p {
    font-size: 14.5px;
    line-height: 1.8;
    color: #4a5568;
    margin-bottom: 16px;
}

.artiste-pub-card {
    background: #eef3f8;
    border-radius: var(--br);
    padding: 28px;
    box-shadow: 8px 8px 16px #b8c6dc, -8px -8px 16px #ffffff;
}
.artiste-pub-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 28px;
    align-items: center;
}
.artiste-pub-cover {
    border-radius: var(--br-sm, var(--br, 8px));
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(32, 45, 72, 0.15), 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(59, 76, 107, 0.12);
    background: #ffffff;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}
.artiste-pub-cover:hover {
    transform: scale(1.025) translateY(-2px);
    box-shadow: 0 12px 30px rgba(32, 45, 72, 0.22);
}
.artiste-pub-cover img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}
.artiste-pub-body h4 {
    font-size: 1.25rem;
    color: #3b4c6b;
    margin-bottom: 8px;
}
.artiste-pub-desc {
    font-size: 13.5px;
    line-height: 1.6;
    color: #5d7092;
    margin-bottom: 16px;
}
.artiste-pub-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.artiste-pub-actions .btn {
    white-space: nowrap;
    padding: 8px 12px;
    font-size: 11px;
    letter-spacing: 0.4px;
    line-height: 1.3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-sizing: border-box;
}
.pub-btn-icon {
    display: inline-block;
    flex-shrink: 0;
    transition: transform 0.25s ease;
}
.btn-pub-flipbook:hover .pub-btn-icon {
    transform: rotate(-10deg) scale(1.1);
}
.btn-pub-all:hover .pub-btn-icon {
    transform: translateX(2px);
}

/* === BOUTON COMMANDER ANIMÉ (LUEUR, REFLET SATINÉ & PULSE D'ATTENTION) === */
@keyframes pubOrderShimmer {
    0% {
        transform: translateX(-150%) skewX(-20deg);
        opacity: 0;
    }
    15% {
        opacity: 0.6;
    }
    45% {
        transform: translateX(250%) skewX(-20deg);
        opacity: 0.8;
    }
    100% {
        transform: translateX(250%) skewX(-20deg);
        opacity: 0;
    }
}

@keyframes pubOrderPulse {
    0%, 100% {
        box-shadow: 0 4px 14px rgba(59, 76, 107, 0.22), 0 0 0 0 rgba(210, 197, 162, 0.45);
        border-color: rgba(210, 197, 162, 0.45);
    }
    50% {
        box-shadow: 0 6px 20px rgba(59, 76, 107, 0.32), 0 0 0 4.5px rgba(210, 197, 162, 0);
        border-color: rgba(210, 197, 162, 0.8);
    }
}

.btn-pub-order {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #3b4c6b 0%, #25334a 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.45) !important;
    border-radius: var(--br-sm, var(--br)) !important;
    font-weight: 600;
    animation: pubOrderPulse 3.2s infinite ease-in-out;
    flex: 1 1 100% !important; /* Pleine largeur sur mobile pour un impact maximal */
    margin-top: 2px;
}

.btn-pub-order::after {
    content: '';
    position: absolute;
    top: 0; left: 0; bottom: 0;
    width: 60%;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.28) 45%, rgba(243, 232, 201, 0.4) 55%, transparent 100%);
    transform: translateX(-150%) skewX(-20deg);
    animation: pubOrderShimmer 3.8s infinite cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    z-index: 1;
}

.btn-pub-order-content {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
}

.pub-cart-icon {
    stroke: var(--gold-primary, #d2c5a2);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.pub-price-pill {
    display: inline-flex;
    align-items: center;
    background: rgba(210, 197, 162, 0.18);
    color: #f3e8c9;
    border: 1px solid rgba(210, 197, 162, 0.4);
    border-radius: 6px;
    padding: 2px 7px;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.4px;
    transition: all 0.25s ease;
}

.btn-pub-order:hover {
    background: linear-gradient(135deg, #44587c 0%, #2f3e58 100%) !important;
    border-color: rgba(210, 197, 162, 0.9) !important;
    box-shadow: 0 8px 24px rgba(59, 76, 107, 0.4), 0 0 16px rgba(210, 197, 162, 0.45) !important;
    transform: translateY(-2px) scale(1.01);
    color: #ffffff !important;
}

.btn-pub-order:hover .pub-cart-icon {
    transform: scale(1.2) rotate(-8deg);
    stroke: #ffffff;
}

.btn-pub-order:hover .pub-price-pill {
    background: rgba(210, 197, 162, 0.32);
    border-color: #ffffff;
    color: #ffffff;
    box-shadow: 0 0 10px rgba(210, 197, 162, 0.5);
}

.btn-pub-order:active {
    transform: translateY(0) scale(0.99);
}

/* ============================================================
   BANNIÈRE EXPERTISE SFEP (DESIGN ÉPURÉ & PRESTIGE)
   ============================================================ */
.artiste-expertise-card {
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 28px 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
    width: 100%;
    box-sizing: border-box;
    color: var(--navy-primary, #3b4c6b);
}
.artiste-expertise-header {
    width: 100%;
}
.artiste-expertise-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    color: var(--navy-primary, #3b4c6b) !important;
    line-height: 1.35;
    margin: 0 0 6px 0;
}
.artiste-highlight-name {
    color: #d2c5a2;
    font-style: italic;
}
.artiste-expertise-desc {
    font-size: 14px;
    line-height: 1.65;
    color: #64748b;
    margin: 0;
}
.artiste-expertise-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    width: 100%;
}
.artiste-expertise-actions .btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    padding: 13px 18px;
    font-size: 13px;
    box-sizing: border-box;
}
@media (max-width: 580px) {
    .artiste-expertise-actions {
        grid-template-columns: 1fr;
    }
}
.btn-expertise-outline:hover {
    background: #f0f4f9;
    border-color: #3b4c6b;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(36, 47, 68, 0.1);
    color: #1e2638 !important;
}

.artiste-gallery-section {
    margin-top: 48px;
    padding-top: 36px;
    border-top: 1px solid #b8c6dc;
}
.artiste-gallery-header {
    text-align: center;
    margin-bottom: 32px;
}
.artiste-gallery-header h2 {
    font-size: clamp(1.5rem, 2.8vw, 2.2rem);
    color: #3b4c6b;
    margin-bottom: 6px;
}
.artiste-gallery-header p {
    font-size: 14px;
    color: #8596b3;
    font-style: italic;
}

/* BANDEAU CTA EXPERTISE BAS DE PAGE PLEINE LARGEUR */
.artiste-cta-bottom-banner {
    margin-top: 50px;
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    border-radius: var(--br);
    padding: 32px 40px;
    box-shadow: 0 16px 36px rgba(30, 38, 56, 0.18), 0 2px 6px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(180, 195, 216, 0.2);
    position: relative;
    overflow: hidden;
}
.artiste-cta-bottom-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, transparent, #d2c5a2, #f7eed3, #d2c5a2, transparent);
}
.artiste-cta-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
    position: relative;
    z-index: 1;
}
.artiste-cta-bottom-kicker {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #ebd9a2;
    margin-bottom: 6px;
}
.artiste-cta-bottom-text h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    color: #ffffff;
    margin: 0 0 6px 0;
    line-height: 1.25;
}
.artiste-cta-bottom-text p {
    font-size: 14px;
    color: #b8c6dc;
    margin: 0;
    line-height: 1.5;
    max-width: 680px;
}
.artiste-cta-bottom-actions {
    flex-shrink: 0;
}
.artiste-cta-bottom-actions .btn {
    background: linear-gradient(135deg, #ebd9a2 0%, #d2c5a2 100%);
    color: #1e2638 !important;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 13px 28px;
    border-radius: var(--br-sm, var(--br));
    box-shadow: 0 4px 14px rgba(210, 197, 162, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.4);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    text-decoration: none;
}
.artiste-cta-bottom-actions .btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(210, 197, 162, 0.5);
    background: linear-gradient(135deg, #f7eed3 0%, #d4af37 100%);
    color: #0d101b !important;
}

@media (max-width: 900px) {
    .artiste-cta-bottom-content {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }
    .artiste-cta-bottom-banner {
        padding: 28px 20px;
    }
    .artiste-cta-bottom-actions {
        width: 100%;
    }
    .artiste-cta-bottom-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* RESPONSIVE SPECIFIQUE PAGE ARTISTE */
@media (max-width: 1200px) {
    .artiste-page .page-hero {
        padding: 20px 0 16px;
    }
    .artiste-top-nav {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 10px;
        margin-bottom: 14px;
    }
    .artiste-hero-title {
        font-size: clamp(1.5rem, 5vw, 2.2rem);
        text-align: center;
    }
    .page-hero--stuck .artiste-top-nav,
    .page-hero--stuck .artiste-header-nav {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 6px !important;
        margin-bottom: 0 !important;
    }
    .page-hero--stuck .hero-back-btn {
        order: 0 !important;
        padding: 3px 8px !important;
        font-size: 10px !important;
    }
    .page-hero--stuck .artiste-hero-title {
        order: 1 !important;
        width: auto !important;
        font-size: 12.5px !important;
        flex-grow: 1 !important;
    }
    .page-hero--stuck .artiste-quick-actions {
        order: 2 !important;
        margin-top: 0 !important;
    }
    .artiste-layout {
        grid-template-columns: 300px 1fr;
        gap: 32px;
    }
    .artiste-sidebar {
        position: sticky;
        top: 80px;
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 992px) {
    .artiste-layout {
        grid-template-columns: 280px 1fr;
        gap: 28px;
    }
}

/* Mobile & Téléphone (<= 768px) : 1 SEULE COLONNE */
@media (max-width: 768px) {
    .artiste-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .artiste-sidebar {
        position: static;
        max-width: 480px;
        width: 100%;
        margin: 0 auto 20px auto;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    .artiste-sidebar .artiste-portrait-card {
        width: 100%;
        display: block;
        height: auto;
        padding: 18px;
    }
    .artiste-portrait-frame {
        width: 100%;
        max-width: 240px;
        margin: 0 auto 12px auto;
        aspect-ratio: 4 / 5;
    }
    .artiste-sidebar .artiste-facts-card {
        width: 100%;
        display: block;
        height: auto;
        padding: 20px;
    }
    .artiste-pub-layout {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .artiste-pub-cover {
        max-width: 240px;
        margin: 0 auto;
    }
}

@media (max-width: 480px) {
    .artiste-sidebar {
        gap: 16px;
        margin-bottom: 16px;
    }
    .artiste-sidebar .artiste-portrait-card {
        padding: 14px;
    }
    .artiste-portrait-frame {
        max-width: 200px;
    }
    .artiste-facts-card {
        padding: 16px 14px;
    }
}

@media (max-width: 600px) {
    .header-inner {
        padding: 0 12px;
    }
    .artiste-page .page-hero,
    .artiste-hero-stage {
        padding: 16px 0 20px;
    }
    .artiste-top-bar,
    .artiste-top-nav {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        width: 100%;
        margin-bottom: 14px;
        padding-bottom: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        max-width: 100%;
    }
    .artiste-top-bar::-webkit-scrollbar,
    .artiste-top-nav::-webkit-scrollbar {
        display: none;
    }
    .artiste-back-link,
    .hero-back-btn {
        height: 30px;
        padding: 0 10px;
        font-size: 10px;
        flex-shrink: 0;
        white-space: nowrap;
        line-height: 1;
        box-sizing: border-box;
    }
    .artiste-nav-pills,
    .artiste-quick-actions {
        height: 30px;
        padding: 2px;
        gap: 2px;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        flex-shrink: 0;
        margin-left: auto;
        box-sizing: border-box;
    }
    .artiste-pill-btn,
    .artiste-quick-tab {
        height: 24px;
        padding: 0 8px;
        font-size: 9.5px;
        flex-shrink: 0;
        white-space: nowrap;
        line-height: 1;
        box-sizing: border-box;
    }
    .artiste-kicker-text {
        font-size: 9px;
        letter-spacing: 1px;
    }
    .artiste-identity-name,
    .artiste-hero-title {
        font-size: clamp(1.5rem, 6.5vw, 2.1rem);
        margin-bottom: 8px;
    }
    .artiste-meta-ribbon,
    .artiste-hero-meta-row {
        flex-direction: column;
        gap: 6px;
        padding: 8px 14px;
        border-radius: var(--br);
        width: 100%;
        max-width: 320px;
    }
    .artiste-meta-divider {
        display: none;
    }
    .artiste-meta-movement .meta-val-italic {
        font-size: 0.88rem;
        line-height: 1.35;
        text-align: center;
    }
    .page-hero--stuck {
        top: 60px;
        height: 40px !important;
        min-height: 40px !important;
    }
    .page-hero--stuck .container {
        height: 40px;
        padding: 0 10px;
    }
    .page-hero--stuck .hero-back-btn {
        padding: 3px 8px !important;
        font-size: 9.5px !important;
    }
    .page-hero--stuck .artiste-quick-tab {
        padding: 2px 5px;
        font-size: 8.5px;
    }
    .artiste-bio-card {
        padding: 20px 16px;
    }
    .artiste-expertise-card {
        padding: 20px 16px;
    }
    .artiste-expertise-services {
        grid-template-columns: 1fr;
    }
    .artiste-expertise-actions {
        grid-template-columns: 1fr; /* empilés : libellés complets et lisibles sur mobile */
        gap: 8px;
    }
    .btn-expertise-gold,
    .btn-expertise-outline {
        font-size: 9.5px !important;
        letter-spacing: 0.3px !important;
        padding: 8px 8px !important;
        line-height: 1.25 !important;
        border-radius: var(--br);
    }
}

/* ============================================================
   TYPOGRAPHIE DES ŒUVRES (TITRES EN ITALIQUE PARTOUT)
   ============================================================ */
.oeuvre-infos h1,
.oeuvre-infos h1 em,
.oeuvre-detail h1,
.oeuvre-title,
.slider-card h4,
.slider-card-title,
.gallery-item-title,
.gallery-item-title a,
.art-title,
.oeuvre-card-body h3 {
    font-style: italic !important;
}

/* ============================================================
   CAMAÏEU BLEU DU SITE & BLANC (ÉMOTICÔNES & ICÔNES)
   ============================================================ */
.meta-icon,
.artiste-meta-dates .meta-icon,
.artiste-facts-icon,
.menu-map-icon,
.footer-map-icon,
.camaieu-icon {
    filter: grayscale(100%) brightness(1.2) sepia(1) hue-rotate(185deg) saturate(320%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* === Unification des boutons bleu foncé au style .footer-cta-btn === */
.btn-primary,
.btn-flipbook,
.pdf-showcase-action .btn-flipbook-showcase,
.btn-expertise-gold,
.btn-artist-primary,
.artiste-pill-btn.active,
.artiste-quick-tab.active {
    background: linear-gradient(145deg, #3b4c6b 0%, #1e2638 100%);
    border: 1px solid rgba(180, 195, 216, 0.25);
    color: #eef3f8 !important;
    border-radius: var(--br);
    padding: 12px 20px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all .3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    text-align: center;
    position: relative;
    overflow: hidden;
}
.artiste-pill-btn.scroll-active,
.artiste-quick-tab.scroll-active {
  border: 1px solid rgb(17, 22, 36) !important;
  transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
  background: linear-gradient(135deg, #111624 0%, #2e3b52 100%) !important;
  color: #ffffff !important;
  border: 1px solid #ebd9a2;
  padding: 5px 14px;
  border-radius: var(--br);
  box-shadow: 0 2px 6px rgba(210, 197, 162, 0.12);
}
.artiste-pill-btn:not(.scroll-active),
.artiste-quick-tab:not(.scroll-active) {
    background: transparent;
    color: rgba(255, 255, 255, 0.75) !important;
    border: 1px solid transparent;
    box-shadow: none;
    transition: all .4s cubic-bezier(0.4, 0, 0.2, 1);
}
.artiste-pill-btn.scroll-active:hover,
.artiste-quick-tab.scroll-active:hover {
    background: linear-gradient(135deg, #181f33 0%, #3c415c 100%) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(210, 197, 162, 0.2);
}
.btn-primary::before,
.btn-flipbook::before,
.pdf-showcase-action .btn-flipbook-showcase::before,
.btn-expertise-gold::before,
.btn-artist-primary::before,
.artiste-pill-btn.active::before,
.artiste-quick-tab.active::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(180, 195, 216, 0.08), transparent);
    transition: left 0.5s ease;
}
.btn-primary:hover::before,
.btn-flipbook:hover::before,
.pdf-showcase-action .btn-flipbook-showcase:hover::before,
.btn-expertise-gold:hover::before,
.btn-artist-primary:hover::before,
.artiste-pill-btn.active:hover::before,
.artiste-quick-tab.active:hover::before {
    left: 100%;
}
.btn-primary:hover,
.btn-flipbook:hover,
.pdf-showcase-action .btn-flipbook-showcase:hover,
.btn-expertise-gold:hover,
.btn-artist-primary:hover,
.btn-outline:hover,
.artiste-pill-btn.active:hover,
.artiste-quick-tab.active:hover {
    background: linear-gradient(145deg, #2e3b52 0%, #1e2638 100%);
    border-color: rgba(180, 195, 216, 0.5);
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 0 15px rgba(180, 195, 216, 0.08);
}

/* ============================================================
   FOOTER ULTRA MODERNE & SMART — couche additive (2026-08-15)
   ============================================================ */
/* Fond multicouche : lueurs or/bleu + grille fine */
.site-footer {
    background:
        radial-gradient(1100px 480px at 85% -10%, rgba(59, 76, 107, 0.10), transparent 60%),
        radial-gradient(900px 420px at 0% 110%, rgba(59, 76, 107, 0.08), transparent 60%),
        linear-gradient(180deg, #0f1424 0%, #181e33 38%, #0b0e1a 100%);
}
.site-footer::after {
    content: '';
    position: absolute;
    inset: -6%;
    background: radial-gradient(620px 420px at 80% 8%, rgb(49, 53, 73), #00000026 62%), radial-gradient(700px 460px at 10% 92%, rgba(59, 76, 107, 0.17), #00000036 62%), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E");
    background-blend-mode: screen;
    pointer-events: none;
    animation: footer-aurora 30s ease-in-out infinite alternate;
}
@keyframes footer-aurora {
    from { transform: translate3d(0, 0, 0) scale(1); }
    to { transform: translate3d(-30px, 22px, 0) scale(1.07); }
}
.footer-inner,
.footer-bottom { position: relative; z-index: 1; }

/* Lien copyright discret : style identique au texte, impossible à deviner */
.footer-copy-link,
.footer-copy-link:hover,
.footer-copy-link:focus,
.footer-copy-link:visited {
    color: inherit;
    text-decoration: none;
    cursor: default;
    border: none;
    outline: none;
    background: none;
}

/* Ticker artistes (généré depuis la base) */
.footer-marquee {
    position: relative;
    z-index: 1;
    padding: 16px 0;
    overflow: hidden;
    border-bottom: 1px solid rgba(180, 195, 216, 0.08);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.footer-marquee-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: fm-scroll 48s linear infinite;
}
.footer-marquee:hover .footer-marquee-track,
.footer-marquee:focus-within .footer-marquee-track { animation-play-state: paused; }
.fm-item {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 15px;
    letter-spacing: 1.6px;
    color: rgba(226, 234, 244, 0.42);
    white-space: nowrap;
    padding: 0 20px;
    text-decoration: none;
    transition: color .3s ease;
}
.fm-item:hover { color: #3b4c6b; }
.fm-item:focus-visible { outline: 2px solid rgba(59, 76, 107, 0.7); outline-offset: 2px; border-radius: var(--br-sm, var(--br)); }
.fm-dot { color: rgba(59, 76, 107, 0.45); font-size: 7px; margin: 0 14px; flex-shrink: 0; }
@keyframes fm-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* Titres de colonnes : accent or */
.footer-col h4::after {
    width: 34px;
    height: 2px;
    background: linear-gradient(90deg, #3b4c6b, rgba(59, 76, 107, 0.12));
}

/* Soulignement des liens : dégradé or animé */
.footer-nav-parent::after,
.footer-links-list a::after {
    height: 1px;
    background: linear-gradient(90deg, #3b4c6b, rgba(59, 76, 107, 0));
    border-radius: var(--br-sm, var(--br));
}
.footer-nav-parent:hover,
.footer-links-list a:hover { color: #ffffff !important; }
.footer-nav-child:hover { transform: translateX(4px); }
.footer-contact-item a { transition: color .25s ease; }
.footer-contact-item a:hover { color: #3b4c6b; }
.fci-icon { transition: transform .25s ease, color .25s ease; }
.footer-contact-item:hover .fci-icon { transform: translateY(-2px) scale(1.06); color: #3b4c6b; }

/* Carte expert : bordure dégradée animée + monogramme + statut pulsant */
.footer-sfep-badge {
    gap: 12px;
    border-radius: var(--br-sm, var(--br));
    padding: 12px 14px;
    border: 1px solid transparent;
    background:
        linear-gradient(145deg, #151b2e, #0f1422) padding-box,
        linear-gradient(120deg, rgba(59, 76, 107, 0.55), rgba(180, 195, 216, 0.15), rgba(59, 76, 107, 0.4), rgba(59, 76, 107, 0.55)) border-box;
    background-size: 100% 100%, 300% 300%;
    animation: sfep-border 9s ease infinite;
}
@keyframes sfep-border {
    0%, 100% { background-position: 0 0, 0% 50%; }
    50% { background-position: 0 0, 100% 50%; }
}
.footer-sfep-badge:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35), 0 0 18px rgba(59, 76, 107, 0.12);
}
.footer-sfep-monogram {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-family: 'Baskervville', Georgia, serif;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.8px;
    color: #d6e9ff;
    background: linear-gradient(145deg, rgba(59, 76, 107, 0.22), rgba(36, 47, 68, 0.6));
    border: 1px solid rgba(59, 76, 107, 0.45);
    box-shadow: 0 0 12px rgba(59, 76, 107, 0.18);
}

/* CTA : pulsation or douce (pause au survol) */
.footer-cta-btn {
    animation: cta-pulse 4.5s ease-in-out infinite;
}
.footer-cta-btn:hover { animation-play-state: paused; }
@keyframes cta-pulse {
    0%, 100% { box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), 0 0 0 rgba(59, 76, 107, 0); }
    50% { box-shadow: 0 2px 14px rgba(0, 0, 0, 0.25), 0 0 20px rgba(59, 76, 107, 0.22); }
}

/* Retour en haut : halo or au survol */
.footer-back-top {
    background: linear-gradient(145deg, #3b4c6b, #10131f);
    border: 1px solid rgba(180, 195, 216, 0.3);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}
.footer-back-top:hover {
    border-color: #3b4c6b;
    color: #d6e9ff;
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.45), 0 0 16px rgba(59, 76, 107, 0.35);
}

/* Barre inférieure : lien SFEP or */
.footer-bottom-affiliation a {
    color: rgba(59, 76, 107, 0.85);
    text-decoration: none;
    transition: color .25s ease;
}
.footer-bottom-affiliation a:hover { color: #d6e9ff; text-decoration: underline; }

/* Mobile : ticker compact */
@media (max-width: 768px) {
    .footer-marquee { padding: 12px 0; }
    .fm-item { font-size: 13px; padding: 0 14px; }
    .fm-dot { margin: 0 10px; }
}

/* ============================================================
   LIGHTBOX — pan de l'image zoomée (drag)
   ============================================================ */
#oeuvre-lightbox img {
    touch-action: none; /* le pan tactile ne doit pas scroller la page */
}
#oeuvre-lightbox img.is-panning {
    /* pas de transition sur transform pendant le drag, sinon lag */
    transition: filter .25s ease !important;
}

/* Accessibilité : mouvement réduit */
@media (prefers-reduced-motion: reduce) {
    .footer-marquee-track,
    .footer-sfep-badge,
    .footer-cta-btn,
    .site-footer::after { animation: none !important; }
}

/* ============================================================
   HERO — carte œuvre : coins à 4px (fidèle au rendu production)
   Le reste du site garde le rayon global (config border_radius).
   ============================================================ */
.hero-artwork-card,
.hero-artwork-card .hero-artwork-media,
.hero-artwork-card .hero-artwork-badge {
    border-radius: 4px;
}

/* ============================================================
   PILULE VERTICALE « DÉCOUVRIR NOS ARTISTES » — look moderne
   Suit le rayon global (config border_radius) comme le reste du site.
   ============================================================ */
.hero-home-btn-vertical {
    border-radius: var(--br, 0px) !important;
    position: relative;
    overflow: hidden;
    gap: 10px;
    font-size: 11px !important;
    letter-spacing: 3px !important;
    padding: 18px 10px !important;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.20), rgba(255, 255, 255, 0.05) 55%, rgba(59, 76, 107, 0.12)) !important;
    border: 1px solid rgba(255, 255, 255, 0.4) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3),
                inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
}
/* flash glass qui traverse (même esprit que les boutons navy) */
.hero-home-btn-vertical::before {
    content: '';
    position: absolute;
    top: -20%;
    left: -90%;
    width: 55%;
    height: 140%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, 0.38), transparent);
    transform: skewX(-12deg);
    transition: left 0.7s ease;
    pointer-events: none;
}
/* indicateur : filet lumineux animé sous le texte */
.hero-home-btn-vertical::after {
    content: '';
    display: block;
    order: 1;
    width: 1px;
    height: 16px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(59, 76, 107, 0.85));
    box-shadow: 0 0 6px rgba(59, 76, 107, 0.7);
    animation: pill-marker 2.6s ease-in-out infinite;
}
@keyframes pill-marker {
    0%, 100% { transform: translateY(0); opacity: 0.65; }
    50%      { transform: translateY(5px); opacity: 1; }
}
.hero-home-btn-vertical:hover::before { left: 150%; }
.hero-home-btn-vertical:hover {
    background: linear-gradient(160deg, rgba(59, 76, 107, 0.30), rgba(59, 76, 107, 0.08)) !important;
    border-color: #3b4c6b !important;
    color: #ffffff !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4), 0 0 18px rgba(59, 76, 107, 0.30) !important;
    transform: rotate(180deg) translateY(3px) !important;
}
@media (max-width: 900px) {
    .hero-home-btn-vertical {
        writing-mode: horizontal-tb !important;
        transform: none !important;
        padding: 8px 16px !important;
        height: 36px !important;
        min-height: 36px !important;
        max-height: 36px !important;
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
        border-radius: var(--br-sm, 8px) !important;
        font-size: 10.5px !important;
        letter-spacing: 1.8px !important;
        gap: 0 !important;
    }
    .hero-home-btn-vertical:hover {
        transform: translateY(-1px) !important;
    }
    .hero-home-btn-vertical::after {
        display: none !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .hero-home-btn-vertical::after { animation: none !important; }
}

/* ============================================================
   LISTES & GRILLES — Éléments seuls ou orphelins : pleine largeur + parfaitement centrés
   ============================================================ */

/* Centrage naturel des colonnes dans les grilles */
.gallery-grid,
.artists-grid,
.news-grid {
    justify-content: center;
}

/* 1. Quand un élément est UNIQUE dans sa liste (:only-child) */
.gallery-grid > .gallery-item:only-child,
.gallery-grid > *:only-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
}

.artists-grid > .artist-card:only-child,
.artists-grid > *:only-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 380px;
    margin-left: auto;
    margin-right: auto;
}

.news-grid > .news-card:only-child,
.news-grid > *:only-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
}

.publications-grid > *:only-child,
.flipbook-list > *:only-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

/* 2. Sur mobile / tablette (grille 2 colonnes : dernier élément impair centré) */
@media (max-width: 768px) {
    .hero-home-artistes > .hero-artist-link:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-content: space-between;
    }
    .gallery-grid .gallery-item:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: 100%;
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
    }
    .artists-grid .artist-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: 100%;
        max-width: 340px;
        margin-left: auto;
        margin-right: auto;
    }
    .news-grid .news-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        justify-self: center;
        width: 100%;
        max-width: 440px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* === NEWS — grille fluide qui REMPLIT le container (suit le réglage "Largeur du container" admin) === */
.news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
}
.news-card { width: 100%; }

/* === NOTE : gallery-grid et artists-grid utilisent leur grille fluide d'origine
   (grid auto-fill, voir l.1329 et l.1434) qui REMPLIT le container
   et suit le réglage "Largeur du container" admin. === */

/* ============================================================
   MENU MOBILE — barre basse (FR/EN + signature) sticky en bas
   ============================================================ */
.menu-overlay-inner {
    padding-bottom: 0;
    /* overflow-x:hidden transformait l'inner en conteneur de scroll (overflow-y → auto)
       et cassait le positionnement sticky de la barre basse */
    overflow-x: visible;
    overflow-y: visible;
}
.menu-overlay-bottom {
    position: sticky;
    bottom: 0;
    z-index: 2;
    margin: auto -28px 0;
    padding: 14px 28px calc(16px + env(safe-area-inset-bottom, 0px));
    border-top: none;
    background: linear-gradient(180deg, rgba(18, 21, 35, 0) 0%, rgba(18, 21, 35, 0.88) 30%, rgb(18, 21, 35) 100%);
}

/* ============================================================
   MARQUE DU MENU MOBILE — flash glass qui balaye le texte
   (même esprit que le shimmer des boutons navy)
   ============================================================ */
.menu-overlay-brand {
    color: #ffffff;
    background: linear-gradient(110deg, #ffffff 0%, #ffffff 38%, #f3e8c9 50%, #ffffff 62%, #ffffff 100%);
    background-size: 250% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.menu-overlay.open .menu-overlay-brand {
    animation: brand-flash 5.5s ease-in-out infinite;
}
@keyframes brand-flash {
    0%, 58% { background-position: 100% 0; }
    72%, 100% { background-position: 0% 0; }
}
@media (prefers-reduced-motion: reduce) {
    .menu-overlay.open .menu-overlay-brand {
        animation: none !important;
        -webkit-text-fill-color: #ffffff;
    }
}

/* ============================================================
   SOUS-MENUS ÉLÉGANTS (menu mobile) — tiret fin à la place du ↳
   ============================================================ */
.menu-overlay nav a.sub-link {
    letter-spacing: 0.7px;
    font-size: 13px;
    color: rgba(226, 234, 244, 0.6);
}
.menu-overlay nav a.sub-link:hover {
    color: #ffffff !important;
}
.menu-overlay nav a.sub-link .sub-link-arrow {
    display: inline-block;
    width: 16px;
    height: 1px;
    margin-right: 10px;
    background: linear-gradient(90deg, #3b4c6b, rgba(59, 76, 107, 0.2));
    color: transparent;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    vertical-align: middle;
    align-self: center;
    flex-shrink: 0;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
}
.menu-overlay nav a.sub-link:hover .sub-link-arrow,
.menu-overlay nav a.sub-link.active .sub-link-arrow {
    width: 26px;
    background: linear-gradient(90deg, #ffffff, rgba(59, 76, 107, 0.4));
}

/* ============================================================
   BANDEAU DÉFILANT D'ACCUEIL (STICKY BOTTOM — PAGE CUSTOM)
   ============================================================ */
.home-bottom-ticker {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100vw;
    max-width: 100%;
    height: 32px;
    z-index: 990;
    display: flex;
    align-items: center;
    background: linear-gradient(90deg, #1e2638 0%, #253147 50%, #1e2638 100%);
    border-top: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.45);
    overflow: hidden;
    box-sizing: border-box;
}
/* Réserve l'espace du ticker fixe en bas pour qu'il ne chevauche pas le footer */
body.has-bottom-ticker {
    padding-bottom: 32px;
}
body.has-bottom-ticker.has-ticker-2lines {
    padding-bottom: 56px;
}
@media (max-width: 768px) {
    body.has-bottom-ticker {
        padding-bottom: 28px;
    }
    body.has-bottom-ticker.has-ticker-2lines {
        padding-bottom: 48px;
    }
}
.hbt-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    height: 100%;
    background: rgba(255, 255, 255, 0.08);
    border-right: 1px solid rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
    z-index: 2;
}
.hbt-badge-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #d2c5a2;
    box-shadow: 0 0 8px #d2c5a2;
    animation: hbt-pulse 2s ease-in-out infinite;
}
@keyframes hbt-pulse {
    0%, 100% { opacity: 0.7; transform: scale(0.9); }
    50% { opacity: 1; transform: scale(1.25); box-shadow: 0 0 12px #d2c5a2; }
}
.hbt-badge-link {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: #d2c5a2;
    text-decoration: none;
    white-space: nowrap;
}
.hbt-badge-link:hover {
    color: #ffffff;
}
.hbt-marquee-wrap {
    flex: 1;
    height: 100%;
    display: flex;
    align-items: center;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}
.hbt-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: hbt-scroll 60s linear infinite;
    white-space: nowrap;
}
.home-bottom-ticker:hover .hbt-track,
.home-bottom-ticker:focus-within .hbt-track {
    animation-play-state: paused;
}
.hbt-item {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 13.5px;
    letter-spacing: 1.1px;
    color: rgba(226, 234, 244, 0.85);
    text-decoration: none;
    padding: 0 12px;
    white-space: nowrap;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}
.hbt-item:hover {
    color: #3b4c6b;
    text-shadow: 0 0 12px rgba(59, 76, 107, 0.6);
}
.hbt-dot {
    color: rgba(59, 76, 107, 0.55);
    font-size: 6px;
    margin: 0 8px;
    flex-shrink: 0;
}
@keyframes hbt-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (max-width: 768px) {
    .home-bottom-ticker {
        height: 28px;
    }
    .hbt-badge {
        padding: 0 8px;
        max-width: 125px;
        flex-shrink: 0;
    }
    .hbt-badge-pulse {
        width: 5px;
        height: 5px;
    }
    .hbt-badge-link {
        font-size: 9.5px;
        letter-spacing: 0.5px;
        max-width: 95px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: block;
    }
    .hbt-item {
        font-size: 11.5px;
        padding: 0 6px;
    }
    .hbt-dot {
        margin: 0 5px;
        font-size: 5px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .hbt-track, .hbt-badge-pulse {
        animation: none !important;
    }
}

/* Mode 2 Lignes superposées */
.home-bottom-ticker--2lines {
    height: 56px;
}
.home-bottom-ticker--2lines .hbt-badge {
    height: 100%;
}
.hbt-marquee-wrap--stacked {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    height: 100%;
    padding: 2px 0;
}
.hbt-row {
    display: flex;
}
.hbt-track--reverse {
    animation-direction: reverse;
}
@media (max-width: 768px) {
    .home-bottom-ticker--2lines {
        height: 48px;
    }
    .home-bottom-ticker--2lines .hbt-row {
        height: 20px;
    }
}

/* ============================================================
   E-COMMERCE & STRIPE CHECKOUT — LUXURY ART GALLERY STYLES
   Galerie Offenstadt — Camaïeu Navy & Soft Satin Surface
   ============================================================ */

/* Header Account & Cart Buttons — Harmonisé avec le fond bleu #3b4c6b */
.nav-account-btn,
.nav-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 6px 11px;
    color: #ffffff;
    text-decoration: none;
    border-radius: var(--br-sm, var(--br, 6px));
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    margin-left: 6px;
    font-size: 14px;
    cursor: pointer;
}
.nav-account-btn:hover,
.nav-cart-btn:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: #d2c5a2;
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25), 0 0 10px rgba(210, 197, 162, 0.3);
}
.nav-account-btn.is-logged {
    border-color: rgba(210, 197, 162, 0.6);
    background: rgba(255, 255, 255, 0.18);
}
.account-badge-dot {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 7.5px;
    height: 7.5px;
    background: #10b981;
    border-radius: 50%;
    border: 1.5px solid #3b4c6b;
    box-shadow: 0 0 6px rgba(16, 185, 129, 0.85);
}
.nav-cart-btn.has-items {
    border-color: rgba(210, 197, 162, 0.6);
    background: rgba(255, 255, 255, 0.18);
}
.cart-badge-count {
    position: absolute;
    top: -6px;
    right: -6px;
    background: #d2c5a2;
    color: #1e2638;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    padding: 3px 6px;
    border-radius: var(--br-pill, 10px);
    border: 1.5px solid #3b4c6b;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}
.account-btn-icon,
.cart-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    color: #ffffff;
}
.account-btn-icon svg,
.cart-btn-icon svg {
    display: block;
    width: 16px;
    height: 16px;
    stroke: #ffffff;
    color: #ffffff;
    stroke-width: 2;
}

/* Mobile Drawer User Bar */
.menu-overlay-user-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    padding: 8px 10px;
    background: rgba(0, 0, 0, 0.16);
    border-radius: 12px;
    margin: 0 0 16px 0;
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.menu-user-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    min-width: 0;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    text-decoration: none;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.16);
    transition: all 0.2s ease;
}
.menu-user-btn:hover, .menu-user-btn.active {
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.08) 100%);
    border-color: rgba(210, 197, 162, 0.7);
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25), 0 0 10px rgba(210, 197, 162, 0.15);
}
.menu-user-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--gold-primary, #d2c5a2);
}
.menu-user-icon svg {
    display: block;
    width: 16px;
    height: 16px;
    stroke: var(--gold-primary, #d2c5a2);
    color: var(--gold-primary, #d2c5a2);
    stroke-width: 2;
}
.menu-user-txt {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 0;
}
.menu-user-txt strong {
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #ffffff;
}
.menu-user-btn:hover .menu-user-txt strong,
.menu-user-btn.active .menu-user-txt strong {
    color: #ffffff;
}
.menu-user-txt small {
    font-size: 9.5px;
    color: rgba(255, 255, 255, 0.75);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Cart Page Grid Layout */
.cart-layout-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    align-items: start;
}
@media (max-width: 980px) {
    .cart-layout-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* Cart Main Card */
.cart-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06), 0 2px 6px -1px rgba(36, 47, 68, 0.03);
    margin-bottom: 24px;
}
@media (max-width: 640px) {
    .cart-card {
        padding: 20px 16px;
    }
}

.cart-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 18px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 12px;
}
.cart-card-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0;
}
.cart-clear-btn {
    background: none;
    border: none;
    color: #64748b;
    font-size: 12.5px;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
    transition: color 0.15s;
}
.cart-clear-btn:hover {
    color: #ef4444;
}

/* ============================================================
   PANIER — Ligne d'article élégante, lisible & parfaitement agencée
   ============================================================ */
.cart-item-row {
    display: flex;
    gap: 22px;
    align-items: flex-start;
    padding: 22px 0;
    border-bottom: 1px solid #f1f5f9;
}
.cart-item-row:last-child {
    border-bottom: none;
    padding-bottom: 4px;
}

.cart-item-thumb {
    width: 96px;
    height: 96px;
    border-radius: var(--br-lg, var(--br, 8px));
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid rgba(36, 47, 68, 0.08);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cart-item-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cart-thumb-placeholder {
    font-size: 36px;
}

.cart-item-main {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    gap: 14px;
}

.cart-item-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}
.cart-item-info {
    flex: 1;
    min-width: 0;
}
.cart-item-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 16.5px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 5px 0;
    line-height: 1.35;
    letter-spacing: -0.01em;
}
.cart-item-sub {
    font-size: 13px;
    color: #64748b;
    margin: 0 0 8px 0;
    line-height: 1.45;
}
.cart-item-format {
    display: inline-block;
    font-size: 11px;
    color: #475569;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    padding: 3px 10px;
    border-radius: var(--br-pill, 20px);
    font-weight: 500;
    margin-top: 2px;
}

.cart-item-delete-btn {
    background: none;
    border: none;
    color: #94a3b8;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.2s ease;
    padding: 0;
}
.cart-item-delete-btn:hover {
    color: #ef4444;
    background: #fee2e2;
    transform: scale(1.08);
}

.cart-item-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-top: 12px;
    border-top: 1px dashed #e2e8f0;
}

/* Quantity Picker */
.cart-qty-picker {
    display: inline-flex;
    align-items: center;
    border: 1px solid #cbd5e1;
    border-radius: var(--br-pill, 24px);
    background: #f8fafc;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03);
}
.cart-qty-picker button {
    background: none;
    border: none;
    color: #334155;
    width: 34px;
    height: 32px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}
.cart-qty-picker button:hover {
    background: #e2e8f0;
    color: #0f172a;
}
.cart-qty-picker input {
    width: 38px;
    text-align: center;
    border: none;
    background: transparent;
    color: #1e293b;
    font-weight: 700;
    font-size: 14px;
    -moz-appearance: textfield;
}
.cart-qty-picker input::-webkit-outer-spin-button,
.cart-qty-picker input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.cart-item-pricing {
    display: flex;
    align-items: baseline;
    gap: 8px;
    text-align: right;
}
.cart-item-unit-note {
    font-size: 12px;
    color: #64748b;
    font-weight: 500;
}
.cart-item-total-price {
    font-size: 17px;
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
    white-space: nowrap;
    font-feature-settings: "tnum";
}

/* Responsive Mobile Item Row */
@media (max-width: 640px) {
    .cart-item-row {
        gap: 14px;
        padding: 18px 0;
    }
    .cart-item-thumb {
        width: 80px;
        height: 80px;
    }
    .cart-item-title {
        font-size: 15px;
    }
    .cart-item-sub {
        font-size: 12px;
    }
    .cart-item-footer {
        padding-top: 10px;
    }
    .cart-item-total-price {
        font-size: 16px;
    }
}

/* Empty State */
.cart-empty-state {
    text-align: center;
    padding: 64px 24px;
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
    max-width: 600px;
    margin: 0 auto;
}
.cart-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    margin: 0 auto 20px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 50%, #e2e8f0 100%);
    border: 1px solid #cbd5e1;
    border-radius: var(--br-pill, var(--br));
    box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.9), 0 4px 12px rgba(36, 47, 68, 0.05);
    filter: grayscale(100%);
    color: #475569;
}
.cart-empty-icon svg {
    display: block;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.08));
}
.cart-empty-state h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 22px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 10px 0;
}
.cart-empty-state p {
    color: #64748b;
    line-height: 1.6;
    margin: 0 0 24px 0;
}
.cart-empty-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 100%;
    max-width: 540px;
    margin: 0 auto;
}
.cart-empty-actions .btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: normal; /* libellés longs jamais coupés : ils se replient */
    padding: 12px 18px;
    font-size: 13px;
    box-sizing: border-box;
    min-height: 48px;
}
@media (max-width: 580px) {
    .cart-empty-actions {
        grid-template-columns: 1fr;
    }
}

/* Cart Summary Card */
.cart-summary-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 28px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.cart-summary-card h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 18px 0;
    padding-bottom: 14px;
    border-bottom: 1px solid #f1f5f9;
}
.summary-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13.5px;
    margin-bottom: 12px;
    color: #475569;
}
.summary-line strong {
    color: #1e293b;
    font-weight: 600;
}
.free-badge {
    color: #059669;
    font-weight: 700;
    background: #d1fae5;
    padding: 2px 8px;
    border-radius: var(--br-pill);
    font-size: 12px;
}
.summary-divider {
    height: 1px;
    background: #f1f5f9;
    margin: 18px 0;
}
.summary-total-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 20px;
}
.total-amount {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 24px;
    color: var(--navy-primary, #3b4c6b);
    font-weight: 700;
}
.btn-checkout-large {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 22px;
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: 0.3px;
    box-sizing: border-box;
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff;
    border: none;
    border-radius: var(--br); /* suit le réglage border-radius admin */
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.25);
    cursor: pointer;
    transition: all 0.2s ease;
}
.btn-checkout-large:hover {
    background: #1e2638;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(36, 47, 68, 0.35);
    color: #ffffff;
}
.free-shipping-progress-wrap {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: var(--br-sm, var(--br));
    padding: 12px 14px;
    margin: 14px 0;
    font-size: 12px;
    color: #0369a1;
    font-weight: 500;
}
.free-shipping-bar {
    height: 6px;
    background: #e0f2fe;
    border-radius: 4px;
    overflow: hidden;
    margin-top: 8px;
}
.free-shipping-fill {
    height: 100%;
    background: linear-gradient(90deg, #0284c7, #10b981);
    border-radius: 4px;
    transition: width 0.3s ease;
}

.stripe-badges-footer {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #f1f5f9;
    text-align: center;
}
.stripe-badge-text {
    font-size: 12px;
    color: #64748b;
    margin-bottom: 10px;
}
.stripe-payment-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
}
.pay-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 6px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--br-pill);
    color: #475569;
    white-space: nowrap;
    line-height: 1.2;
}
.cart-help-link {
    margin-top: 16px;
    text-align: center;
    font-size: 12.5px;
}
.cart-help-link a {
    color: var(--navy-primary, #3b4c6b);
    /* text-decoration: underline; */
    font-weight: 500;
}

/* Trust Banner */
.cart-trust-banner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 24px;
}
@media (max-width: 768px) {
    .cart-trust-banner {
        grid-template-columns: 1fr;
    }
}
.trust-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 20px;
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-sm, var(--br));
    box-shadow: 0 2px 8px rgba(36, 47, 68, 0.04);
}
.trust-icon {
    font-size: 24px;
    flex-shrink: 0;
    line-height: 1;
}
.trust-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.trust-text strong {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
    margin-bottom: 2px;
    display: block;
}
.trust-text span {
    font-size: 12px;
    color: #64748b;
    line-height: 1.5;
}

/* Form Inputs & Controls (E-Commerce & Account) */
.form-group {
    margin-bottom: 18px;
}
.form-group label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin-bottom: 6px;
}
.form-group label .req {
    color: #ef4444;
}
.form-control {
    width: 100%;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: var(--br-sm, var(--br));
    padding: 10px 14px;
    font-size: 14px;
    color: #1e293b;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.02);
}
.form-control:focus {
    outline: none;
    border-color: var(--navy-primary, #3b4c6b);
    box-shadow: 0 0 0 3px rgba(36, 47, 68, 0.1);
}
.form-control::placeholder {
    color: #94a3b8;
}
textarea.form-control {
    resize: vertical;
    min-height: 70px;
}

/* Checkout Page Grid */
.checkout-form-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    align-items: start;
}
@media (max-width: 980px) {
    .checkout-form-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}
.checkout-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.checkout-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 24px;
}
.step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff;
    font-weight: 700;
    font-size: 13px;
    border-radius: var(--br-pill);
}
.checkout-card-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0;
}
.form-row-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.form-row-3 {
    display: grid;
    grid-template-columns: 110px 1fr 1fr;
    gap: 16px;
}
@media (max-width: 640px) {
    .form-row-2, .form-row-3 {
        grid-template-columns: 1fr;
    }
}
.checkout-summary-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 28px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.checkout-mini-list {
    margin-bottom: 16px;
    max-height: 220px;
    overflow-y: auto;
}
.checkout-mini-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
}
.mini-item-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.mini-item-info span {
    font-size: 11.5px;
    color: #64748b;
}
.mini-item-price {
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
    white-space: nowrap;
}
.btn-checkout-submit {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 22px;
    font-size: 14.5px;
    font-weight: 700;
    box-sizing: border-box;
    margin-top: 16px;
    background: var(--navy-primary, #3b4c6b);
    color: #ffffff;
    border: none;
    border-radius: var(--br); /* suit le réglage border-radius admin */
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.25);
    cursor: pointer;
    transition: all 0.2s ease;
}
.btn-checkout-submit:hover {
    background: #1e2638;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(36, 47, 68, 0.35);
    color: #ffffff;
}
.checkout-guarantees {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.guarantee-line {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #64748b;
}

/* ============================================================
   CHECKOUT EMBEDDED STRIPE — PAIEMENT INTÉGRÉ AU SITE
   ============================================================ */
.checkout-embedded-card {
    background: #ffffff;
    border: 1px solid rgba(220, 228, 238, 0.85);
    border-radius: var(--br-lg, var(--br, 12px));
    padding: 32px 36px;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.08), 0 2px 6px rgba(15, 23, 42, 0.04);
    margin: 0 auto;
    max-width: 960px;
}
.checkout-embedded-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 1px solid #f1f5f9;
    flex-wrap: wrap;
}
.checkout-embedded-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #64748b;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.15s ease;
}
.checkout-embedded-back-link:hover {
    color: var(--navy-primary, #3b4c6b);
    text-decoration: underline;
}
.checkout-embedded-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #15803d;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    padding: 4px 12px;
    border-radius: var(--br-pill, 20px);
    font-weight: 600;
}
.stripe-embedded-mount {
    min-height: 460px;
    width: 100%;
}
.checkout-embedded-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: #64748b;
    gap: 16px;
}
.checkout-spinner {
    width: 38px;
    height: 38px;
    border: 3.5px solid #e2e8f0;
    border-top-color: var(--navy-primary, #3b4c6b);
    border-radius: 50%;
    animation: checkoutSpin 0.8s linear infinite;
}
@keyframes checkoutSpin {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .checkout-embedded-card {
        padding: 20px 16px;
    }
}

/* Order Confirmation Page */
.order-confirmation-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 40px;
    box-shadow: 0 8px 30px rgba(36, 47, 68, 0.08);
    max-width: 900px;
    margin: 0 auto;
}
.conf-header {
    text-align: center;
    padding-bottom: 28px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 28px;
}
.conf-icon-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: #10b981;
    color: #ffffff;
    font-size: 28px;
    font-weight: 800;
    border-radius: var(--br-pill);
    box-shadow: 0 4px 16px rgba(16, 185, 129, 0.35);
    margin-bottom: 14px;
}
.conf-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 24px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 8px 0;
}
.conf-lead {
    font-size: 14.5px;
    color: #64748b;
    margin: 0 0 16px 0;
}
.conf-ref-pill {
    display: inline-block;
    background: #f1f5f9;
    border: 1px solid #cbd5e1;
    border-radius: var(--br-pill);
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
}

/* Confirmation Customer Account Callout Banner */
.conf-account-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: linear-gradient(135deg, #f0fdf4 0%, #e0f2fe 100%);
    border: 1px solid #bae6fd;
    border-radius: var(--br-sm, var(--br));
    padding: 16px 20px;
    margin: 20px 0 26px 0;
    box-shadow: 0 4px 14px rgba(14, 165, 233, 0.08);
}
@media (max-width: 768px) {
    .conf-account-banner {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        padding: 14px 16px;
    }
}
.conf-account-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: #ffffff;
    border: 1.5px solid #0284c7;
    border-radius: 50%;
    font-size: 20px;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(2, 132, 199, 0.15);
}
.conf-account-content {
    flex: 1;
}
.conf-account-content h4 {
    margin: 0 0 4px 0;
    font-size: 14.5px;
    font-weight: 700;
    color: #0369a1;
}
.conf-account-content p {
    margin: 0;
    font-size: 12.5px;
    color: #334155;
    line-height: 1.5;
}
.conf-account-action {
    flex-shrink: 0;
}
.conf-account-action .btn {
    white-space: nowrap;
    padding: 8px 16px;
    font-size: 12.5px;
    font-weight: 600;
}

.conf-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}
@media (max-width: 768px) {
    .conf-grid {
        grid-template-columns: 1fr;
    }
}
.conf-col-items h3, .conf-box h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 14px 0;
    color: var(--navy-primary, #3b4c6b);
}
.conf-item-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
}
.conf-item-name {
    display: flex;
    flex-direction: column;
}
.conf-item-name span {
    font-size: 11.5px;
    color: #64748b;
}
.conf-totals-wrap {
    margin-top: 14px;
}
.conf-box {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: var(--br-sm, var(--br));
    padding: 18px;
    margin-bottom: 16px;
}
.delivery-address-text {
    font-size: 13px;
    line-height: 1.55;
    color: #334155;
    margin: 0;
}
.conf-timeline {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.conf-timeline li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    opacity: 0.5;
}
.conf-timeline li.done, .conf-timeline li.active {
    opacity: 1;
}
.step-dot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: #e2e8f0;
    color: #64748b;
    border-radius: var(--br-pill);
    font-size: 11px;
    flex-shrink: 0;
}
.conf-timeline li.done .step-dot {
    background: #10b981;
    color: #ffffff;
}
.step-txt {
    display: flex;
    flex-direction: column;
    font-size: 12.5px;
    color: #1e293b;
}
.step-txt span {
    font-size: 11px;
    color: #64748b;
}
.conf-footer-cta {
    display: flex;
    justify-content: center;
    gap: 14px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid #f1f5f9;
    flex-wrap: wrap;
}

/* Customer Account & Dashboard */
.account-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(350px, 420px) 1fr;
    gap: 28px;
    align-items: start;
}
@media (max-width: 992px) {
    .account-dashboard-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}
.account-profile-card, .account-orders-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: 14px;
    padding: 24px 26px;
    box-shadow: 0 8px 24px rgba(59, 76, 107, 0.05), 0 1px 3px rgba(0, 0, 0, 0.02);
    box-sizing: border-box;
}
@media (max-width: 600px) {
    .account-profile-card, .account-orders-card {
        padding: 18px 16px;
        border-radius: 12px;
    }
}
.profile-header {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 14px;
}
.profile-client-tag {
    display: inline-block;
    align-self: flex-start;
    font-size: 9.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #3b4c6b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    padding: 2px 8px;
    border-radius: 12px;
    margin-bottom: 2px;
}
.profile-meta h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 2px 0;
    word-break: break-word;
}
.profile-email {
    font-size: 12px;
    color: #64748b;
    word-break: break-all;
}

.profile-section-title-wrap {
    margin-bottom: 14px;
}
.profile-section-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 15.5px;
    font-weight: 600;
    color: #1e293b;
    margin: 0 0 4px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}
.profile-section-title span {
    color: #8c7853;
    font-size: 14px;
}
.profile-section-sub {
    font-size: 12px;
    color: #64748b;
    margin: 0;
    line-height: 1.4;
}

.profile-edit-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: #f8fafc;
    padding: 16px 16px 14px;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    margin-bottom: 16px;
}
.profile-edit-form .form-group {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
}
.profile-edit-form .form-group label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #475569;
    margin-bottom: 4px;
}
.profile-edit-form .form-group label .req {
    color: #dc2626;
}
.profile-edit-form .form-control {
    font-size: 13px;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #0f172a;
    width: 100%;
    box-sizing: border-box;
    transition: all 0.2s ease;
}
.profile-edit-form .form-control:focus {
    border-color: var(--navy-primary, #3b4c6b);
    box-shadow: 0 0 0 3px rgba(59, 76, 107, 0.15);
    outline: none;
}
.profile-edit-form .form-row-2cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.profile-edit-form .form-hint {
    font-size: 10.5px;
    color: #64748b;
    margin-top: 3px;
    line-height: 1.35;
}
.profile-form-actions {
    margin-top: 4px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
}
.btn-save-profile {
    width: 100%;
    padding: 10px 16px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border-radius: 7px !important;
    background: var(--navy-primary, #3b4c6b) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.2) !important;
    border: 1px solid var(--navy-primary, #3b4c6b) !important;
    cursor: pointer;
    transition: all 0.25s ease !important;
}
.btn-save-profile:hover {
    background: #1e2638 !important;
    border-color: #1e2638 !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(59, 76, 107, 0.3) !important;
}

.profile-actions-bottom {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 12px;
}
.btn-profile-rgpd, .btn-profile-logout {
    width: 100%;
    padding: 8px 10px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-align: center;
    white-space: nowrap;
    border-radius: 7px !important;
    box-sizing: border-box;
}

.orders-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    border-bottom: 1px solid #f1f5f9;
    margin-bottom: 14px;
}
.orders-card-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0;
}
.orders-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    font-size: 11.5px;
    font-weight: 700;
    color: #3b4c6b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.orders-accordion-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.order-history-item {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px 16px;
    transition: all 0.2s ease;
}
@media (max-width: 600px) {
    .order-history-item {
        padding: 12px;
    }
}
.order-history-item:hover {
    border-color: rgba(59, 76, 107, 0.28);
    box-shadow: 0 3px 12px rgba(59, 76, 107, 0.05);
}
.order-history-header {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e2e8f0;
}
.oh-header-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}
.oh-ref {
    font-family: 'Noto Sans', sans-serif;
    font-size: 13px;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: 0.3px;
}
.oh-total {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--navy-primary, #3b4c6b);
    white-space: nowrap;
}
.oh-header-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.oh-date {
    font-size: 11.5px;
    color: #64748b;
}
.order-status-badge {
    display: inline-block;
    padding: 2.5px 8px;
    font-size: 10.5px;
    font-weight: 700;
    border-radius: var(--br-pill);
    letter-spacing: 0.2px;
    white-space: nowrap;
}
.badge-status--paid {
    background: #d1fae5;
    color: #065f46;
    border: 1px solid #a7f3d0;
}
.badge-status--shipped {
    background: #dbeafe;
    color: #1e40af;
    border: 1px solid #bfdbfe;
}
.badge-status--delivered {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #bbf7d0;
}
.badge-status--cancelled {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
}
.oh-items-list {
    list-style: none;
    padding: 0;
    margin: 10px 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 12.5px;
}
.oh-item-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    color: #334155;
    line-height: 1.35;
}
.oh-item-name {
    flex: 1;
    min-width: 0;
    font-weight: 500;
}
.oh-qty-badge {
    display: inline-block;
    background: #e2e8f0;
    color: #475569;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 8px;
    margin-left: 3px;
    vertical-align: middle;
}
.oh-item-price {
    font-weight: 700;
    color: #1e293b;
    white-space: nowrap;
    flex-shrink: 0;
}
.oh-tracking-box {
    margin-top: 10px;
    padding: 7px 10px;
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 7px;
    font-size: 11.5px;
    color: #0369a1;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.oh-track-label {
    color: #0284c7;
    font-weight: 600;
}

/* Account Login Card */
.account-login-wrapper {
    max-width: 440px;
    margin: 0 auto;
}
.account-login-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 36px 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.login-header {
    text-align: center;
    margin-bottom: 24px;
}
.login-icon {
    font-size: 36px;
    display: block;
    margin-bottom: 10px;
}
.login-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 8px 0;
}
.login-header p {
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    margin: 0;
}
.login-footer-reassurance {
    margin-top: 20px;
    text-align: center;
    font-size: 12px;
    color: #64748b;
}

/* OTP Security Form Styling */
.form-control-otp {
    text-align: center !important;
    font-size: 26px !important;
    letter-spacing: 8px !important;
    font-weight: 700 !important;
    font-family: 'Courier New', Courier, monospace !important;
    padding: 12px 14px !important;
    background: #f8fafc !important;
    border: 2px solid rgba(36, 47, 68, 0.18) !important;
    border-radius: var(--br-sm, var(--br)) !important;
    color: var(--navy-primary, #3b4c6b) !important;
    transition: all 0.25s ease !important;
}
.form-control-otp:focus {
    background: #ffffff !important;
    border-color: var(--navy-primary, #3b4c6b) !important;
    box-shadow: 0 0 0 4px rgba(36, 47, 68, 0.1) !important;
    outline: none !important;
}
.otp-actions-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 18px;
    font-size: 12.5px;
    flex-wrap: wrap;
}
.otp-link {
    color: var(--navy-primary, #3b4c6b);
    font-weight: 500;
    text-decoration: underline;
    transition: color 0.2s ease;
}
.otp-link:hover {
    color: #3b82f6;
}
.otp-sep {
    color: #cbd5e1;
    font-weight: bold;
}

/* RGPD Portal Layout */
.rgpd-content-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 28px;
    align-items: start;
}
@media (max-width: 860px) {
    .rgpd-content-grid {
        grid-template-columns: 1fr;
    }
}
.rgpd-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.rgpd-card h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 22px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 14px 0;
}
.rgpd-card h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 22px 0 8px 0;
}
.rgpd-card p {
    font-size: 14px;
    line-height: 1.65;
    color: #475569;
    margin: 0 0 12px 0;
}
.lead-p {
    font-size: 15px;
    font-weight: 500;
    color: #1e293b;
}
.rgpd-actions-column {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.rgpd-action-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 24px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.rgpd-card-danger {
    border-color: #fecaca;
    background: #fff5f5;
}
.rgpd-act-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.rgpd-icon {
    font-size: 20px;
}
.rgpd-act-header h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    margin: 0;
}
.rgpd-action-card p {
    font-size: 13px;
    color: #64748b;
    line-height: 1.5;
    margin: 0 0 16px 0;
}
.dpo-email-link {
    display: inline-block;
    color: var(--navy-primary, #3b4c6b);
    font-weight: 700;
    font-size: 13.5px;
    text-decoration: underline;
}

/* FAQ Orders Page */
.faq-container-narrow {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}
.faq-intro-card {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
}
.faq-intro-header {
    display: flex;
    align-items: flex-start;
    gap: 18px;
}
.faq-seal-icon {
    font-size: 32px;
    flex-shrink: 0;
}
.faq-intro-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 8px 0;
}
.faq-intro-header p {
    font-size: 14px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}
.faq-accordion-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.faq-item {
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-md, var(--br));
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 8px rgba(36, 47, 68, 0.03);
}
.faq-item:hover {
    border-color: rgba(36, 47, 68, 0.2);
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.06);
}
.faq-item[open] {
    border-color: var(--navy-primary, #3b4c6b);
}
.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 22px;
    font-family: 'Baskervville', Georgia, serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--navy-primary, #3b4c6b);
    cursor: pointer;
    user-select: none;
    list-style: none;
}
.faq-question::-webkit-details-marker {
    display: none;
}
.faq-toggle-icon {
    font-size: 16px;
    color: #64748b;
    transition: transform 0.2s ease;
}
.faq-item[open] .faq-toggle-icon {
    transform: rotate(180deg);
    color: var(--navy-primary, #3b4c6b);
}
.faq-answer {
    padding: 0 22px 20px 22px;
    font-size: 14px;
    line-height: 1.7;
    color: #475569;
    border-top: 1px solid #f1f5f9;
    margin-top: 4px;
    padding-top: 14px;
}
.faq-answer p {
    margin: 0;
}
.faq-footer-box {
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: #ffffff;
    border: 1px solid rgba(36, 47, 68, 0.08);
    border-radius: var(--br-lg, var(--br));
    padding: 28px 32px;
    margin-top: 32px;
    box-shadow: 0 4px 20px -2px rgba(36, 47, 68, 0.06);
    width: 100%;
    box-sizing: border-box;
}
.faq-box-content {
    width: 100%;
}
.faq-box-content h3 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 20px;
    color: var(--navy-primary, #3b4c6b);
    margin: 0 0 6px 0;
}
.faq-box-content p {
    font-size: 14px;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}
.faq-box-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    width: 100%;
}
.faq-box-buttons .btn {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    padding: 13px 18px;
    font-size: 13px;
    box-sizing: border-box;
}
@media (max-width: 580px) {
    .faq-box-buttons {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   IMPRESSION A4 MINIMALE & ÉPURÉE (REÇUS, FACTURES & CONFIRMATIONS)
   ============================================================ */
.print-only {
    display: none !important;
}

@media print {
    @page {
        size: A4 portrait;
        margin: 10mm 15mm;
    }

    *, *::before, *::after {
        box-shadow: none !important;
        text-shadow: none !important;
        background-image: none !important;
    }

    html, body {
        background: #ffffff !important;
        color: #0f172a !important;
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
        font-size: 10.5pt !important;
        line-height: 1.4 !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        min-height: auto !important;
    }

    /* Masquer tous les éléments d'interface web superflus */
    .screen-only,
    header,
    footer,
    nav,
    .site-header,
    .site-footer,
    .page-hero,
    .menu-backdrop,
    .menu-overlay,
    .menu-panel,
    .conf-footer-cta,
    .conf-actions-print,
    .conf-timeline,
    .conf-icon-check,
    .conf-header,
    .admin-sidebar,
    .admin-topbar,
    .actions,
    .btn,
    button,
    input[type="submit"],
    .alert,
    .admin-nav,
    .search-box,
    .ticker-wrap,
    .page-hero--stuck,
    #cookie-banner,
    .toast-container,
    .cart-drawer,
    .cart-backdrop,
    .scroll-top,
    .theme-toggle,
    .social-links,
    .quick-links,
    .modal-backdrop,
    .modal {
        display: none !important;
    }

    /* Rendre visible les éléments réservés à l'impression */
    .print-only {
        display: block !important;
    }
    div.print-only.print-doc-header {
        display: flex !important;
    }

    /* Réinitialisation complète des conteneurs pour plein format A4 */
    .container,
    .section,
    .conf-section,
    .main-content,
    .order-confirmation-card,
    .order-view-grid,
    .order-card {
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #ffffff !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    /* EN-TÊTE FACTURE / JUSTIFICATIF A4 */
    .print-doc-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        border-bottom: 2px solid #0f172a !important;
        padding-bottom: 12px !important;
        margin-bottom: 18px !important;
    }
    .print-brand-block {
        flex: 1 !important;
    }
    .print-brand-title {
        font-family: 'Baskervville', Georgia, serif !important;
        font-size: 18pt !important;
        font-weight: 700 !important;
        letter-spacing: 2px !important;
        color: #0f172a !important;
        line-height: 1.1 !important;
        margin-bottom: 2px !important;
    }
    .print-brand-sub {
        font-size: 9pt !important;
        color: #475569 !important;
        text-transform: uppercase !important;
        letter-spacing: 1px !important;
        margin-bottom: 4px !important;
    }
    .print-brand-contact {
        font-size: 8.5pt !important;
        color: #64748b !important;
    }

    .print-meta-block {
        text-align: right !important;
        font-size: 9pt !important;
        line-height: 1.4 !important;
        color: #334155 !important;
    }
    .print-doc-type {
        font-size: 12pt !important;
        font-weight: 800 !important;
        letter-spacing: 1px !important;
        color: #0f172a !important;
        margin-bottom: 4px !important;
    }
    .print-meta-row {
        margin-bottom: 2px !important;
    }
    .print-meta-row strong {
        color: #0f172a !important;
    }

    /* DISPOSITION A4 PLEINE LARGEUR ÉPURÉE */
    .conf-grid,
    .order-view-grid {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 14px !important;
        margin-top: 0 !important;
    }
    .conf-col-delivery,
    .order-right-col {
        order: -1 !important;
        width: 100% !important;
        flex: none !important;
    }
    .conf-col-items,
    .order-left-col {
        order: 1 !important;
        width: 100% !important;
        flex: none !important;
    }

    .conf-box,
    .order-card-client {
        width: 100% !important;
        box-sizing: border-box !important;
        margin-bottom: 8px !important;
    }

    .conf-col-items h3,
    .conf-box h3,
    .order-card-title {
        font-size: 10pt !important;
        font-weight: 700 !important;
        color: #0f172a !important;
        margin: 0 0 8px 0 !important;
        padding-bottom: 4px !important;
        border-bottom: 1px solid #cbd5e1 !important;
    }

    /* TABLEAU ARTICLES / LIGNES ARTICLES */
    .conf-items-list {
        margin-bottom: 12px !important;
    }
    .conf-item-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        padding: 6px 0 !important;
        border-bottom: 1px dashed #e2e8f0 !important;
        font-size: 9.5pt !important;
    }
    .conf-item-name strong {
        display: block !important;
        font-size: 9.5pt !important;
        color: #0f172a !important;
    }
    .conf-item-qty {
        font-size: 8.5pt !important;
        color: #64748b !important;
    }
    .conf-item-price {
        font-weight: 700 !important;
        font-size: 9.5pt !important;
        color: #0f172a !important;
        white-space: nowrap !important;
    }

    .table-wrap, .data-table {
        width: 100% !important;
        border-collapse: collapse !important;
    }
    .data-table th {
        font-size: 9pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        border-bottom: 1.5px solid #0f172a !important;
        padding: 6px 4px !important;
        color: #0f172a !important;
        text-align: left !important;
    }
    .data-table td {
        font-size: 9pt !important;
        padding: 6px 4px !important;
        border-bottom: 1px solid #e2e8f0 !important;
        color: #1e293b !important;
    }

    /* TOTAUX */
    .conf-totals-wrap {
        margin-top: 12px !important;
        padding-top: 8px !important;
        border-top: 1.5px solid #0f172a !important;
    }
    .summary-line {
        display: flex !important;
        justify-content: space-between !important;
        font-size: 9pt !important;
        color: #475569 !important;
        margin-bottom: 4px !important;
    }
    .summary-line strong {
        color: #0f172a !important;
    }
    .summary-divider {
        height: 1px !important;
        background: #cbd5e1 !important;
        margin: 6px 0 !important;
    }
    .summary-total-line {
        display: flex !important;
        justify-content: space-between !important;
        font-size: 11.5pt !important;
        font-weight: 800 !important;
        color: #0f172a !important;
        padding-top: 4px !important;
    }

    /* ENCADRÉ CLIENT & LIVRAISON */
    .delivery-address-text,
    .order-card-client {
        background: #f8fafc !important;
        border: 1px solid #e2e8f0 !important;
        padding: 10px 14px !important;
        border-radius: 4px !important;
        font-size: 9pt !important;
        line-height: 1.4 !important;
        color: #1e293b !important;
    }

    /* PIED DE PAGE A4 */
    .print-doc-footer {
        display: block !important;
        margin-top: 26px !important;
        padding-top: 10px !important;
        border-top: 1px solid #cbd5e1 !important;
        font-size: 7.5pt !important;
        color: #64748b !important;
        text-align: center !important;
        line-height: 1.4 !important;
    }
    .print-footer-line {
        font-weight: 600 !important;
        color: #334155 !important;
        margin-bottom: 2px !important;
    }
    .print-footer-sub {
        margin-bottom: 3px !important;
    }
    .print-footer-legal {
        font-style: italic !important;
        color: #94a3b8 !important;
    }
}

/* ============================================================
   PAGE EXPERTISE — CARTE D'AUTORITÉ & PROFIL E-E-A-T PATRICK OFFENSTADT
   ============================================================ */
.expert-eeat-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, var(--br, 14px));
    padding: 32px 36px;
    margin-bottom: 40px;
    box-shadow: 0 10px 30px -5px rgba(59, 76, 107, 0.08), 0 0 0 1px rgba(210, 197, 162, 0.2);
    position: relative;
    overflow: hidden;
}
.expert-eeat-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #3b4c6b 0%, #d2c5a2 50%, #3b4c6b 100%);
}
.expert-eeat-inner {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.expert-eeat-header {
    text-align: center;
    border-bottom: 1px solid rgba(59, 76, 107, 0.08);
    padding-bottom: 18px;
}
.expert-eeat-badge-seal {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    border-radius: var(--radius-pill, 9999px);
    background: rgba(210, 197, 162, 0.16);
    border: 1px solid rgba(210, 197, 162, 0.4);
    color: #8c7853;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.expert-eeat-badge-seal svg {
    stroke: #8c7853;
}
.expert-eeat-name {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(24px, 3.5vw, 32px);
    color: #3b4c6b;
    margin: 0 0 6px 0;
    letter-spacing: 0.5px;
}
.expert-eeat-title {
    font-size: 15px;
    font-weight: 700;
    color: #8c7853;
    margin: 0 0 4px 0;
    letter-spacing: 0.3px;
}
.expert-eeat-role {
    font-size: 13.5px;
    color: #5d7092;
    margin: 0;
    font-style: italic;
}
.expert-eeat-bio {
    font-size: 14.5px;
    line-height: 1.75;
    color: #334155;
    text-align: justify;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.06);
    border-radius: var(--br-sm, 10px);
    padding: 20px 24px;
}
.expert-eeat-bio p {
    margin: 0;
}

/* 4 Piliers Badges Grid */
.expert-eeat-badge-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-top: 4px;
}
@media (max-width: 768px) {
    .expert-eeat-card {
        padding: 22px 18px;
    }
    .expert-eeat-bio {
        padding: 14px 16px;
        font-size: 13.5px;
        text-align: left;
    }
    .expert-eeat-badge-grid {
        grid-template-columns: 1fr;
    }
}
.expert-badge-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.1);
    border-radius: var(--br-sm, 10px);
    transition: all 0.25s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}
.expert-badge-item:hover {
    border-color: rgba(210, 197, 162, 0.8);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(59, 76, 107, 0.08);
}
.expert-badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: linear-gradient(135deg, #3b4c6b 0%, #25334a 100%);
    color: #f3e8c9;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.2);
}
.expert-badge-icon svg {
    stroke: #f3e8c9;
}
.expert-badge-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.expert-badge-txt strong {
    font-size: 13px;
    color: #3b4c6b;
    font-weight: 700;
}
.expert-badge-txt span {
    font-size: 11.5px;
    color: #64748b;
    line-height: 1.4;
}

/* Action CTA */
.expert-eeat-action {
    text-align: center;
    margin-top: 6px;
}
.expert-eeat-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 28px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0.5px;
    border-radius: var(--br, 12px);
    background: linear-gradient(135deg, #3b4c6b 0%, #25334a 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.5) !important;
    box-shadow: 0 6px 20px rgba(59, 76, 107, 0.22);
    transition: all 0.3s ease;
    text-decoration: none !important;
}
.expert-eeat-btn:hover {
    background: linear-gradient(135deg, #46597c 0%, #2e3e58 100%) !important;
    border-color: #f3e8c9 !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 26px rgba(59, 76, 107, 0.32), 0 0 16px rgba(210, 197, 162, 0.3);
}
.expert-btn-arrow {
    color: #d2c5a2;
    transition: transform 0.2s ease;
}
.expert-eeat-btn:hover .expert-btn-arrow {
    transform: translateX(4px);
}

/* Read more intelligent : bio tronquée + fondu, boutons d'action compacts */
.expert-eeat-bio.is-collapsed p {
    max-height: 5.4em;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, #000 45%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 45%, transparent 100%);
}
.expert-eeat-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    align-self: center;
    margin-top: -10px;
    padding: 5px 16px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #3b4c6b;
    background: transparent;
    border: 1px solid rgba(59, 76, 107, 0.25);
    border-radius: var(--br, 12px);
    cursor: pointer;
    transition: all 0.2s ease;
}
.expert-eeat-more:hover {
    border-color: #3b4c6b;
    background: rgba(59, 76, 107, 0.05);
}
.eeat-more-chev {
    display: inline-block;
    transition: transform 0.25s ease;
}
.expert-eeat-more[aria-expanded="true"] .eeat-more-chev {
    transform: rotate(180deg);
}
/* Boutons d'action compacts */
.expert-badge-item {
    gap: 10px;
    padding: 10px 12px;
}
.expert-badge-icon {
    width: 28px;
    height: 28px;
    border-radius: 6px;
}
.expert-badge-icon svg {
    width: 16px;
    height: 16px;
}
.expert-badge-txt strong {
    font-size: 12px;
}
.expert-badge-txt span {
    font-size: 10.5px;
}
.expert-eeat-btn {
    padding: 9px 20px;
    font-size: 12px;
    letter-spacing: 0.4px;
}

/* ============================================================
   PAGE ACTUALITÉS — FILTRES DE PRESTIGE & GRILLE COMPACTE
   ============================================================ */
.news-section {
    padding-top: 24px;
    padding-bottom: 60px;
}

/* BARRE DE FILTRES & RECHERCHE ACTUALITÉS */
.news-filter-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, var(--br, 14px));
    padding: 16px 20px 14px;
    margin-bottom: 28px;
    box-shadow: 0 4px 20px rgba(59, 76, 107, 0.06);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.news-filter-form {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.news-filter-control {
    position: relative;
    display: flex;
    align-items: center;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.16);
    border-radius: var(--br-sm, 8px);
    transition: all 0.2s ease;
    flex: 1 1 320px;
}
.news-filter-control:focus-within {
    background: #ffffff;
    border-color: #3b4c6b;
    box-shadow: 0 0 0 3px rgba(59, 76, 107, 0.12);
}

.news-input {
    width: 100%;
    padding: 9px 32px 9px 10px;
    font-size: 13px;
    color: #1e293b;
    background: transparent;
    border: none;
    outline: none;
    font-family: inherit;
}
.news-input::placeholder {
    color: #94a3b8;
    font-size: 12.5px;
}

.news-filter-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.news-filter-btn {
    padding: 9px 20px;
    font-size: 12.5px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: var(--br-sm, 8px);
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.4) !important;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.2);
}
.news-filter-btn:hover {
    background: linear-gradient(135deg, #46597c 0%, #2e3e58 100%) !important;
    border-color: #f3e8c9 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.3);
}
.news-reset-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    font-size: 12px;
    font-weight: 600;
    color: #b91c1c !important;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: var(--br-sm, 8px);
    text-decoration: none;
    transition: all 0.2s ease;
}
.news-reset-btn:hover {
    background: #fee2e2;
    border-color: #fca5a5;
    transform: translateY(-1px);
}

/* PASTILLES D'ANNÉES RAPIDES */
.news-year-pills {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    padding: 4px 0 2px;
    scrollbar-width: thin;
}
.news-year-pills::-webkit-scrollbar {
    height: 4px;
}
.news-year-pills::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
.year-pill {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    background: #f1f5f9;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s ease;
    flex-shrink: 0;
}
.year-pill:hover {
    background: #e2e8f0;
    color: #1e293b;
    border-color: rgba(59, 76, 107, 0.25);
    transform: translateY(-1px);
}
.year-pill.is-active {
    background: #3b4c6b;
    color: #ffffff;
    border-color: #3b4c6b;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.25);
}

.news-results-count {
    display: flex;
    justify-content: flex-end;
    font-size: 11.5px;
    color: #64748b;
    padding-top: 4px;
    border-top: 1px dashed rgba(59, 76, 107, 0.08);
}
.news-results-count strong {
    color: #3b4c6b;
    margin-right: 3px;
}

/* EMPTY STATE */
.news-empty-state {
    text-align: center;
    padding: 60px 20px;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, 14px);
    margin-top: 20px;
}
.news-empty-icon {
    color: #94a3b8;
    margin-bottom: 14px;
}
.news-empty-state h3 {
    font-size: 18px;
    color: #1e293b;
    margin-bottom: 8px;
}
.news-empty-state p {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 20px;
}

/* ============================================================
   GRILLE D'ACTUALITÉS & CARTES COMPACTES DE PRESTIGE
   ============================================================ */
.news-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    column-gap: 16px;
    row-gap: 20px;
}

@media (max-width: 1300px) {
    .news-grid {
        grid-template-columns: repeat(4, 1fr);
        column-gap: 16px;
        row-gap: 20px;
    }
}
@media (max-width: 960px) {
    .news-grid {
        grid-template-columns: repeat(3, 1fr);
        column-gap: 14px;
        row-gap: 18px;
    }
}
@media (max-width: 640px) {
    .news-grid {
        grid-template-columns: repeat(2, 1fr);
        column-gap: 10px;
        row-gap: 14px;
    }
    .news-filter-card {
        padding: 12px 14px;
    }
    .news-filter-form {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }
    .news-filter-control,
    .news-filter-control.search-control {
        width: 100% !important;
        flex: 0 0 auto !important;
        height: 38px !important;
    }
    .news-filter-actions {
        width: 100%;
    }
    .news-filter-btn {
        flex: 1;
        height: 36px;
    }
}

/* CARTE INDIVIDUELLE D'ACTUALITÉ */
.news-card {
    display: block;
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-sm, 10px);
    padding: 10px 10px 12px;
    box-shadow: 0 3px 12px rgba(59, 76, 107, 0.05);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}
.news-card:hover {
    border-color: rgba(210, 197, 162, 0.85);
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(59, 76, 107, 0.14), 0 0 0 1px rgba(210, 197, 162, 0.4);
}

.news-card-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    height: 100%;
}

/* MÉDIA / COUVERTURE */
.news-card-media {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3.4;
    border-radius: calc(var(--br-sm, 10px) - 2px);
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

.news-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.news-card:hover .news-card-img {
    transform: scale(1.04);
}

.news-card-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #cbd5e1;
}

/* BADGES / TAGS DE TYPE */
.news-card-tag {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.35);
}
.tag-newsletter {
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%);
    color: #f3e8c9;
}
.tag-event {
    background: linear-gradient(135deg, #8f6d14 0%, #6d5108 100%);
    color: #ffffff;
}

/* SURVOL LIRE */
.news-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(37, 49, 71, 0.65) 100%);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 12px;
    opacity: 0;
    transition: opacity 0.25s ease;
    pointer-events: none;
    z-index: 2;
}
.news-card:hover .news-card-overlay {
    opacity: 1;
}
.news-zoom-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    background: rgba(255, 255, 255, 0.94);
    color: #253147;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border-radius: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transform: translateY(4px);
    transition: transform 0.25s ease;
}
.news-card:hover .news-zoom-pill {
    transform: translateY(0);
}

/* CORPS DE LA CARTE */
.news-card-body {
    padding: 10px 2px 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
}

.news-card-date {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 600;
    color: #8c7853;
    letter-spacing: 0.3px;
}
.news-card-date svg {
    stroke: #8c7853;
}

.news-card-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 13.5px;
    color: #253147;
    line-height: 1.35;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 36px;
    transition: color 0.2s ease;
}
.news-card:hover .news-card-title {
    color: #3b4c6b;
}

.news-card-excerpt {
    font-size: 11px;
    line-height: 1.45;
    color: #475569;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}

.news-card-footer {
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px dashed rgba(59, 76, 107, 0.08);
}
.news-read-more {
    font-size: 10.5px;
    font-weight: 700;
    color: #3b4c6b;
    letter-spacing: 0.3px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s ease;
}
.news-card:hover .news-read-more {
    color: #8c7853;
}
.more-arrow {
    color: #8c7853;
    font-size: 10px;
    transition: transform 0.2s ease;
}
.news-card:hover .more-arrow {
    transform: translateX(3px);
}

/* ============================================================
   PAGES PERSONNALISÉES (CUSTOM PAGES) — LAYOUT MODULAIRE & RESPONSIVE
   ============================================================ */
.dynamic-page-section {
    padding-top: 24px;
    padding-bottom: 60px;
}

/* GRILLES MULTI-COLONNES POUR PAGES CUSTOM */
.dynamic-page-grid {
    display: grid;
    gap: 24px;
    align-items: stretch;
}
.dynamic-page-grid--2cols {
    grid-template-columns: repeat(2, 1fr);
}
.dynamic-page-grid--3cols {
    grid-template-columns: repeat(3, 1fr);
}
.dynamic-page-grid--4cols {
    grid-template-columns: repeat(4, 1fr);
}
.dynamic-page-grid--1cols,
.dynamic-page-grid--1col {
    grid-template-columns: 1fr;
}

/* ÉTENDRE AUTOMATIQUEMENT LE DERNIER BLOC SEUL SUR TOUTE LA LARGEUR */
.dynamic-section-card--span-all,
.dynamic-page-grid--2cols > .dynamic-section-card:last-child:nth-child(odd),
.dynamic-page-grid--3cols > .dynamic-section-card:last-child:nth-child(3n+1),
.dynamic-page-grid--4cols > .dynamic-section-card:last-child:nth-child(4n+1) {
    grid-column: 1 / -1 !important;
}

.dynamic-page-grid--3cols > .dynamic-section-card:last-child:nth-child(3n+2) {
    grid-column: span 2;
}

.dynamic-page-grid--4cols > .dynamic-section-card:last-child:nth-child(4n+2) {
    grid-column: span 3;
}

.dynamic-page-grid--4cols > .dynamic-section-card:last-child:nth-child(4n+3) {
    grid-column: span 2;
}

/* CARTE SECTION DYNAMIQUE */
.dynamic-section-card,
.dynamic-page-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, var(--br, 14px));
    padding: 24px 26px 8px;
    box-shadow: 0 4px 20px rgba(59, 76, 107, 0.05);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    box-sizing: border-box;
}
.dynamic-section-card:has(.block-image),
.dynamic-section-card:has(figure) {
    padding-bottom: 6px;
}
.dynamic-section-card .block-image {
    margin-bottom: 0;
}
.dynamic-section-card .block-image figcaption {
    margin-bottom: 0;
}
.dynamic-section-card:hover,
.dynamic-page-card:hover {
    border-color: rgba(210, 197, 162, 0.85);
    box-shadow: 0 10px 28px rgba(59, 76, 107, 0.1);
}

/* BLOCS DE COLONNES INTERNES */
.block-columns {
    display: grid;
    gap: 20px;
    align-items: start;
    width: 100%;
    height: 100%;
}
.block-columns--50-50 {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
}
.block-columns--60-40 {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
}
.block-columns--40-60 {
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
}
.block-columns--70-30 {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
}
.block-columns--30-70 {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

/* Colonnes spécifiques */
.block-column {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.block-column--text {
    justify-content: space-between;
    height: 100%;
}

/* BADGES & TITRES */
.block-badge-wrap {
    margin-bottom: 6px;
}
.block-badge-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: #8c7853;
    background: rgba(210, 197, 162, 0.18);
    border: 1px solid rgba(210, 197, 162, 0.45);
    border-radius: 12px;
}

.block-title {
    font-family: 'Baskervville', Georgia, serif;
    font-size: clamp(1.2rem, 1.6vw, 1.5rem);
    font-weight: 700;
    color: #253147;
    line-height: 1.25;
    margin: 0 0 10px 0;
    letter-spacing: -0.2px;
}
.block-subtitle {
    font-family: 'Baskervville', Georgia, serif;
    font-style: italic;
    font-size: 14px;
    color: #475569;
    line-height: 1.5;
    margin: 0 0 12px 0;
}

/* CONTENU TEXTE FLUIDE */
.block-text-flow {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.block-text-p {
    font-size: 13px;
    line-height: 1.6;
    color: #334155;
    margin: 0 0 8px 0;
}
.block-text-p:last-child {
    margin-bottom: 0;
}
.block-text-lead {
    font-size: 13.5px;
    line-height: 1.6;
    color: #1e293b;
    font-weight: 500;
    margin: 0 0 8px 0;
}

/* CADRE FIGURE MUSÉAL */
.gallery-framed-figure {
    margin: 0;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.1);
    border-radius: var(--br-sm, 8px);
    padding: 6px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.gallery-framed-figure img {
    width: 100%;
    height: auto;
    max-height: 230px;
    object-fit: contain;
    display: block;
    border-radius: calc(var(--br-sm, 8px) - 2px);
    transition: transform 0.4s ease;
}
.gallery-framed-figure:hover img {
    transform: scale(1.03);
}
.gallery-framed-figure figcaption {
    font-size: 11px;
    color: #64748b;
    font-style: italic;
    text-align: center;
    padding: 6px 4px 2px;
    line-height: 1.35;
}

/* LECTEUR VIDÉO RESPONSIVE */
.video-responsive-wrap {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: var(--br-sm, 8px);
    box-shadow: 0 4px 16px rgba(32, 36, 57, 0.12);
    background: #0b0e1a;
    border: 1px solid rgba(59, 76, 107, 0.12);
}
.video-responsive-wrap iframe,
.video-responsive-wrap video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ACTION BOUTONS */
.column-action-wrap {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px dashed rgba(59, 76, 107, 0.08);
}
.btn-expertise-gold {
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.4) !important;
    padding: 9px 18px;
    font-size: 12px;
    font-weight: 700;
    border-radius: var(--br-sm, 8px);
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 8px rgba(59, 76, 107, 0.2);
    text-decoration: none !important;
    transition: all 0.25s ease;
}
.btn-expertise-gold:hover {
    background: linear-gradient(135deg, #46597c 0%, #2e3e58 100%) !important;
    border-color: #f3e8c9 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(59, 76, 107, 0.3);
}
.btn-gold-arrow {
    color: #f3e8c9;
    transition: transform 0.2s ease;
}
.btn-expertise-gold:hover .btn-gold-arrow {
    transform: translateX(3px);
}

.btn-flipbook-showcase {
    background: linear-gradient(135deg, #ffffff 0%, #faf6ee 100%) !important;
    color: #2b3a4a !important;
    border: 1.5px solid #d2c5a2 !important;
    padding: 9px 18px;
    font-size: 12px;
    font-weight: 700;
    border-radius: var(--br-sm, 8px);
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 8px rgba(140, 120, 83, 0.12);
    text-decoration: none !important;
    transition: all 0.25s ease;
}
.btn-flipbook-showcase:hover {
    background: linear-gradient(135deg, #3b4c6b 0%, #253147 100%) !important;
    color: #ffffff !important;
    border-color: #3b4c6b !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(59, 76, 107, 0.25);
}
.btn-flipbook-arrow {
    color: #8c7853;
    transition: transform 0.2s ease;
}
.btn-flipbook-showcase:hover .btn-flipbook-arrow {
    color: #f3e8c9;
    transform: translateX(3px);
}

/* SÉPARATEUR ÉLÉGANT */
.block-separator--fleur {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin: 28px 0;
}
.block-sep-line {
    flex: 1;
    max-width: 140px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(210, 197, 162, 0.45), transparent);
}
.block-sep-fleur {
    color: #d2c5a2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ============================================================
   RESPONSIVE : DESKTOP / TABLETTE / MOBILE
   ============================================================ */

/* TABLETTE (769px à 1080px) */
@media (max-width: 1080px) {
    .dynamic-page-grid--3cols,
    .dynamic-page-grid--4cols {
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }
    .dynamic-section-card,
    .dynamic-page-card {
        padding: 20px 20px 8px;
    }
    .block-columns {
        gap: 16px;
    }
}

/* TABLETTE MOYENNE (768px à 900px) */
@media (max-width: 900px) {
    .dynamic-page-grid--2cols {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .block-columns--50-50,
    .block-columns--60-40,
    .block-columns--40-60,
    .block-columns--70-30,
    .block-columns--30-70 {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    }
}

/* MOBILE (<= 767px) */
@media (max-width: 767px) {
    .dynamic-page-section {
        padding-top: 18px;
        padding-bottom: 40px;
    }
    .dynamic-page-grid--2cols,
    .dynamic-page-grid--3cols,
    .dynamic-page-grid--4cols {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .dynamic-section-card,
    .dynamic-page-card {
        padding: 16px 14px 6px;
        border-radius: var(--br-sm, 10px);
    }
    .block-columns,
    .block-columns--50-50,
    .block-columns--60-40,
    .block-columns--40-60,
    .block-columns--70-30,
    .block-columns--30-70 {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }
    .block-column--image {
        order: -1;
    }
    .block-column--video {
        order: -1;
    }
    .gallery-framed-figure img {
        max-height: 200px;
    }
    .block-title {
        font-size: 1.25rem;
    }
    .btn-expertise-gold,
    .btn-flipbook-showcase {
        width: 100%;
        justify-content: center;
        box-sizing: border-box;
        padding: 11px 16px;
    }
}

/* ============================================================
   « PERLES D'INTERSECTION » — FILIGRANE DORÉ VIVANT
   Ornements uniques aux angles créés par l'intersection
   des éléments constitutifs des divisions de page.
   ============================================================ */

/* ---- Keyframes ---- */
@keyframes filigree-breathe {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.85; }
}
@keyframes pearl-spin {
    to { transform: rotate(360deg); }
}
@keyframes filigree-thread {
    0% { background-position: -40px 0, 0 -40px; }
    50% { background-position: 0 0, 0 0; }
    100% { background-position: 40px 0, 0 40px; }
}

/* ---- Card-Level Corner Filigree ---- */

/* Golden L-bracket — top-left corner */
.dynamic-section-card::before,
.dynamic-page-card::before {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    width: 22px;
    height: 22px;
    background:
        linear-gradient(90deg, rgba(210,197,162,0.55), transparent) top left / 100% 1.5px no-repeat,
        linear-gradient(180deg, rgba(210,197,162,0.55), transparent) top left / 1.5px 100% no-repeat;
    pointer-events: none;
    z-index: 2;
    animation: filigree-breathe 6s ease-in-out infinite;
    transition: width 0.5s cubic-bezier(0.16, 1, 0.3, 1),
                height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Crystal Pearl — bottom-right corner
   Gradient conique rotatif créant un effet de réfraction
   comme une pierre précieuse miniature.
   backdrop-filter : effet lentille/cristal sur le fond. */
.dynamic-section-card::after,
.dynamic-page-card::after {
    content: '';
    position: absolute;
    bottom: -3px;
    right: -3px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
        rgba(243,232,201,0.95),
        rgba(210,197,162,0.35),
        rgba(184,168,128,0.85),
        rgba(232,220,196,0.35),
        rgba(243,232,201,0.95)
    );
    backdrop-filter: blur(1.5px);
    -webkit-backdrop-filter: blur(1.5px);
    box-shadow: 0 0 6px rgba(210,197,162,0.2),
                inset 0 0 1px rgba(255,255,255,0.6);
    pointer-events: none;
    z-index: 2;
    animation: pearl-spin 16s linear infinite,
               filigree-breathe 6s ease-in-out infinite 3s;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Staggered breathing for organic, living feel */
.dynamic-section-card:nth-child(even)::before { animation-delay: 2s; }
.dynamic-section-card:nth-child(3n)::before { animation-delay: 4s; }
.dynamic-section-card:nth-child(even)::after { animation-delay: 0s, 5s; }
.dynamic-section-card:nth-child(3n+1)::after { animation-delay: 0s, 1.5s; }

/* Hover: L-bracket expands elegantly, pearl brightens */
.dynamic-section-card:hover::before,
.dynamic-page-card:hover::before {
    width: 32px;
    height: 32px;
    background:
        linear-gradient(90deg, rgba(243,232,201,0.85), transparent) top left / 100% 1.5px no-repeat,
        linear-gradient(180deg, rgba(243,232,201,0.85), transparent) top left / 1.5px 100% no-repeat;
    animation-play-state: paused;
    opacity: 1;
}

.dynamic-section-card:hover::after,
.dynamic-page-card:hover::after {
    width: 7px;
    height: 7px;
    box-shadow: 0 0 12px rgba(210,197,162,0.5),
                inset 0 0 2px rgba(255,255,255,0.8);
}

/* Adjacent card corner communication:
   When hovering one card, the next card's L-bracket
   responds — creating a living dialogue between corners */
.dynamic-page-grid .dynamic-section-card:hover + .dynamic-section-card::before {
    width: 28px;
    height: 28px;
    background:
        linear-gradient(90deg, rgba(243,232,201,0.7), transparent) top left / 100% 1.5px no-repeat,
        linear-gradient(180deg, rgba(243,232,201,0.7), transparent) top left / 1.5px 100% no-repeat;
    opacity: 0.9;
}

/* ---- Section-Level Corner Ornaments ---- */
/* Larger, more transparent L-brackets at section boundaries */
.dynamic-page-section {
    position: relative;
}
.dynamic-page-section > .container::before,
.dynamic-page-section > .container::after {
    content: '';
    position: absolute;
    width: 36px;
    height: 36px;
    pointer-events: none;
    z-index: 1;
    animation: filigree-breathe 8s ease-in-out infinite;
}
.dynamic-page-section > .container {
    position: relative;
}
.dynamic-page-section > .container::before {
    top: 0;
    left: 0;
    background:
        linear-gradient(90deg, rgba(210,197,162,0.3), transparent) top left / 100% 1px no-repeat,
        linear-gradient(180deg, rgba(210,197,162,0.3), transparent) top left / 1px 100% no-repeat;
    animation-delay: 1s;
}
.dynamic-page-section > .container::after {
    bottom: 0;
    right: 0;
    background:
        linear-gradient(270deg, rgba(210,197,162,0.3), transparent) bottom right / 100% 1px no-repeat,
        linear-gradient(0deg, rgba(210,197,162,0.3), transparent) bottom right / 1px 100% no-repeat;
    animation-delay: 5s;
}

/* ---- Footer/Marquee Boundary Ornaments ---- */
.site-footer {
    position: relative;
}
.footer-marquee {
    position: relative;
}
.footer-marquee::before {
    content: '';
    position: absolute;
    top: -1px;
    left: 24px;
    width: 28px;
    height: 28px;
    background:
        linear-gradient(90deg, rgba(210,197,162,0.25), transparent) top left / 100% 1px no-repeat,
        linear-gradient(180deg, rgba(210,197,162,0.25), transparent) top left / 1px 100% no-repeat;
    pointer-events: none;
    z-index: 2;
    animation: filigree-breathe 8s ease-in-out infinite 2s;
}
.footer-marquee::after {
    content: '';
    position: absolute;
    top: -1px;
    right: 24px;
    width: 28px;
    height: 28px;
    background:
        linear-gradient(270deg, rgba(210,197,162,0.25), transparent) top right / 100% 1px no-repeat,
        linear-gradient(180deg, rgba(210,197,162,0.25), transparent) top right / 1px 100% no-repeat;
    pointer-events: none;
    z-index: 2;
    animation: filigree-breathe 8s ease-in-out infinite 6s;
}

/* ---- Footer Inner Card Corners ---- */
.footer-card {
    position: relative;
}
.footer-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 16px;
    height: 16px;
    background:
        linear-gradient(90deg, rgba(210,197,162,0.35), transparent) top left / 100% 1px no-repeat,
        linear-gradient(180deg, rgba(210,197,162,0.35), transparent) top left / 1px 100% no-repeat;
    pointer-events: none;
    z-index: 1;
    animation: filigree-breathe 7s ease-in-out infinite;
}
.footer-card:nth-child(2)::before { animation-delay: 1.8s; }
.footer-card:nth-child(3)::before { animation-delay: 3.5s; }
.footer-card:nth-child(4)::before { animation-delay: 5.2s; }

/* ---- Respect reduced motion preference ---- */
@media (prefers-reduced-motion: reduce) {
    .dynamic-section-card::before,
    .dynamic-section-card::after,
    .dynamic-page-card::before,
    .dynamic-page-card::after,
    .dynamic-page-section > .container::before,
    .dynamic-page-section > .container::after,
    .footer-marquee::before,
    .footer-marquee::after,
    .footer-card::before {
        animation: none !important;
        opacity: 0.5;
    }
}

/* ---- Mobile: smaller corners ---- */
@media (max-width: 767px) {
    .dynamic-section-card::before,
    .dynamic-page-card::before {
        width: 16px;
        height: 16px;
    }
    .dynamic-section-card::after,
    .dynamic-page-card::after {
        width: 4px;
        height: 4px;
        bottom: -2px;
        right: -2px;
    }
}

/* ============================================================
   PAGE ARTISTES & MONOGRAPHIES — FILTRES ET AGENCEMENT MUSÉAL
   ============================================================ */

.artists-filter-wrapper {
    position: -webkit-sticky;
    position: sticky;
    top: var(--header-height, 68px);
    z-index: 85;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(59, 76, 107, 0.14);
    border-radius: var(--br-lg, 14px);
    padding: 12px 18px;
    margin-bottom: 30px;
    box-shadow: 0 8px 30px rgba(36, 47, 68, 0.08);
    width: 100%;
    box-sizing: border-box;
    transition: top 0.2s ease, box-shadow 0.25s ease;
}

.artists-filter-bar {
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}

.artists-filter-btn {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.15);
    color: #3b4c6b;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.4px;
    padding: 9px 16px;
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.artists-filter-btn:hover {
    background: #ffffff;
    border-color: #d2c5a2;
    color: #1e2638;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(59, 76, 107, 0.1);
}

.artists-filter-btn.is-active {
    background: linear-gradient(135deg, #3b4c6b 0%, #242f44 100%);
    border-color: #d2c5a2;
    color: #f3e8c9;
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.25);
    transform: translateY(-1px);
}

@media (max-width: 768px) {
    .artists-filter-wrapper {
        top: var(--header-height, 58px);
        padding: 10px 12px;
        border-radius: 12px;
        margin-bottom: 22px;
    }
}

@media (max-width: 600px) {
    .artists-filter-bar {
        gap: 6px;
    }
    .artists-filter-btn {
        flex: 1 1 calc(50% - 6px);
        font-size: 11px;
        padding: 8px 10px;
        line-height: 1.25;
    }
    .artists-filter-btn[data-filter="all"],
    .artists-filter-btn[data-filter="pointillisme"] {
        flex: 1 1 100%;
    }
}

.btn-monographie-direct {
    background: linear-gradient(135deg, #3b4c6b 0%, #242f44 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(210, 197, 162, 0.4) !important;
    padding: 9px 18px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.6px !important;
    border-radius: var(--br-sm, 8px) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    text-decoration: none !important;
    transition: all 0.25s ease !important;
}

.btn-monographie-direct:hover {
    background: linear-gradient(135deg, #475a7e 0%, #2e3c54 100%) !important;
    border-color: #f3e8c9 !important;
    color: #f3e8c9 !important;
    transform: translateX(3px) !important;
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.25) !important;
}

/* ============================================================
   PAGE EXPERTISE & AUTHENTIFICATION — HUB D'AUTORITÉ OFFICIEL
   ============================================================ */

.expertise-hero-pills {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.hero-trust-pill {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(210, 197, 162, 0.5);
    border-radius: 20px;
    padding: 5px 14px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #242f44;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.hero-trust-pill .pill-sparkle {
    color: #b8a880;
    font-size: 11px;
}

.expertise-hub-section {
    padding-top: 36px;
}

/* CARTE MAÎTRESSE D'AUTORITÉ EXPERT */
.expert-profile-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-lg, 14px);
    padding: 36px;
    box-shadow: 0 16px 40px rgba(24, 35, 56, 0.06), 0 2px 6px rgba(0, 0, 0, 0.02);
    margin-bottom: 50px;
    position: relative;
    overflow: hidden;
}

.expert-profile-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #d2c5a2, #3b4c6b 50%, #d2c5a2);
}

.expert-profile-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 36px;
    align-items: start;
}

.expert-portrait-column {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.expert-portrait-frame {
    position: relative;
    width: 100%;
    max-width: 220px;
    aspect-ratio: 4 / 5;
    border-radius: 12px;
    overflow: hidden;
    background: #182338;
    border: 2px solid rgba(210, 197, 162, 0.4);
    box-shadow: 0 12px 30px rgba(24, 35, 56, 0.18);
}

.expert-portrait-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.expert-seal-badge {
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
    background: rgba(24, 35, 56, 0.88);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(210, 197, 162, 0.5);
    border-radius: 6px;
    padding: 5px 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: #f3e8c9;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 1px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.expert-content-column {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.expert-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #b8a880;
    text-transform: uppercase;
    display: block;
    margin-bottom: 4px;
}

.expert-name {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 2rem;
    font-weight: 600;
    color: #1e2638;
    margin: 0 0 4px 0;
    line-height: 1.2;
}

.expert-title {
    font-size: 14px;
    font-weight: 700;
    color: #3b4c6b;
    margin: 0 0 2px 0;
}

.expert-role {
    font-size: 13px;
    color: #64748b;
    margin: 0 0 12px 0;
    font-style: italic;
}

.expert-bio-text p {
    font-size: 14px;
    line-height: 1.75;
    color: #334155;
    margin: 0;
}

.expert-badges-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 16px 0;
}

.expert-badge-card {
    background: #f8fafc;
    border: 1px solid rgba(59, 76, 107, 0.1);
    border-radius: 8px;
    padding: 12px 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    transition: all 0.25s ease;
}

.expert-badge-card:hover {
    background: #ffffff;
    border-color: #d2c5a2;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(59, 76, 107, 0.08);
}

.badge-icon-wrap {
    color: #b8a880;
    flex-shrink: 0;
    margin-top: 2px;
}

.badge-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.badge-body strong {
    font-size: 12px;
    color: #1e2638;
    line-height: 1.3;
}

.badge-body span {
    font-size: 11px;
    color: #64748b;
    line-height: 1.4;
}

.btn-cta-expertise {
    padding: 12px 24px !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.6px !important;
    border-radius: var(--br-sm, 8px) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    text-decoration: none !important;
}

/* LE PROCESSUS D'EXPERTISE EN 4 ÉTAPES */
.expertise-process-section {
    margin-bottom: 60px;
}

.section-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #b8a880;
    text-transform: uppercase;
    display: block;
    margin-bottom: 6px;
}

.section-heading {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.85rem;
    color: #1e2638;
    margin: 0 0 8px 0;
}

.section-subheading {
    font-size: 14px;
    color: #64748b;
    max-width: 680px;
    margin: 0 auto 36px auto;
    line-height: 1.6;
}

.expertise-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.step-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-sm, 12px);
    padding: 24px 22px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.03);
    transition: all 0.25s ease;
    display: flex;
    flex-direction: column;
}

.step-card:hover {
    transform: translateY(-3px);
    border-color: #d2c5a2;
    box-shadow: 0 10px 26px rgba(59, 76, 107, 0.08);
}

.step-title {
    font-size: 14px;
    font-weight: 700;
    color: #1e2638;
    margin: 0 0 10px 0;
    line-height: 1.35;
}

.step-desc {
    font-size: 12.5px;
    line-height: 1.65;
    color: #475569;
    margin: 0;
}

/* SERVICES D'EXPERTISE */
.expertise-services-section {
    margin-bottom: 60px;
}

.expertise-services-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 30px;
}

.service-card {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-left: 3px solid #d2c5a2;
    border-radius: var(--br-sm, 10px);
    padding: 24px 26px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.03);
    transition: all 0.25s ease;
}

.service-card:hover {
    border-color: rgba(59, 76, 107, 0.25);
    border-left-color: #3b4c6b;
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(59, 76, 107, 0.08);
}

.service-icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: rgba(59, 76, 107, 0.06);
    border: 1px solid rgba(210, 197, 162, 0.4);
    color: #8c7853;
    margin-bottom: 14px;
    transition: all 0.25s ease;
}

.service-card:hover .service-icon-wrap {
    background: linear-gradient(135deg, #3b4c6b 0%, #25334a 100%);
    color: #f3e8c9;
    border-color: #d2c5a2;
    transform: scale(1.05);
    box-shadow: 0 4px 14px rgba(36, 47, 68, 0.2);
}

.service-card h3 {
    font-size: 15px;
    font-weight: 700;
    color: #1e2638;
    margin: 0 0 8px 0;
}

.service-card p {
    font-size: 13px;
    line-height: 1.65;
    color: #475569;
    margin: 0;
}

/* FORMULAIRE DIRECT DE DEMANDE */
.expertise-form-card {
    background: linear-gradient(135deg, #242f44 0%, #182236 100%);
    color: #ffffff;
    border-radius: var(--br-lg, 14px);
    padding: 36px 40px;
    box-shadow: 0 20px 50px rgba(15, 23, 42, 0.35);
    margin-bottom: 60px;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.form-card-header {
    text-align: center;
    max-width: 640px;
    margin: 0 auto 28px auto;
}

.form-kicker {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #d2c5a2;
    text-transform: uppercase;
    display: block;
    margin-bottom: 6px;
}

.form-card-header h2 {
    font-family: 'Baskervville', Georgia, serif;
    font-size: 1.85rem;
    color: #ffffff;
    margin: 0 0 8px 0;
}

.form-card-header p {
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.6;
    margin: 0;
}

.expertise-direct-form {
    max-width: 720px;
    margin: 0 auto;
}

.form-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 20px;
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-field label {
    font-size: 12px;
    font-weight: 600;
    color: #e2e8f0;
    letter-spacing: 0.4px;
}

.form-control-modern {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 8px;
    color: #ffffff;
    padding: 11px 14px;
    font-size: 13px;
    font-family: inherit;
    transition: all 0.2s ease;
    box-sizing: border-box;
    width: 100%;
}

.form-control-modern option {
    background: #1e2638;
    color: #ffffff;
}

.form-control-modern:focus {
    outline: none;
    border-color: #d2c5a2;
    background: rgba(255, 255, 255, 0.14);
    box-shadow: 0 0 0 3px rgba(210, 197, 162, 0.25);
}

.form-submit-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.btn-submit-expertise {
    background: linear-gradient(135deg, #d2c5a2 0%, #b8a880 100%) !important;
    color: #1e2638 !important;
    border: none !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
    padding: 13px 28px !important;
    border-radius: 8px !important;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3) !important;
    transition: all 0.25s ease !important;
}

.btn-submit-expertise:hover {
    background: linear-gradient(135deg, #f3e8c9 0%, #d2c5a2 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(210, 197, 162, 0.35) !important;
}

.form-privacy-note {
    font-size: 11.5px;
    color: rgba(255, 255, 255, 0.65);
}

/* FAQ EXPERTISE — Remplit 100% de la largeur du container défini en admin */
.expertise-faq-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto 40px auto;
    box-sizing: border-box;
}

.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 24px;
}

.faq-item {
    background: #ffffff;
    border: 1px solid rgba(59, 76, 107, 0.12);
    border-radius: var(--br-sm, 10px);
    overflow: hidden;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.faq-item[open] {
    border-color: #d2c5a2;
    box-shadow: 0 6px 20px rgba(59, 76, 107, 0.06);
}

.faq-question {
    padding: 16px 20px;
    font-size: 14px;
    font-weight: 600;
    color: #1e2638;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    user-select: none;
    list-style: none;
}

.faq-question::-webkit-details-marker {
    display: none;
}

.faq-toggle-icon {
    font-size: 18px;
    color: #b8a880;
    font-weight: 400;
    transition: transform 0.25s ease;
}

.faq-item[open] .faq-toggle-icon {
    transform: rotate(45deg);
    color: #1e2638;
}

.faq-answer {
    padding: 0 20px 18px 20px;
    font-size: 13px;
    line-height: 1.7;
    color: #475569;
    border-top: 1px solid rgba(59, 76, 107, 0.06);
    padding-top: 14px;
}

/* RESPONSIVE TABLET & MOBILE */
@media (max-width: 992px) {
    .expert-profile-layout {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 24px;
    }
    .expert-portrait-frame {
        margin: 0 auto;
    }
    .expert-badges-grid {
        grid-template-columns: 1fr;
        text-align: left;
    }
    .expertise-steps-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .expertise-services-grid {
        grid-template-columns: 1fr;
    }
    .form-grid-2 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .expert-profile-card {
        padding: 24px 18px;
    }
    .expertise-steps-grid {
        grid-template-columns: 1fr;
    }
    .expertise-form-card {
        padding: 24px 18px;
    }
}

/* ============================================================
   TYPOGRAPHIE MOBILE — JUSTIFICATION UNIVERSELLE DES TEXTES
   ============================================================ */
@media (max-width: 900px) {
    p,
    .block-text p,
    .block-text-p,
    .block-text-lead,
    .block-text-flow,
    .block-text-flow p,
    .publication-desc,
    .publication-desc p,
    .expertise-artist-bio,
    .expertise-bio-excerpt,
    .step-desc,
    .service-card p,
    .oeuvre-desc,
    .oeuvre-desc p,
    .article-content p,
    .article-body p,
    .news-card-excerpt,
    .artiste-bio-text,
    .artiste-bio p,
    .dynamic-section-card p,
    .dynamic-page-card p,
    .faq-answer,
    .faq-answer p,
    .about-text p,
    .comite-desc p,
    .presentation-text p,
    .expert-bio p,
    .expert-profile-text p,
    .author-bio p,
    .rich-text p,
    .editorial-p,
    .dynamic-page-section p {
        text-align: justify !important;
        text-justify: inter-word !important;
        hyphens: auto !important;
        -webkit-hyphens: auto !important;
    }
}




