/* Expérience 3D expérimentale : retirer cette feuille pour revenir au thème classique. */
:root {
    --m3d-gold: #c5a059;
    --m3d-blush: #e7c6b8;
    --m3d-ink: #222027;
    --m3d-x: 50%;
    --m3d-y: 20%;
}

html { background: #fbf7f4; }
body {
    background-image:
        radial-gradient(700px circle at var(--m3d-x) var(--m3d-y), rgba(229, 194, 177, .20), transparent 42%),
        linear-gradient(135deg, rgba(255,255,255,.6), rgba(248,241,237,.3));
    background-attachment: fixed;
}

.m3d-noise {
    position: fixed;
    inset: 0;
    z-index: 999;
    pointer-events: none;
    opacity: .025;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
    mix-blend-mode: multiply;
}

/* Navigation flottante en verre */
.site-nav {
    top: 12px !important;
    margin: 0 auto;
    width: min(calc(100% - 28px), 1380px);
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 999px;
    background: rgba(255,255,255,.72) !important;
    box-shadow: 0 16px 55px rgba(55,38,29,.09), inset 0 1px rgba(255,255,255,.95) !important;
    transition: width .35s ease, top .35s ease, background .35s ease, box-shadow .35s ease !important;
}
.site-nav.is-scrolled {
    top: 7px !important;
    width: min(calc(100% - 42px), 1250px);
    background: rgba(255,255,255,.9) !important;
    box-shadow: 0 18px 60px rgba(42,29,23,.13) !important;
}
.site-nav > div { padding-top: .65rem !important; padding-bottom: .65rem !important; }
.site-nav ul { padding: .35rem .5rem; border-radius: 999px; background: rgba(248,245,242,.62); border: 1px solid rgba(197,160,89,.08); }

/* Navigation et boutons avec un relief plus contemporain */
.site-nav {
    box-shadow: 0 1px 0 rgba(255,255,255,.85), 0 12px 40px rgba(76,50,35,.035);
}

.site-nav a[href="client/login.php"],
.btn-luxe,
a.btn-gold,
button.bg-gold,
button[type="submit"] {
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 22px rgba(24,27,36,.18), inset 0 1px rgba(255,255,255,.18);
    transform: translateZ(0);
}

.site-nav a[href="client/login.php"]::before,
.btn-luxe::before,
a.btn-gold::before,
button.bg-gold::before,
button[type="submit"]::before {
    content: "";
    position: absolute;
    inset: -100% -35%;
    background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.38) 49%, transparent 61%);
    transform: translateX(-65%) rotate(8deg);
    transition: transform .75s cubic-bezier(.2,.8,.2,1);
    pointer-events: none;
}

.site-nav a[href="client/login.php"]:hover::before,
.btn-luxe:hover::before,
a.btn-gold:hover::before,
button.bg-gold:hover::before,
button[type="submit"]:hover::before { transform: translateX(65%) rotate(8deg); }

/* Scène 3D de l'accueil */
#accueil { perspective: 1200px; }
#accueil::after {
    content: "";
    position: absolute;
    width: 46vw;
    height: 46vw;
    min-width: 420px;
    min-height: 420px;
    right: -16vw;
    top: -18vw;
    border-radius: 50%;
    background: conic-gradient(from 180deg, rgba(197,160,89,.12), rgba(231,198,184,.04), rgba(255,255,255,.45), rgba(197,160,89,.12));
    filter: blur(2px);
    animation: m3d-spin 22s linear infinite;
    pointer-events: none;
}
#accueil .hero-visual > div:nth-of-type(2) {
    transform: rotateY(-3deg) rotateX(1deg);
    transform-style: preserve-3d;
    transition: transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s ease;
}
#accueil .hero-visual:hover > div:nth-of-type(2) {
    transform: rotateY(1deg) rotateX(-1deg) translateY(-4px);
    box-shadow: 0 42px 95px rgba(60,43,35,.2);
}

.m3d-hero-object {
    position: absolute;
    z-index: 4;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 22px 18px rgba(71,47,33,.22));
    transform-style: preserve-3d;
}
.m3d-hero-heart {
    width: clamp(82px, 10vw, 135px);
    left: -62px;
    top: 12%;
    animation: m3d-hero-left 6.4s ease-in-out infinite;
}
.m3d-hero-polish {
    width: clamp(100px, 12vw, 165px);
    right: -78px;
    bottom: 8%;
    animation: m3d-hero-right 7.2s ease-in-out infinite;
}

/* Ruban éditorial */
.m3d-marquee {
    position: relative;
    z-index: 5;
    overflow: hidden;
    padding: 15px 0;
    color: #f9f3ef;
    background: linear-gradient(90deg, #121724, #24212a 46%, #121724);
    border-top: 1px solid rgba(197,160,89,.3);
    border-bottom: 1px solid rgba(197,160,89,.3);
    box-shadow: 0 18px 45px rgba(27,22,23,.12);
}
.m3d-marquee-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 28px;
    animation: m3d-marquee 28s linear infinite;
}
.m3d-marquee span { font-size: 9px; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; white-space: nowrap; }
.m3d-marquee i { color: #c5a059; font-style: normal; font-size: 12px; }

/* Dock d'accès rapide */
.m3d-quick-dock {
    position: fixed;
    right: 18px;
    top: 50%;
    z-index: 90;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 9px;
    border-radius: 999px;
    background: rgba(255,255,255,.76);
    border: 1px solid rgba(255,255,255,.85);
    box-shadow: 0 18px 50px rgba(49,34,27,.13), inset 0 1px rgba(255,255,255,.9);
    backdrop-filter: blur(18px);
    transform: translateY(-50%);
}
.m3d-quick-dock a {
    position: relative;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    transition: background .3s ease, transform .3s ease, box-shadow .3s ease;
}
.m3d-quick-dock img { width: 39px; height: 39px; object-fit: contain; filter: drop-shadow(0 5px 5px rgba(70,45,32,.18)); transition: transform .3s ease; }
.m3d-quick-dock span {
    position: absolute;
    right: 55px;
    padding: 7px 11px;
    border-radius: 999px;
    color: white;
    background: #171b26;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    opacity: 0;
    transform: translateX(8px);
    pointer-events: none;
    transition: .25s ease;
}
.m3d-quick-dock a:hover, .m3d-quick-dock a.is-active { background: #f5eae4; box-shadow: inset 0 0 0 1px rgba(197,160,89,.15); transform: scale(1.08); }
.m3d-quick-dock a:hover img { transform: scale(1.16) rotate(-5deg); }
.m3d-quick-dock a:hover span { opacity: 1; transform: none; }

/* Titres et séparateurs plus vivants */
#accueil h1 .italic,
section h2 .italic {
    background: linear-gradient(115deg, #797d88 15%, #b78f50 52%, #777b86 84%);
    background-size: 220% auto;
    color: transparent !important;
    -webkit-background-clip: text;
    background-clip: text;
    animation: m3d-title-shine 7s ease-in-out infinite;
}

section[id] { position: relative; isolation: isolate; }
section[id]::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.8), rgba(231,198,184,.12) 45%, transparent 70%);
    pointer-events: none;
    opacity: .72;
}
#prestations::before, #conseils::before, #galerie::before { left: -100px; bottom: -100px; }
#tarifs::before, #faq::before, #a-propos::before { right: -100px; top: -100px; }

/* Icônes 3D ancrées à leur contenu : aucun recouvrement aléatoire */
.section-3d-icon {
    position: absolute;
    z-index: 2;
    width: clamp(76px, 8vw, 118px);
    aspect-ratio: 1;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 18px 18px rgba(76,49,34,.15));
    opacity: .96;
    animation: m3d-float 6.5s ease-in-out infinite;
}

#tarifs > .container { position: relative; }
.icon-pricing { width: 96px; right: 5%; top: -24px; animation-delay: -.8s; }
.icon-foot-spa { width: 105px; left: -74px; bottom: -30px; animation-delay: -2.2s; }
.tariff-note { position: relative; min-height: 92px; border-radius: 1rem; overflow: visible; }
.tariff-drink { padding-right: 72px !important; }
.tariff-drink .section-3d-icon { width: 76px; right: -9px; top: -25px; animation-delay: -3.4s; }

#conseils .icon-nail-care { width: 92px; right: 15px; top: 12px; opacity: .78; animation-delay: -1.4s; }
#conseils .lg\:col-span-4 { padding-top: 7.4rem; }

#faq > .container { position: relative; }
.icon-reviews { width: 102px; right: -82px; top: -15px; animation-delay: -2.7s; }

#galerie .max-w-2xl { position: relative; padding-left: 105px; }
.icon-camera { width: 104px; left: -10px; top: -15px; animation-delay: -1.2s; }

.footer-legal-3d {
    width: 68px;
    height: 68px;
    object-fit: contain;
    margin: -18px 0 8px;
    opacity: .82;
    filter: drop-shadow(0 14px 14px rgba(0,0,0,.5));
    animation: m3d-float 6.5s ease-in-out infinite -3.5s;
}

/* Footer éditorial moderne */
.modern-footer {
    position: relative;
    overflow: hidden;
    padding: 72px 0 28px;
    background: #10131d;
    border-top: 1px solid rgba(197,160,89,.28);
}
.modern-footer::before {
    content: "JUSTINE";
    position: absolute;
    left: -2vw;
    bottom: 40px;
    color: rgba(255,255,255,.018);
    font: italic clamp(8rem, 20vw, 20rem)/.7 'Playfair Display', serif;
    letter-spacing: -.06em;
    pointer-events: none;
}
.modern-footer-glow {
    position: absolute;
    width: 650px;
    height: 650px;
    right: -240px;
    top: -300px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(197,160,89,.18), rgba(231,198,184,.05) 40%, transparent 70%);
    animation: m3d-orbit 12s ease-in-out infinite;
}
.footer-cta {
    display: grid;
    grid-template-columns: minmax(0,1.6fr) minmax(260px,.7fr);
    align-items: center;
    gap: 42px;
    padding: clamp(28px,5vw,56px);
    margin-bottom: 18px;
    border-radius: 2.2rem;
    color: #20232d;
    background: linear-gradient(120deg, #f8f1ed, #fff 52%, #ead6ca);
    box-shadow: 0 35px 90px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.95);
}
.footer-eyebrow { display: block; margin-bottom: 13px; color: #ae8448; font-size: 8px; font-weight: 700; letter-spacing: .32em; text-transform: uppercase; }
.footer-cta h2 { max-width: 720px; font: 400 clamp(2.2rem,4.5vw,4.6rem)/.95 'Playfair Display',serif; letter-spacing: -.035em; }
.footer-cta h2 em { color: #8b8e97; font-weight: 400; }
.footer-cta p { max-width: 620px; margin-top: 20px; color: #747783; font-size: 11px; line-height: 1.9; }
.footer-cta-action { position: relative; display: flex; flex-direction: column; align-items: stretch; }
.footer-cta-action img { width: 132px; height: 132px; margin: -50px auto -3px; object-fit: contain; filter: drop-shadow(0 18px 16px rgba(70,45,33,.18)); animation: m3d-float 5.5s ease-in-out infinite; }
.footer-cta-action a { display: flex; justify-content: space-between; align-items: center; padding: 17px 20px; border-radius: 999px; color: white; background: #151a28; box-shadow: 0 14px 30px rgba(18,21,31,.2); font-size: 8px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; transition: .35s ease; }
.footer-cta-action a:hover { color: #151a28; background: #c5a059; transform: translateY(-3px); }

.footer-bento { display: grid; grid-template-columns: 1.25fr .9fr .9fr 1.15fr; gap: 14px; }
.footer-card { position: relative; min-height: 270px; overflow: hidden; padding: 28px; border: 1px solid rgba(255,255,255,.075); border-radius: 1.7rem; background: rgba(255,255,255,.035); box-shadow: inset 0 1px rgba(255,255,255,.04); transition: transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s ease, background .4s ease; }
.footer-card:hover { transform: translateY(-6px); border-color: rgba(197,160,89,.28); background: rgba(255,255,255,.055); }
.footer-brand-heading { display: flex; align-items: center; gap: 13px; }
.footer-brand-heading > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; color: #c5a059; background: linear-gradient(145deg,#fff,#e8d9cf); box-shadow: 0 12px 25px rgba(0,0,0,.25); font: italic 20px 'Playfair Display',serif; }
.footer-brand-heading small, .footer-card-title small, .footer-contact-card > small { display: block; color: #757987; font-size: 7px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.footer-brand-heading strong { display: block; margin-top: 2px; font: italic 25px 'Playfair Display',serif; }
.footer-brand-card > p { max-width: 270px; margin-top: 28px; color: #747987; font-size: 10px; line-height: 1.85; }
.footer-socials { display: flex; gap: 18px; margin-top: 26px; }
.footer-socials a, .footer-contact-card > a { color: #f3eee9; font-size: 8px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; border-bottom: 1px solid rgba(197,160,89,.35); padding-bottom: 6px; }
.footer-socials a span, .footer-contact-card > a span { color: #c5a059; margin-left: 5px; }
.footer-card-icon { position: absolute; width: 92px; right: -17px; bottom: -20px; opacity: .28; filter: drop-shadow(0 14px 15px rgba(0,0,0,.4)); }
.footer-card-title { display: flex; align-items: center; gap: 13px; margin-bottom: 28px; }
.footer-card-title img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 10px 9px rgba(0,0,0,.35)); }
.footer-card-title h3 { margin-top: 3px; font: italic 23px 'Playfair Display',serif; }
.footer-hours p { display: flex; justify-content: space-between; gap: 15px; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.055); color: #737886; font-size: 9px; }
.footer-hours strong { color: #d5d3d2; font-weight: 500; white-space: nowrap; }
.footer-links-card nav { display: flex; flex-direction: column; }
.footer-links-card nav a { display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.055); color: #9a9da7; font-size: 9px; transition: .25s ease; }
.footer-links-card nav a span { color: #555967; font-size: 7px; }
.footer-links-card nav a:hover { color: white; padding-left: 5px; }
.footer-contact-card { background: linear-gradient(145deg, rgba(197,160,89,.14), rgba(255,255,255,.025)); }
.footer-message-icon { width: 92px; height: 92px; margin: -13px 0 3px; object-fit: contain; filter: drop-shadow(0 15px 13px rgba(0,0,0,.35)); animation: m3d-float 6s ease-in-out infinite -2s; }
.footer-contact-card h3 { margin: 9px 0 13px; font: italic 25px/1.15 'Playfair Display',serif; }
.footer-contact-card p { margin-bottom: 21px; color: #777c89; font-size: 9px; line-height: 1.7; }

.footer-bottom { display: grid; grid-template-columns: 1fr auto 42px; align-items: center; gap: 28px; margin-top: 16px; padding: 21px 4px 0; border-top: 1px solid rgba(255,255,255,.065); }
.footer-signature span { display: block; font: italic 16px 'Playfair Display',serif; }
.footer-signature small { display: block; margin-top: 5px; color: #555966; font-size: 7px; letter-spacing: .16em; text-transform: uppercase; }
.footer-legal-links { display: flex; align-items: center; gap: 22px; }
.footer-legal-links img { width: 40px; height: 40px; object-fit: contain; opacity: .65; }
.footer-legal-links a { color: #646875; font-size: 7px; letter-spacing: .14em; text-transform: uppercase; transition: color .25s; }
.footer-legal-links a:hover { color: #c5a059; }
.footer-top-link { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; color: #c5a059; background: rgba(255,255,255,.035); transition: .3s ease; }
.footer-top-link:hover { color: #151a28; background: #c5a059; transform: translateY(-4px); }

@media (max-width: 1023px) {
    .footer-bento { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .footer-cta { grid-template-columns: 1fr; }
    .footer-cta-action { max-width: 350px; }
    .footer-cta-action img { position: absolute; right: -125px; bottom: -30px; opacity: .65; }
}

.modern-3d-orb {
    position: fixed;
    z-index: 0;
    width: min(23vw, 310px);
    aspect-ratio: 1;
    right: -7vw;
    top: 18vh;
    border-radius: 50%;
    pointer-events: none;
    background: linear-gradient(145deg, rgba(255,255,255,.6), rgba(197,160,89,.13));
    box-shadow: inset 18px 18px 42px rgba(255,255,255,.75), inset -18px -18px 42px rgba(149,105,72,.08), 0 32px 80px rgba(104,73,54,.08);
    filter: blur(.2px);
    animation: m3d-orbit 10s ease-in-out infinite;
}

.m3d-card,
.card-luxe,
.stat-card,
.service-card,
.glass-card,
main form,
main section > .bg-white,
#faq details,
#tarifs details {
    --rx: 0deg;
    --ry: 0deg;
    --tz: 0px;
    position: relative;
    transform: perspective(950px) rotateX(var(--rx)) rotateY(var(--ry)) translate3d(0, var(--tz), 0);
    transform-style: preserve-3d;
    transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .35s ease;
    will-change: transform;
}

.m3d-card::before,
.card-luxe::before,
.stat-card::before,
.service-card::before,
.glass-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(125deg, rgba(255,255,255,.6), transparent 38%, rgba(197,160,89,.08));
    opacity: .7;
}

.m3d-card:hover,
.card-luxe:hover,
.stat-card:hover,
.service-card:hover,
.glass-card:hover {
    --tz: -7px;
    border-color: rgba(197,160,89,.3) !important;
    box-shadow: 0 24px 60px rgba(67,45,34,.12), 0 2px 0 rgba(255,255,255,.9) inset !important;
}

.m3d-card > *, .card-luxe > *, .stat-card > *, .service-card > *, .glass-card > * {
    position: relative;
    z-index: 1;
}

.m3d-icon {
    width: 88px;
    height: 88px;
    object-fit: contain;
    filter: drop-shadow(0 14px 12px rgba(89,58,39,.18));
    transform: translateZ(35px);
    animation: m3d-float 5s ease-in-out infinite;
}

#prestations .grid > div { overflow: visible; }
#prestations .grid > div:nth-child(2) { transform: perspective(950px) translateY(18px) rotateX(var(--rx)) rotateY(var(--ry)); }
#prestations .grid > div:nth-child(2):hover { transform: perspective(950px) translateY(8px) rotateX(var(--rx)) rotateY(var(--ry)); }
#prestations .grid > div > div:first-child { display: none; }
#prestations .grid > div::after {
    content: "";
    display: block;
    width: 86px;
    height: 86px;
    margin: -128px 0 42px auto;
    background: center / contain no-repeat url("3d/hygiene.png");
    filter: drop-shadow(0 14px 14px rgba(100,65,45,.17));
    transform: translateZ(32px);
    animation: m3d-float 5.5s ease-in-out infinite;
}
#prestations .grid > div:nth-child(2)::after { background-image: url("3d/special-effects.png"); animation-delay: -.9s; }
#prestations .grid > div:nth-child(3)::after { background-image: url("3d/nail-care.png"); animation-delay: -1.8s; }

/* Carte des soins et FAQ : effet verre sans grossir les blocs */
#tarifs details,
#faq details {
    overflow: hidden;
    background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(250,244,240,.78)) !important;
    box-shadow: 0 8px 28px rgba(74,50,38,.045), inset 0 1px rgba(255,255,255,.9);
}
#tarifs details summary::after, #faq details summary::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, #c5a059, transparent);
    transition: width .5s cubic-bezier(.2,.8,.2,1);
}
#tarifs details[open] summary::after, #faq details[open] summary::after { width: 100%; }
#tarifs summary, #faq summary { position: relative; }
#tarifs details[open], #faq details[open] {
    border-color: rgba(197,160,89,.3) !important;
    box-shadow: 0 18px 45px rgba(74,50,38,.09), inset 3px 0 #c5a059;
}
#tarifs summary, #faq summary { transition: color .25s ease, padding-left .25s ease; }
#tarifs details[open] summary, #faq details[open] summary { padding-left: 1.6rem; color: #9a7440; }

/* Portfolio en cadres photographiques 3D */
#galerie .gallery-item {
    position: relative;
    perspective: 900px;
    border-radius: 1.4rem;
    box-shadow: 0 15px 35px rgba(50,35,28,.09), 0 2px 0 rgba(255,255,255,.8) inset;
}
#galerie .gallery-item img {
    transition: transform .65s cubic-bezier(.2,.8,.2,1), filter .5s ease;
    transform: scale(1.01) translateZ(0);
}
#galerie .gallery-item:hover img { transform: scale(1.075) translateZ(24px); filter: saturate(1.08) contrast(1.03); }
#galerie .gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.42), inset 0 -70px 60px rgba(30,22,19,.12);
}

#reservation .container > .grid { position: relative; transform-style: preserve-3d; }
#reservation .container > .grid::after {
    content: "";
    position: absolute;
    width: clamp(92px, 9vw, 125px);
    aspect-ratio: 1;
    right: clamp(22px, 4vw, 58px);
    top: 24px;
    z-index: 3;
    pointer-events: none;
    background: center / contain no-repeat url("3d/calendar.png");
    filter: drop-shadow(0 16px 14px rgba(0,0,0,.24));
    animation: m3d-float 5s ease-in-out infinite;
}

.client-sidebar .client-brand-mark,
.admin-sidebar .admin-brand-mark,
.admin-login .admin-brand-mark {
    box-shadow: 0 9px 22px rgba(197,160,89,.27), inset 3px 3px 8px rgba(255,255,255,.75), inset -3px -3px 8px rgba(111,72,42,.14);
    transform: perspective(300px) rotateY(-8deg);
}

.client-nav-icon {
    background: linear-gradient(145deg, #fff, #eee2db) !important;
    box-shadow: 5px 6px 12px rgba(69,45,33,.12), inset 2px 2px 4px #fff;
    border: 1px solid rgba(197,160,89,.16);
}
.client-nav-icon img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    transform: scale(1.35);
    filter: drop-shadow(0 4px 4px rgba(77,49,33,.2));
    transition: transform .3s cubic-bezier(.2,.8,.2,1);
}
.client-nav-link:hover .client-nav-icon img,
.client-nav-link.is-active .client-nav-icon img { transform: scale(1.55) rotate(-4deg) translateY(-1px); }

.client-sidebar::after {
    content: "";
    position: absolute;
    width: 118px;
    aspect-ratio: 1;
    right: -32px;
    bottom: 115px;
    pointer-events: none;
    opacity: .4;
    background: center / contain no-repeat url("3d/nail-polish.png");
    filter: drop-shadow(0 14px 14px rgba(0,0,0,.15));
    animation: m3d-float 6s ease-in-out infinite;
}

.admin-sidebar { box-shadow: 22px 0 70px rgba(18,14,12,.25) !important; }
.admin-sidebar nav a, .admin-sidebar nav button { transform: translateZ(0); }
.admin-sidebar nav a:hover, .admin-sidebar nav button:hover { transform: translateX(5px) translateZ(8px); }
.admin-nav-3d {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}
.admin-nav-3d img {
    width: 34px;
    height: 34px;
    max-width: none;
    object-fit: contain;
    filter: drop-shadow(0 5px 5px rgba(0,0,0,.4));
    transition: transform .3s cubic-bezier(.2,.8,.2,1), filter .3s ease;
}
.admin-sidebar nav a:hover .admin-nav-3d img,
.admin-sidebar nav button:hover .admin-nav-3d img { transform: scale(1.18) rotate(-5deg); filter: drop-shadow(0 8px 7px rgba(197,160,89,.26)); }

.admin-sidebar::after {
    content: "";
    position: absolute;
    width: 96px;
    aspect-ratio: 1;
    right: -22px;
    top: 92px;
    pointer-events: none;
    opacity: .3;
    background: center / contain no-repeat url("3d/heart.png");
    filter: drop-shadow(0 15px 15px rgba(0,0,0,.45));
    animation: m3d-float 7s ease-in-out infinite reverse;
}

/* Champs modernes dans les espaces privés */
input:not([type="checkbox"]):not([type="radio"]), textarea, select {
    transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease !important;
}
input:not([type="checkbox"]):not([type="radio"]):focus, textarea:focus, select:focus {
    border-color: rgba(197,160,89,.55) !important;
    box-shadow: 0 12px 30px rgba(197,160,89,.1) !important;
    transform: translateY(-1px);
}

.admin-card, .client-login .glass-card { backdrop-filter: blur(22px); }
.admin-card::after, .client-login .glass-card::after {
    content: "";
    position: absolute;
    width: 105px;
    aspect-ratio: 1;
    right: -34px;
    top: -52px;
    background: center / contain no-repeat url("3d/heart.png");
    filter: drop-shadow(0 18px 14px rgba(0,0,0,.2));
    animation: m3d-float 5s ease-in-out infinite;
}

@keyframes m3d-float {
    0%, 100% { transform: translate3d(0,0,32px) rotate(-2deg); }
    50% { transform: translate3d(0,-10px,42px) rotate(2deg); }
}
@keyframes m3d-orbit {
    0%, 100% { transform: translate3d(0,0,0) scale(1); }
    50% { transform: translate3d(-24px,18px,0) scale(1.06); }
}
@keyframes m3d-hero-left {
    0%, 100% { transform: translate3d(0,0,65px) rotate(-8deg); }
    50% { transform: translate3d(10px,-15px,85px) rotate(-2deg); }
}
@keyframes m3d-hero-right {
    0%, 100% { transform: translate3d(0,0,75px) rotate(7deg); }
    50% { transform: translate3d(-8px,-18px,95px) rotate(1deg); }
}
@keyframes m3d-title-shine {
    0%, 100% { background-position: 100% center; }
    50% { background-position: 0 center; }
}
@keyframes m3d-marquee { to { transform: translateX(-50%); } }
@keyframes m3d-spin { to { transform: rotate(360deg); } }

@media (max-width: 767px) {
    .site-nav, .site-nav.is-scrolled { top: 0 !important; width: 100%; border-radius: 0; border-left: 0 !important; border-right: 0 !important; }
    .m3d-quick-dock { display: none; }
    .m3d-marquee { padding: 12px 0; }
    .modern-3d-orb { width: 190px; right: -95px; opacity: .7; }
    #prestations .grid > div::after { width: 70px; height: 70px; margin-top: -112px; }
    #reservation .container > .grid::after { width: 82px; right: 15px; top: 14px; }
    .m3d-hero-heart { width: 74px; left: -18px; top: 7%; }
    .m3d-hero-polish { width: 88px; right: -20px; bottom: 5%; }
    .client-sidebar::after, .admin-sidebar::after { display: none; }
    .icon-pricing { width: 72px; right: -4px; top: -10px; opacity: .55; }
    .icon-foot-spa { display: none; }
    #conseils .icon-nail-care { width: 72px; right: 8px; top: 10px; opacity: .55; }
    #conseils .lg\:col-span-4 { padding-top: 6rem; }
    .icon-reviews { width: 70px; right: 8px; top: -26px; opacity: .45; }
    #galerie .max-w-2xl { padding-left: 0; padding-top: 72px; }
    .icon-camera { width: 78px; left: 0; top: -5px; }
    .footer-legal-3d { width: 62px; height: 62px; margin: 0 auto 10px; opacity: .65; }
    .modern-footer { padding-top: 44px; }
    .footer-cta { padding: 28px 23px; border-radius: 1.7rem; }
    .footer-cta h2 { font-size: 2.45rem; }
    .footer-cta-action { margin-top: 18px; }
    .footer-cta-action img { width: 90px; height: 90px; right: -10px; bottom: 35px; opacity: .38; }
    .footer-bento { grid-template-columns: 1fr; }
    .footer-card { min-height: auto; padding: 24px; }
    .footer-bottom { grid-template-columns: 1fr 42px; text-align: left; }
    .footer-legal-links { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; gap: 12px 18px; }
    .footer-legal-links img { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .modern-3d-orb, .m3d-icon, #prestations .grid > div::after, #reservation .container > .grid::after,
    .admin-card::after, .client-login .glass-card::after, .m3d-hero-object,
    .client-sidebar::after, .admin-sidebar::after, .section-3d-icon, .footer-legal-3d { animation: none !important; }
    .m3d-marquee-track, #accueil::after { animation: none !important; }
    .m3d-card, .card-luxe, .stat-card, .service-card, .glass-card { transform: none !important; }
}
