
@import url('base/fonts.css');
@import url('base/reset.css');
@import url('layout/header.css');
@import url('sections/footer.css');


body {
    font-family: 'TT Firs Neue', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: #F3F5F9;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}


.header {
    background: transparent !important;
}


.footer {
    position: relative;
    z-index: 10 !important;  
}



.package-select {
    position: relative;
    width: 1920px;
    height: 1080px;  
    background: #F3F5F9;
    margin: 0 auto;
    overflow: visible;  
}


.map-overlay-top {
    position: absolute;
    width: 1608px;
    height: 1179px;
    left: 1318px;
    top: -600px;
    background: url('assets/images/map-full.png');
    background-size: cover;
    transform: rotate(-17deg);
    z-index: 1;
    opacity: 0.5;
    pointer-events: none;
}

.map-overlay-bottom {
    position: absolute;
    width: 908px;
    height: 479px;  
    left: -258px;  
    top: 773.87px;
    background: url('assets/images/bottom-map2.png');  
    background-size: contain;  
    background-repeat: no-repeat;
    transform: rotate(0deg);
    z-index: 1;
    opacity: 0.5;  
    pointer-events: none;
}


.select-title {
    position: absolute;
    width: 897px;
    height: 65px;
    left: calc(50% - 897px/2 - 0.5px);
    top: 152px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 50px;
    line-height: 64px;
    text-align: center;
    color: #000000;
    z-index: 2;
}

.select-description {
    position: absolute;
    width: 1168px;
    height: 46px;
    left: calc(50% - 1168px/2);
    top: 241px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 18px;
    line-height: 23px;
    text-align: center;
    color: #7F8082;
    z-index: 2;
}


.select-features {
    position: absolute;
    width: 900px;
    height: 37px;
    left: calc(50% - 900px/2);
    top: 333px;
    display: flex;
    justify-content: space-between;
    z-index: 2;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 15px;
}

.feature-icon {
    box-sizing: border-box;
    width: 37px;
    height: 37px;
    background: #F3F5F9;
    border: 1.35px solid #C6C6C6;
    border-radius: 8.1px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.feature-text {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 500;
    font-size: 16.2px;
    line-height: 21px;
    color: #000000;
}


.packages-wrapper {
    position: absolute;
    width: 100%;
    max-width: 1520px;  
    height: 752px;
    left: 50%;
    transform: translateX(-50%);
    top: 416px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 25px;
    padding: 0 20px;
    box-sizing: border-box;
    z-index: 2;
}


.package-card {
    position: relative;
    width: calc(33.333% - 20px);  
    max-width: 353px;  
    min-width: 320px;  
    border-radius: 16.5px;
    overflow: hidden;
    flex-shrink: 0;
    transition: transform 0.3s ease;
    cursor: pointer;
}


.package-card:hover {
    transform: translateY(-5px) scale(1.01);
    z-index: 20;
}


.basic-card {
    height: 546px;
    margin-top: 29px;  
    background: linear-gradient(180deg, #666666 -26.58%, #000000 45.94%);
    border-radius: 16.5px;
}


.basic-card .package-header {
    position: absolute;
    width: 288px;
    height: 45px;
    left: calc(50% - 258px/2 - 15px);
    bottom: 468px;
    z-index: 5;
}

.basic-card .package-name {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 500;
    font-size: 35px;
    line-height: 45px;
    color: #FFFFFF;
    margin: 0;
    padding: 0;
    text-align: center;
    width: 100%;
}

.basic-card .name-main {
    font-weight: 500;
    color: #FFFFFF;
}

.basic-card .name-sub {
    font-weight: 400;
    color: rgba(249, 249, 249, 0.869);
    margin-left: 5px;
}


.basic-card .package-subtitle {
    position: absolute;
    width: 242px;
    height: 34px;
    left: calc(50% - 242px/2 - 0.5px);
    bottom: 434px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 13.365px;
    line-height: 17px;
    text-align: center;
    color: #7F8082;
    z-index: 5;
    margin: 0;
    padding: 0;
}


.basic-card .package-divider {
    position: absolute;
    width: 292px;
    height: 1px;
    left: 34px;
    bottom: 416px;
    background: #7F8082;
    z-index: 5;
}


.basic-card .package-features {
    position: absolute;
    width: 300px;
    left: 27px;
    top: 150px;  
    z-index: 5;
}

.basic-card .features-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.basic-card .feature {
    position: relative;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    color: #7F8082;
    padding-left: 35px;
    margin-bottom: 10px;
}


.basic-card .feature::before {
    content: '';
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4L4.5 7.5L11 1' stroke='%237F8082' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat center;
    background-size: 20px 22px;
    width: 20px;
    height: 12px;
    left: 0;
    top: 4px;
}


.basic-card .select-button {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 45px;
    background: #FFFFFF;
    border-radius: 31.5px;
    border: none;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    color: #000000;
    cursor: pointer;
    transition: all 0.3s;
    z-index: 5;
    text-align: center;
}

.basic-card .select-button:hover {
    transform: translateX(-50%) scale(1.05);
}


.premium-card {
    height: 546px;
    margin-top: 30px;  
    background: #FFCC63;
    border-radius: 16.5px;
}

.premium-inner {
    position: absolute;
    width: 100%;
    height: 546px;
    top: 0;
    background: linear-gradient(180deg, #FFCC63 -26.32%, #000000 30.71%);
    border-radius: 16.5px;
}

.popular-badge {
    position: absolute;
    width: 114px;
    height: 15px;
    left: calc(50% - 114px/2);
    top: 7px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 11.88px;
    line-height: 15px;
    text-align: center;
    color: #FFFFFF;
    z-index: 3;
}


.premium-card .package-header {
    position: absolute;
    width: 288px;
    height: 45px;
    left: calc(50% - 258px/2 - 15px);
    bottom: 468px;
    z-index: 5;
}

.premium-card .package-name {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 500;
    font-size: 35px;
    line-height: 45px;
    color: #FFFFFF;
    margin: 0;
    padding: 0;
    text-align: center;
    width: 100%;
}

.premium-card .name-main {
    font-weight: 500;
    color: #FFCC63;
}

.premium-card .name-sub {
    font-weight: 400;
    color: rgba(242, 242, 242, 0.9);
    margin-left: 5px;
}


.premium-card .package-subtitle {
    position: absolute;
    width: 242px;
    height: 34px;
    left: calc(50% - 242px/2 - 0.5px);
    bottom: 434px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 13.365px;
    line-height: 17px;
    text-align: center;
    color: #7F8082;
    z-index: 5;
    margin: 0;
    padding: 0;
}


.premium-card .package-divider {
    position: absolute;
    width: 292px;
    height: 1px;
    left: 34px;
    bottom: 416px;
    background: #7F8082;
    z-index: 5;
}


.premium-card .package-features {
    position: absolute;
    width: 300px;
    left: 27px;
    top: 150px;  
    z-index: 5;
}

.premium-card .features-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.premium-card .feature {
    position: relative;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    color: #7F8082;
    padding-left: 35px;
    margin-bottom: 10px;
}

.premium-card .feature.feature-header {
    font-weight: 500;
    color: #FFFFFF;
    padding-left: 35px;  
}


.premium-card .feature::before {
    content: '';
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg width='16' height='12' viewBox='0 0 16 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 6L6 11L15 1' stroke='%23FFCC63' stroke-width='2'/%3E%3C/svg%3E") no-repeat center;
    width: 16px;
    height: 12px;
    left: 0;
    top: 3px;
}


.premium-card .select-button {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 45px;
    background: #FFCC63;
    border-radius: 31.5px;
    border: none;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    color: #000000;
    cursor: pointer;
    transition: all 0.3s;
    z-index: 5;
    text-align: center;
}

.premium-card .select-button:hover {
    transform: translateX(-50%) scale(1.05);
}


.maximum-card {
    height: 546px;
    margin-top: 29px;  
    background: linear-gradient(180deg, #CA89FF -64.91%, #000000 45.94%);
    border-radius: 16.5px;
}


.maximum-card .package-header {
    position: absolute;
    width: 308px;
    height: 45px;
    left: calc(50% - 258px/2 - 15px);
    bottom: 468px;
    z-index: 5;
}

.maximum-card .package-name {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 500;
    font-size: 35px;
    line-height: 45px;
    color: #FFFFFF;
    margin: 0;
    padding: 0;
    text-align: center;
    width: 100%;
}

.maximum-card .name-main {
    font-weight: 500;
    color: #CA89FF;
}

.maximum-card .name-sub {
    font-weight: 400;
    color: rgba(240, 240, 240, 0.912);
    margin-left: 5px;
}


.maximum-card .package-subtitle {
    position: absolute;
    width: 242px;
    height: 34px;
    left: calc(50% - 242px/2 - 0.5px);
    bottom: 434px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 13.365px;
    line-height: 17px;
    text-align: center;
    color: #7F8082;
    z-index: 5;
    margin: 0;
    padding: 0;
}


.maximum-card .package-divider {
    position: absolute;
    width: 292px;
    height: 1px;
    left: 34px;
    bottom: 416px;
    background: #7F8082;
    z-index: 5;
}


.maximum-card .package-features {
    position: absolute;
    width: 300px;
    left: 27px;
    top: 150px;  
    z-index: 5;
}

.maximum-card .features-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.maximum-card .feature {
    position: relative;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    color: #7F8082;
    padding-left: 35px;
    margin-bottom: 10px;
}

.maximum-card .feature.feature-header {
    font-weight: 500;
    color: #FFCC63;
    padding-left: 35px;  
}


.maximum-card .feature::before {
    content: '';
    position: absolute;
    background: url("data:image/svg+xml,%3Csvg width='16' height='12' viewBox='0 0 16 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 6L6 11L15 1' stroke='%23CA89FF' stroke-width='2'/%3E%3C/svg%3E") no-repeat center;
    width: 16px;
    height: 12px;
    left: 0;
    top: 3px;
}


.maximum-card .select-button {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 160px;
    height: 45px;
    background: #CA89FF;
    border-radius: 31.5px;
    border: none;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 20px;
    color: #000000;
    cursor: pointer;
    transition: all 0.3s;
    z-index: 5;
    text-align: center;
}

.maximum-card .select-button:hover {
    transform: translateX(-50%) scale(1.05);
}


.period-option {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.3s;
}

.period-option:hover {
    background: rgba(255, 255, 255, 0.15);
}

.period-option input[type="radio"] {
    position: absolute;
    opacity: 0;
}

.period-option input[type="radio"]:checked + .period-label {
    font-weight: 600;
}

.period-option input[type="radio"]:checked ~ .period-price {
    color: #FFFFFF;
}

.period-label {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 400;
    font-size: 14px;
    line-height: 18px;
    color: rgba(255, 255, 255, 0.7);
}

.period-price {
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 500;
    font-size: 14px;
    line-height: 18px;
    color: rgba(255, 255, 255, 0.5);
    margin-left: auto;
}

.period-discount {
    position: absolute;
    right: 20px;
    top: 8px;
    font-family: 'TT Firs Neue';
    font-style: normal;
    font-weight: 600;
    font-size: 10px;
    line-height: 13px;
    color: #00FF00;
}


.select-button:hover {
    transform: scale(1.05);
}


.package-glow-mask {
    position: absolute;
    width: 1185px;
    height: 229px;
    left: 376px;
    top: 939px;
    z-index: 1;
    pointer-events: none;
}

.package-glow-mask img {
    width: 100%;
    height: 100%;
    display: block;
}


@media screen and (min-width: 1024px) and (max-width: 1919px) {
    
    .packages-wrapper {
        max-width: 90%;  
        gap: 20px;  
    }
    
    
    .package-card {
        width: calc(33.333% - 15px);  
        min-width: 280px;  
    }
}


@media screen and (min-width: 1920px) {
    
    .packages-wrapper {
        max-width: 1520px;
    }
    
    .package-card {
        max-width: 353px;
    }
}


@media screen and (max-width: 768px) {
    
    .package-select {
        width: 100%;
        min-height: auto;
        max-height: none;
        padding: 80px 20px 40px;
        box-sizing: border-box;
    }

    
    .map-overlay-top,
    .map-overlay-bottom,
    .package-glow-mask {
        display: none;
    }

    
    .bg-pattern-1,
    .bg-pattern-2 {
        display: none; 
    }

    
    .select-title {
        position: static;
        width: 100%;
        font-size: 24px;
        line-height: 32px;
        text-align: center;
        margin: 0 0 16px 0;
        padding: 0;
    }

    .select-description {
        position: static;
        width: 100%;
        font-size: 14px;
        line-height: 20px;
        text-align: center;
        margin: 0 0 24px 0;
        padding: 0;
    }

    
    .select-features {
        position: static;
        width: 100%;
        flex-direction: column;
        gap: 16px;
        margin: 0 0 32px 0;
        padding: 0;
    }

    .feature-item {
        width: 100%;
        justify-content: center;
    }

    .feature-icon {
        width: 20px;
        height: 20px;
    }

    .feature-icon img {
        width: 20px;
        height: 20px;
    }

    .feature-text {
        font-size: 13px;
    }

    
    .packages-wrapper {
        position: static;
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin: 0;
        padding: 0;
    }

    
    .package-card {
        position: static !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 !important;
        padding: 24px 20px !important;
        border-radius: 16px;
        box-sizing: border-box;
    }

    
    .basic-card {
        background: linear-gradient(135deg, #E8EBF0 0%, #D4D8E0 100%);
        order: 1;
    }

    
    .premium-card {
        background: linear-gradient(135deg, #FFE4A1 0%, #FFC837 100%);
        order: 0; 
    }

    .premium-inner {
        width: 100%;
        height: auto;
        padding: 0;
        position: static;
    }

    
    .maximum-card {
        background: linear-gradient(135deg, #E4C6FF 0%, #B87FE6 100%);
        order: 2;
    }

    
    .popular-badge {
        position: absolute;
        top: -12px;
        left: 50%;
        transform: translateX(-50%);
        font-size: 11px;
        padding: 4px 12px;
        z-index: 10;
    }

    
    .package-header {
        position: static;
        display: flex;
        align-items: baseline;
        gap: 8px;
        margin-bottom: 12px;
    }

    .package-name {
        position: static;
        display: flex;
        gap: 6px;
        align-items: baseline;
    }

    .name-main {
        font-size: 22px;
        line-height: 28px;
    }

    .name-sub {
        font-size: 18px;
        line-height: 24px;
    }

    
    .package-subtitle {
        position: static;
        width: 100%;
        font-size: 13px;
        line-height: 18px;
        margin-bottom: 16px;
        color: #666666;
    }

    
    .package-divider {
        position: static;
        width: 100%;
        height: 1px;
        background: rgba(0, 0, 0, 0.1);
        margin: 16px 0;
    }

    
    .package-features {
        position: static;
        width: 100%;
        margin-bottom: 20px;
    }

    .features-list {
        padding-left: 0;
        margin: 0;
    }

    .feature {
        font-size: 13px;
        line-height: 20px;
        padding-left: 20px;
        margin-bottom: 8px;
        position: relative;
    }

    .feature::before {
        content: '✓';
        position: absolute;
        left: 0;
        color: #62C55B;
        font-weight: bold;
    }

    .feature-header {
        font-weight: 600;
        margin-bottom: 12px;
        padding-left: 0;
    }

    .feature-header::before {
        display: none;
    }

    
    .select-button {
        position: static !important;
        width: 100% !important;
        height: 48px !important;
        left: auto !important;
        transform: none !important;
        margin: 0 !important;
        font-size: 15px;
        border-radius: 12px;
    }

    .select-button:hover {
        transform: none !important;
    }

    
    .footer {
        display: none; 
    }

    
    .package-select::after {
        content: '';
        display: block;
        height: 60px; 
    }
}


@media screen and (max-width: 375px) {
    .select-title {
        font-size: 20px;
        line-height: 26px;
    }

    .select-description {
        font-size: 13px;
        line-height: 18px;
    }

    .package-card {
        padding: 20px 16px !important;
    }

    .name-main {
        font-size: 20px;
    }

    .name-sub {
        font-size: 16px;
    }
}

