/* ===============================================================
   Megaverse — Enhancements CSS
   Enquiry Modal | Scroll-To-Top | Mobile Home Btn | Abstract FX
   =============================================================== */

/* ========================================
   1. ENQUIRY FORM MODAL
   ======================================== */

#enquiry-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(4, 6, 24, 0.78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 99998;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

#enquiry-modal-overlay.eq-active {
    opacity: 1;
    visibility: visible;
}

#enquiry-modal {
    background: #ffffff;
    width: 100%;
    max-width: 620px;
    border-radius: 24px 24px 0 0;
    overflow: hidden;
    transform: translateY(100%);
    transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 -24px 80px rgba(0, 0, 0, 0.35);
    max-height: 92vh;
    overflow-y: auto;
}

#enquiry-modal-overlay.eq-active #enquiry-modal {
    transform: translateY(0);
}

/* Header */
.eq-modal-header {
    background: linear-gradient(-45deg, #582d3f, #9a355f, #7a2846, #582d3f);
    background-size: 400% 400%;
    animation: eqGradientBG 8s ease-in-out infinite;
    padding: 34px 40px 30px;
    position: relative;
    overflow: hidden;
}

@keyframes eqGradientBG {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Abstract shapes in modal header — mirrors loader aesthetic */
.eq-modal-header::before {
    content: '';
    position: absolute;
    width: 220px;
    height: 220px;
    top: -80px;
    right: -50px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12) 0%, transparent 100%);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 40px;
    transform: rotate(45deg);
    pointer-events: none;
    animation: eqShapeFloat 18s ease-in-out infinite alternate;
}

.eq-modal-header::after {
    content: '';
    position: absolute;
    width: 140px;
    height: 140px;
    bottom: -50px;
    left: 20px;
    background: linear-gradient(225deg, rgba(255, 255, 255, 0.08) 0%, transparent 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 30px;
    transform: rotate(20deg);
    pointer-events: none;
    animation: eqShapeFloat2 22s ease-in-out infinite alternate-reverse;
}

@keyframes eqShapeFloat {
    0%   { transform: rotate(45deg) translateY(0); }
    100% { transform: rotate(50deg) translateY(15px); }
}

@keyframes eqShapeFloat2 {
    0%   { transform: rotate(20deg) translateY(0); }
    100% { transform: rotate(15deg) translateY(-10px); }
}

.eq-modal-header-content {
    position: relative;
    z-index: 2;
}

.eq-modal-subtitle {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.65);
    margin-bottom: 10px;
}

.eq-modal-header h2 {
    font-size: 26px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.25;
    margin: 0;
    font-family: 'General Sans', sans-serif;
}

.eq-close-btn {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 38px;
    height: 38px;
    background: rgba(255, 255, 255, 0.15);
    border: 1.5px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 3;
    color: #ffffff;
    font-size: 16px;
    line-height: 1;
    outline: none;
}

.eq-close-btn:hover {
    background: rgba(255, 255, 255, 0.28);
    transform: rotate(90deg);
}

/* Form Body */
.eq-modal-body {
    padding: 34px 40px 40px;
    background: #ffffff;
}

.eq-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.eq-form-group {
    margin-bottom: 20px;
}

.eq-form-group label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: #582d3f;
    margin-bottom: 9px;
    font-family: 'General Sans', sans-serif;
}

.eq-form-group .eq-input,
.eq-form-group .eq-select,
.eq-form-group .eq-textarea {
    width: 100%;
    padding: 16px 20px;
    background: #f5f5f5;
    border: 2px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 400;
    color: #040618;
    font-family: 'General Sans', sans-serif;
    outline: none;
    transition: border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
    -webkit-appearance: none;
    appearance: none;
}

.eq-form-group .eq-input::placeholder,
.eq-form-group .eq-textarea::placeholder {
    color: #b0b0b8;
}

.eq-form-group .eq-input:hover,
.eq-form-group .eq-select:hover,
.eq-form-group .eq-textarea:hover {
    border-color: rgba(88, 45, 63, 0.25);
    background: #ffffff;
}

.eq-form-group .eq-input:focus,
.eq-form-group .eq-select:focus,
.eq-form-group .eq-textarea:focus {
    border-color: #9a355f;
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(154, 53, 95, 0.09);
}

.eq-form-group .eq-select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23582d3f' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-color: #f5f5f5;
    padding-right: 44px;
}

.eq-form-group .eq-select option {
    color: #040618;
    font-family: 'General Sans', sans-serif;
}

.eq-form-group .eq-textarea {
    resize: none;
    height: 110px;
    line-height: 1.6;
}

/* Submit Button */
.eq-submit-btn {
    width: 100%;
    padding: 18px 24px;
    background: linear-gradient(-45deg, #582d3f, #9a355f, #7a2846, #9a355f);
    background-size: 300% 300%;
    animation: eqGradientBG 6s ease-in-out infinite;
    border: none;
    border-radius: 100px;
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    font-family: 'General Sans', sans-serif;
    cursor: pointer;
    transition: transform 0.35s ease, box-shadow 0.35s ease;
    letter-spacing: 0.4px;
    margin-top: 6px;
}

.eq-submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 36px rgba(88, 45, 63, 0.42);
}

.eq-submit-btn:active {
    transform: translateY(0);
}

.eq-privacy-note {
    text-align: center;
    font-size: 12px;
    color: #b0b0b8;
    margin-top: 14px;
    margin-bottom: 0;
    line-height: 1.5;
}

/* Modal scrollbar */
#enquiry-modal::-webkit-scrollbar {
    width: 4px;
}
#enquiry-modal::-webkit-scrollbar-thumb {
    background: #9a355f;
    border-radius: 10px;
}

/* ========================================
   2. SCROLL TO TOP BUTTON
   ======================================== */

#scroll-to-top {
    position: fixed;
    bottom: 32px;
    right: 32px;
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #582d3f, #9a355f);
    border: none;
    border-radius: 50%;
    color: #ffffff;
    font-size: 17px;
    cursor: pointer;
    z-index: 9990;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(16px);
    transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
    box-shadow: 0 6px 22px rgba(88, 45, 63, 0.42);
}

#scroll-to-top.stt-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

#scroll-to-top:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(88, 45, 63, 0.6);
}

/* ========================================
   3. MOBILE HOME FLOATING BUTTON
   ======================================== */

#mobile-home-btn {
    display: none;
    position: fixed;
    bottom: 32px;
    left: 32px;
    width: 50px;
    height: 50px;
    background: #040618;
    border: 2px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
    color: #ffffff;
    font-size: 17px;
    cursor: pointer;
    z-index: 9990;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 6px 22px rgba(0, 0, 0, 0.32);
    transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}

#mobile-home-btn:hover {
    background: linear-gradient(135deg, #582d3f, #9a355f);
    border-color: transparent;
    color: #ffffff;
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(88, 45, 63, 0.5);
}

@media (max-width: 991px) {
    #mobile-home-btn {
        display: flex;
    }
}

/* ========================================
   4. ABSTRACT BACKGROUND EFFECT
   Mirrors the loader's animated shapes
   ======================================== */

/* Applied to key light sections via JS */
.abstract-bg-effect {
    position: relative;
    overflow: hidden;
}

.abstract-bg-effect::before {
    content: '';
    position: absolute;
    width: 70vw;
    height: 70vw;
    top: -25%;
    left: -15%;
    background: linear-gradient(135deg, rgba(88, 45, 63, 0.07) 0%, transparent 70%);
    border: 1px solid rgba(154, 53, 95, 0.07);
    border-radius: 40px;
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 0;
    animation: abstractFloat1 28s ease-in-out infinite alternate;
}

.abstract-bg-effect::after {
    content: '';
    position: absolute;
    width: 55vw;
    height: 55vw;
    bottom: -18%;
    right: -8%;
    background: linear-gradient(225deg, rgba(154, 53, 95, 0.06) 0%, transparent 70%);
    border: 1px solid rgba(88, 45, 63, 0.06);
    border-radius: 40px;
    transform: rotate(20deg);
    pointer-events: none;
    z-index: 0;
    animation: abstractFloat2 22s ease-in-out infinite alternate-reverse;
}

@keyframes abstractFloat1 {
    0%   { transform: rotate(45deg) translateY(0); }
    100% { transform: rotate(51deg) translateY(35px); }
}

@keyframes abstractFloat2 {
    0%   { transform: rotate(20deg) translateY(0); }
    100% { transform: rotate(14deg) translateY(-25px); }
}

/* Dark section variant — white-toned shapes */
.dark-section.abstract-dark-accent::before {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, transparent 70%);
    border-color: rgba(255, 255, 255, 0.04);
}

.dark-section.abstract-dark-accent::after {
    background: linear-gradient(225deg, rgba(255, 255, 255, 0.03) 0%, transparent 70%);
    border-color: rgba(255, 255, 255, 0.03);
}

/* ========================================
   5. GLOBAL GRADIENT THEME ACCENTS
   ======================================== */

/* Section sub-title visibility handled entirely by theme-override.css.
   Gradient dot accent (::before) is also set there. */

/* Gradient border-top accent on service cards on hover */
.service-item:hover,
.service-item-prime:hover {
    border-top-color: #9a355f;
}

/* ========================================
   6. RESPONSIVE ADJUSTMENTS
   ======================================== */

@media (max-width: 768px) {
    .eq-form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .eq-modal-header {
        padding: 26px 24px 22px;
    }

    .eq-modal-body {
        padding: 26px 24px 30px;
    }

    .eq-modal-header h2 {
        font-size: 22px;
    }

    #scroll-to-top,
    #mobile-home-btn {
        bottom: 20px;
        width: 54px;
        height: 54px;
        font-size: 20px;
    }

    #scroll-to-top { right: 16px; }
    #mobile-home-btn { left: 16px; }
}

@media (max-width: 480px) {
    #enquiry-modal {
        border-radius: 18px 18px 0 0;
    }

    .eq-modal-header h2 {
        font-size: 20px;
    }

    #scroll-to-top,
    #mobile-home-btn {
        width: 52px;
        height: 52px;
        font-size: 19px;
        bottom: 16px;
    }

    #scroll-to-top { right: 14px; }
    #mobile-home-btn { left: 14px; }
}
