/* ── Toast notifications ─────────────────────────────────────────────────── */

.ps-toast {
    position: fixed;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%) translateY(1rem);
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1rem 1.5rem;
    border-radius: .75rem;
    font-size: .9375rem;
    font-weight: 500;
    color: #fff;
    box-shadow: 0 8px 32px rgba(0,0,0,.22);
    opacity: 0;
    transition: opacity .3s ease, transform .3s ease;
    pointer-events: none;
    max-width: 90vw;
    text-align: center;
}
.ps-toast.ps-toast--success { background: #16a34a; }
.ps-toast.ps-toast--error   { background: #dc2626; }
.ps-toast.ps-toast--info    { background: #2563eb; }
.ps-toast.ps-toast--visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ── Homepage VP ─────────────────────────────────────────────────────────── */

body.home {
    overflow-x: hidden;
}

/* Navbar par-dessus le fullscreen sur la home VP */
body.home .grim-floating-header {
    position: fixed !important;
    top: 0;
}
body.admin-bar.home .grim-floating-header {
    top: 32px !important;
}
@media screen and (max-width: 782px) {
    body.admin-bar.home .grim-floating-header {
        top: 46px !important;
    }
}

.ps-homepage {
    background: linear-gradient(135deg, #000000 0%, rgba(0,0,0,0.9) 60%, rgba(73,48,204,0.7) 100%);
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    /* Full-width breakout */
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-top: 0;
    margin-bottom: 0;
}

.ps-homepage .ps-float {
    animation: ps-float 8s ease-in-out infinite;
    background: rgba(102,70,255,0.2);
    border-radius: 9999px;
    filter: blur(48px);
    position: absolute;
    top: 0; left: 25%;
    width: 24rem; height: 24rem;
}
.ps-homepage .ps-float-reverse {
    animation: ps-float-rev 12s ease-in-out infinite;
    background: rgba(73,48,204,0.2);
    border-radius: 9999px;
    filter: blur(48px);
    position: absolute;
    bottom: 0; right: 25%;
    width: 20rem; height: 20rem;
}
.ps-homepage .ps-float-slow {
    animation: ps-float 10s ease-in-out infinite;
    background: rgba(102,70,255,0.1);
    border-radius: 9999px;
    filter: blur(48px);
    position: absolute;
    top: 33%; right: 33%;
    width: 16rem; height: 16rem;
}

@keyframes ps-float     { 0%,100%{ transform:translateY(0) translateX(0) } 50%{ transform:translateY(-20px) translateX(10px) } }
@keyframes ps-float-rev { 0%,100%{ transform:translateY(0) translateX(0) } 50%{ transform:translateY(20px) translateX(-15px) } }

.ps-homepage .ps-dots {
    position: absolute; inset: 0; opacity: 0.2; pointer-events: none;
    background-image: radial-gradient(circle, rgba(255,255,255,0.1) 1px, transparent 1px);
    background-size: 30px 30px;
}

.ps-homepage .ps-inner {
    position: relative;
    z-index: 10;
    padding: 7rem 1rem 4rem;
    text-align: center;
    width: 100%;
}

/* Badge */
.ps-badge {
    display: inline-block;
    padding: 0.375rem 1rem;
    background: #6646ff;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
    border-radius: 9999px;
    animation: pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;
    margin-bottom: 1.5rem;
}
@keyframes pulse { 0%,100%{ opacity:1 } 50%{ opacity:.5 } }

/* Titres */
.ps-homepage h2 {
    font-size: clamp(1.75rem, 4vw, 3rem);
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.5rem;
}
.ps-divider {
    height: 4px;
    width: 5rem;
    background: linear-gradient(90deg, #6646ff, #a78bfa);
    border-radius: 9999px;
    margin: 0 auto 1.5rem;
}
.ps-homepage p.ps-subtitle {
    color: rgba(255,255,255,0.8);
    font-size: 1.125rem;
    max-width: 40rem;
    margin: 0 auto 2.5rem;
}
.ps-homepage .ps-accent { color: #a78bfa; font-weight: 700; }

/* Countdown */
.ps-countdown-wrap {
    display: inline-flex;
    gap: 0.75rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.ps-countdown-col { display: flex; flex-direction: column; align-items: center; }
.ps-countdown-digits { display: flex; gap: 0.375rem; }
.ps-digit {
    background: rgba(102,70,255,0.2);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(102,70,255,0.2);
    border-radius: 0.5rem;
    padding: 0.75rem 1rem;
    font-size: clamp(2rem, 6vw, 5rem);
    font-family: monospace;
    font-weight: 700;
    color: #6646ff;
    min-width: 1.5ch;
    text-align: center;
    line-height: 1;
}
.ps-countdown-label {
    color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
    margin-top: 0.5rem;
}
.ps-colon {
    color: #6646ff;
    font-size: clamp(2rem, 6vw, 5rem);
    font-family: monospace;
    font-weight: 700;
    display: flex;
    align-items: center;
    padding-bottom: 2rem;
    animation: pulse 1s ease-in-out infinite;
}

/* Card interne */
.ps-card {
    backdrop-filter: blur(4px);
    border-radius: 1rem;
    padding: 2rem;
    border: 1px solid rgba(102,70,255,0.2);
    background: linear-gradient(135deg, rgba(255,255,255,0.05), rgba(73,48,204,0.1));
    max-width: 36rem;
    margin: 0 auto;
}
.ps-card h3 { color: #fff; font-size: 1.25rem; font-weight: 600; margin: 0 0 1.5rem; }

/* Boutons */
.ps-btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.75rem;
    color: #fff;
    background: linear-gradient(135deg, #6646ff, #4930cc);
    text-decoration: none;
    transition: transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 10px 25px rgba(102,70,255,0.3);
}
.ps-btn-primary:hover { transform: scale(1.05); color: #fff; }

.ps-btn-white {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.75rem;
    color: #000;
    background: #fff;
    text-decoration: none;
    transition: transform 0.2s;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.ps-btn-white:hover { transform: scale(1.02); background: #f3f4f6; color: #000; }

.ps-btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 0.75rem;
    color: #fff;
    border: 2px solid rgba(102,70,255,0.5);
    text-decoration: none;
    transition: transform 0.2s, background 0.2s;
}
.ps-btn-outline:hover { transform: scale(1.02); background: rgba(102,70,255,0.2); color: #fff; }

.ps-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.ps-note { color: rgba(255,255,255,0.4); font-size: 0.875rem; margin-top: 2rem; }

/* ── Layout générique des pages VP dans GeneratePress ───────────────────── */
/* Corrige le flex-row de .site-content de GeneratePress */
.ps-sale-list,
.ps-account {
    flex: 1;
    width: 100%;
    min-width: 0;
}
.ps-member-nav-wrap {
    width: 100%;
    margin-bottom: 0;
}
/* Force la nav à prendre toute la largeur du site-content */
.site-content {
    flex-wrap: wrap;
}

/* ── Pages login / inscription ───────────────────────────────────────────── */
.ps-login-page,
.ps-register-page {
    min-height: calc(100vh - 160px);
}
