/**
 * Stylesheet for Landing Tối Ưu Năng Lượng (Energy Plan)
 * Template: landing-toi-uu-nang-luong.php
 */

/* ==========================================================================
   GLOBAL
   ========================================================================== */
.landing-energy-plan {
    --ep-teal: #68C9CA;
    --ep-teal-dark: #3fa9ab;
    --ep-navy: #0f3550;
    --ep-text: #222222;
    font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--ep-text);
    line-height: 1.5;
    overflow-x: hidden;
}

.landing-energy-plan *,
.landing-energy-plan *::before,
.landing-energy-plan *::after {
    box-sizing: border-box;
}

.landing-energy-plan img {
    max-width: 100%;
    height: auto;
    display: block;
}

.landing-energy-plan h2,
.landing-energy-plan h3,
.landing-energy-plan h4 {
    font-family: inherit;
    margin: 0;
}

.landing-energy-plan p {
    margin: 0;
}

/* Hiển thị riêng theo thiết bị: .ep-mb-only chỉ hiện trên mobile, .ep-pc-only chỉ hiện trên PC/tablet */
@media (min-width: 768px) {
    .ep-mb-only {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .ep-pc-only {
        display: none !important;
    }
}

.ep-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative;
}

/* Tiêu đề section dùng chung */
.ep-heading {
    text-align: center;
    margin-bottom: 40px;
}

.ep-heading-sub {
    font-size: 22px;
    font-weight: 700;
    color: #111111;
    letter-spacing: .5px;
    line-height: 1.3;
}

.ep-heading-main {
    font-size: 38px;
    font-weight: 900;
    color: var(--ep-teal);
    letter-spacing: .5px;
    line-height: 1.2;
}

/* Nút dùng chung */
.ep-btn {
    display: inline-block;
    padding: 14px 34px;
    border-radius: 40px;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .5px;
    text-decoration: none;
    text-align: center;
    transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.ep-btn-primary {
    background: var(--ep-teal);
    color: #ffffff;
    box-shadow: 0 6px 18px rgba(104, 201, 202, .45);
}

/* Chỉ áp hover cho thiết bị có chuột, tránh "kẹt" màu hover sau khi chạm trên điện thoại */
@media (hover: hover) {
    .ep-btn:hover {
        transform: translateY(-2px);
    }

    .ep-btn-primary:hover {
        background: var(--ep-teal-dark);
        color: #ffffff;
    }
}

.ep-btn:focus-visible {
    outline: 3px solid var(--ep-navy);
    outline-offset: 3px;
}

.ep-btn-small {
    display: inline-block;
    padding: 6px 26px;
    border-radius: 20px;
    background: var(--ep-teal);
    color: #0b2235;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background-color .25s ease, color .25s ease;
}

.ep-btn-small:hover {
    background: #ffffff;
    color: #0b2235;
}

/* ==========================================================================
   SECTION 1: BANNER + 4 Ô ĐIỂM NỔI BẬT
   Khung xanh nổi đè lên mép dưới banner
   ========================================================================== */
.ep-hero {
    line-height: 0;
}

.ep-hero-img {
    width: 100%;
}

.ep-features {
    position: relative;
    z-index: 2;
}

.ep-features-panel {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 27px;
    max-width: 855px;
    margin: clamp(-82px, -5.7vw, -30px) auto 0; /* phần đè lên banner co theo chiều rộng màn hình */
    padding: 14px 45px;
    background: rgba(113, 173, 207, .81);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    border-radius: 14px;
}

.ep-feature-card {
    background: #ffffff;
    border-radius: 10px;
    min-height: 144px;
    padding: 16px 8px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    transition: transform .3s ease, box-shadow .3s ease;
}

@media (hover: hover) {
    .ep-feature-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 8px 18px rgba(15, 53, 80, .15);
    }
}

.ep-feature-card img {
    width: 68px;
    margin: 0 auto 3px;
}

.ep-feature-card p {
    font-size: 14px;
    font-weight: 700;
    color: #111111;
    line-height: 1.35;
}

.ep-features-cta {
    text-align: center;
    margin-top: 38px;
}

.ep-features-cta .ep-btn,
.ep-solution .ep-btn {
    padding: 8px 22px;
    font-size: 18px;
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: 0;
    box-shadow: 0 3px 6px rgba(0, 0, 0, .18);
}

/* ==========================================================================
   SECTION 2: BẠN ĐANG Ở CẤP ĐỘ NĂNG LƯỢNG NÀO? (3 ẢNH + 3 Ô NÚT)
   ========================================================================== */
.ep-levels {
    padding: 58px 0 70px;
}

.ep-levels .ep-heading {
    margin-bottom: 46px;
}

.ep-levels .ep-heading-sub {
    font-size: 26px;
}

.ep-levels .ep-heading-main {
    font-size: 32px;
    margin-top: 8px;
}

.ep-levels-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    max-width: 995px;
    margin: 0 auto;
}

.ep-level-link {
    display: block;
    text-decoration: none;
}

.ep-level-img {
    display: block;
    overflow: hidden;
}

.ep-level-img img {
    width: 100%;
    aspect-ratio: 844 / 750;
    object-fit: cover;
    transition: transform .4s ease;
}

@media (hover: hover) {
    .ep-level-link:hover .ep-level-img img {
        transform: scale(1.04);
    }
}

.ep-level-name {
    display: block;
    padding: 10px;
    background: #c3c3c3;
    color: #111111;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .3px;
    text-align: center;
    transition: background-color .25s ease, color .25s ease;
}

.ep-level-plus .ep-level-name {
    background: #d0eaeb;
}

.ep-level-advanced .ep-level-name {
    background: var(--ep-teal);
}

@media (hover: hover) {
    .ep-level-link:hover .ep-level-name {
        background: var(--ep-teal-dark);
    }
}

/* Focus bàn phím giống hover */
.ep-level-link:focus-visible {
    outline: 3px solid var(--ep-navy);
    outline-offset: 3px;
}

.ep-level-link:focus-visible .ep-level-img img {
    transform: scale(1.04);
}

.ep-level-link:focus-visible .ep-level-name {
    background: var(--ep-teal-dark);
}

.ep-level-card p {
    margin-top: 16px;
    font-size: 15px;
    color: #222222;
    line-height: 1.25;
    text-align: justify;
    text-wrap: pretty;
}

/* ==========================================================================
   SECTION 3: NĂNG LƯỢNG CƠ THỂ ĐƯỢC SINH RA TỪ ĐÂU?
   Khung trắng trong suốt chứa 6 bước, mũi tên → nằm ngang tâm ảnh tròn
   ========================================================================== */
.ep-source {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 60px 0 70px;
}

.ep-source-container {
    max-width: 1400px;
}

.ep-source .ep-heading {
    margin-bottom: 28px;
}

.ep-source .ep-heading-main {
    font-size: 38px;
    line-height: 1.15;
}

.ep-source .ep-heading-sub {
    font-size: 17px;
    color: #111111;
    margin-top: 4px;
}

.ep-source-panel {
    --ep-step-title-h: 46px; /* chiều cao 2 dòng tiêu đề để ảnh các bước thẳng hàng */
    --ep-step-gap: 10px;
    --ep-step-img: 160px;
    display: flex;
    max-width: 1350px;
    margin: 0 auto;
    padding: 44px 30px 30px;
    background: rgba(255, 255, 255, .55);
    border-radius: 20px;
}

.ep-source-item {
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    text-align: center;
}

.ep-source-item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: calc(var(--ep-step-title-h) + var(--ep-step-gap) + var(--ep-step-img) / 2 - 7px);
    right: -14px;
    width: 28px;
    height: 15px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 15' fill='none' stroke='%23111111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7.5h25M20 1.5l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.ep-source-item h4 {
    min-height: var(--ep-step-title-h);
    margin-bottom: var(--ep-step-gap);
    font-size: 16px;
    font-weight: 800;
    line-height: 23px;
    color: #111111;
}

.ep-source-item img {
    width: var(--ep-step-img);
    margin: 0 auto 12px;
    transition: transform .4s ease;
}

.ep-source-item:hover img {
    transform: scale(1.05);
}

/* Mô tả được rộng hơn cột một chút để giữ ngắt dòng như thiết kế (bỏ max-width 100% của Flatsome) */
.ep-source-item p {
    max-width: none;
    margin: 0 -20px;
    font-size: 14.5px;
    line-height: 1.3;
    color: #333333;
}

/* Thiết kế để cột cuối rộng hơn (mô tả 3 dòng dài), mũi tên 5→6 dịch theo để nằm giữa 2 ảnh */
@media (min-width: 1025px) {
    .ep-source-item:last-child {
        flex-grow: 1.15;
    }

    .ep-source-item:last-child p {
        margin: 0;
    }

    .ep-source-item:nth-child(5)::after {
        right: -22px;
    }
}

/* ==========================================================================
   SECTION 4: TẠI SAO TÌNH TRẠNG NÀY LẠI XẢY RA?
   ========================================================================== */
.ep-why {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #ffffff;
    padding: 80px 0 70px;
    min-height: 560px;
}

.ep-why-title {
    margin-bottom: 30px;
}

.ep-why-title h2 {
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    letter-spacing: 1px;
}

/* 2 dòng chữ nhỏ + dấu ? cao bằng 2 dòng, đáy ngang dòng cuối */
.ep-why-title-row {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    margin-top: 12px;
}

.ep-why-title h3 {
    flex: 0 0 auto;
    width: auto;
    font-size: 18px;
    font-weight: 800;
    line-height: 23px;
    color: #ffffff;
    letter-spacing: .3px;
}

.ep-why-qmark {
    font-size: 64px;
    font-weight: 800;
    line-height: .75;
    color: #ffffff;
}

.ep-why-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    margin-bottom: 55px;
}

.ep-why-desc {
    font-size: 19px;
    color: #e3f4f8;
    line-height: 1.5;
    text-align: justify;
}

/* Thẻ cảnh báo: tam giác vàng tràn ra ngoài khung bên trái */
.ep-warning {
    position: relative;
    margin-left: 70px;
    background: rgba(63, 114, 145, 1);
    border-radius: 14px;
    padding: 20px 26px 20px 75px;
    box-shadow: 0 8px 25px rgba(0, 0, 0, .15);
}

.ep-warning-icon {
    position: absolute;
    left: -65px;
    bottom: 14px;
    width: 125px;
    filter: drop-shadow(0 6px 15px rgba(0, 0, 0, .2));
}

.ep-warning strong {
    display: block;
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.45;
    letter-spacing: .5px;
    text-align: center;
}

/* Quy trình 5 bước có mũi tên */
.ep-steps {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.ep-step {
    flex: 1;
    max-width: 180px;
    text-align: center;
}

.ep-step img {
    height: 64px;
    width: auto;
    margin: 0 auto 12px;
}

.ep-step p {
    font-size: 15px;
    font-weight: 500;
    color: #ffffff;
    line-height: 1.35;
}

.ep-step-arrow {
    flex: 0 0 52px;
    height: 12px;
    margin-top: 26px;
    position: relative;
    opacity: .85;
}

.ep-step-arrow::before {
    content: "";
    position: absolute;
    left: 0;
    right: 10px;
    top: 5px;
    height: 2px;
    background: #ffffff;
}

.ep-step-arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    border-left: 10px solid #ffffff;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
}

/* ==========================================================================
   SECTION 5: ENERGY PLAN LÀ GÌ? (TEXT TRÁI - ẢNH 2 NGƯỜI BÊN PHẢI)
   ========================================================================== */
/* Giữ tỷ lệ ảnh nền 3840x1446 để 2 người luôn nằm bên phải, không bị text đè */
.ep-solution {
    background-size: cover;
    background-position: right center;
    background-repeat: no-repeat;
    background-color: #e4e4e4;
    padding: 50px 0 70px;
    min-height: calc(100vw * 1446 / 3840);
    display: flex;
    align-items: center;
}

.ep-solution .ep-container {
    width: 100%;
}

.ep-solution-content {
    max-width: 430px;
}

.ep-solution .ep-solution-title {
    font-size: 37.5px;
    font-weight: 800;
    color: #111111;
    line-height: 1.1;
    letter-spacing: .5px;
}

.ep-solution .ep-solution-sub {
    font-size: 31px;
    font-weight: 800;
    color: var(--ep-teal);
    line-height: 1.15;
    margin: 4px 0 18px;
}

/* Cỡ chữ đo theo thiết kế; trên PC xuống dòng cố định bằng .ep-br-pc cho giống ảnh (tablet/mobile tự xuống dòng) */
.ep-solution .ep-solution-desc {
    max-width: 440px;
    font-size: 18.5px;
    line-height: 23px;
    color: #111111;
    margin-bottom: 32px;
}

.ep-solution-desc strong {
    font-weight: 800;
}

/* PC: khối text co giãn theo vw cùng tỷ lệ ảnh nền -> luôn nằm gọn bên trái 2 người ở mọi độ rộng màn.
   Mốc màn 1440: mép trái 140px, tiêu đề 46px, "LÀ GÌ?" 38px, mô tả 21px, nút 20px (tối đa bằng màn 1920) */
@media (min-width: 1025px) {
    .ep-solution {
        padding: 2.8vw 0 3.6vw;
    }

    .ep-solution .ep-container {
        max-width: none;
        padding: 0 20px 0 9.72vw;
    }

    .ep-solution-content {
        max-width: none;
    }

    .ep-solution .ep-solution-title {
        font-size: min(3.2vw, 61px);
    }

    .ep-solution .ep-solution-sub {
        font-size: min(2.64vw, 51px);
        margin: .3vw 0 1.4vw;
    }

    .ep-solution .ep-solution-desc {
        max-width: none;
        font-size: min(1.46vw, 28px);
        line-height: 1.27;
        margin-bottom: 2.2vw;
    }

    .ep-solution .ep-btn {
        font-size: min(1.39vw, 27px);
        padding: .45em 1.2em;
    }
}

/* ==========================================================================
   SECTION 6: CHẠM ĐỂ LỰA CHỌN GÓI ENERGY PLAN (3 CỘT)
   Số thứ tự - card (tiêu đề / ảnh / đối tượng / mô tả) - nút nằm ngoài, dưới chân card
   Cột nổi đè lên nền section 7
   ========================================================================== */
.ep-plans {
    position: relative;
    z-index: 2;
    padding: 70px 0 0;
}

.ep-plans .ep-heading {
    margin-bottom: 36px;
}

.ep-plans .ep-heading-sub {
    font-size: 20px;
    font-weight: 800;
}

.ep-plans-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 930px;
    margin: 0 auto;
}

.ep-plan-col {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ep-plan-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    margin-bottom: 10px;
    border-radius: 50%;
    background: var(--ep-teal);
    color: #ffffff;
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

/* Card giãn đều chiều cao giữa 3 cột, nút luôn nằm ngay dưới chân card */
.ep-plan-card {
    flex: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    background: #f2f2f2;
    border-radius: 10px;
    overflow: hidden;
}

.ep-plan-head {
    padding: 18px 10px 16px;
    background: #8CBCD8;
    color: #ffffff;
    text-align: center;
}

.ep-plan-head h4 {
    font-size: 24px;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: .3px;
    line-height: 1.2;
}

.ep-plan-head span {
    display: block;
    margin-top: 3px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

.ep-plan-img {
    overflow: hidden;
}

.ep-plan-img img {
    width: 100%;
    aspect-ratio: 378 / 326;
    object-fit: cover;
    transition: transform .4s ease;
}

.ep-plan-col:hover .ep-plan-img img {
    transform: scale(1.05);
}

.ep-plan-target {
    padding: 8px 10px;
    background: #8CC0D4;
    color: #000000;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
}

.ep-plan-body {
    flex: 1;
    padding: 20px 22px 24px;
}

.ep-plan-body p {
    font-size: 14.5px;
    color: #333333;
    line-height: 1.45;
    text-align: justify;
}

.ep-plan-btn {
    display: inline-block;
    margin-top: 17px;
    padding: 6px 30px;
    border-radius: 20px;
    background: var(--ep-teal);
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(104, 201, 202, .35);
    transition: background-color .25s ease, transform .25s ease;
}

.ep-plan-btn:hover {
    background: var(--ep-teal-dark);
    color: #ffffff;
    transform: translateY(-2px);
}

/* ==========================================================================
   SECTION 7: CƠ CHẾ ENERGY BOOST
   ========================================================================== */
.ep-mechanism {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin-top: -90px;
    padding: 170px 0 90px;
    position: relative;
    z-index: 1;
}

.ep-mechanism-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    max-width: 680px;
    aspect-ratio: 1804 / 752;
    margin: 0 auto;
    padding: 30px 40px;
    background-size: cover;
    background-position: center;
    border: 3px solid #ffffff;
    border-radius: 24px;
    box-shadow: 0 14px 40px rgba(15, 53, 80, .25);
    text-decoration: none;
    transition: transform .3s ease, box-shadow .3s ease;
}

.ep-mechanism-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 50px rgba(15, 53, 80, .35);
}

.ep-mechanism-sub {
    font-size: 30px;
    font-weight: 500;
    color: #ffffff;
    line-height: 1.2;
}

.ep-mechanism-title {
    font-size: 38px;
    font-weight: 900;
    color: var(--ep-teal);
    line-height: 1.2;
    letter-spacing: .5px;
    padding-bottom: 8px;
    border-bottom: 3px solid var(--ep-teal);
    margin-bottom: 26px;
}

.ep-mechanism-card:hover .ep-btn-small {
    background: #ffffff;
}

/* ==========================================================================
   SECTION 8: TIÊU CHUẨN TẠO NÊN SỰ KHÁC BIỆT
   ========================================================================== */
.ep-standards {
    padding: 80px 0;
    background: #ffffff;
    overflow: hidden;
}

/* Cột text co theo nội dung, phần còn lại dành cho ảnh */
.ep-standards-row {
    display: grid;
    grid-template-columns: max-content 1fr;
    column-gap: 70px;
    align-items: center;
}

/* Ảnh nền trắng (không trong suốt) -> đặt text nổi lên trên phần lề ảnh */
.ep-standards-text {
    position: relative;
    z-index: 1;
}

.ep-standards-text h2 {
    font-size: 46px;
    font-weight: 900;
    color: var(--ep-teal);
    line-height: 1;
    letter-spacing: 1px;
}

.ep-standards-text h3 {
    font-size: 24px;
    font-weight: 800;
    color: #111111;
    line-height: 1.35;
    margin-top: 14px;
}

.ep-standards-img {
    min-width: 0;
}

/* Ảnh gốc 2360x1306 có lề trắng (trái 182, phải 470, trên 99, dưới 179px)
   -> phóng to + margin âm để phần hình thật lấp đầy cột */
.ep-standards-img img {
    width: 138.2%;
    max-width: none;
    margin: -5.8% 0 -10.5% -10.66%;
}

/* ==========================================================================
   SECTION 9: KHÔNG GIAN PHÒNG KHÁM (GALLERY)
   Tỷ lệ cột theo kích thước ảnh gốc: 1272 - 634 - 634 - 1272 (cao 758)
   ========================================================================== */
.ep-gallery {
    background: #ffffff;
    overflow: hidden;
}

.ep-gallery-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 2fr;
    gap: 6px;
    aspect-ratio: 3830 / 758;
}

.ep-gallery-col {
    overflow: hidden;
    min-height: 0;
}

.ep-gallery-stack {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 6px;
}

.landing-energy-plan .ep-gallery-col img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.ep-gallery-stack img {
    min-height: 0;
}

/* Ảnh dùng <picture> (đổi ảnh riêng mobile) phải lấp đầy ô như <img> */
.ep-gallery-stack picture {
    display: block;
    min-height: 0;
    overflow: hidden;
}

.landing-energy-plan .ep-gallery-col img:hover {
    transform: scale(1.04);
}

/* ==========================================================================
   SECTION 10: KHÁCH HÀNG NÓI GÌ (VIDEO SLIDER)
   ========================================================================== */
.ep-testimonials {
    padding: 70px 0 50px;
    background: #ffffff;
}

.ep-testimonials .ep-heading-main {
    font-size: 34px;
}

.ep-testimonials .ep-heading-sub {
    font-size: 20px;
    font-weight: 600;
    margin-top: 6px;
}

/* Thu hẹp hàng video theo mockup (mặc định shortcode rộng 90% / tối đa 1200px) */
.ep-testimonials .drip-video-slider-container {
    max-width: 920px;
}

.ep-testimonials .drip-video-card-caption,
.ep-testimonials .drip-video-slider-cta {
    display: none !important;
}

.ep-testimonials .mySwiper-drip-video {
    height: auto !important;
    padding-bottom: 30px !important;
    position: relative !important;
}

.ep-testimonials .swiper-wrapper {
    height: auto !important;
    align-items: flex-start !important;
}

.ep-testimonials .swiper-slide {
    height: auto !important;
}

.ep-testimonials .drip-video-card {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    height: auto !important;
}

/* Khung dọc 9:16 theo ảnh thumbnail gốc 635x1128 (mặc định của shortcode là 3:4) */
.ep-testimonials .video-thumbnail-box {
    padding-top: 177.78% !important;
    border-radius: 20px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .1) !important;
}

/* Thumbnail YouTube Shorts (4:3, video dọc ở giữa) -> lấp đầy khung, cắt bỏ viền đen 2 bên */
.ep-testimonials .video-thumbnail-box img {
    height: 100%;
    object-fit: cover;
}

.ep-testimonials .swiper-button-next,
.ep-testimonials .swiper-button-prev {
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin-top: -15px !important;
}

.ep-testimonials .swiper-pagination {
    bottom: 0 !important;
}

/* ==========================================================================
   SECTION 11: FORM ĐĂNG KÝ (.hy-landing-page-bottom - giống landing /tai-tao-nang-luong)
   Ảnh nền 1827x818: bác sĩ bên trái, form bên phải
   ========================================================================== */
.land-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}

.hy-landing-page-bottom {
    padding: 40px 0 60px;
}

.hy-landing-page-bottom .screen-reader-response,
.hy-landing-page-bottom .wpcf7-response-output,
.hy-landing-page-bottom [data-name="Email"] {
    display: none !important;
}

.hy-landing-page-bottom #body-content .box-content {
    background-repeat: no-repeat;
    background-size: cover;
    background-position: left center;
    width: 1000px;
    max-width: 100%;
    aspect-ratio: 1827 / 818;
    margin: 0 auto;
    border-radius: 29px;
    position: relative;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .25);
}

.hy-landing-page-bottom #body-content .box-content .box-form-body {
    position: absolute;
    top: 50%;
    right: 30px;
    transform: translateY(-50%);
    width: 450px;
}

.hy-landing-page-bottom #body-content .box-content .box-form-body .title {
    font-family: 'Public Sans', sans-serif;
    font-weight: 700;
    font-size: 22px;
    line-height: 28px;
    text-align: center;
    color: #000000;
    margin-bottom: 14px;
}

/* Dòng ưu đãi dưới tiêu đề form */
.hy-landing-page-bottom .ep-form-offer {
    margin: -8px 0 14px;
    font-family: 'Public Sans', sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 24px;
    text-align: center;
    color: #000000;
}

.hy-landing-page-bottom .box-form {
    background-color: #EBE8E8;
    padding: 25px 30px 15px;
    border-radius: 16px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, .25);
}

.hy-landing-page-bottom #body-content .box-content form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.hy-landing-page-bottom #body-content .box-content input[type="text"],
.hy-landing-page-bottom #body-content .box-content input[type="tel"],
.hy-landing-page-bottom #body-content .box-content input[type="date"] {
    border-left: unset !important;
    height: 30px;
    border-radius: 8px;
    margin: 0;
    font-size: 12px;
}

.hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(2),
.hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(3) {
    width: calc(50% - 5px);
    position: relative;
    display: block;
    margin: 0;
}

.hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(4) {
    display: none;
}

.hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(5) {
    width: 100%;
    height: 77px;
    margin: 0;
}

.hy-landing-page-bottom #body-content .box-content p:nth-child(6) {
    margin: auto;
}

.hy-landing-page-bottom #body-content .box-content span {
    height: 100%;
}

.hy-landing-page-bottom #body-content .box-content textarea {
    border-radius: 8px;
    min-height: 50px;
    height: 77px !important;
    width: 100%;
    margin: 0;
    resize: vertical;
    font-size: 12px;
}

.hy-landing-page-bottom #body-content .box-content [type="submit"] {
    color: #000000;
    border-radius: 21px;
    margin: auto;
    background: var(--ep-teal);
    height: 30px !important;
    min-height: 30px;
    line-height: 30px;
    padding: 0 34px !important;
    font-size: 13px;
    font-weight: 700;
    border: none;
    cursor: pointer;
}

.map-bot {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.map-bot img {
    max-width: 100%;
}

.map-bot .img-top {
    margin-top: 80px;
}

.map-bot .img-center {
    margin-top: 50px;
    max-width: 791px;
}

/* ==========================================================================
   POPUP ĐĂNG KÝ (mở từ nút "Tư vấn cùng chuyên gia" / "Tìm hiểu thêm" của gói)
   ========================================================================== */
.ep-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 16px;
    font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.ep-popup.is-open {
    display: flex;
}

.ep-popup-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 30, 45, .6);
}

.ep-popup-dialog {
    position: relative;
    width: 100%;
    max-width: 420px;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 30px 24px 24px;
    background: linear-gradient(180deg, #e6f6f6 0%, #ffffff 55%);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .25);
    text-align: center;
    animation: ep-fade .25s ease;
}

.ep-popup-close {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 34px;
    height: 34px;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 28px;
    line-height: 34px;
    color: #555555;
    cursor: pointer;
}

.ep-popup-title {
    margin: 0;
    font-size: 21px;
    font-weight: 700;
    line-height: 27px;
    color: #111111;
}

.ep-popup-offer {
    margin: 4px 0 18px;
    font-size: 17px;
    font-weight: 700;
    color: var(--ep-teal-dark, #3fa9ab);
}

.ep-popup .box-form {
    padding: 0;
    background: transparent;
    box-shadow: none;
    text-align: left;
}

.ep-popup .screen-reader-response,
.ep-popup .wpcf7-response-output,
.ep-popup .wpcf7-form > p:nth-of-type(3) {
    display: none !important;
}

.ep-popup .wpcf7-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ep-popup .wpcf7-form p {
    margin: 0;
}

.ep-popup .wpcf7-form-control-wrap {
    display: block;
}

.ep-popup input[type="text"],
.ep-popup input[type="tel"],
.ep-popup textarea {
    width: 100%;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #d6dfe2;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: none;
    font-size: 15px;
    color: #222222;
}

.ep-popup input[type="text"],
.ep-popup input[type="tel"] {
    height: 44px;
    line-height: 44px;
}

.ep-popup textarea {
    height: 90px;
    min-height: 0;
    padding-top: 10px;
    line-height: 20px;
    resize: none;
}

.ep-popup input:focus,
.ep-popup textarea:focus {
    border-color: var(--ep-teal, #68C9CA);
    box-shadow: 0 0 0 3px rgba(104, 201, 202, .25);
}

.ep-popup input.invalid,
.ep-popup textarea.invalid {
    border-color: #e05252;
}

.ep-popup [type="submit"] {
    display: block;
    width: 100%;
    height: 46px;
    margin: 4px 0 0;
    padding: 0 20px;
    border: 0;
    border-radius: 23px;
    background: var(--ep-teal, #68C9CA);
    font-size: 15px;
    font-weight: 700;
    color: #111111;
    cursor: pointer;
}

/* Khóa cuộn trang nền khi popup mở */
html.ep-popup-lock,
html.ep-popup-lock body {
    overflow: hidden;
}

/* iPhone tự phóng to khi ô nhập < 16px -> dùng 16px trên mobile */
@media (max-width: 767px) {
    .ep-popup input[type="text"],
    .ep-popup input[type="tel"],
    .ep-popup textarea {
        font-size: 16px;
    }
}

/* ==========================================================================
   RESPONSIVE: TABLET
   ========================================================================== */
@media (max-width: 1024px) {
    /* Section 3: 3 bước mỗi hàng, ẩn mũi tên ở cuối hàng */
    .ep-source-panel {
        flex-wrap: wrap;
        row-gap: 36px;
        padding: 40px 20px 30px;
    }

    .ep-source-item {
        flex: 0 0 33.333%;
    }

    .ep-source-item:nth-child(3n)::after {
        display: none;
    }

    .ep-why-body {
        grid-template-columns: 1fr;
    }

    .ep-warning {
        max-width: 560px;
    }

    .ep-step-arrow {
        flex-basis: 30px;
    }

    .ep-step p {
        font-size: 13px;
    }

    .ep-solution-content {
        max-width: 360px;
    }

    .ep-solution .ep-solution-desc {
        font-size: 15px;
        line-height: 22px;
    }

    .ep-br-pc {
        display: none;
    }

    /* Section 6: thu nhỏ chữ để 3 cột vẫn vừa trên tablet */
    .ep-plans-grid {
        gap: 20px;
    }

    .ep-plan-head h4 {
        font-size: 19px;
    }

    .ep-plan-head span {
        font-size: 14px;
    }

    .ep-plan-target {
        font-size: 13px;
    }

    .ep-plan-body {
        padding: 16px 16px 20px;
    }

    .ep-plan-body p {
        font-size: 13.5px;
    }

    .ep-standards-row {
        column-gap: 40px;
    }

    .ep-standards-text h2 {
        font-size: 36px;
    }

    .ep-standards-text h3 {
        font-size: 19px;
        margin-top: 10px;
    }

    .hy-landing-page-bottom #body-content .box-content .box-form-body {
        width: 400px;
        right: 20px;
    }
}

/* ==========================================================================
   RESPONSIVE: MOBILE (<= 767px) - theo thiết kế mobile khung 375px
   ========================================================================== */
@media (max-width: 767px) {
    /* ---------- Chung ---------- */
    .ep-container {
        padding: 0 16px;
    }

    .ep-heading {
        margin-bottom: 24px;
    }

    /* Nút viên teal chữ trắng (S2, S5, S6) */
    .ep-levels-cta .ep-btn,
    .ep-solution .ep-btn {
        padding: 8px 26px;
        font-size: 14px;
        font-weight: 700;
        line-height: 18px;
        letter-spacing: 0;
        color: #ffffff;
        box-shadow: 0 3px 6px rgba(0, 0, 0, .16);
    }

    /* ==========================================================================
       SECTION 1: BANNER + 4 Ô (dải xanh full ngang, 2x2)
       ========================================================================== */
    .ep-hero picture,
    .ep-hero-img {
        display: block;
        width: 100%;
    }

    .ep-features {
        background: #8dbdd8;
    }

    .ep-features .ep-container {
        padding: 20px 8px 18px;
    }

    .ep-features-panel {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        max-width: none;
        margin: 0;
        padding: 0;
        background: transparent;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
        border-radius: 0;
    }

    .ep-feature-card {
        min-height: 153px;
        padding: 13px 6px 10px;
        justify-content: flex-start;
        border-radius: 8px;
    }

    .ep-feature-card img {
        width: 82px;
        margin: 0 auto 8px;
    }

    .ep-feature-card p {
        font-size: 13.5px;
        line-height: 18px;
    }

    /* ==========================================================================
       SECTION 2: NÚT TƯ VẤN + 3 CẤP ĐỘ XẾP DỌC
       ========================================================================== */
    .ep-levels {
        padding: 28px 0 40px;
    }

    .ep-levels-cta {
        text-align: center;
        margin-bottom: 30px;
    }

    .ep-levels .ep-heading {
        margin-bottom: 15px;
    }

    .ep-levels .ep-heading-sub {
        font-size: 18px;
        line-height: 1.2;
    }

    .ep-levels .ep-heading-main {
        font-size: 23px;
        line-height: 1.2;
        margin-top: 8px;
    }

    .ep-levels-grid {
        grid-template-columns: 1fr;
        gap: 32px;
        max-width: 316px;
    }

    .ep-level-img img {
        aspect-ratio: 630 / 560;
    }

    .ep-level-name {
        padding: 12px 10px;
        font-size: 13.5px;
        line-height: 17px;
    }

    .ep-level-boost .ep-level-name {
        background: #c4c4c4;
    }

    .ep-level-card p {
        margin-top: 13px;
        font-size: 13px;
        line-height: 19px;
        color: #222222;
    }

    /* ==========================================================================
       SECTION 3: NĂNG LƯỢNG CƠ THỂ - 6 bước zig-zag 2 cột trên nền nước
       ========================================================================== */
    .ep-source {
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/BG-4-1-2-1.png') !important;
        background-size: cover;
        background-position: center top;
        padding: 38px 0 26px;
    }

    .ep-source .ep-container {
        padding: 0 8px;
    }

    .ep-source .ep-heading {
        margin-bottom: 34px;
    }

    .ep-source .ep-heading-main {
        font-size: 27px;
        line-height: 1.2;
    }

    .ep-source .ep-heading-sub {
        font-size: 22px;
        line-height: 1.2;
        margin-top: 6px;
    }

    .ep-source-panel {
        --ep-step-title-h: 36px;
        --ep-step-gap: 8px;
        --ep-step-img: 110px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 0;
        row-gap: 40px;
        max-width: 360px;
        padding: 0;
        background: transparent;
        border-radius: 0;
    }

    .ep-source-item {
        flex: none;
        padding: 0 4px;
    }

    /* Thứ tự zig-zag: hàng 2 đi từ phải sang trái */
    .ep-source-item:nth-child(3) { grid-column: 2; grid-row: 2; }
    .ep-source-item:nth-child(4) { grid-column: 1; grid-row: 2; }
    .ep-source-item:nth-child(5) { grid-column: 1; grid-row: 3; }
    .ep-source-item:nth-child(6) { grid-column: 2; grid-row: 3; }

    .ep-source-item h4 {
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 13.5px;
        line-height: 18px;
    }

    .ep-source-item img {
        margin-bottom: 14px;
    }

    .ep-source-item:hover img {
        transform: none;
    }

    .ep-source-item p,
    .ep-source-item:last-child p {
        margin: 0;
        font-size: 12.5px;
        line-height: 17px;
        color: #222222;
    }

    /* Mũi tên: ngang nằm giữa 2 ảnh, dọc nằm dưới mô tả -> trước tiêu đề hàng sau */
    .ep-source-item::after {
        content: "";
        position: absolute;
        display: block;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 15' fill='none' stroke='%23111111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 7.5h25M20 1.5l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
    }

    .ep-source-item:nth-child(1)::after,
    .ep-source-item:nth-child(5)::after {
        display: block;
        top: calc(var(--ep-step-title-h) + var(--ep-step-gap) + var(--ep-step-img) / 2 - 7px);
        right: -12px;
        width: 24px;
        height: 14px;
    }

    .ep-source-item:nth-child(3)::after {
        display: block;
        top: calc(var(--ep-step-title-h) + var(--ep-step-gap) + var(--ep-step-img) / 2 - 7px);
        left: -12px;
        right: auto;
        width: 24px;
        height: 14px;
        transform: rotate(180deg);
    }

    .ep-source-item:nth-child(2)::after,
    .ep-source-item:nth-child(4)::after {
        top: auto;
        right: auto;
        bottom: -28px;
        left: 50%;
        width: 24px;
        height: 14px;
        margin-left: -12px;
        transform: rotate(90deg);
    }

    .ep-source-item:nth-child(6)::after {
        display: none;
    }

    /* ==========================================================================
       SECTION 4: TẠI SAO - nền tế bào, cảnh báo, 5 bước (3 + đường gấp khúc + 2)
       ========================================================================== */
    .ep-why {
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/BG-1-1-2-1.png') !important;
        background-size: cover;
        background-position: center top;
        min-height: calc(100vw * 2138 / 750);
        padding: 258px 0 60px;
    }

    .ep-why .ep-container {
        padding: 0 32px;
    }

    .ep-why-title-mb {
        position: relative;
        display: inline-block;
        padding-right: 36px;
        margin-bottom: 32px;
    }

    .ep-why-title-mb h2 {
        font-size: 34px;
        line-height: 1;
        letter-spacing: .5px;
    }

    .ep-why-title-mb .ep-why-title-row {
        display: block;
        margin-top: 10px;
    }

    .ep-why-title-mb h3 {
        white-space: nowrap;
        font-size: 19px;
        font-weight: 700;
        line-height: 21px;
        letter-spacing: 0;
    }

    /* Dấu ? cao bằng 2 dòng tiêu đề, đáy ngang dòng 2 */
    .ep-why-title-mb .ep-why-qmark {
        position: absolute;
        right: 0;
        bottom: 0;
        font-size: 74px;
        line-height: .74;
    }

    .ep-why-body {
        grid-template-columns: 1fr;
        gap: 0;
        margin-bottom: 30px;
    }

    .ep-why-desc {
        font-size: 14px;
        line-height: 20px;
        color: #ffffff;
    }

    .ep-warning {
        max-width: none;
        margin: 70px 0 0;
        padding: 28px 10px 14px;
        border-radius: 8px;
        background: #3f6f8f;
    }

    .ep-warning-icon {
        left: 50%;
        top: -46px;
        bottom: auto;
        width: 80px;
        margin-left: -40px;
    }

    .ep-warning strong {
        font-size: min(14px, 3.73vw);
        line-height: 26px;
        letter-spacing: 0;
    }

    /* Lưới 5 cột: bước - mũi tên - bước - mũi tên - bước; hàng 2 là đường gấp khúc, hàng 3 là bước 4 -> 5 */
    .ep-steps {
        display: grid;
        grid-template-columns: 1fr 38px 1fr 38px 1fr;
        align-items: start;
        margin: 0 -12px;
    }

    .ep-step {
        max-width: none;
    }

    .ep-step img {
        height: 52px;
        margin-bottom: 6px;
    }

    /* Chữ được rộng hơn cột để giữ ngắt dòng như thiết kế */
    .ep-step p {
        max-width: none;
        margin: 0 -12px;
        font-size: 12px;
        font-weight: 700;
        line-height: 15px;
    }

    .ep-step-arrow {
        flex: none;
        height: 12px;
        margin-top: 21px;
    }

    .ep-step-arrow::before {
        height: 1.5px;
    }

    .ep-step-arrow::after {
        border-left-width: 7px;
        border-top-width: 4px;
        border-bottom-width: 4px;
        top: 2px;
    }

    .ep-steps > :nth-child(7) { grid-column: 1 / 3; grid-row: 3; }
    .ep-steps > :nth-child(8) { grid-column: 3; grid-row: 3; width: 60px; justify-self: center; }
    .ep-steps > :nth-child(9) { grid-column: 4 / 6; grid-row: 3; }

    /* Đường gấp khúc từ dưới bước 3 sang trái rồi xuống bước 4 */
    .ep-steps > :nth-child(6) {
        grid-column: 1 / -1;
        grid-row: 2;
        position: relative;
        width: auto;
        height: 18px;
        margin: 6px 43px 36px 62px;
        border-right: 1.5px solid #ffffff;
        border-bottom: 1.5px solid #ffffff;
        border-radius: 0 0 6px 0;
        opacity: .85;
    }

    .ep-steps > :nth-child(6)::before {
        top: auto;
        left: -1px;
        right: auto;
        bottom: -20px;
        width: 1.5px;
        height: 20px;
    }

    .ep-steps > :nth-child(6)::after {
        top: auto;
        right: auto;
        left: -5px;
        bottom: -27px;
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 7px solid #ffffff;
        border-bottom: 0;
    }

    /* ==========================================================================
       SECTION 5: ENERGY PLAN LÀ GÌ? - ảnh 2 người phía trên, chữ phía dưới
       ========================================================================== */
    .ep-solution {
        display: block;
        min-height: 0;
        padding: 0 0 31px;
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/Banner-mobile-2-1-1.png') !important;
        background-size: 100% auto;
        background-position: center top;
        background-color: #e4e4e4;
    }

    .ep-solution .ep-container {
        padding: 0 30px;
    }

    .ep-solution-content {
        max-width: none;
        padding-top: calc(100vw * 393 / 375);
        text-align: center;
    }

    .ep-solution .ep-solution-title {
        font-size: 22px;
        line-height: 26px;
    }

    .ep-solution .ep-solution-sub {
        font-size: 18px;
        line-height: 22px;
        margin: 4px 0 28px;
    }

    .ep-solution .ep-solution-desc {
        max-width: none;
        font-size: 13.5px;
        line-height: 19px;
        text-align: justify;
        margin-bottom: 26px;
    }

    /* ==========================================================================
       SECTION 6: CHỌN GÓI - mỗi lần 1 gói, mũi tên 2 bên, chấm phân trang
       ========================================================================== */
    .ep-plans {
        padding: 45px 0 28px;
    }

    .ep-plans .ep-heading {
        margin-bottom: 48px;
    }

    .ep-plans .ep-heading-main {
        font-size: 22px;
        line-height: 1.2;
    }

    .ep-plans .ep-heading-sub {
        font-size: 17.5px;
        line-height: 1.2;
        margin-top: 8px;
    }

    /* Card rộng 315px, màn nhỏ chừa 30px mỗi bên cho mũi tên */
    .ep-plans-slider-wrap {
        position: relative;
        max-width: min(315px, 100vw - 60px);
        margin: 0 auto;
        container-type: inline-size;
    }

    .ep-plans-grid {
        display: block;
        max-width: none;
    }

    .ep-plan-col:not(.is-active) {
        display: none;
    }

    .ep-plan-col.is-active {
        animation: ep-fade .3s ease;
    }

    .ep-plan-num {
        width: 62px;
        height: 62px;
        margin-bottom: 11px;
        font-size: 24px;
    }

    .ep-plan-card {
        border-radius: 12px;
        box-shadow: 0 4px 14px rgba(0, 0, 0, .14);
    }

    .ep-plan-head {
        height: 92px;
        padding: 22px 10px 0;
    }

    .ep-plan-head h4 {
        font-size: 22px;
        line-height: 26px;
    }

    .ep-plan-head span {
        margin-top: 4px;
        font-size: 15px;
        font-weight: 700;
        line-height: 19px;
    }

    .ep-plan-target {
        height: 56px;
        padding: 0 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 15px;
        line-height: 20px;
    }

    .ep-plan-body {
        padding: 22px 28px 26px;
    }

    .ep-plan-body p {
        font-size: 13.5px;
        line-height: 19.5px;
        color: #222222;
    }

    .ep-plan-btn {
        margin-top: 15px;
        padding: 7px 30px;
        font-size: 14px;
        line-height: 19px;
    }

    /* Mũi tên tròn nằm đè mép card, ngang dải "đối tượng" (badge 73 + header 92 + ảnh 378:326 + nửa dải 28) */
    .ep-plans-arrow {
        position: absolute;
        top: calc(73px + 92px + 100cqw * 326 / 378 + 28px - 13px);
        z-index: 3;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        margin: 0; /* bỏ margin-right 1em mặc định của button Flatsome */
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: var(--ep-teal);
        color: #ffffff;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
        cursor: pointer;
    }

    .ep-plans-arrow svg {
        width: 14px;
        height: 14px;
    }

    /* Mũi tên sát 2 mép màn hình, không đè lên nội dung card */
    .ep-plans-prev {
        left: calc((100cqw - 100vw) / 2 + 3px);
    }

    .ep-plans-next {
        right: calc((100cqw - 100vw) / 2 + 3px);
    }

    .ep-plans-dots {
        display: flex;
        justify-content: center;
        gap: 17px;
        margin-top: 22px;
    }

    .ep-plans-dot {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: #d6d6d6;
        cursor: pointer;
    }

    .ep-plans-dot.is-active {
        background: var(--ep-teal);
    }

    /* ==========================================================================
       SECTION 7: CƠ CHẾ ENERGY BOOST - thẻ dọc
       ========================================================================== */
    .ep-mechanism {
        margin-top: 0;
        padding: 33px 0 90px;
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/BG-5-3-2-1.png') !important;
        background-size: cover;
        background-position: center;
    }

    .ep-mechanism .ep-container {
        padding: 0 22px;
    }

    .ep-mechanism-card {
        position: relative;
        justify-content: flex-start;
        max-width: none;
        aspect-ratio: 665 / 1152;
        padding: 82px 33px 0;
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/BG-5-mobile-2-1.png') !important;
        border: 1px solid rgba(255, 255, 255, .8);
        border-radius: 14px;
        box-shadow: 0 6px 18px rgba(15, 53, 80, .25);
    }

    .ep-mechanism-sub {
        font-size: 27px;
        font-weight: 400;
        line-height: 33px;
    }

    /* "ENERGY / BOOST" mỗi chữ 1 dòng */
    .ep-mechanism-title {
        width: min-content;
        margin: 12px 0 0;
        padding: 0;
        border-bottom: 0;
        font-size: 31px;
        line-height: 43px;
        letter-spacing: .5px;
    }

    .ep-mechanism-card .ep-btn-small {
        position: absolute;
        left: 50%;
        bottom: 53px;
        transform: translateX(-50%);
        padding: 7px 28px;
        font-size: 14px;
        line-height: 20px;
        white-space: nowrap;
    }

    /* ==========================================================================
       SECTION 8: TIÊU CHUẨN - tiêu đề trên nền trắng, ảnh sơ đồ full ngang
       ========================================================================== */
    .ep-standards {
        padding: 46px 0 0;
    }

    .ep-standards .ep-container {
        padding: 0;
    }

    .ep-standards-row {
        display: block;
        text-align: center;
    }

    .ep-standards-text h2 {
        font-size: 24px;
        line-height: 1.2;
    }

    .ep-standards-text h3 {
        margin-top: 6px;
        font-size: 18.5px;
        line-height: 25px;
    }

    .ep-standards-img img {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    /* ==========================================================================
       SECTION 9: GALLERY - full ngang, khe trắng 5px
       ========================================================================== */
    .ep-gallery-grid {
        grid-template-columns: 1fr 1fr;
        gap: 5px;
        aspect-ratio: auto;
    }

    .ep-gallery-wide {
        grid-column: 1 / -1;
        aspect-ratio: 375 / 220;
    }

    .ep-gallery-stack {
        gap: 5px;
    }

    .ep-gallery-half {
        aspect-ratio: 185 / 225;
    }

    /* ==========================================================================
       SECTION 10: VIDEO - mỗi lần 1 video, mũi tên 2 bên, chấm phân trang
       ========================================================================== */
    .ep-testimonials {
        padding: 56px 0 14px;
    }

    .ep-testimonials .ep-heading {
        margin-bottom: 38px;
    }

    .ep-testimonials .ep-heading-main {
        font-size: 22px;
        line-height: 1.2;
    }

    .ep-testimonials .ep-heading-sub {
        font-size: 17px;
        font-weight: 700;
        line-height: 1.2;
        margin-top: 10px;
    }

    /* Khung slider tràn hết ngang màn, thẻ video cách mép 15px để mũi tên nằm đè lên mép thẻ */
    .ep-testimonials .drip-video-slider-container {
        position: relative;
        width: auto;
        max-width: none;
        margin: 0 -16px;
        padding: 0;
    }

    .ep-testimonials .mySwiper-drip-video {
        padding-bottom: 36px !important;
    }

    .ep-testimonials .drip-video-card {
        margin: 0 15px;
    }

    .ep-testimonials .drip-video-card,
    .ep-testimonials .video-thumbnail-box {
        border-radius: 16px !important;
    }

    .ep-testimonials .video-thumbnail-box {
        box-shadow: none !important;
    }

    /* Nút play: vòng tròn viền trắng + tam giác trắng */
    .ep-testimonials .video-play-overlay {
        background: transparent !important;
    }

    .ep-testimonials .video-play-icon {
        width: 106px !important;
        height: 106px !important;
        border: 4px solid rgba(255, 255, 255, .9) !important;
        border-radius: 50% !important;
        background: rgba(255, 255, 255, .12) !important;
        box-shadow: none !important;
    }

    .ep-testimonials .video-play-icon::before,
    .ep-testimonials .video-play-icon::after {
        content: none !important;
    }

    .ep-testimonials .video-play-icon {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M12 6l22 14-22 14z' fill='%23ffffff' fill-opacity='.95'/%3E%3C/svg%3E") !important;
        background-position: 56% center !important;
        background-size: 46px 46px !important;
        background-repeat: no-repeat !important;
    }

    .ep-testimonials .swiper-button-prev,
    .ep-testimonials .swiper-button-next {
        width: 26px !important;
        height: 26px !important;
        margin-top: -18px !important;
        border-radius: 50% !important;
        background: var(--ep-teal) !important;
        color: #ffffff !important;
        box-shadow: 0 2px 6px rgba(0, 0, 0, .2) !important;
    }

    .ep-testimonials .swiper-button-prev {
        left: 2px !important;
    }

    .ep-testimonials .swiper-button-next {
        right: 2px !important;
    }

    .ep-testimonials .swiper-button-prev::after,
    .ep-testimonials .swiper-button-next::after {
        font-size: 12px !important;
        font-weight: 700 !important;
    }

    .ep-testimonials .swiper-pagination-bullet {
        width: 8px;
        height: 8px;
        margin: 0 8px !important;
        background: #d6d6d6;
        opacity: 1;
    }

    .ep-testimonials .swiper-pagination-bullet-active {
        background: var(--ep-teal);
    }

    /* ==========================================================================
       SECTION 11: FORM - thẻ ảnh bác sĩ, 2 ô nhập xếp dọc
       ========================================================================== */
    .hy-landing-page-bottom {
        padding: 40px 0 31px;
    }

    .hy-landing-page-bottom #body-content .box-content {
        width: 305px;
        max-width: calc(100% - 40px);
        aspect-ratio: 611 / 1174;
        padding: 0;
        background-image: url('https://driphydration.vn/wp-content/uploads/2026/10/mobile-3-1-1.png') !important;
        background-size: 100% 100%;
        background-position: center top;
        border-radius: 10px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
    }

    .hy-landing-page-bottom #body-content .box-content .box-form-body {
        position: absolute;
        top: auto;
        right: 15px;
        bottom: 20px;
        left: 15px;
        width: auto;
        transform: none;
        text-align: center;
    }

    .hy-landing-page-bottom #body-content .box-content .box-form-body .title {
        margin: 0;
        font-size: 20px;
        line-height: 25px;
        color: #111111;
    }

    .hy-landing-page-bottom .ep-form-offer {
        margin: 4px 0 14px;
        font-size: 17px;
        font-weight: 700;
        line-height: 21px;
        color: #111111;
    }

    .hy-landing-page-bottom .box-form {
        padding: 14px 12px;
        background: #e5e5e5;
        border-radius: 8px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, .12);
    }

    .hy-landing-page-bottom #body-content .box-content form {
        gap: 9px;
    }

    .hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(2),
    .hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(3) {
        width: 100%;
    }

    /* Ô "Nhu cầu" (bắt buộc khi gửi form) */
    .hy-landing-page-bottom #body-content .box-content .box-form p:nth-child(5) {
        width: 100%;
        height: auto;
    }

    /* 3 ô nhập: nhãn và chữ nhập cùng cỡ, cùng dòng, thẳng cột */
    .hy-landing-page-bottom #body-content .box-content input[type="text"],
    .hy-landing-page-bottom #body-content .box-content input[type="tel"],
    .hy-landing-page-bottom #body-content .box-content textarea {
        display: block;
        width: 100%;
        min-height: 0;
        margin: 0;
        padding: 0 8px 0 74px;
        border: 0;
        border-radius: 4px;
        box-shadow: none;
        background: #ffffff;
        font-size: 13px;
        font-style: normal;
        color: #222222;
        -webkit-appearance: none;
        appearance: none;
    }

    .hy-landing-page-bottom #body-content .box-content input[type="text"],
    .hy-landing-page-bottom #body-content .box-content input[type="tel"] {
        height: 28px;
        line-height: 28px;
    }

    .hy-landing-page-bottom #body-content .box-content textarea {
        height: 48px !important;
        padding-top: 6px;
        padding-bottom: 6px;
        line-height: 16px;
        resize: none;
    }

    .hy-landing-page-bottom #body-content .box-content input::placeholder,
    .hy-landing-page-bottom #body-content .box-content textarea::placeholder {
        font-size: 12px;
        font-style: italic;
        color: #8a8a8a;
        opacity: 1;
    }

    /* Nhãn "Họ tên:" / "Số ĐT:" / "Nhu cầu:" nằm trong ô */
    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap {
        position: relative;
        display: block;
        height: auto;
    }

    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Name"]::before,
    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Phone"]::before,
    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Message"]::before {
        position: absolute;
        top: 0;
        left: 10px;
        z-index: 1;
        font-size: 13px;
        font-weight: 700;
        line-height: 28px;
        color: #3c3c3c;
        pointer-events: none;
    }

    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Name"]::before {
        content: "Họ tên:";
    }

    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Phone"]::before {
        content: "Số ĐT:";
    }

    .hy-landing-page-bottom #body-content .box-content .wpcf7-form-control-wrap[data-name="Message"]::before {
        content: "Nhu cầu:";
    }

    /* Thông báo lỗi CF7 dưới ô (nếu có) không làm vỡ khung */
    .hy-landing-page-bottom #body-content .box-content .wpcf7-not-valid-tip {
        font-size: 11px;
        text-align: left;
    }

    .hy-landing-page-bottom #body-content .box-content p:nth-child(6) {
        margin: 2px auto 0;
    }

    .hy-landing-page-bottom #body-content .box-content [type="submit"] {
        height: 27px !important;
        min-height: 0;
        padding: 0 22px !important;
        line-height: 27px;
        font-size: 11.5px;
        font-weight: 700;
        color: #111111;
    }

    /* Khối "100+" sau form: 1 ảnh mobile gồm logo + bản đồ + huy chương + 100+, full ngang */
    .map-bot {
        padding: 0 0 32px;
    }

    .map-bot .img-top {
        display: none;
    }

    .map-bot .img-center {
        width: 100%;
        max-width: none;
        margin-top: 16px;
    }

    .map-bot .img-center img {
        width: 100%;
    }
}

@keyframes ep-fade {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}
