/* ===== Phase 3: Animations, marquee, floats, footer polish ===== */

/* ===== Checkout polish ===== */
.checkout-page .checkout-steps{display:inline-flex;align-items:center;gap:.5rem;background:#faf5ff;border:1px solid #f0e2ff;border-radius:999px;padding:.35rem .75rem;font-size:.85rem;color:#7a3fb0}
.checkout-page .checkout-steps .step{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .55rem;border-radius:999px;color:#9a7ab8}
.checkout-page .checkout-steps .step.active{background:linear-gradient(135deg,#a55cff,#ff5db1);color:#fff;font-weight:600}
.checkout-page .checkout-steps .step.done{color:#4a1b73}
.checkout-page .checkout-steps .sep{width:18px;height:2px;background:#e8d3fb;border-radius:2px}
.checkout-page .checkout-panel{border:1px solid #f2e6fb;box-shadow:0 6px 22px rgba(122,62,175,.06);border-radius:16px}
.checkout-page .checkout-panel h5{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}
.checkout-page .form-label{font-weight:500;color:#4b2e6b;display:flex;align-items:center;gap:.35rem}
.checkout-page .form-control{border-radius:10px;border:1px solid #e6d7f5;transition:border-color .2s,box-shadow .2s}
.checkout-page .form-control:focus{border-color:#a55cff;box-shadow:0 0 0 .2rem rgba(165,92,255,.15)}
.checkout-page .was-validated .form-control:invalid{border-color:#dc3545}
.checkout-page .zone-card{position:relative;display:flex;gap:.65rem;align-items:flex-start;padding:.9rem;border:1px solid #eadcfa;border-radius:14px;cursor:pointer;background:#fff;transition:all .2s;height:100%}
.checkout-page .zone-card:hover{border-color:#c99cff;box-shadow:0 4px 14px rgba(165,92,255,.12);transform:translateY(-1px)}
.checkout-page .zone-card input{position:absolute;opacity:0;pointer-events:none}
.checkout-page .zone-card .zone-check{width:22px;height:22px;border-radius:50%;border:2px solid #d5b8f5;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:transparent;transition:all .2s;margin-top:2px}
.checkout-page .zone-card.selected{border-color:#a55cff;background:linear-gradient(135deg,#faf5ff,#fff0f7);box-shadow:0 6px 18px rgba(255,93,177,.15)}
.checkout-page .zone-card.selected .zone-check{background:linear-gradient(135deg,#a55cff,#ff5db1);border-color:transparent;color:#fff}
.checkout-page .zone-card .zone-body{display:flex;flex-direction:column;gap:.2rem;flex:1}
.checkout-page .zone-card .zone-title{font-weight:600;color:#3c1a5c;display:flex;align-items:center;gap:.35rem}
.checkout-page .zone-card .zone-meta{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.35rem}
.checkout-page .bg-brand-soft{background:#f4e6ff}
.checkout-page .trust-strip{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;padding:.75rem 1rem;background:#fff;border:1px dashed #eadcfa;border-radius:14px;color:#6a4a8a;font-size:.85rem}
.checkout-page .trust-strip i{color:#a55cff;margin-right:.25rem}
.checkout-page .checkout-summary{border:1px solid #f2e6fb;border-radius:16px;box-shadow:0 10px 28px rgba(122,62,175,.08)}
.checkout-page .summary-items{max-height:280px;overflow-y:auto;padding-right:.25rem}
.checkout-page .summary-item{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px dashed #f0e2ff}
.checkout-page .summary-item:last-child{border-bottom:none}
.checkout-page .summary-item img{width:42px;height:42px;object-fit:cover;border-radius:8px;border:1px solid #f0e2ff}
.checkout-page .pay-btn{position:relative;font-weight:600;letter-spacing:.3px;padding:.75rem 1rem;border-radius:12px}
.checkout-page .pay-btn:disabled{opacity:.85}
@media(max-width:576px){.checkout-page .checkout-steps{font-size:.75rem}.checkout-page .checkout-steps .sep{width:12px}}

/* Admin closed-site banner */
.admin-closed-banner{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;background:linear-gradient(90deg,#b91c1c,#ea580c);color:#fff;padding:.55rem 1rem;font-size:.9rem;box-shadow:0 2px 8px rgba(0,0,0,.15);position:sticky;top:0;z-index:1050}
.admin-closed-banner i{font-size:1.1rem}
.admin-closed-banner a{margin-left:auto;background:rgba(255,255,255,.18);color:#fff;padding:.25rem .7rem;border-radius:20px;text-decoration:none;font-weight:600;transition:background .2s}
.admin-closed-banner a:hover{background:rgba(255,255,255,.32)}

/* Card hover lift */
.card, .panel, .product-card, .category-card, .feature-card {
    transition: transform .35s cubic-bezier(.2,.9,.3,1.2), box-shadow .35s ease;
}
.card:hover, .panel:hover, .product-card:hover, .category-card:hover, .feature-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px -20px rgba(139, 40, 156, .35);
}

/* Fade-in on load */
.card, .panel, .product-card, .category-card, .feature-card {
    animation: elysFadeUp .55s ease both;
}
@keyframes elysFadeUp { from { opacity:0; transform:translateY(14px);} to {opacity:1; transform:translateY(0);} }

/* Animated logo pill (navbar + footer + hero) */
.brand-logo-pill {
    display:inline-flex; align-items:center; justify-content:center;
    width: 46px; height: 46px; border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, #fff, #ffe4f2 55%, #f6c8ea 100%);
    box-shadow: 0 6px 18px -6px rgba(139,40,156,.55), 0 0 0 2px #fff inset;
    padding: 4px;
    position: relative;
    animation: logoPulse 2.8s ease-in-out infinite;
}
.brand-logo-pill.sm { width: 38px; height: 38px; }
.brand-logo-pill img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.brand-logo-pill::after {
    content:""; position:absolute; inset:-4px; border-radius:50%;
    background: conic-gradient(from 0deg, #8b289c, #ff5aa1, #fff, #8b289c);
    z-index:-1; filter: blur(6px); opacity:.55;
    animation: logoSpin 6s linear infinite;
}
@keyframes logoPulse { 0%,100%{ transform: scale(1);} 50% { transform: scale(1.06);} }
@keyframes logoSpin { to { transform: rotate(360deg);} }

.brand-text { font-weight: 800; background: linear-gradient(90deg,#fff,#ffd6ec); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* Marquee bar */
.elys-marquee {
    background: linear-gradient(90deg,#8b289c,#c53794,#ff5aa1);
    color:#fff; overflow:hidden; position:relative;
    padding: 8px 0; font-size: .9rem; font-weight:500;
}
.marquee-track {
    display:inline-flex; gap: 2rem; white-space: nowrap;
    animation: marqueeScroll 32s linear infinite;
    padding-left: 100%;
}
.marquee-item { display:inline-flex; align-items:center; gap:.5rem; }
.marquee-item a { color:#fff; text-decoration: underline; margin-left:.5rem; }
.marquee-sep { opacity:.6; }
.countdown { background: rgba(255,255,255,.18); padding: 2px 8px; border-radius: 999px; font-weight:600; font-size:.8rem; }
@keyframes marqueeScroll { from { transform: translateX(0);} to { transform: translateX(-50%);} }
.elys-marquee:hover .marquee-track { animation-play-state: paused; }

/* Floating support buttons */
.elys-floats {
    position: fixed; right: 18px; bottom: 18px; z-index: 1040;
    display: flex; flex-direction: column; gap: 12px;
}
.float-btn {
    width: 56px; height: 56px; border-radius: 50%;
    border: none; color:#fff; font-size: 1.6rem;
    display:inline-flex; align-items:center; justify-content:center;
    box-shadow: 0 10px 24px -6px rgba(0,0,0,.35);
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: pointer;
}
.float-btn:hover { transform: translateY(-3px) scale(1.05); }
.float-btn.wa { background: linear-gradient(135deg,#25d366,#128c7e); animation: floatBob 3s ease-in-out infinite; }
.float-btn.ai { background: linear-gradient(135deg,#8b289c,#ff5aa1); animation: floatBob 3.4s ease-in-out infinite; }
@keyframes floatBob { 0%,100%{ transform: translateY(0);} 50% { transform: translateY(-6px);} }

/* AI chat panel */
.elys-ai-panel {
    position: fixed; right: 18px; bottom: 88px; width: 340px; max-width: calc(100vw - 36px);
    background: #fff; border-radius: 18px; overflow: hidden; z-index: 1050;
    box-shadow: 0 24px 60px -20px rgba(139,40,156,.55);
    transform: translateY(20px) scale(.95); opacity: 0; pointer-events: none;
    transition: all .28s cubic-bezier(.2,.9,.3,1.2);
}
.elys-ai-panel.open { transform: translateY(0) scale(1); opacity:1; pointer-events:auto; }
.elys-ai-panel .ai-head {
    background: linear-gradient(135deg,#8b289c,#ff5aa1); color:#fff;
    padding: 12px 14px; display:flex; align-items:center; justify-content:space-between;
}
.elys-ai-panel .ai-body {
    padding: 12px; max-height: 320px; overflow-y: auto; background:#faf5fb;
    display:flex; flex-direction:column; gap:8px;
}
.ai-msg { padding: 8px 12px; border-radius: 14px; max-width: 85%; font-size:.9rem; line-height:1.35; }
.ai-msg.bot { background:#fff; border:1px solid #efd9ee; align-self: flex-start; }
.ai-msg.user { background: linear-gradient(135deg,#8b289c,#ff5aa1); color:#fff; align-self: flex-end; }
.elys-ai-panel .ai-form { display:flex; gap:6px; padding: 10px; border-top:1px solid #eee; background:#fff; }
.elys-ai-panel .ai-form input { flex:1; border: 1px solid #e6d3e8; border-radius: 999px; padding: 8px 14px; outline:none; }

/* Announcement modal */
.announce-modal .modal-header { background: linear-gradient(135deg,#8b289c,#ff5aa1); color:#fff; }
.announce-modal .modal-header .btn-close { filter: invert(1); }
.countdown-big {
    display:inline-block; margin-top:.5rem; padding: 10px 18px; border-radius: 12px;
    background: linear-gradient(135deg,#fce7f3,#f3e8ff); font-weight:700; color:#8b289c;
    letter-spacing:.5px; font-variant-numeric: tabular-nums;
    animation: pulseGlow 2s ease-in-out infinite;
}
@keyframes pulseGlow { 0%,100% { box-shadow: 0 0 0 0 rgba(139,40,156,.35);} 50% { box-shadow: 0 0 0 10px rgba(139,40,156,0);} }

/* Footer polish */
.elys-footer h5 i { margin-right: 6px; opacity: .9; }
.elys-footer ul a { color: rgba(255,255,255,.85); text-decoration: none; display:inline-flex; align-items:center; gap:.35rem; transition: color .2s ease, transform .2s ease; }
.elys-footer ul a:hover { color: #fff; transform: translateX(3px); }
.elys-footer .social a {
    width: 38px; height: 38px; border-radius: 50%;
    display:inline-flex; align-items:center; justify-content:center;
    background: rgba(255,255,255,.12); color:#fff; font-size: 1.15rem;
    transition: background .2s ease, transform .2s ease;
}
.elys-footer .social a:hover { background:#fff; color:#8b289c; transform: translateY(-3px); }
.elys-footer .credit { font-size:.85rem; opacity:.9; }
.elys-footer .credit .heart { display:inline-block; animation: heartBeat 1.4s ease-in-out infinite; }
.elys-footer .credit a { color:#ffd6ec; text-decoration: none; }
.elys-footer .credit a:hover { color:#fff; text-decoration: underline; }
@keyframes heartBeat { 0%,100%{ transform: scale(1);} 30%{ transform: scale(1.25);} 60%{ transform: scale(1.1);} }

/* Maintenance page */
.maint-wrap { min-height: 70vh; display:flex; align-items:center; justify-content:center; text-align:center; padding: 40px 16px; }
.maint-card { background:#fff; border-radius: 24px; padding: 40px; box-shadow: 0 24px 60px -20px rgba(139,40,156,.4); max-width: 520px; }
.maint-card .maint-icon { font-size: 4rem; color:#8b289c; animation: logoPulse 2.4s ease-in-out infinite; }

/* ===== Fonts ===== */
body, .btn, .form-control, .navbar, .nav-link { font-family: 'Poppins', 'Segoe UI', system-ui, -apple-system, sans-serif; }
h1, h2, h3, .display-1, .display-2, .display-3, .hero h1, .section-title h2 { font-family: 'Playfair Display', 'Poppins', Georgia, serif; letter-spacing: -.015em; }
.hero h1 { font-weight: 800; }
.lead { font-family: 'Poppins', sans-serif; font-weight: 400; }

/* ===== Hero animated logo stage ===== */
.hero-logo-stage {
    position: relative;
    width: 380px; max-width: 100%; aspect-ratio: 1/1;
    margin: 0 auto;
    display: flex; align-items: center; justify-content: center;
}
.hero-logo-halo {
    position: absolute; inset: 6%;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #ffffff 0%, #ffe4f2 35%, #f6c8ea 65%, rgba(246,200,234,0) 80%);
    box-shadow: 0 30px 80px -20px rgba(255,90,161,.65), inset 0 0 60px rgba(255,255,255,.6);
    animation: heroHaloPulse 3.2s ease-in-out infinite;
}
.hero-logo-ring {
    position: absolute; inset: 0;
    border-radius: 50%;
    background: conic-gradient(from 0deg, #ffd6ec, #ff5aa1, #8b289c, #ffffff, #ffd6ec);
    filter: blur(14px); opacity: .55;
    animation: heroRingSpin 8s linear infinite;
}
.hero-logo-img {
    position: relative; z-index: 2;
    width: 78%; height: 78%; object-fit: contain;
    filter: drop-shadow(0 18px 30px rgba(74,0,114,.45));
    animation: heroFloat 4.5s ease-in-out infinite;
}
.hero-sparkle {
    position: absolute; z-index: 3; color: #fff;
    font-size: 1.4rem; text-shadow: 0 0 12px rgba(255,255,255,.9);
    animation: sparkleTwinkle 2.2s ease-in-out infinite;
}
.hero-sparkle.s1 { top: 8%;  left: 10%; animation-delay: 0s; }
.hero-sparkle.s2 { top: 20%; right: 8%; animation-delay: .6s; font-size: 1.7rem; color:#ffd6ec; }
.hero-sparkle.s3 { bottom: 12%; left: 20%; animation-delay: 1.2s; }
@keyframes heroHaloPulse { 0%,100%{ transform: scale(1); opacity:1;} 50% { transform: scale(1.06); opacity:.92;} }
@keyframes heroRingSpin { to { transform: rotate(360deg);} }
@keyframes heroFloat { 0%,100%{ transform: translateY(0) rotate(-1deg);} 50% { transform: translateY(-10px) rotate(2deg);} }
@keyframes sparkleTwinkle { 0%,100%{ opacity: 0; transform: scale(.6);} 50% { opacity: 1; transform: scale(1.15);} }

/* ===== Footer reinforce ===== */
.elys-footer { background: linear-gradient(135deg, #4a0072 0%, #6a1b9a 55%, #8b289c 100%); color:#fff; padding: 3rem 0 1.5rem; margin-top: 3rem; }
.elys-footer h5 { color:#fff; font-family: 'Playfair Display', serif; font-weight: 700; margin-bottom: .9rem; display:flex; align-items:center; gap:.4rem; }
.elys-footer p, .elys-footer li, .elys-footer .small { color: rgba(255,255,255,.85); }
.elys-footer ul { padding-left: 0; }
.elys-footer .copy { border-top: 1px solid rgba(255,255,255,.15); margin-top: 2rem; padding-top: 1rem; color: rgba(255,255,255,.8); }

/* ===== Nav polish + active state ===== */
.elys-navbar .navbar-brand .brand-text { color: var(--brand-violet); background: linear-gradient(90deg,#6a1b9a,#ec407a); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color: transparent; }
.elys-navbar .nav-link {
    display: inline-flex; align-items: center; gap: .4rem;
    font-weight: 500; color: #4a0072 !important;
    padding: .5rem .9rem !important; border-radius: 999px;
    position: relative; transition: background .2s ease, color .2s ease, transform .2s ease;
}
.elys-navbar .nav-link i { font-size: 1.1rem; opacity: .85; }
.elys-navbar .nav-link:hover { background: rgba(236,64,122,.08); color: #ec407a !important; transform: translateY(-1px); }
.elys-navbar .nav-link.active {
    color: #fff !important;
    background: linear-gradient(135deg, #6a1b9a 0%, #ec407a 100%);
    box-shadow: 0 8px 18px -8px rgba(236,64,122,.65);
}
.elys-navbar .nav-link.active i { opacity: 1; }

/* Footer richer visual */
.elys-footer { position: relative; overflow: hidden; }
.elys-footer::before {
    content:""; position:absolute; inset:0;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,90,161,.35), transparent 40%),
        radial-gradient(circle at 85% 80%, rgba(255,255,255,.12), transparent 45%);
    pointer-events:none;
}
.elys-footer > .container { position: relative; z-index: 1; }
.elys-footer h5 i {
    width: 30px; height: 30px; display:inline-flex; align-items:center; justify-content:center;
    border-radius: 50%; background: rgba(255,255,255,.15); color:#ffd6ec; font-size: 1rem;
}
.elys-footer ul li { padding: 4px 0; }
.elys-footer ul li a i { color:#ffd6ec; font-size:.85rem; }
.elys-footer .contact-line { display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem; color: rgba(255,255,255,.9); }
.elys-footer .contact-line i {
    width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center;
    background: rgba(255,255,255,.14); border-radius: 50%; color:#ffd6ec;
}
.elys-footer .social a { animation: floatBob 3.6s ease-in-out infinite; }
.elys-footer .social a:nth-child(2) { animation-delay: .3s; }
.elys-footer .social a:nth-child(3) { animation-delay: .6s; }
.elys-footer .social a:nth-child(4) { animation-delay: .9s; }

/* Product card image fallback background so empty images still look nice */
.product-card .img-wrap { background: linear-gradient(135deg,#f3e5f5,#fce4ec); }
.product-card .img-wrap::after {
    content: "\1f487\1f3fd"; position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center; font-size: 3rem; opacity:.35; z-index:0;
}
.product-card .img-wrap img { position: relative; z-index: 1; }

/* ===== Typewriter ===== */
.typewriter{display:inline-block;min-height:1.4em;border-right:2px solid rgba(255,255,255,.85);padding-right:4px;animation:tw-caret 1s steps(1) infinite}
.typewriter-light{color:#fff}
@keyframes tw-caret{50%{border-color:transparent}}

/* ===== Auth page ===== */
.auth-wrap{position:relative;padding:56px 0;min-height:calc(100vh - 220px);display:flex;align-items:center;overflow:hidden}
.auth-bg{position:absolute;inset:0;background:radial-gradient(1200px 500px at 10% 10%,rgba(139,58,168,.18),transparent 60%),radial-gradient(900px 400px at 90% 90%,rgba(233,30,99,.18),transparent 60%),linear-gradient(135deg,#fdf4ff,#fff,#fff5f9);z-index:0}
.auth-wrap .container{position:relative;z-index:1}
.auth-card{background:#fff;border-radius:22px;box-shadow:0 25px 60px rgba(139,58,168,.18);overflow:hidden;border:1px solid rgba(139,58,168,.08)}
.auth-hero{background:linear-gradient(135deg,#7a1fa2 0%,#c2185b 60%,#e91e63 100%);color:#fff;position:relative}
.auth-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 200px at 20% 0%,rgba(255,255,255,.25),transparent 60%);pointer-events:none}
.auth-benefits li{margin:.35rem 0;opacity:.95}
.auth-benefits i{margin-right:.5rem;color:#ffd6ef}
.input-icon{position:relative}
.input-icon > i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8b3aa8;opacity:.75;font-size:1.05rem}
.input-icon .form-control{padding-left:40px;height:48px;border-radius:12px}
.input-icon.pw .form-control{padding-right:44px}
.pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#8b3aa8;padding:6px 10px;border-radius:8px;cursor:pointer}
.pw-toggle:hover{background:rgba(139,58,168,.08)}

/* ===== Admin stat cards ===== */
.admin-dash .stat-card{position:relative;background:#fff;border-radius:16px;padding:18px 18px 16px;box-shadow:0 10px 24px rgba(139,58,168,.08);border:1px solid rgba(139,58,168,.06);overflow:hidden;transition:transform .25s ease, box-shadow .25s ease}
.admin-dash .stat-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(139,58,168,.15)}
.admin-dash .stat-card .sc-icon{position:absolute;right:14px;top:14px;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.35rem;color:#fff}
.admin-dash .stat-card .sc-label{font-size:.8rem;color:#6c757d;text-transform:uppercase;letter-spacing:.04em}
.admin-dash .stat-card .sc-value{font-size:1.55rem;font-weight:700;color:#2a1140;margin-top:.15rem}
.admin-dash .stat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px}
.sc-violet::before{background:#8b3aa8}.sc-violet .sc-icon{background:#8b3aa8}
.sc-pink::before{background:#e91e63}.sc-pink .sc-icon{background:#e91e63}
.sc-amber::before{background:#ffb300}.sc-amber .sc-icon{background:#ffb300}
.sc-teal::before{background:#00bfa5}.sc-teal .sc-icon{background:#00bfa5}
.sc-indigo::before{background:#5c6bc0}.sc-indigo .sc-icon{background:#5c6bc0}
.sc-rose::before{background:#ff5a86}.sc-rose .sc-icon{background:#ff5a86}
.sc-purple::before{background:#6a1b9a}.sc-purple .sc-icon{background:#6a1b9a}
.sc-red::before{background:#ef5350}.sc-red .sc-icon{background:#ef5350}

/* ===== Admin forms polish ===== */
.admin-form .form-label{font-weight:600;color:#4a1866;font-size:.9rem;display:flex;align-items:center;gap:.4rem}
.admin-form .form-label i{color:#8b3aa8}
.admin-form .form-control,.admin-form .form-select{border-radius:10px;border:1px solid #e6d6ef;padding:.55rem .8rem}
.admin-form .form-control:focus,.admin-form .form-select:focus{border-color:#8b3aa8;box-shadow:0 0 0 .2rem rgba(139,58,168,.15)}
.admin-form textarea.form-control{min-height:80px}
.admin-form .form-check-label{display:inline-flex;align-items:center;gap:.3rem}
.admin-form .nav-pills .nav-link{color:#4a1866;background:transparent;border:1px solid rgba(139,58,168,.15);border-radius:999px;padding:.4rem .9rem;display:inline-flex;align-items:center;gap:.35rem}
.admin-form .nav-pills .nav-link.active{background:linear-gradient(135deg,#8b3aa8,#e91e63);color:#fff;border-color:transparent}

/* ===== Footer Polish (Phase 3+) ===== */
.elys-footer{position:relative;overflow:hidden;background:linear-gradient(135deg,#2a0d3a 0%,#4a1358 45%,#7a1e6a 100%);color:#fff;padding:80px 0 24px;margin-top:64px}
.elys-footer::before{content:"";position:absolute;inset:0;background:radial-gradient(1200px 400px at 20% 0%,rgba(255,105,180,.18),transparent 60%),radial-gradient(900px 300px at 80% 100%,rgba(148,0,211,.22),transparent 60%);pointer-events:none}
.elys-footer .footer-wave{position:absolute;top:-1px;left:0;right:0;line-height:0;transform:translateY(-99%)}
.elys-footer .footer-wave svg{display:block;width:100%;height:70px}
.elys-footer .footer-wave path{fill:#2a0d3a}
.elys-footer .footer-blob{position:absolute;width:360px;height:360px;border-radius:50%;filter:blur(80px);opacity:.35;pointer-events:none;animation:footerBlob 14s ease-in-out infinite}
.elys-footer .footer-blob.b1{background:#ff5db1;top:-100px;left:-120px}
.elys-footer .footer-blob.b2{background:#a55cff;bottom:-140px;right:-120px;animation-delay:-7s}
@keyframes footerBlob{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-20px) scale(1.1)}}
.elys-footer h5{font-family:'Playfair Display',serif;font-weight:700;letter-spacing:.3px;position:relative;padding-bottom:10px;margin-bottom:14px}
.elys-footer h5::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;border-radius:3px;background:linear-gradient(90deg,#ff5db1,#a55cff);transition:width .35s ease}
.elys-footer .f-col:hover h5::after{width:70px}
.elys-footer .f-brand{background:linear-gradient(90deg,#fff,#ffd6ef);-webkit-background-clip:text;background-clip:text;color:transparent}
.elys-footer ul li{margin-bottom:6px}
.elys-footer ul li a{color:rgba(255,255,255,.78);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all .25s ease}
.elys-footer ul li a i{opacity:.6;transition:transform .25s ease,opacity .25s ease}
.elys-footer ul li a:hover{color:#fff;transform:translateX(4px)}
.elys-footer ul li a:hover i{opacity:1;transform:translateX(2px)}
.elys-footer .contact-line{display:flex;align-items:center;gap:10px;padding:6px 0;color:rgba(255,255,255,.85);text-decoration:none;transition:color .25s}
.elys-footer a.contact-line:hover{color:#ffd6ef}
.elys-footer .contact-line i{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);transition:all .3s}
.elys-footer a.contact-line:hover i{background:linear-gradient(135deg,#ff5db1,#a55cff);border-color:transparent;transform:scale(1.08)}
.elys-footer .social a{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:1.1rem;text-decoration:none;transition:all .35s cubic-bezier(.2,.7,.3,1.4);position:relative;overflow:hidden}
.elys-footer .social a::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ff5db1,#a55cff);opacity:0;transition:opacity .3s}
.elys-footer .social a i{position:relative;z-index:1}
.elys-footer .social a:hover{transform:translateY(-4px) rotate(-6deg);border-color:transparent;box-shadow:0 10px 20px rgba(255,93,177,.35)}
.elys-footer .social a:hover::before{opacity:1}
.elys-footer .brand-logo-pill.sm.floaty{animation:floaty 4s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.elys-footer .f-newsletter .form-control{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff}
.elys-footer .f-newsletter .form-control::placeholder{color:rgba(255,255,255,.55)}
.elys-footer .f-newsletter .form-control:focus{background:rgba(255,255,255,.15);box-shadow:0 0 0 .2rem rgba(255,93,177,.25);border-color:#ff5db1;color:#fff}
.elys-footer .f-newsletter .btn-brand{background:linear-gradient(135deg,#ff5db1,#a55cff);border:none;color:#fff}
.elys-footer .f-newsletter .btn-brand:hover{filter:brightness(1.08);transform:translateY(-1px)}
.elys-footer .f-newsletter .f-ok{display:none;color:#8dffcf}
.elys-footer .f-newsletter .f-ok.show{display:block;animation:fadeInUp .4s ease}
.elys-footer .copy{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.75);font-size:.9rem}
.elys-footer .copy .credit a{color:#ffd6ef;text-decoration:none}
.elys-footer .copy .credit a:hover{color:#fff;text-decoration:underline}
.elys-footer .copy .heart{display:inline-block;animation:heartbeat 1.6s ease-in-out infinite;color:#ff5db1}
@keyframes heartbeat{0%,100%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}75%{transform:scale(1.15)}}
.elys-footer .f-top{position:absolute;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;border:none;background:linear-gradient(135deg,#ff5db1,#a55cff);color:#fff;box-shadow:0 8px 20px rgba(0,0,0,.25);cursor:pointer;transition:transform .25s,box-shadow .25s;z-index:2}
.elys-footer .f-top:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 26px rgba(255,93,177,.45)}
.elys-footer .reveal{opacity:0;transform:translateY(18px);animation:fadeInUp .7s ease forwards}
.elys-footer .reveal.delay-1{animation-delay:.12s}
.elys-footer .reveal.delay-2{animation-delay:.24s}
.elys-footer .reveal.delay-3{animation-delay:.36s}
@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}
@media (max-width:576px){.elys-footer{padding-top:60px}.elys-footer .f-top{right:12px;bottom:12px}}
