/* /public/assets/vitrine/pages/telechargements.css */
.vitrine .lsdl3-downloads{
            --lsdl3-red: var(--color-primary, var(--primary-color, var(--primary, #dc2626)));
            --lsdl3-red-light: color-mix(in srgb, var(--lsdl3-red), white 15%);
            --lsdl3-red-soft: color-mix(in srgb, var(--lsdl3-red) 6%, white);
        }
.vitrine .lsdl3-downloads *,.vitrine .lsdl3-downloads *::before,.vitrine .lsdl3-downloads *::after{ box-sizing: border-box; }
.vitrine .lsdl3-downloads-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.vitrine .lsdl3-software-card{
            display: flex; flex-direction: column; align-items: center; min-width: 0;
            padding: 1.25rem; border-radius: .75rem; text-align: center;
            background: var(--bg-card, #fff); color: var(--text-primary, #1f2937);
            border: 1px solid var(--border-color, #e5e7eb); box-shadow: 0 2px 6px rgb(0 0 0 / 6%);
        }
.vitrine .lsdl3-software-content{ width: 100%; margin-bottom: 1.25rem; }
.vitrine .lsdl3-software-logo{
            display: flex; align-items: center; justify-content: center;
            width: 72px; height: 72px; margin: 0 auto .875rem;
            padding: 6px; border-radius: .875rem; background: #fff;
        }
.vitrine .lsdl3-software-logo img{ display: block; width: 60px; height: 60px; object-fit: contain; }
.vitrine .lsdl3-software-card h2{ margin: 0 0 .5rem; color: inherit; font-size: 1.25rem; font-weight: 700; line-height: 1.35; }
.vitrine .lsdl3-software-card p{ margin: 0; min-height: 2.8em; color: var(--text-secondary, #6b7280); font-size: .875rem; line-height: 1.4; }
.vitrine .lsdl3-download-area{
            position: relative; flex-shrink: 0; margin-top: auto;
            width: 100%; height: 42px; border-radius: 9999px; overflow: hidden;
            background: linear-gradient(to top, var(--lsdl3-red), var(--lsdl3-red-light));
            box-shadow: 0 2px 6px rgb(0 0 0 / 10%);
            transition: height .3s cubic-bezier(.67,.13,.1,.81), border-radius .3s;
        }
.vitrine .lsdl3-download-trigger{
            position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
            width: 100%; height: 42px; border: 0; border-radius: inherit; padding: 0;
            color: #fff; background: transparent; cursor: pointer; font: inherit;
            font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .5px;
            overflow: hidden; z-index: 2; transition: transform .3s, opacity .3s;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger{
            display: flex !important; align-items: center; justify-content: center;
            color: #fff !important; white-space: nowrap; font-size: 0 !important;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger::before,.vitrine .lsdl3-downloads .lsdl3-download-trigger::after{
            position: absolute !important; left: 0 !important; right: auto !important;
            bottom: auto !important; width: 100% !important; height: 42px !important;
            display: flex !important; align-items: center; justify-content: center;
            margin: 0 !important; padding: 0 !important; border: 0 !important;
            color: #fff !important; background: transparent !important;
            transform: none !important; pointer-events: none;
            letter-spacing: inherit; text-transform: inherit; font-weight: inherit;
            transition: top .3s cubic-bezier(.67,.13,.1,.81), opacity .3s;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger::before{
            content: "Télécharger" !important; top: 0; opacity: 1;
            font-size: .8rem;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger::after{
            content: "Choisir une plateforme" !important; top: 100%; opacity: 0;
            font-size: .65rem;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger:hover::before,.vitrine .lsdl3-downloads .lsdl3-download-trigger:focus-visible::before{
            top: -100%; opacity: 0;
        }
.vitrine .lsdl3-downloads .lsdl3-download-trigger:hover::after,.vitrine .lsdl3-downloads .lsdl3-download-trigger:focus-visible::after{
            top: 0; opacity: 1;
        }
.vitrine .lsdl3-platform-heading{ position: absolute; top: 10px; left: 10px; margin: 0; font-size: .75rem; font-weight: 600; color: var(--text-secondary, #6b7280); }
.vitrine .lsdl3-platforms{
            display: flex; flex-direction: column; align-items: center; gap: 4px;
            padding: 40px 4px 10px; height: auto; background: var(--bg-card, #fff);
            opacity: 0; visibility: hidden; transform: translateY(-8px);
            transition: transform .3s, opacity .3s, visibility .3s;
        }
.vitrine .lsdl3-platform-row{
            display: flex !important; flex-direction: row !important;
            justify-content: center !important; align-items: center;
            flex-wrap: nowrap !important; width: 100%; gap: 4px;
        }
.vitrine .lsdl3-platform-option{
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            gap: 5px; flex: 0 0 64px; width: 64px; height: 64px; padding: 6px 2px;
            border: 1px solid transparent; border-radius: .5rem;
            color: var(--lsdl3-red); text-decoration: none; font-size: .62rem; font-weight: 600;
            line-height: 1.2; text-transform: uppercase; transition: background .2s, border-color .2s;
        }
.vitrine .lsdl3-platform-option .lsdl3-os-icon{ display: block; width: 26px; height: 26px; min-width: 26px; min-height: 26px; max-width: 26px; max-height: 26px; flex-shrink: 0; object-fit: contain; }
.vitrine .lsdl3-platform-option:hover{ background: var(--lsdl3-red-soft); color: var(--lsdl3-red); border-color: color-mix(in srgb, var(--lsdl3-red) 20%, transparent); }
.vitrine .lsdl3-download-close{ position: absolute; top: 6px; right: 6px; z-index: 3; display: none; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: var(--lsdl3-red-soft); color: var(--lsdl3-red); font-size: 20px; line-height: 1; cursor: pointer; }
.vitrine .lsdl3-download-area.is-open{ height: var(--lsdl3-panel-height, 126px); border-radius: .65rem; background: var(--bg-card, #fff); box-shadow: inset 0 0 0 1px var(--border-color, #e5e7eb); }
.vitrine .lsdl3-download-area.is-open .lsdl3-download-trigger{ transform: translateY(-100%); opacity: 0; pointer-events: none; }
.vitrine .lsdl3-download-area.is-open .lsdl3-platforms{ transform: translateY(0); opacity: 1; visibility: visible; }
.vitrine .lsdl3-download-area.is-open .lsdl3-download-close{ display: block; }
.vitrine .lsdl3-platform-option:focus-visible,.vitrine .lsdl3-download-close:focus-visible{ outline: 2px solid var(--lsdl3-red); outline-offset: 1px; background: var(--lsdl3-red-soft); }
.vitrine .lsdl3-download-trigger:focus-visible{ outline: 2px solid #fff; outline-offset: -4px; }
.vitrine .lsdl3-downloads:not(.lsdl3-enhanced) .lsdl3-download-area{ height: auto; border-radius: .65rem; background: var(--bg-card, #fff); }
.vitrine .lsdl3-downloads:not(.lsdl3-enhanced) .lsdl3-download-trigger{ display: none; }
.vitrine .lsdl3-downloads:not(.lsdl3-enhanced) .lsdl3-platforms{ opacity: 1; visibility: visible; transform: none; }
@media (prefers-reduced-motion: reduce) {.vitrine .lsdl3-downloads *,.vitrine .lsdl3-downloads *::before,.vitrine .lsdl3-downloads *::after{ transition: none !important; }}
.vitrine .lsdl3-downloads .lsdl3-software-card{ position: relative; padding: 12px !important; height: auto !important; min-height: 0 !important; }
.vitrine .lsdl3-downloads .lsdl3-software-content{ margin-bottom: 1.25rem !important; }
.vitrine .lsdl3-downloads .lsdl3-download-area{ position: relative !important; inset: auto !important; transform: none !important; width: 100% !important; }
.vitrine .lsdl3-downloads .lsdl3-platform-option{ flex: 0 0 64px !important; width: 64px !important; min-width: 64px !important; max-width: 64px !important; height: 64px !important; min-height: 64px !important; max-height: 64px !important; }
@media (max-width: 1099px) {.vitrine .lsdl3-downloads-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }}
@media (max-width: 575px) {.vitrine .lsdl3-downloads-grid{ grid-template-columns: minmax(0, 1fr); }}