
        .page-section { display: none; }
        .page-section.active { display: block; animation: fadeIn 0.5s ease-in; }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .editable-block { cursor: pointer; outline: 2px dashed transparent; outline-offset: 4px; border-radius: 4px; transition: outline-color .2s, background-color .2s; white-space: pre-wrap; }
        .editable-block:hover { outline-color: #F97316; background-color: rgba(249,115,22,0.06); }

        .guide-item summary { list-style: none; }
        .guide-item summary::-webkit-details-marker { display: none; }

        #hero-bg-anim { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
        #hero-bg-anim .hero-aurora {
            position: absolute;
            top: 50%; left: 50%;
            width: 900px; height: 900px;
            margin: -450px 0 0 -450px;
            background: conic-gradient(from 0deg,
                transparent 0deg,
                var(--site-accent-55) 40deg,
                transparent 100deg,
                transparent 180deg,
                #3B82F655 220deg,
                transparent 280deg,
                transparent 360deg);
            filter: blur(90px);
            opacity: 0.6;
            animation: heroAuroraSpin 40s linear infinite;
            will-change: transform;
        }
        #hero-bg-anim .hero-blob {
            position: absolute;
            border-radius: 9999px;
            filter: blur(70px);
            opacity: 0.35;
            will-change: transform;
        }
        #hero-bg-anim .hero-blob-1 {
            width: 480px; height: 480px;
            top: -140px; left: -100px;
            background: radial-gradient(circle, var(--site-accent) 0%, transparent 70%);
            animation: heroBlobFloat1 18s linear infinite;
        }
        #hero-bg-anim .hero-blob-2 {
            width: 420px; height: 420px;
            bottom: -160px; right: -80px;
            background: radial-gradient(circle, #3B82F6 0%, transparent 70%);
            animation: heroBlobFloat2 22s linear infinite;
        }
        #hero-bg-anim .hero-blob-3 {
            width: 320px; height: 320px;
            top: 40%; left: 55%;
            background: radial-gradient(circle, var(--site-accent) 0%, transparent 70%);
            opacity: 0.2;
            animation: heroBlobFloat3 26s linear infinite;
        }
        @keyframes heroAuroraSpin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        @keyframes heroBlobFloat1 {
            0% { transform: translate(0, 0) scale(1); }
            25% { transform: translate(55px, 35px) scale(1.12); }
            50% { transform: translate(20px, 80px) scale(1.05); }
            75% { transform: translate(-35px, 25px) scale(1.15); }
            100% { transform: translate(0, 0) scale(1); }
        }
        @keyframes heroBlobFloat2 {
            0% { transform: translate(0, 0) scale(1); }
            25% { transform: translate(-45px, -25px) scale(1.1); }
            50% { transform: translate(-15px, -65px) scale(1.03); }
            75% { transform: translate(30px, -20px) scale(1.12); }
            100% { transform: translate(0, 0) scale(1); }
        }
        @keyframes heroBlobFloat3 {
            0% { transform: translate(0, 0) scale(1); }
            25% { transform: translate(-35px, 25px) scale(1.18); }
            50% { transform: translate(-60px, -10px) scale(1.05); }
            75% { transform: translate(-20px, -35px) scale(1.1); }
            100% { transform: translate(0, 0) scale(1); }
        }

        .success-checkmark-circle { stroke-dasharray: 160; stroke-dashoffset: 160; }
        .success-checkmark-check { stroke-dasharray: 40; stroke-dashoffset: 40; }
        .success-checkmark-circle.animate-draw { animation: successCircleDraw 0.5s ease-out forwards; }
        .success-checkmark-check.animate-draw { animation: successCheckDraw 0.35s 0.45s ease-out forwards; }
        @keyframes successCircleDraw { to { stroke-dashoffset: 0; } }
        @keyframes successCheckDraw { to { stroke-dashoffset: 0; } }

        .skeleton-shimmer {
            position: relative;
            overflow: hidden;
            background: #e5e7eb;
        }
        .skeleton-shimmer::after {
            content: '';
            position: absolute;
            inset: 0;
            transform: translateX(-100%);
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.65), transparent);
            animation: skeletonShimmer 1.6s infinite;
        }
        @keyframes skeletonShimmer {
            100% { transform: translateX(100%); }
        }

        .site-header {
            transition: transform .45s cubic-bezier(.22, 1, .36, 1), background-color .3s ease, box-shadow .3s ease;
            will-change: transform;
        }
        .site-header.is-hidden { transform: translateY(-100%); }

        .site-header-row { min-height: 5rem; transition: min-height .32s cubic-bezier(.4, 0, .2, 1); }
        .site-header-inner { max-width: 1760px; }
        .site-header-brand { min-width: 0; }
        .site-header-brand > div { white-space: nowrap; }
        #main-nav { flex: 1 1 auto; min-width: 0; }
        @media (min-width: 1280px) and (max-width: 1535px) {
            #main-nav a.nav-link { padding: .45rem .5rem; }
        }
        .site-header-logo { height: 3rem; transition: height .32s cubic-bezier(.4, 0, .2, 1); }
        .site-header-sub { display: block; max-height: 1.25rem; opacity: .85; overflow: hidden; transition: max-height .32s cubic-bezier(.4, 0, .2, 1), opacity .2s ease; }
        .site-header.is-compact .site-header-row { min-height: 3.75rem; }
        .site-header.is-compact .site-header-logo { height: 2.25rem; }
        .site-header.is-compact .site-header-sub { max-height: 0; opacity: 0; }
        .site-header.is-compact { box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .8); }

        .nav-pill {
            position: absolute;
            left: 0;
            top: 50%;
            height: 2.25rem;
            width: 0;
            margin-top: -1.125rem;
            border-radius: 999px;
            background: var(--site-accent);
            box-shadow: 0 6px 18px -6px var(--site-accent);
            opacity: 0;
            pointer-events: none;

            z-index: -1;
        }

        #main-nav { isolation: isolate; }
        .nav-pill.is-ready { transition: transform .52s cubic-bezier(.34, 1.4, .5, 1), width .52s cubic-bezier(.34, 1.4, .5, 1), opacity .25s ease; }
        .nav-pill.is-visible { opacity: 1; }

        #main-nav .nav-link {
            padding: .45rem .85rem;
            border-radius: 999px;
            color: #d1d5db;
            transition: color .3s ease;
        }
        #main-nav .nav-link:hover { color: #fff; }
        #main-nav .nav-link.is-active { color: #fff; }

        .nav-label-wrap { display: block; overflow: hidden; height: 1.25em; }
        .nav-label { display: block; transition: transform .42s cubic-bezier(.22, 1, .36, 1); }
        .nav-label > span { display: block; height: 1.25em; line-height: 1.25em; }
        #main-nav .nav-link:hover .nav-label { transform: translateY(-50%); }

        @keyframes navLinkIn {
            from { opacity: 0; transform: translateY(-10px); }
            to   { opacity: 1; transform: none; }
        }
        #main-nav .nav-link { animation: navLinkIn .5s cubic-bezier(.22, 1, .36, 1) both; }
        #main-nav .nav-link:nth-of-type(1) { animation-delay: .05s; }
        #main-nav .nav-link:nth-of-type(2) { animation-delay: .10s; }
        #main-nav .nav-link:nth-of-type(3) { animation-delay: .15s; }
        #main-nav .nav-link:nth-of-type(4) { animation-delay: .20s; }
        #main-nav .nav-link:nth-of-type(5) { animation-delay: .25s; }
        #main-nav .nav-link:nth-of-type(6) { animation-delay: .30s; }
        #main-nav .nav-link:nth-of-type(7) { animation-delay: .35s; }

        .mobile-overlay {
            position: fixed;
            inset: 0;
            z-index: 60;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: 5.5rem 1.75rem 2rem;
            overflow-y: auto;
            background: var(--site-dark);
            visibility: hidden;
            pointer-events: none;
            clip-path: circle(0% at calc(100% - 2.6rem) 2.5rem);
            transition: clip-path .58s cubic-bezier(.76, 0, .24, 1), visibility 0s linear .58s;
        }
        .mobile-overlay.is-open {
            visibility: visible;
            pointer-events: auto;
            clip-path: circle(150% at calc(100% - 2.6rem) 2.5rem);
            transition: clip-path .58s cubic-bezier(.76, 0, .24, 1), visibility 0s;
        }
        .mobile-overlay .mobile-link {
            display: block;
            width: 100%;
            text-align: left;
            padding: .5rem 0;
            font-size: 1.9rem;
            line-height: 1.25;
            font-weight: 800;
            letter-spacing: -.02em;
            color: #fff;
            opacity: 0;
            transform: translateY(22px);
            transition: opacity .4s ease, transform .5s cubic-bezier(.22, 1, .36, 1);
        }
        .mobile-overlay.is-open .mobile-link { opacity: 1; transform: none; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(1) { transition-delay: .16s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(2) { transition-delay: .21s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(3) { transition-delay: .26s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(4) { transition-delay: .31s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(5) { transition-delay: .36s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(6) { transition-delay: .41s; }
        .mobile-overlay.is-open .mobile-link:nth-of-type(7) { transition-delay: .46s; }
        .mobile-overlay .mobile-link.is-active { color: var(--site-accent); }
        .mobile-overlay .mobile-extra {
            opacity: 0;
            transform: translateY(22px);
            transition: opacity .4s ease .5s, transform .5s cubic-bezier(.22, 1, .36, 1) .5s;
        }
        .mobile-overlay.is-open .mobile-extra { opacity: 1; transform: none; }

        body.menu-open { overflow: hidden; }

        .burger { position: relative; display: inline-block; width: 24px; height: 16px; vertical-align: middle; }
        .burger span {
            position: absolute;
            left: 0;
            width: 100%;
            height: 2px;
            border-radius: 2px;
            background: currentColor;
            transition: transform .38s cubic-bezier(.76, 0, .24, 1), opacity .2s ease, width .3s ease;
        }
        .burger span:nth-child(1) { top: 0; }
        .burger span:nth-child(2) { top: 7px; width: 70%; }
        .burger span:nth-child(3) { top: 14px; }
        .is-open .burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
        .is-open .burger span:nth-child(2) { opacity: 0; }
        .is-open .burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

        body.menu-open .site-header { z-index: 70; }

        .page-section.active { animation: pageIn .62s cubic-bezier(.22, 1, .36, 1) both; }
        @keyframes pageIn {
            from { opacity: 0; transform: translateY(24px) scale(.994); filter: blur(7px); }
            to   { opacity: 1; transform: none; filter: blur(0); }
        }
        #page-sweep {
            position: fixed;
            top: 0;
            left: 0;
            height: 3px;
            width: 100%;
            z-index: 80;
            pointer-events: none;
            opacity: 0;
            transform: scaleX(0);
            transform-origin: left center;
            background: linear-gradient(90deg, transparent, var(--site-accent), transparent);
        }
        #page-sweep.is-running { animation: pageSweep .8s cubic-bezier(.65, 0, .35, 1); }
        @keyframes pageSweep {
            0%   { opacity: 1; transform: scaleX(0); transform-origin: left center; }
            50%  { opacity: 1; transform: scaleX(1); transform-origin: left center; }
            51%  { opacity: 1; transform: scaleX(1); transform-origin: right center; }
            100% { opacity: 1; transform: scaleX(0); transform-origin: right center; }
        }

        .hero-word { display: inline-block; overflow: hidden; vertical-align: bottom; }
        .hero-word > span {
            display: inline-block;
            transform: translateY(115%);
            opacity: 0;
            animation: heroWordIn .95s cubic-bezier(.22, 1, .36, 1) forwards;
        }
        @keyframes heroWordIn { to { transform: none; opacity: 1; } }
        .hero-piece, .hero-rise {
            display: inline-block;
            opacity: 0;
            transform: translateY(18px);
            animation: heroRise .85s cubic-bezier(.22, 1, .36, 1) forwards;
        }
        .hero-rise { display: block; }
        @keyframes heroRise { to { opacity: 1; transform: none; } }

        .premium-card {
            transition: transform .5s cubic-bezier(.22, 1, .36, 1), box-shadow .5s ease;
            will-change: transform;
        }
        .premium-card::after {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: inherit;
            pointer-events: none;
            opacity: 0;
            z-index: 4;
            transition: opacity .4s ease;
            background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(255, 255, 255, .20), transparent 45%);
        }
        .premium-card.is-tilting::after { opacity: 1; }
        .premium-card.is-tilting { box-shadow: 0 28px 50px -24px rgba(2, 6, 23, .55); }

        .real-photo { position: relative; overflow: hidden; }
        .real-photo img { position: absolute; inset: -6%; width: 112%; height: 112%; object-fit: cover;
            transition: transform .5s cubic-bezier(.22, 1, .36, 1); will-change: transform; }

        #photo-lightbox { z-index: 85; }
        #fiche-chantier { position: fixed; inset: 0; z-index: 75; display: none; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
        #fiche-chantier.ouverte { display: block; }
        #fiche-fond { position: fixed; inset: 0; background: #F8FAFC; opacity: 0; transition: opacity .45s ease; }
        #fiche-chantier.anime #fiche-fond { opacity: 1; }

        #fiche-bandeau { position: fixed; overflow: hidden; z-index: 3; will-change: left, top, width, height;
            transition: left .6s cubic-bezier(.22, 1, .36, 1), top .6s cubic-bezier(.22, 1, .36, 1),
                        width .6s cubic-bezier(.22, 1, .36, 1), height .6s cubic-bezier(.22, 1, .36, 1),
                        border-radius .6s cubic-bezier(.22, 1, .36, 1); }
        #fiche-bandeau img { width: 100%; height: 100%; object-fit: cover; display: block;
            transform: scale(1.07); transition: transform 1.8s cubic-bezier(.22, 1, .36, 1); }
        #fiche-chantier.anime #fiche-bandeau img { transform: scale(1); }
        #fiche-voile { position: absolute; inset: 0; opacity: 0; transition: opacity .5s ease .1s;
            background: linear-gradient(to top, rgba(8, 13, 22, .93) 4%, rgba(8, 13, 22, .34) 54%, rgba(8, 13, 22, .06) 100%); }
        #fiche-chantier.anime #fiche-voile { opacity: 1; }

        #fiche-titre { position: fixed; z-index: 5; font-weight: 800; letter-spacing: -.03em; line-height: 1.15;
            margin: 0; max-width: calc(100vw - 3rem); will-change: left, top, font-size;
            transition: left .6s cubic-bezier(.22, 1, .36, 1), top .6s cubic-bezier(.22, 1, .36, 1),
                        font-size .6s cubic-bezier(.22, 1, .36, 1), color .45s ease .12s; }
        #fiche-meta, #fiche-retour { position: fixed; z-index: 5; opacity: 0; transition: opacity .4s ease .25s, transform .5s cubic-bezier(.22, 1, .36, 1) .25s; }
        #fiche-chantier.anime #fiche-meta, #fiche-chantier.anime #fiche-retour { opacity: 1; transform: none; }
        #fiche-meta { color: rgba(255, 255, 255, .85); font-size: .9rem; transform: translateY(10px); }
        #fiche-retour { display: inline-flex; align-items: center; gap: .55rem; font-size: .7rem; font-weight: 800;
            letter-spacing: .16em; text-transform: uppercase; color: #fff; background: rgba(255, 255, 255, .14);
            border: 1px solid rgba(255, 255, 255, .32); padding: .6rem 1rem; border-radius: 99px; cursor: pointer;
            transform: translateX(-14px); backdrop-filter: blur(4px); }
        #fiche-retour:hover { background: rgba(255, 255, 255, .24); }

        #fiche-feuille { position: relative; z-index: 4; background: #F8FAFC; border-radius: 26px 26px 0 0;
            box-shadow: 0 -22px 46px rgba(14, 20, 32, .16); padding: 2rem 1.5rem 3rem; min-height: 60vh;
            opacity: 0; transform: translateY(46px); transition: opacity .5s ease .2s, transform .6s cubic-bezier(.22, 1, .36, 1) .2s; }
        #fiche-chantier.anime #fiche-feuille { opacity: 1; transform: none; }
        .fiche-tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; max-width: 1120px; margin: 0 auto; }
        .fiche-tuile { background: #fff; border: 1px solid #E5E8ED; border-radius: 14px; padding: 1rem 1.1rem; }
        .fiche-tuile span { display: block; font-size: .65rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #9AA4B4; }
        .fiche-tuile b { display: block; font-size: 1.05rem; margin-top: .4rem; letter-spacing: -.02em; color: #0E1420; }

        #fiche-agrandir { position: fixed; z-index: 6; display: inline-flex; align-items: center; gap: .5rem;
            font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff;
            background: rgba(8, 13, 22, .58); border: 1px solid rgba(255, 255, 255, .28); padding: .6rem 1rem;
            border-radius: 99px; cursor: pointer; opacity: 0; backdrop-filter: blur(4px);
            transition: opacity .4s ease .3s, background .25s ease; }
        #fiche-chantier.anime #fiche-agrandir { opacity: 1; }
        #fiche-agrandir:hover { background: rgba(8, 13, 22, .82); }
        #fiche-bandeau { cursor: zoom-in; }

        #fiche-avant-apres { max-width: 1120px; margin: 1.6rem auto 0; }
        #fiche-avant-apres:empty { display: none; }
        .fiche-ba-titre { display: flex; align-items: center; gap: .6rem; font-size: .7rem; font-weight: 800;
            letter-spacing: .16em; text-transform: uppercase; color: #9AA4B4; margin: 0 0 .7rem; }
        .fiche-ba-titre i { color: #F97316; }
        .fiche-ba-cadre { position: relative; }
        .fiche-ba-loupe { position: absolute; top: .75rem; right: .75rem; z-index: 20; width: 2.2rem; height: 2.2rem;
            border-radius: .6rem; background: rgba(8, 13, 22, .7); color: #fff; display: flex; align-items: center;
            justify-content: center; cursor: pointer; border: 0; }
        .fiche-ba-loupe:hover { background: rgba(8, 13, 22, .92); }
        .fiche-corps { max-width: 1120px; margin: 1.4rem auto 0; font-size: .95rem; line-height: 1.75; color: #4B5563; white-space: pre-wrap; }
        .fiche-appel { max-width: 1120px; margin: 1.6rem auto 0; background: #0E1726; border-radius: 16px;
            padding: 1.3rem 1.6rem; display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; color: #fff; }
        .fiche-appel b { font-size: 1.15rem; letter-spacing: -.02em; }
        .fiche-appel p { margin: .2rem 0 0; color: #94A1B5; font-size: .85rem; }

        @media (prefers-reduced-motion: reduce) {
            #fiche-bandeau, #fiche-titre, #fiche-meta, #fiche-retour, #fiche-feuille, #fiche-fond, #fiche-bandeau img { transition: none !important; }
            .real-photo img, .premium-card { transition: none !important; }
        }

        .btn-premium { position: relative; overflow: hidden; isolation: isolate; }
        .btn-premium::before {
            content: '';
            position: absolute;
            top: 0;
            left: -130%;
            width: 55%;
            height: 100%;
            z-index: -1;
            transform: skewX(-18deg);
            background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .38), transparent);
            transition: left .75s cubic-bezier(.22, 1, .36, 1);
        }
        .btn-premium:hover::before { left: 140%; }
        .btn-magnetic { transition: transform .35s cubic-bezier(.22, 1, .36, 1); }

        .counter.is-done { animation: counterPop .5s cubic-bezier(.34, 1.56, .64, 1); }
        @keyframes counterPop {
            0%   { transform: none; }
            40%  { transform: scale(1.14); }
            100% { transform: none; }
        }

        @media (prefers-reduced-motion: reduce) {
            #hero-bg-anim .hero-blob, #hero-bg-anim .hero-aurora { animation: none; }
            .success-checkmark-circle, .success-checkmark-check { animation: none; stroke-dashoffset: 0; }
            .skeleton-shimmer::after { animation: none; }

            .site-header, .site-header-row, .site-header-logo, .site-header-sub,
            .nav-pill, .nav-label, .mobile-overlay, .mobile-overlay .mobile-link,
            .mobile-overlay .mobile-extra, .burger span { transition: none !important; }
            #main-nav .nav-link { animation: none !important; }
            #main-nav .nav-link:hover .nav-label { transform: none !important; }
            .mobile-overlay.is-open .mobile-link,
            .mobile-overlay.is-open .mobile-extra { transition-delay: 0s !important; }
            .site-header.is-hidden { transform: none !important; }

            .page-section.active { animation: none !important; }
            #page-sweep { display: none !important; }
            .hero-word > span, .hero-piece, .hero-rise { animation: none !important; opacity: 1 !important; transform: none !important; }
            .premium-card, .btn-magnetic { transition: none !important; transform: none !important; }
            .btn-premium::before { display: none !important; }
            .counter.is-done { animation: none !important; }
        }
        @media print {
            @page { size: A4; margin: 15mm; }
            html, body { margin: 0; padding: 0; width: 100%; height: auto; background: white !important; }
            body * { visibility: hidden; }
            #print-report-area, #print-report-area * { visibility: visible; }
            #print-devis-area, #print-devis-area * { visibility: visible; }
            #dashboard-print-area, #dashboard-print-area * { visibility: visible; }
            #dashboard-print-area {
                position: absolute !important;
                top: 0 !important;
                left: 0 !important;
                width: 100% !important;
                max-width: none !important;
                margin: 0 !important;
                background: white;
                padding: 0;
            }
            #dashboard-print-area svg { max-width: 100%; }
            #view-devis-modal, #view-devis-modal > div {
                position: static !important;
                display: block !important;
                overflow: visible !important;
                max-height: none !important;
                height: auto !important;
                width: auto !important;
                max-width: none !important;
                box-shadow: none !important;
                background: white !important;
                margin: 0 !important;
                padding: 0 !important;
                border: none !important;
                inset: auto !important;
            }
            #print-devis-area {
                position: absolute !important;
                top: 0 !important;
                left: 0 !important;
                width: 100% !important;
                max-width: none !important;
                margin: 0 !important;
                background: white;
                padding: 0;
            }
            #print-devis-area img { max-width: 100%; height: auto; object-fit: cover; break-inside: avoid; }
            #view-report-modal, #view-report-modal > div {
                position: static !important;
                display: block !important;
                overflow: visible !important;
                max-height: none !important;
                height: auto !important;
                width: auto !important;
                max-width: none !important;
                box-shadow: none !important;
                background: white !important;
                margin: 0 !important;
                padding: 0 !important;
                border: none !important;
                inset: auto !important;
            }

            #print-report-area {
                position: absolute !important;
                top: 0 !important;
                left: 0 !important;
                width: 100% !important;
                max-width: none !important;
                margin: 0 !important;
                background: white;
                padding: 0;
            }
            #print-report-area .rep-tab-content { display: block !important; height: auto !important; max-height: none !important; overflow: visible !important; }
            #print-report-area .rep-tab-content + .rep-tab-content { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px dashed #ccc; page-break-inside: avoid; }
            #print-report-area > .flex.justify-between,
            #print-report-area > .grid { page-break-inside: avoid; }
            #print-report-area img { max-width: 100%; height: auto; object-fit: cover; break-inside: avoid; }
            #view-rep-photos-before img, #view-rep-photos-after img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

            #print-quitus-area, #print-quitus-area * { visibility: visible; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
            #print-quitus-area {
                display: block !important;
                position: absolute !important;
                top: 0 !important;
                left: 0 !important;
                width: 100% !important;
                max-width: none !important;
                margin: 0 !important;
                background: white;
                padding: 0;
            }
            #print-quitus-area .qp-keep { break-inside: avoid; page-break-inside: avoid; }
            #print-quitus-area img { max-width: 100%; height: auto; }
            .no-print { display: none !important; }
        }

        html.dark body { background-color: #0B132B; color: #E2E8F0; }
        html.dark .bg-stellLight { background-color: #0B132B !important; }
        html.dark .bg-white { background-color: #16213E !important; color: #E2E8F0 !important; }
        html.dark .bg-gray-50 { background-color: #1C2541 !important; }
        html.dark .bg-gray-100, html.dark .bg-gray-200 { background-color: #1C2541 !important; }
        html.dark .text-stellDark { color: #F1F5F9 !important; }
        html.dark .text-gray-600, html.dark .text-gray-500, html.dark .text-gray-700, html.dark .text-gray-400 { color: #94A3B8 !important; }
        html.dark .border-gray-200, html.dark .border-gray-300, html.dark .border-gray-100 { border-color: #2A3655 !important; }
        html.dark input, html.dark textarea, html.dark select { background-color: #1C2541 !important; color: #E2E8F0 !important; border-color: #334155 !important; }
        html.dark ::placeholder { color: #64748B !important; }
        html.dark .shadow, html.dark .shadow-md, html.dark .shadow-lg, html.dark .shadow-xl, html.dark .shadow-2xl { box-shadow: 0 4px 20px rgba(0,0,0,0.5) !important; }
        @media print { html.dark body, html.dark #print-report-area, html.dark #print-report-area *, html.dark #dashboard-print-area, html.dark #dashboard-print-area * { background: white !important; color: black !important; } }

        .metiers-flip-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 1.75rem;
            max-width: 1100px;
            margin: 0 auto;
        }
        .metier-flip-card { perspective: 1600px; height: 430px; }
        .metier-flip-tilt { width: 100%; height: 100%; transition: transform .15s ease-out; will-change: transform; }
        .metier-flip-inner {
            position: relative;
            width: 100%; height: 100%;
            transform-style: preserve-3d;
            transition: transform .7s cubic-bezier(.34,1.56,.64,1);
            cursor: pointer;
        }
        .metier-flip-card.flipped .metier-flip-inner { transform: rotateY(180deg); }
        .metier-flip-face {
            position: absolute; inset: 0;
            backface-visibility: hidden;
            -webkit-backface-visibility: hidden;
            border-radius: 1rem;
            overflow: hidden;
            background: #fff;
            border: 1px solid #e5e7eb;
            box-shadow: 0 12px 30px -12px rgba(0,0,0,.25);
            display: flex;
            flex-direction: column;
            transition: box-shadow .3s;
        }
        .metier-flip-card:hover .metier-flip-face { box-shadow: 0 20px 40px -14px rgba(0,0,0,.35); }
        .metier-flip-img-wrap { position: relative; height: 58%; flex-shrink: 0; overflow: hidden; }
        .metier-flip-img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
        .metier-flip-card:hover .metier-flip-img { transform: scale(1.06); }
        .metier-flip-shine { position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .25s; }
        .metier-flip-card:hover .metier-flip-shine { opacity: 1; }
        .metier-flip-front-gradient { position: absolute; inset: 0; background: linear-gradient(to top, rgba(15,23,42,.85), rgba(15,23,42,0) 60%); pointer-events: none; }
        .metier-flip-front-overlay { position: absolute; left: 0; right: 0; bottom: 0; padding: .9rem 1.1rem; }
        .metier-flip-title { color: #fff; font-weight: 800; font-size: 1.1rem; line-height: 1.25; display: flex; align-items: center; }
        .metier-flip-front-footer { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 1rem 1.25rem; gap: .6rem; }
        .metier-flip-teaser { color: #6b7280; font-size: .85rem; line-height: 1.4; }
        .metier-flip-cta { color: #F97316; font-weight: 700; font-size: .8rem; display: inline-flex; align-items: center; gap: .4rem; }
        .metier-flip-cta i { transition: transform .5s; }
        .metier-flip-card:hover .metier-flip-cta i { transform: rotate(180deg); }
        .metier-flip-back { transform: rotateY(180deg); padding: 1.15rem 1.25rem; overflow-y: auto; }
        .metier-flip-back-title { font-weight: 800; color: #1e293b; font-size: 1.02rem; display: flex; align-items: center; padding-right: 1.75rem; }
        .metier-flip-close {
            position: absolute; top: .6rem; right: .6rem;
            width: 2rem; height: 2rem; border-radius: 9999px;
            background: #f1f5f9; color: #1e293b;
            display: flex; align-items: center; justify-content: center;
            transition: background-color .2s, color .2s;
            z-index: 5;
        }
        .metier-flip-close:hover { background: #F97316; color: #fff; }
        .metier-flip-desc { color: #4b5563; font-size: .85rem; margin-top: .6rem; }
        .metier-flip-back-list { font-size: .85rem; color: #4b5563; margin-top: .75rem; padding-top: .75rem; border-top: 1px solid #f1f5f9; }
        .metier-flip-back-list p { font-weight: 700; color: #1e293b; margin-bottom: .4rem; }
        .metier-flip-back-list ul { display: flex; flex-direction: column; gap: .35rem; }
        .metier-flip-back-badges { display: flex; flex-wrap: wrap; gap: .4rem; padding-top: .6rem; }
        .metier-flip-back-cta { margin-top: .9rem; display: flex; justify-content: flex-end; }

        @media (max-width: 1024px) {
            .metiers-flip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .metier-flip-card { height: 410px; }
        }
        @media (max-width: 640px) {
            .metiers-flip-grid { grid-template-columns: 1fr; max-width: 400px; gap: 1.5rem; }
            .metier-flip-card { height: 400px; }

            .metier-flip-card .metier-flip-tilt { transform: none !important; }
        }

        .planning-view-tab { padding: .5rem .9rem; border-radius: .65rem; font-size: .75rem; font-weight: 700; border: 1px solid #d1d5db; color: #6b7280; background: #fff; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
        .planning-view-tab:hover { border-color: #F97316; color: #F97316; }
        .planning-view-tab.active { background: #F97316; border-color: #F97316; color: #fff; }
        .planning-cal-grid { display: grid; position: relative; border: 1px solid #e5e7eb; border-radius: .75rem; overflow: hidden; background: #fff; }
        .planning-cal-col-header { background: #f9fafb; border-bottom: 1px solid #e5e7eb; border-left: 1px solid #f1f5f9; padding: .5rem .4rem; text-align: center; font-size: .7rem; font-weight: 700; color: #374151; text-transform: uppercase; }
        .planning-cal-col-header.today { color: #F97316; }
        .planning-cal-col-header:first-child, .planning-cal-col-body:first-child { border-left: none; }

        .planning-cal-scroll { overflow-x: auto; overflow-y: visible; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }

        .planning-cal-scroll > .planning-cal-grid { width: max-content; min-width: 100%; overflow: visible; }
        .planning-cal-scroll > .planning-cal-grid:first-child { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
        .planning-cal-scroll > .planning-cal-grid:last-child { border-top-left-radius: 0; border-top-right-radius: 0; }

        .planning-cal-scroll .planning-cal-grid > :first-child { position: sticky; left: 0; z-index: 6; background: #f9fafb; }

        .planning-cal-scroll .planning-cal-col-body { overflow: hidden; }

        .planning-cal-scroll-wrap { position: relative; }
        .planning-cal-scroll-wrap.has-overflow::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 22px; pointer-events: none; background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,.95)); border-radius: 0 .75rem .75rem 0; }
        .planning-scroll-hint { display: none; }
        .planning-cal-scroll-wrap.has-overflow .planning-scroll-hint { display: flex; }
        .planning-cal-hourline { border-top: 1px solid #f1f5f9; position: absolute; left: 0; right: 0; font-size: .65rem; color: #9ca3af; padding-left: 2px; }
        .planning-cal-col-body { position: relative; border-left: 1px solid #f1f5f9; min-height: 60px; }
        .planning-drop-zone.drag-hover { background: #fff7ed; outline: 2px dashed #F97316; outline-offset: -2px; }
        .planning-cal-notime-row { display: flex; flex-wrap: wrap; gap: .3rem; padding: .4rem; border-bottom: 1px solid #e5e7eb; background: #fafafa; min-height: 2.2rem; }
        .planning-drag-card { position: absolute; left: 2px; right: 2px; border-radius: .4rem; padding: .2rem .35rem; font-size: .65rem; line-height: 1.25; overflow: hidden; cursor: grab; box-shadow: 0 1px 2px rgba(0,0,0,.08); border: 1px solid; touch-action: none; user-select: none; }
        .planning-drag-card.no-manage { cursor: default; }

        .planning-groupe-carte { position: absolute; left: 2px; right: 2px; border-radius: .4rem; padding: .2rem .35rem .2rem .5rem; font-size: .65rem; line-height: 1.25; overflow: hidden; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.08); border: 1px solid; border-left-width: 4px; user-select: none; }
        .planning-groupe-carte:hover { filter: brightness(.97); }
        .planning-groupe-carte .pgc-nb { font-weight: 800; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .planning-groupe-carte .pgc-lieu { display: block; opacity: .75; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .planning-drag-card.dragging { opacity: .55; box-shadow: 0 4px 10px rgba(0,0,0,.2); z-index: 40; }
        .planning-drag-card .pdc-client { font-weight: 700; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .planning-drag-card .pdc-time { opacity: .8; }
        .pdc-tech-dots { display: inline-flex; gap: 2px; vertical-align: middle; margin-right: 3px; }
        .pdc-tech-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.6); }
        .planning-month-chip .pdc-tech-dots { margin-right: 2px; }
        .planning-month-cell { border-left: 1px solid #f1f5f9; border-top: 1px solid #f1f5f9; min-height: 92px; padding: .3rem; position: relative; }
        .planning-month-cell:nth-child(7n+1) { border-left: none; }
        .planning-month-cell.other-month { background: #fafafa; color: #d1d5db; }
        .planning-month-cell.today .planning-month-daynum { color: #F97316; }
        .planning-month-daynum { font-size: .7rem; font-weight: 700; margin-bottom: .25rem; }
        .planning-month-chip { display: block; font-size: .62rem; padding: .1rem .35rem; border-radius: .3rem; margin-bottom: .2rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: grab; border: 1px solid; }
        .planning-month-cell.drag-hover { background: #fff7ed; outline: 2px dashed #F97316; outline-offset: -2px; }
        .planning-ghost-card { position: fixed; pointer-events: none; z-index: 200; border-radius: .4rem; padding: .25rem .5rem; font-size: .68rem; font-weight: 700; background: #1C2541; color: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.3); opacity: .95; }

        .zone-onglet { background: #fff; border-color: #E5E7EB; color: #0B132B; }
        .zone-onglet:hover { border-color: var(--stell-accent, #F97316); background: #FFF7ED; }
        .zone-onglet .zone-onglet-puce { background: #F1F5F9; color: #64748B; transition: background .2s, color .2s; }
        .zone-onglet-actif { border-color: var(--stell-accent, #F97316); background: #FFF7ED; box-shadow: 0 1px 2px rgba(15, 23, 42, .06); }
        .zone-onglet-actif .zone-onglet-puce { background: var(--stell-accent, #F97316); color: #fff; }
        .zone-onglet:focus-visible { outline: 2px solid var(--stell-accent, #F97316); outline-offset: 2px; }
        .zone-panneau { display: none; }
        .zone-panneau-actif { display: block; animation: zoneFondu .28s ease-out; }
        @keyframes zoneFondu {
            from { opacity: 0; transform: translateY(8px); }
            to   { opacity: 1; transform: translateY(0); }
        }
        .zone-faq summary::-webkit-details-marker { display: none; }
        .zone-faq[open] summary .fa-chevron-down { transform: rotate(180deg); }
        .zone-faq summary:focus-visible { outline: 2px solid var(--stell-accent, #F97316); outline-offset: 3px; border-radius: 6px; }
        .zone-carte-traits { display: none; }
        .zone-carte-centre {
            background: var(--stell-dark, #0B132B); color: #fff; border-radius: 1rem;
            padding: .9rem 1.25rem; text-align: center; margin-bottom: 1rem;
        }
        .zone-carte-satellites { display: grid; grid-template-columns: 1fr; gap: .6rem; }
        .zone-satellite {
            display: flex; align-items: center; background: #fff;
            border: 1px solid #E5E7EB; border-radius: .75rem;
            padding: .7rem 1rem; transition: border-color .2s, box-shadow .2s, transform .2s;
        }
        .zone-satellite:hover {
            border-color: var(--stell-accent, #F97316);
            box-shadow: 0 6px 18px rgba(15, 23, 42, .1);
        }
        .zone-satellite:focus-visible { outline: 2px solid var(--stell-accent, #F97316); outline-offset: 2px; }
        @media (min-width: 1024px) {
            #zone-carte { height: 420px; }
            .zone-carte-traits {
                display: block; position: absolute; inset: 0;
                width: 100%; height: 100%; pointer-events: none;
            }
            .zone-carte-traits line {
                stroke: #B6C2D2; stroke-width: .55; stroke-dasharray: 1.4 1.4;
                vector-effect: non-scaling-stroke;
            }
            .zone-carte-centre {
                position: absolute; top: 50%; left: 50%;
                transform: translate(-50%, -50%); margin: 0;
                min-width: 190px; z-index: 2;
                box-shadow: 0 10px 30px rgba(11, 19, 43, .25);
            }
            .zone-carte-satellites { display: block; }
            .zone-satellite {
                position: absolute; top: var(--zy); left: var(--zx);
                transform: translate(-50%, -50%); white-space: nowrap; z-index: 3;
            }
            .zone-satellite:hover { transform: translate(-50%, -50%) scale(1.04); }
        }
        @media (prefers-reduced-motion: reduce) {
            .zone-panneau-actif { animation: none; }
            .zone-satellite, .zone-satellite:hover { transition: none; transform: translate(-50%, -50%); }
        }

        
        @keyframes footerFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
        @keyframes footerPop { 0% { transform: scale(1); } 40% { transform: scale(1.35) rotate(-10deg); } 70% { transform: scale(.92) rotate(6deg); } 100% { transform: scale(1) rotate(0); } }
        .footer-social-link { position: relative; animation: footerFloat 3.4s ease-in-out infinite; }
        .footer-social-link:nth-child(2) { animation-delay: .35s; }
        .footer-social-link:nth-child(3) { animation-delay: .7s; }
        .footer-social-link:nth-child(4) { animation-delay: 1.05s; }
        .footer-social-link:nth-child(5) { animation-delay: 1.4s; }
        .footer-social-link:hover, .footer-social-link:focus-visible { animation: none; transform: translateY(-5px) scale(1.08); box-shadow: 0 10px 20px -8px rgba(0, 0, 0, .7); }
        .footer-social-link:hover i, .footer-social-link:focus-visible i { animation: footerPop .55s ease both; }
        .footer-social-link[data-net="facebook"]:hover { background: #1877F2; border-color: #1877F2; }
        .footer-social-link[data-net="instagram"]:hover { background: linear-gradient(45deg, #F9A63B, #E1306C 55%, #833AB4); border-color: #E1306C; }
        .footer-social-link[data-net="linkedin"]:hover { background: #0A66C2; border-color: #0A66C2; }
        .footer-social-link[data-net="google"]:hover { background: #EA4335; border-color: #EA4335; }
        .footer-social-link[data-net="phone"]:hover { background: var(--site-accent, #F97316); border-color: var(--site-accent, #F97316); }
        @media (prefers-reduced-motion: reduce) {
            .footer-social-link, .footer-social-link:hover i, .footer-social-link:focus-visible i { animation: none !important; }
            .footer-social-link:hover, .footer-social-link:focus-visible { transform: none; }
        }

        
        html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
        @media (max-width: 1023px) {
            input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="color"]):not([type="hidden"]),
            select, textarea { font-size: 16px !important; max-width: 100%; }
            body { overflow-x: hidden; overflow-x: clip; max-width: 100%; }
        }

        
        .sr-busy {
            cursor: progress;
            background-image: linear-gradient(90deg, var(--sr-c, rgba(255, 255, 255, .34)) var(--sr-p, 0%), transparent var(--sr-p, 0%));
            background-repeat: no-repeat;
            transition: background-size .2s linear;
        }
        .sr-busy::after {
            content: attr(data-sr-pct);
            position: absolute; top: 50%; right: .45rem; transform: translateY(-50%); z-index: 3;
            font: 800 11px/1 system-ui, sans-serif; letter-spacing: .02em;
            padding: 3px 7px; border-radius: 999px;
            background: rgba(11, 19, 43, .82); color: #fff; pointer-events: none;
            box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
        }
        .sr-busy.sr-done::after { background: #15803d; }
        .sr-busy.sr-fail::after { background: #b91c1c; }
        a.sr-busy { display: inline-flex; }
        @media (prefers-reduced-motion: reduce) { .sr-busy { transition: none; } }

        
        #loading-bar { width: min(260px, 70vw); height: 6px; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; margin-top: 1.5rem; }
        #loading-bar-fill { height: 100%; width: 0%; border-radius: 999px; background: linear-gradient(90deg, #F97316, #fdba74); transition: width .12s linear; }
        #loading-pct { margin-top: .6rem; font: 700 13px/1 system-ui, sans-serif; letter-spacing: .06em; color: #cbd5e1; font-variant-numeric: tabular-nums; }

        .admin-sidebar-link.sb-collapsed { display: none !important; }
        #admin-search-results button.bg-orange-50 { background-color: #fff7ed; }
