/* =========================================================
   WIFI HOTEL
   Customer Portal
   UI-02
   ========================================================= */


/* =========================================================
   CUSTOMER PAGE
   ========================================================= */

.customer-page {
    min-height: 100vh;

    background:
        radial-gradient(
            circle at top right,
            rgba(37, 99, 235, 0.10),
            transparent 35%
        ),
        linear-gradient(
            180deg,
            #f8fbff 0%,
            #f8fafc 100%
        );
}


/* =========================================================
   HEADER
   ========================================================= */

.customer-header {
    position: sticky;
    top: 0;
    z-index: 50;

    background:
        rgba(255, 255, 255, 0.92);

    backdrop-filter:
        blur(14px);

    border-bottom:
        1px solid rgba(226, 232, 240, 0.8);
}

.customer-header-inner {
    min-height: 70px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.hotel-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.hotel-brand-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius:
        12px;

    color:
        #ffffff;

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #1d4ed8
        );

    box-shadow:
        0 6px 16px
        rgba(37, 99, 235, 0.22);

    font-size: 20px;
    font-weight: 700;
}

.hotel-brand-text {
    display: flex;
    flex-direction: column;
}

.hotel-brand-name {
    color:
        var(--text-primary);

    font-size: 16px;
    font-weight: 700;

    line-height: 1.2;
}

.hotel-brand-subtitle {
    color:
        var(--text-muted);

    font-size: 11px;
}


/* =========================================================
   HERO
   ========================================================= */

.customer-hero {
    padding:
        60px 0 35px;

    text-align:
        center;
}

.customer-hero-badge {
    display: inline-flex;

    align-items: center;
    gap: 7px;

    padding:
        7px 13px;

    margin-bottom:
        16px;

    border-radius:
        var(--radius-full);

    color:
        var(--primary);

    background:
        var(--primary-light);

    font-size: 12px;
    font-weight: 700;
}

.customer-hero-title {
    max-width:
        760px;

    margin:
        0 auto 14px;

    color:
        var(--gray-900);

    font-size:
        clamp(30px, 5vw, 48px);

    font-weight:
        800;

    letter-spacing:
        -1.2px;
}

.customer-hero-title span {
    color:
        var(--primary);
}

.customer-hero-description {
    max-width:
        620px;

    margin:
        0 auto;

    color:
        var(--text-secondary);

    font-size:
        16px;
}


/* =========================================================
   MAIN CONTENT
   ========================================================= */

.customer-main {
    padding:
        20px 0 70px;
}

.customer-section {
    margin-bottom:
        28px;
}

.customer-section-title {
    margin:
        0 0 7px;

    font-size:
        22px;

    font-weight:
        750;
}

.customer-section-description {
    margin:
        0 0 20px;

    color:
        var(--text-muted);

    font-size:
        14px;
}


/* =========================================================
   PACKAGE GRID
   ========================================================= */

.package-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(220px, 1fr)
        );

    gap:
        16px;
}

.package-option {
    position:
        relative;
}

.package-option input {
    position:
        absolute;

    opacity:
        0;

    pointer-events:
        none;
}

.package-card {
    position:
        relative;

    display:
        block;

    height:
        100%;

    padding:
        22px;

    overflow:
        hidden;

    cursor:
        pointer;

    background:
        var(--white);

    border:
        2px solid
        var(--border);

    border-radius:
        var(--radius-xl);

    box-shadow:
        var(--shadow-sm);

    transition:
        0.22s ease;
}

.package-card:hover {
    transform:
        translateY(-3px);

    border-color:
        #93c5fd;

    box-shadow:
        var(--shadow-md);
}

.package-option input:checked
+ .package-card {
    border-color:
        var(--primary);

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #eff6ff
        );

    box-shadow:
        0 8px 25px
        rgba(37, 99, 235, 0.13);
}

.package-check {
    position:
        absolute;

    top:
        15px;

    right:
        15px;

    width:
        25px;

    height:
        25px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border:
        1px solid
        var(--border);

    border-radius:
        50%;

    color:
        transparent;

    background:
        var(--white);

    font-size:
        13px;

    transition:
        0.2s ease;
}

.package-option input:checked
+ .package-card
.package-check {
    color:
        var(--white);

    background:
        var(--primary);

    border-color:
        var(--primary);
}

.package-icon {
    width:
        46px;

    height:
        46px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        17px;

    border-radius:
        13px;

    color:
        var(--primary);

    background:
        var(--primary-light);

    font-size:
        20px;

    font-weight:
        700;
}

.package-name {
    margin-bottom:
        4px;

    color:
        var(--text-primary);

    font-size:
        18px;

    font-weight:
        750;
}

.package-code {
    margin-bottom:
        16px;

    color:
        var(--text-muted);

    font-size:
        11px;

    font-weight:
        600;

    letter-spacing:
        0.5px;

    text-transform:
        uppercase;
}

.package-price {
    color:
        var(--primary);

    font-size:
        25px;

    font-weight:
        800;

    line-height:
        1.2;
}

.package-price small {
    font-size:
        12px;

    font-weight:
        500;

    color:
        var(--text-muted);
}

.package-duration {
    margin-top:
        9px;

    color:
        var(--text-secondary);

    font-size:
        13px;
}


/* =========================================================
   CUSTOMER FORM
   ========================================================= */

.customer-form-card {
    padding:
        26px;

    background:
        var(--white);

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-xl);

    box-shadow:
        var(--shadow-sm);
}

.customer-form-grid {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        18px;
}

.customer-form-full {
    grid-column:
        1 / -1;
}

.customer-form-card .form-group {
    margin-bottom:
        0;
}


/* =========================================================
   CHECKOUT SUMMARY
   ========================================================= */

.order-summary {
    padding:
        22px;

    margin-top:
        20px;

    background:
        var(--gray-50);

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-lg);
}

.order-summary-row {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    padding:
        8px 0;

    color:
        var(--text-secondary);

    font-size:
        14px;
}

.order-summary-total {
    padding-top:
        15px;

    margin-top:
        8px;

    border-top:
        1px solid
        var(--border);

    color:
        var(--text-primary);

    font-size:
        17px;

    font-weight:
        700;
}

.order-summary-total strong {
    color:
        var(--primary);

    font-size:
        22px;
}


/* =========================================================
   CTA
   ========================================================= */

.customer-submit {
    width:
        100%;

    min-height:
        52px;

    margin-top:
        22px;

    border:
        0;

    border-radius:
        var(--radius-md);

    color:
        var(--white);

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #1d4ed8
        );

    box-shadow:
        0 8px 20px
        rgba(37, 99, 235, 0.22);

    font-size:
        15px;

    font-weight:
        700;

    transition:
        0.2s ease;
}

.customer-submit:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 12px 25px
        rgba(37, 99, 235, 0.28);
}

.customer-submit:active {
    transform:
        translateY(0);
}


/* =========================================================
   TRUST FEATURES
   ========================================================= */

.customer-features {
    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        14px;

    margin-top:
        25px;
}

.customer-feature {
    display:
        flex;

    align-items:
        center;

    gap:
        11px;

    padding:
        15px;

    background:
        rgba(255, 255, 255, 0.8);

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius-lg);
}

.customer-feature-icon {
    width:
        36px;

    height:
        36px;

    flex-shrink:
        0;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        10px;

    color:
        var(--success);

    background:
        var(--success-light);
}

.customer-feature-text {
    color:
        var(--text-secondary);

    font-size:
        12px;

    line-height:
        1.4;
}


/* =========================================================
   FOOTER
   ========================================================= */

.customer-footer {
    padding:
        25px 0;

    color:
        var(--text-muted);

    border-top:
        1px solid
        var(--border);

    text-align:
        center;

    font-size:
        12px;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 700px) {

    .customer-header-inner {
        min-height:
            60px;
    }

    .customer-hero {
        padding:
            38px 0 25px;
    }

    .customer-hero-title {
        letter-spacing:
            -0.6px;
    }

    .customer-hero-description {
        font-size:
            14px;
    }

    .customer-form-card {
        padding:
            18px;
    }

    .customer-form-grid {
        grid-template-columns:
            1fr;
    }

    .customer-form-full {
        grid-column:
            auto;
    }

    .customer-features {
        grid-template-columns:
            1fr;
    }

}