.page-khuyen-mai { background-color: #B71C1C; color: #FFF5E1; font-family: 'Arial', sans-serif; }
.page-khuyen-mai__hero-section { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding-top: 10px; padding-bottom: 40px; overflow: hidden; }
.page-khuyen-mai__hero-image { width: 100%; height: auto; display: block; object-fit: cover; max-height: 600px; }
.page-khuyen-mai__hero-content { position: relative; z-index: 1; max-width: 900px; margin-top: 20px; padding: 0 20px; }
.page-khuyen-mai__main-title { font-size: clamp(2.5rem, 5vw, 3.5rem); font-weight: 700; color: #FFD86A; line-height: 1.2; margin-bottom: 20px; letter-spacing: 1px; }
.page-khuyen-mai__hero-description { font-size: 1.1rem; line-height: 1.6; max-width: 700px; margin: 0 auto 30px; color: #FFF5E1; }
.page-khuyen-mai__cta-buttons { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }
.page-khuyen-mai__btn-primary, .page-khuyen-mai__btn-secondary { display: inline-block; padding: 12px 30px; border-radius: 50px; text-decoration: none; font-weight: 700; transition: all 0.3s ease; box-shadow: 0 4px 10px rgba(0,0,0,0.2); max-width: 100%; box-sizing: border-box; white-space: normal; word-wrap: break-word; }
.page-khuyen-mai__btn-primary { background: linear-gradient(180deg, #FFD86A 0%, #E6B800 100%); color: #7A0E0E; border: 2px solid #F2B544; }
.page-khuyen-mai__btn-primary:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(0,0,0,0.3); }
.page-khuyen-mai__btn-secondary { background: #7A0E0E; color: #FFD86A; border: 2px solid #FFD86A; }
.page-khuyen-mai__btn-secondary:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(0,0,0,0.3); background: #5a0a0a; }

.page-khuyen-mai__promo-grid-section, .page-khuyen-mai__how-to-claim-section, .page-khuyen-mai__terms-section, .page-khuyen-mai__faq-section { padding: 50px 20px; max-width: 1200px; margin: 0 auto; }
.page-khuyen-mai__section-title { font-size: 2.5rem; font-weight: 700; color: #FFD86A; text-align: center; margin-bottom: 40px; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); }

.page-khuyen-mai__promo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; }
.page-khuyen-mai__promo-card { background-color: #D32F2F; border-radius: 15px; overflow: hidden; box-shadow: 0 8px 20px rgba(0,0,0,0.3); transition: transform 0.3s ease, box-shadow 0.3s ease; border: 1px solid #F2B544; }
.page-khuyen-mai__promo-card:hover { transform: translateY(-10px); box-shadow: 0 12px 25px rgba(0,0,0,0.4); }
.page-khuyen-mai__promo-image { width: 100%; height: 200px; object-fit: cover; display: block; }
.page-khuyen-mai__promo-content { padding: 25px; text-align: center; }
.page-khuyen-mai__promo-title { font-size: 1.6rem; color: #FFD86A; margin-bottom: 15px; font-weight: 700; line-height: 1.3; }
.page-khuyen-mai__promo-description { font-size: 0.95rem; color: #FFF5E1; line-height: 1.5; margin-bottom: 20px; }
.page-khuyen-mai__btn-small { display: inline-block; padding: 10px 25px; border-radius: 50px; text-decoration: none; font-weight: 600; background: linear-gradient(180deg, #FFD86A 0%, #E6B800 100%); color: #7A0E0E; border: 1px solid #F2B544; transition: all 0.3s ease; max-width: 100%; box-sizing: border-box; white-space: normal; word-wrap: break-word; }
.page-khuyen-mai__btn-small:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.2); }

.page-khuyen-mai__steps-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; text-align: center; }
.page-khuyen-mai__step-card { background-color: #7A0E0E; border-radius: 15px; padding: 30px; box-shadow: 0 6px 15px rgba(0,0,0,0.2); border: 1px solid #F2B544; }
.page-khuyen-mai__step-icon { width: 60px; height: 60px; background: linear-gradient(180deg, #FFD86A 0%, #E6B800 100%); color: #7A0E0E; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 700; margin: 0 auto 20px; border: 2px solid #F4D34D; }
.page-khuyen-mai__step-title { font-size: 1.5rem; color: #FFD86A; margin-bottom: 15px; font-weight: 700; }
.page-khuyen-mai__step-description { font-size: 0.95rem; color: #FFF5E1; line-height: 1.5; }

.page-khuyen-mai__content-block { background-color: #D32F2F; border-radius: 15px; padding: 30px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); border: 1px solid #F2B544; color: #FFF5E1; line-height: 1.7; }
.page-khuyen-mai__content-block p { margin-bottom: 15px; }
.page-khuyen-mai__content-block ul { list-style: disc inside; margin-bottom: 20px; padding-left: 20px; }
.page-khuyen-mai__content-block li { margin-bottom: 8px; }

.page-khuyen-mai__faq-container { background-color: #7A0E0E; border-radius: 15px; padding: 30px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); border: 1px solid #F2B544; }
.page-khuyen-mai__faq-item { margin-bottom: 15px; border-bottom: 1px solid rgba(255,255,255,0.2); padding-bottom: 15px; }
.page-khuyen-mai__faq-item:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.page-khuyen-mai__faq-question { display: flex; justify-content: space-between; align-items: center; cursor: pointer; font-size: 1.15rem; color: #FFD86A; font-weight: 600; padding: 10px 0; list-style: none; }
.page-khuyen-mai__faq-question::-webkit-details-marker { display: none; }
.page-khuyen-mai__faq-toggle { font-size: 1.8rem; line-height: 1; transition: transform 0.3s ease; }
.page-khuyen-mai__faq-item[open] .page-khuyen-mai__faq-toggle { transform: rotate(45deg); }
.page-khuyen-mai__faq-answer { font-size: 0.95rem; color: #FFF5E1; padding-top: 10px; line-height: 1.6; }

@media (max-width: 1024px) {
    .page-khuyen-mai__main-title { font-size: clamp(2rem, 4vw, 3rem); }
    .page-khuyen-mai__section-title { font-size: 2rem; }
    .page-khuyen-mai__hero-description { font-size: 1rem; }
}

@media (max-width: 768px) {
    .page-khuyen-mai__hero-section { padding-top: 10px; padding-bottom: 30px; }
    .page-khuyen-mai__hero-image { max-height: 400px; }
    .page-khuyen-mai__main-title { font-size: clamp(1.8rem, 6vw, 2.5rem); margin-bottom: 15px; }
    .page-khuyen-mai__hero-description { font-size: 0.9rem; margin-bottom: 20px; }
    .page-khuyen-mai__cta-buttons { flex-direction: column; gap: 15px; max-width: 100% !important; width: 100% !important; box-sizing: border-box !important; padding-left: 15px; padding-right: 15px; }
    .page-khuyen-mai__btn-primary, .page-khuyen-mai__btn-secondary, .page-khuyen-mai__btn-small {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        word-wrap: break-word !important;
        padding-left: 15px;
        padding-right: 15px;
    }

    .page-khuyen-mai__promo-grid-section, .page-khuyen-mai__how-to-claim-section, .page-khuyen-mai__terms-section, .page-khuyen-mai__faq-section { padding: 30px 15px; }
    .page-khuyen-mai__section-title { font-size: 1.8rem; margin-bottom: 30px; }

    .page-khuyen-mai__promo-grid { grid-template-columns: 1fr; gap: 25px; }
    .page-khuyen-mai__promo-image { height: 180px; }
    .page-khuyen-mai__promo-title { font-size: 1.4rem; }
    .page-khuyen-mai__promo-description { font-size: 0.9rem; }

    .page-khuyen-mai__steps-container { grid-template-columns: 1fr; gap: 25px; }
    .page-khuyen-mai__step-icon { width: 50px; height: 50px; font-size: 1.8rem; margin-bottom: 15px; }
    .page-khuyen-mai__step-title { font-size: 1.3rem; }
    .page-khuyen-mai__step-description { font-size: 0.9rem; }

    .page-khuyen-mai__content-block, .page-khuyen-mai__faq-container { padding: 25px; }
    .page-khuyen-mai__content-block p, .page-khuyen-mai__content-block li, .page-khuyen-mai__faq-answer p { font-size: 0.9rem; }
    .page-khuyen-mai__faq-question { font-size: 1.05rem; }
    .page-khuyen-mai__faq-toggle { font-size: 1.5rem; }

    .page-khuyen-mai img {
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
        display: block;
    }
    .page-khuyen-mai__section,
    .page-khuyen-mai__card,
    .page-khuyen-mai__container {
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 15px;
        padding-right: 15px;
    }
}