*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:Arial, Helvetica, sans-serif;
    background:#f5f5f5;
    color:#333;
    margin:0;
    padding:0;
}

a{
    text-decoration:none;
}

.container{
    width:1368px;
    max-width:100%;
    margin:0 auto;
    padding:0 15px;
}
/* ==========================
HEADER TOP
========================== */
.top-header{

    position:sticky;

    top:0;

    z-index:9999;

    background:#fff;
}
.header-top{
    background:#f1f1f1;
    height:46px;
}

.header-top .container{
    height:46px;
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.top-feature{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    font-weight:600;
}

.top-feature i{
    color:#e60012;
    font-size:20px;
}

/* ==========================
HEADER MAIN
========================== */

.header-main{
    background:#e60012;
    padding:12px 0;
}

.header-main .container{
    display:flex;
    align-items:center;
    gap:12px;
}

.logo{
    flex-shrink:0;
}

.logo a{
    color:#fff;
    font-size:26px;
    font-weight:800;
    line-height:1;
}

.category-btn,
.location-btn{
    height:38px;
    padding:0 14px;
    background:rgba(255,255,255,.15);
    color:#fff;
    border-radius:10px;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    flex-shrink:0;
}

/* ==========================
SEARCH
========================== */

.search-box{
    flex:1;
    max-width:none;
    position:relative;
}

.search-form{
    width:100%;
    height:40px;
    display:flex;
}

.search-form input{
    flex:1;
    border:none;
    outline:none;
    padding:0 0px;
    font-size:15px;
    border-radius:0;
}

.search-form button{
    width:50px;
    border:none;
    background:#fff;
    cursor:pointer;
    border-radius:0;
}

.search-form button i{
    color:#666;
    font-size:16px;
}

/* ==========================
ACTIONS
========================== */

.header-actions{
    display:flex;
    align-items:center;
    gap:18px;
    flex-shrink:0;
}

.header-actions a{
    color:#fff;
    display:flex;
    align-items:center;
    gap:6px;
    font-size:14px;
    font-weight:600;
}

.login-btn{
    background:rgba(255,255,255,.15);
    padding:10px 15px;
    border-radius:10px;
}

/* ==========================
SEARCH RESULT
========================== */

.search-result-header{
    margin:25px 0;
}

.search-result-header h2{
    font-size:28px;
    margin-bottom:8px;
}

.search-result-header p{
    color:#777;
}

/* ==========================
PRODUCTS
========================== */

.product-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
    margin-bottom:30px;
}


.product-card:hover{
    transform:translateY(-3px);
}

.product-card img{
    width:100%;
    height:200px;
    object-fit:contain;
}

.product-card h3{
    margin-top:12px;
    font-size:14px;
    line-height:1.5;
}

.product-card h3 a{
    color:#222;
}

.price{
    color:#e60012;
    font-size:18px;
    font-weight:700;
    margin-top:10px;
}

.no-result{
    background:#fff;
    padding:20px;
    border-radius:10px;
    text-align:center;
    margin:20px 0;
}

/* ==========================
FOOTER
========================== */

.site-footer{
    background:#fff;
    padding:25px 0;
    margin-top:40px;
    border-top:1px solid #ddd;
}

.site-footer p{
    text-align:center;
}
.ai-content{
    font-size:16px;
    line-height:1.9;
    color:#333;
}

.ai-content h2{
    color:#e60012;
    font-size:24px;
    margin:35px 0 15px;
    padding-bottom:10px;
    border-bottom:2px solid #f1f1f1;
}

.ai-content p{
    margin-bottom:15px;
}

.ai-content ul{
    margin:15px 0;
    padding-left:25px;
}

.ai-content li{
    margin-bottom:10px;
}

.ai-content strong{
    color:#222;
}

.ai-content table{
    width:100%;
    border-collapse:collapse;
    margin:20px 0;
}

.ai-content table td,
.ai-content table th{
    border:1px solid #ddd;
    padding:10px;
}
/* =====================================
MOBILE
===================================== */
@media (max-width:768px){

    .container{
        width:100%;
        padding:0;
    }

    /* TOP BAR */

    .header-top{
        display:none;
    }

    /* HEADER */

    .header-main{
        padding:8px 0 10px;
    }

    .header-main .container{
        display:flex;
        flex-wrap:wrap;
        align-items:center;
        gap:8px;
    }

    /* LOGO */

    .logo{
        flex:1;
    }

    .logo a{
        font-size:22px;
    }

 

    /* SEARCH XUỐNG HÀNG */

    .search-box{
        width:100%;
        order:2;
    }

    .search-form{
        height:42px;
    }

    .search-form input{
        font-size:14px;
    }

    /* ACTIONS */

    .header-actions{
        display:flex;
        gap:6px;
        margin-left:auto;
    }

    .header-actions a{
        display:flex;
        width:40px;
        height:40px;
        justify-content:center;
        align-items:center;
        border-radius:10px;
        background:rgba(255,255,255,.15);
        font-size:12px;
    }

    .header-actions a span{
        display:none;
    }

    /* LOCATION */

    .location-btn{
        display:none;
    }

}
/* ==========================
HOME PAGE
========================== */

.hero-section h1{
    font-size:36px;
    margin-bottom:15px;
}

.hero-section p{
    font-size:17px;
    margin-bottom:20px;
}

.hero-btn{
    display:inline-block;
    background:#ff5722;
    color:#fff;
    padding:12px 25px;
    border-radius:6px;
    font-weight:bold;
}

/* FEATURES */

.feature-section{
    margin-bottom:40px;
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:15px;
}

.feature-item{
    background:#fff;
    border-radius:10px;
    padding:20px;
    text-align:center;
    box-shadow:0 2px 8px rgba(0,0,0,.05);
}

.feature-item strong{
    display:block;
    color:#ff5722;
    font-size:24px;
    margin-bottom:5px;
}

/* TITLE */

.section-title{
    text-align:center;
    margin:40px 0 25px;
}

.section-title h2{
    font-size:30px;
    margin-bottom:10px;
}

.section-title p{
    color:#666;
}

/* SERVICES */
.service-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
}

.service-row{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    overflow:hidden;

    display:grid;
    grid-template-columns:minmax(0,1fr) 90px;

    height:auto;

    box-shadow:0 2px 10px rgba(0,0,0,.06);

    transition:.25s;
}

.service-row:hover{
    transform:translateY(-3px);
    box-shadow:0 8px 25px rgba(0,0,0,.12);
}

.service-content{
    min-width:0;
    padding:16px;
}

.service-content h3{
    font-size:18px;
    line-height:1.5;
    margin-bottom:8px;

    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.service-desc{
    font-size:14px;
    line-height:1.6;
    color:#666;

    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.service-icon{
    display:flex;
    justify-content:center;
    align-items:center;

    background:#f8fafc;
    border-left:1px solid #eee;
}

.service-icon i{
    font-size:55px;
}

.service-btn{
    margin-top:10px;

    display:inline-block;

    background:#08152f;
    color:#fff;

    padding:8px 14px;
    border-radius:6px;
}

@media(max-width:1200px){

    .service-grid{
        grid-template-columns:repeat(2,1fr);
    }

}


/* CTA */

.cta-section{
    margin-top:50px;
    background:#ff5722;
    color:#fff;
    text-align:center;
    padding:50px 20px;
    border-radius:12px;
}

.cta-section h2{
    font-size:32px;
    margin-bottom:10px;
}

.cta-section a{
    color:#fff;
    font-size:30px;
    font-weight:bold;
}

/* ==========================
MOBILE
========================== */

@media(max-width:768px){

    .service-row{
        min-height:140px;
        height:auto;

        grid-template-columns:
                minmax(0,1fr)
                90px;
    }

    .service-content{
        padding:15px;
    }

    .service-content h3{
        font-size:15px;
        line-height:1.5;

        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .service-desc{
        font-size:13px;

        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .service-icon{
        width:90px;
    }

    .service-icon i{
        font-size:42px;
    }

    .service-btn{
        padding:8px 12px;
        font-size:13px;
    }

    .related-services .service-grid{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
        overflow:visible;
    }

    .related-services .service-row{
        min-width:unset;
        width:100%;
        grid-template-columns:minmax(0,1fr) 70px;
        min-height:120px;
    }

    .related-services .service-icon i{
        font-size:36px;
    }
    .service-list-grid{
        display:block !important;
        overflow:visible !important;
    }

    .service-list-grid .service-row{
        width:100%;
        min-width:unset !important;
        margin-bottom:12px;
    }
}
.service-detail{
    max-width:1200px;
    margin:30px auto;
}

.detail-header{
    display:grid;
    grid-template-columns:1fr 500px;
    gap:30px;
    background:#fff;
    border-radius:20px;
    padding:30px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.detail-right img{
    width:100%;
    height:350px;
    object-fit:cover;
    border-radius:15px;
}

.detail-category{
    display:inline-block;
    background:#ff5722;
    color:#fff;
    padding:8px 15px;
    border-radius:50px;
    margin-bottom:15px;
    font-size:14px;
}

.detail-left h1{
    font-size:36px;
    line-height:1.4;
    margin-bottom:15px;
}

.detail-meta{
    display:flex;
    gap:20px;
    margin-bottom:20px;
    color:#666;
}

.detail-price{
    font-size:32px;
    font-weight:700;
    color:#ff5722;
    margin-bottom:20px;
}

.detail-call-btn{
    display:inline-block;
    background:#081734;
    color:#fff;
    padding:14px 30px;
    border-radius:10px;
    font-weight:700;
}

.detail-content{
    margin-top:30px;
    background:#fff;
    padding:40px;
    border-radius:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.detail-content h2{
    margin-top:30px;
    margin-bottom:15px;
    color:#081734;
}

.detail-content h3{
    margin-top:20px;
    margin-bottom:10px;
}

.detail-content p{
    line-height:1.8;
    margin-bottom:15px;
}

.detail-content ul{
    padding-left:20px;
}

.detail-content li{
    margin-bottom:10px;
}

@media(max-width:768px){

    .detail-header{
        grid-template-columns:1fr;
    }

    .detail-right img{
        height:250px;
    }

    .detail-left h1{
        font-size:26px;
    }
}
.detail-right{
    display:flex;
    justify-content:center;
    align-items:center;
}

.detail-icon{
    width:300px;
    height:300px;

    border-radius:50%;

    background:
            linear-gradient(
                    135deg,
                    #f8fafc,
                    #e2e8f0
            );

    display:flex;
    align-items:center;
    justify-content:center;

    box-shadow:
            0 20px 50px rgba(0,0,0,.08);
}


.detail-icon i{
    font-size:180px;

    animation:
            serviceFloat 3s ease-in-out infinite;
}

@keyframes serviceFloat{

    0%{
        transform:
                translateY(0);
    }

    50%{
        transform:
                translateY(-12px);
    }

    100%{
        transform:
                translateY(0);
    }

}
/* ===========================
   404
=========================== */

.error-page{
    min-height:60vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:60px 20px;
}

.error-box{
    max-width:700px;
    text-align:center;
}

.error-code{
    font-size:110px;
    font-weight:800;
    color:#ff0000;
    line-height:1;
    margin-bottom:15px;
}

.error-box h1{
    font-size:34px;
    margin-bottom:15px;
    color:#222;
}

.error-box p{
    font-size:17px;
    color:#666;
    line-height:1.8;
    margin-bottom:35px;
}

.error-actions{
    display:flex;
    justify-content:center;
    gap:15px;
    flex-wrap:wrap;
}

.error-actions a{
    padding:13px 26px;
    border-radius:8px;
    text-decoration:none;
    font-weight:600;
    transition:.25s;
}

.btn-home{
    background:#1976d2;
    color:#fff;
}

.btn-service{
    background:#2e7d32;
    color:#fff;
}

.btn-contact{
    background:#ff9800;
    color:#fff;
}

.error-actions a:hover{
    transform:translateY(-2px);
    opacity:.9;
}

@media(max-width:768px){

    .error-code{
        font-size:80px;
    }

    .error-box h1{
        font-size:28px;
    }

    .error-actions{
        flex-direction:column;
    }

    .error-actions a{
        width:100%;
    }

}
/* =====================================
   LINH KIỆN - DANH MỤC
===================================== */

.parts-page{
    max-width:1400px;
    margin:0 auto;
    padding:40px 20px;
}

.parts-header{
    text-align:center;
    margin:25px 0 40px;
}

.parts-header h1{
    margin:0;
    font-size:42px;
    font-weight:900;
}

.parts-header h1::before{
    content:"⚙";
    margin-right:12px;
}

.parts-header p{
    margin-top:10px;

    color:#666;

    font-size:14px;
}

.parts-header p::before{
    content:"📋 ";
}

.parts-search{
    margin-bottom:25px;
}

.parts-search input{
    width:100%;
    height:60px;
    padding:0 20px;
    border:none;
    border-radius:15px;
    font-size:16px;
    background:#fff;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.parts-search input:focus{
    outline:none;
}

.parts-category-list{
    display:flex;
    flex-direction:column;
    gap:15px;
}

.parts-category-box{
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.parts-category-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 20px;
    cursor:pointer;
    transition:.2s;
}

.parts-category-item:hover{
    background:#f8fafc;
}

.parts-category-left{
    display:flex;
    align-items:center;
    gap:15px;
}

.toggle-arrow{
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#eff6ff;
    color:#2563eb;
    font-size:13px;
    font-weight:bold;
    cursor:pointer;
}

.parts-category-name{
    font-size:17px;
    font-weight:600;
    color:#111827;
}

.parts-category-total{
    color:#2563eb;
    font-weight:700;
}

.parts-preview-products{
    display:none;
    border-top:1px solid #eee;
    background:#fafafa;

    max-height:500px;
    overflow-y:auto;
}
.preview-product{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 20px;
    text-decoration:none;
    color:#333;
    border-bottom:1px solid #eee;
    transition:.2s;
}

.preview-product:hover{
    background:#f0f7ff;
}

.preview-product span:last-child{
    color:#dc2626;
    font-weight:600;
}

.preview-view-all{
    display:block;
    padding:15px 20px;
    text-decoration:none;
    color:#2563eb;
    font-weight:600;
}

/* =====================================
   DANH SÁCH SẢN PHẨM
===================================== */

.product-grid{
    display:grid;
    grid-template-columns:
            repeat(auto-fill,minmax(300px,1fr));
    gap:25px;
}

.product-card{
    background:#fff;
    border-radius:18px;
    overflow:hidden;

    transition:.25s;

    border:1px solid #c0c0c0;
}

.product-card:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 35px rgba(0,0,0,.08);
}

.product-image{
    width:100%;
    height:320px;
    object-fit:contain;
    padding:10px;
    background:#fff;
}

.product-content{
    padding:20px;
}

.product-name{
    font-size:17px;
    font-weight:700;
    line-height:1.5;

    min-height:52px;

    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

/* =====================================
   GIÁ THAM KHẢO
===================================== */

.reference-price-box{
    margin-top:20px;
    padding:15px;
    border:2px dashed #f59e0b;
    border-radius:15px;
    background:#fffbeb;
    text-align:center;
}

.reference-label{
    color:#d97706;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
}

.product-price{
    margin-top:8px;
    font-size:28px;
    font-weight:700;
    color:#dc2626;
}

.product-note{
    margin-top:15px;
    padding:15px;
    background:#fff7ed;
    border-left:4px solid #fb923c;
    border-radius:10px;
    font-size:13px;
    color:#7c2d12;
    line-height:1.7;
}

.product-note ul{
    margin:10px 0 0 18px;
    padding:0;
}

.product-note li{
    margin-bottom:5px;
}

/* =====================================
   BUTTON
===================================== */

.product-actions{
    display:flex;
    gap:10px;
    margin-top:20px;
}

.btn-book,
.btn-consult{
    flex:1;
    text-align:center;
    padding:12px;
    border-radius:10px;
    font-size:14px;
    font-weight:600;
}

.btn-book{
    background:#2563eb;
    color:#fff;
}

.btn-consult{
    background:#16a34a;
    color:#fff;
}

/* =====================================
   CHI TIẾT LINH KIỆN
===================================== */

.part-detail{
    max-width:1200px;
    margin:40px auto;
    display:grid;
    grid-template-columns:450px 1fr;
    gap:40px;
}

.part-image img{
    width:100%;
    border-radius:15px;
    background:#fff;
    padding:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.part-info h1{
    font-size:32px;
    line-height:1.5;
    margin-bottom:20px;
}

.price-warning{
    margin-top:15px;
    padding:15px;
    border-left:4px solid #f59e0b;
    background:#fffbeb;
    border-radius:10px;
    color:#92400e;
    line-height:1.8;
}

.detail-actions{
    display:flex;

    gap:15px;
    margin-top:25px;
}

.detail-actions a{
    text-decoration:none;
    text-align:center;
    padding:15px;
    border-radius:10px;
    font-weight:600;
}

.detail-actions .btn-book{
    background:#2563eb;
    color:#fff;
}

.detail-actions .btn-consult{
    background:#16a34a;
    color:#fff;
}

/* =====================================
   MOBILE
===================================== */

@media(max-width:768px){

    .parts-page{
        padding:20px 10px;
    }

    .parts-header h1{
        font-size:28px;
    }

    .parts-category-name{
        font-size:15px;
    }

    .product-grid{
        grid-template-columns:1fr;
    }

    .part-detail{
        grid-template-columns:1fr;
    }

    .product-price{
        font-size:28px;
    }

    .product-actions{
        flex-direction:column;
    }

    .detail-actions{
        flex-direction:column;
    }

}
/* ===========================
   PART DETAIL
=========================== */

.part-detail-page{
    max-width:1400px;
    margin:0 auto;
    padding:40px 20px;
}

.part-detail-top{
    display:grid;
    grid-template-columns:500px 1fr;
    gap:40px;
    margin-bottom:40px;
}

.part-detail-image{
    background:#fff;
    border-radius:20px;
    padding:20px;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.part-detail-image img{
    width:100%;
    height:auto;
    object-fit:contain;
}
.service-detail-icon{
    height:100%;
    min-height:500px;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;
}

.service-detail-icon i{
    font-size:220px;
}
.no-image{
    height:400px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#999;
}

.part-category{
    display:inline-block;
    padding:8px 14px;
    background:#eef5ff;
    color:#0d6efd;
    border-radius:50px;
    font-size:14px;
    margin-bottom:15px;
}

.part-detail-info h1{
    font-size:34px;
    line-height:1.5;
    margin-bottom:20px;
}

.service-benefits{
    margin-top:20px;
    padding:20px;
    background:#f8fafc;
    border-radius:15px;
    line-height:2;
}



.part-section-title{
    font-size:24px;
    font-weight:700;
    margin-bottom:25px;
    padding-bottom:15px;
    border-bottom:1px solid #eee;
}
.related-services-header{
    margin:40px 0 25px;
}

.section-badge{
    display:inline-block;
    background:#e60012;
    color:#fff;
    font-size:12px;
    font-weight:700;
    padding:6px 12px;
    border-radius:30px;
    margin-bottom:10px;
}

.related-services-header h2{
    margin:0 0 8px;
    font-size:32px;
    font-weight:800;
    color:#111827;
}

.related-services-header p{
    margin:0;
    color:#6b7280;
    font-size:15px;
}
.related-products-title{
    display:flex;
    align-items:center;
    gap:15px;
    margin:40px 0 25px;
}

.related-products-title i{
    width:55px;
    height:55px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#e60012;
    color:#fff;

    border-radius:14px;

    font-size:24px;
}

.related-products-title h2{
    margin:0;
    font-size:30px;
    font-weight:800;
    color:#111827;
}

.related-products-title span{
    display:block;
    margin-top:4px;
    color:#6b7280;
    font-size:14px;
}
.description-content{
    line-height:1.8;
    font-size:16px;
}

.description-content img{
    max-width:100%;
    height:auto;
}

.description-content table{
    width:100%;
    border-collapse:collapse;
    margin:20px 0;
}

.description-content table td,
.description-content table th{
    border:1px solid #ddd;
    padding:10px;
}

.empty-description{
    padding:25px;
    background:#fff8e1;
    border-radius:10px;
    color:#856404;
}
.part-breadcrumb{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:15px;
    font-size:14px;
}

.part-breadcrumb a{
    color:#0d6efd;
    text-decoration:none;
}

.part-breadcrumb a:hover{
    text-decoration:underline;
}

.part-breadcrumb span{
    color:#999;
}
@media(max-width:992px){

    .part-detail-top{
        grid-template-columns:1fr;
    }

    .part-detail-info h1{
        font-size:26px;
    }
    .part-detail-top{
        display:block;
    }

    .part-detail-image{
        width:100%;
        min-width:0;
        max-width:100%;
        min-height:180px;
        margin-bottom:15px;
    }

    .service-detail-icon{
        width:100%;
        max-width:100%;
        min-height:180px;
        height:180px;
    }

    .service-detail-icon i{
        font-size:80px;
    }
}


/* ===========================
   RELATED PRODUCTS
=========================== */

.related-products{
    margin-top:50px;
}

.related-products h2{
    font-size:28px;
    margin-bottom:25px;
}
.service-menu{
    position:relative;
}

.service-dropdown{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    min-width:220px;
    background:#fff;
    border-radius:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
    overflow:hidden;
    z-index:999;
}

.service-dropdown a{
    display:block;
    padding:12px 15px;
    color:#333;
    font-weight:600;
    border-bottom:1px solid #eee;
}

.service-dropdown a:hover{
    background:#f5f5f5;
}

.service-menu:hover .service-dropdown{
    display:block;
}
.product-specs{
    border:1px solid #e5e7eb;
    border-radius:10px;
    overflow:hidden;
    margin:20px 0;
}

.spec-row{
    display:flex;
    border-bottom:1px solid #eee;
}

.spec-row:last-child{
    border-bottom:none;
}

.spec-name{
    width:250px;
    background:#f8fafc;
    padding:12px 15px;
    font-weight:600;
}

.spec-value{
    flex:1;
    padding:12px 15px;
}


    .spec-name{
        width:auto;
    }

}
/* =========================
   CHI TIẾT SẢN PHẨM
========================= */

.product-detail-content{
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    padding:30px;
    line-height:1.8;
}

.product-detail-content h2{
    font-size:28px;
    margin:35px 0 20px;
    color:#0d6efd;
    border-left:5px solid #0d6efd;
    padding-left:15px;
}

.product-detail-content p{
    margin-bottom:18px;
    text-align:justify;
    color:#333;
}

/* =========================
   THÔNG SỐ KỸ THUẬT
========================= */

.product-specs{
    border:1px solid #e5e7eb;
    border-radius:10px;
    overflow:hidden;
    margin-top:20px;
    margin-bottom:25px;
}

.spec-row{
    display:flex;
    border-bottom:1px solid #eee;
}

.spec-row:last-child{
    border-bottom:none;
}

.spec-name{
    width:260px;
    background:#f8fafc;
    padding:14px 18px;
    font-weight:600;
    color:#111827;
}

.spec-value{
    flex:1;
    padding:14px 18px;
    color:#374151;
}

/* =========================
   MOBILE
========================= */

@media(max-width:768px){

    .product-detail-content{
        padding:20px;
    }

    .product-detail-content h2{
        font-size:22px;
    }

    .spec-row{
        flex-direction:column;
    }

    .spec-name{
        width:auto;
        border-bottom:1px solid #eee;
    }

}
.box ul{
    margin:15px 0;
    padding-left:20px;
}

.box li{
    margin-bottom:10px;
    line-height:1.7;
}

#searchSuggest{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:#fff;
    border:1px solid #ddd;
    border-top:none;
    z-index:9999;
    display:none;
    max-height:500px;
    overflow:auto;
}


.search-item:hover{
    background:#f5f5f5;
}

.search-thumb{
    width:60px;
    height:60px;
    object-fit:contain;
    flex-shrink:0;
}

.search-info{
    flex:1;
}

.search-name{
    font-size:14px;
    line-height:1.4;
    margin-bottom:5px;
}


.search-empty{
    padding:15px;
    text-align:center;
}
.search-empty-box{
    max-width:700px;
    margin:40px auto;
    background:#fff;
    padding:40px;
    border-radius:12px;
    text-align:center;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
}

.search-empty-icon{
    font-size:60px;
    margin-bottom:15px;
}

.search-empty-box h2{
    margin-bottom:15px;
    color:#222;
}

.search-empty-box p{
    color:#666;
    line-height:1.7;
    margin-bottom:10px;
}

.search-empty-actions{
    margin-top:25px;
    display:flex;
    justify-content:center;
    gap:15px;
    flex-wrap:wrap;
}
.services-home-block{
    background:#fff;
    margin:25px 0;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.services-home-layout{
    display:grid;
    grid-template-columns:28% 52% 20%;
    gap:15px;
    padding:15px;
}
.services-home-right{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
}

.home-slider{
    position:relative;
    background:#000;
    height:100%;
    min-height:100%;
    overflow:hidden;
    border-radius:10px;

}

.home-slide{
    position:absolute;

    width:100%;
    height:100%;

    object-fit:cover;

    top:0;
    left:0;

    opacity:0;

    transition:opacity .8s ease-in-out;
}

.home-slide.active{
    opacity:1;
}

@media(max-width:991px){

    .services-home-layout{
        grid-template-columns:1fr;
    }

    .services-home-right{
        grid-template-columns:repeat(2,1fr);
    }

}
@media(max-width:1200px){

    .services-home-right{
        grid-template-columns:repeat(2,1fr);
    }

}
@media(max-width:576px){

    .services-home-right{
        grid-template-columns:1fr;
    }

}
.services-home-links{
    background:#fff;
    border:1px solid #eee;
    border-radius:10px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}

.services-home-links-header{
    background:#f8f8f8;
    padding:12px 15px;
    font-weight:700;
    color:#e60012;
    border-bottom:1px solid #eee;
    text-transform:uppercase;
    font-size:14px;
}

.services-home-links ul{
    list-style:none;
    margin:0;
    padding:0;
    flex:1;
}

.services-home-links li{
    border-bottom:1px dashed #eee;
}

.services-home-links li:last-child{
    border-bottom:none;
}

.services-home-links a{
    display:block;
    padding:10px 15px;
    color:#333;
    text-decoration:none;
    font-size:14px;
    line-height:1.4;
    transition:.2s;
}

.services-home-links a:hover{
    background:#fff4f4;
    color:#e60012;
    padding-left:20px;
}

.services-home-links a:before{
    content:"🔥 ";
}

.services-home-more{
    border-top:1px solid #eee;
    padding:12px;
    text-align:center;
}

.services-home-more a{
    display:block;
    background:#e60012;
    color:#fff;
    text-decoration:none;
    padding:10px;
    border-radius:6px;
    font-weight:600;
}
.services-home-title{

    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px 25px;
    background:#e60012;
    color:#fff;
    font-size:24px;
    font-weight:700;
    position:relative;
    overflow:hidden;
}

.services-home-title::before{

    content:'';

    position:absolute;

    inset:0;

    background:
            repeating-linear-gradient(
                    -45deg,
                    rgba(255,255,255,.05),
                    rgba(255,255,255,.05) 12px,
                    transparent 12px,
                    transparent 24px
            );

    pointer-events:none;
}

.cat-main,
.cat-sub{

    position:relative;

    z-index:2;
}

.cat-main{

    font-size:28px;
    font-weight:700;
}

.cat-sub{

    font-size:14px;
    font-weight:600;
}
.service-section{

    display:flex;

    gap:30px;

    align-items:stretch;

    margin:50px 0;

    padding-bottom:30px;

    border-bottom:1px solid #eee;
}
.service-section h2{

    font-size:32px;

    line-height:1.3;

    color:#111;

    margin-bottom:25px;

    position:relative;

    padding-left:20px;
}
.service-section p{

    font-size:17px;

    line-height:1.9;

    color:#444;

    margin-bottom:18px;
}
.service-section h2:before{

    content:'';

    position:absolute;

    left:0;
    top:5px;

    width:6px;
    height:80%;

    border-radius:10px;

    background:
            linear-gradient(
                    #e60012,
                    #ff6b00
            );
}
.service-section-content{

    flex:1;
}

.service-section-image{

    width:400px;

    flex-shrink:0;

    display:flex;
}

.service-section-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    border-radius:12px;

    box-shadow:
            0 8px 25px rgba(0,0,0,.12);
}
@media(max-width:768px){

    .service-section{

        flex-direction:column;
    }

    .service-section-image{

        width:100%;
    }

    .service-section-image img{

        height:auto;
    }

}

.hero-section{

    position:relative;

    height:480px;

    overflow:hidden;

    border-radius:0px;

    margin-bottom:40px;
}

.hero-video{

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    object-fit:cover;
}

.hero-overlay{

    position:absolute;

    inset:0;

    background:
            linear-gradient(
                    rgba(0,0,0,.55),
                    rgba(0,0,0,.45)
            );
}

.hero-content{

    position:relative;

    z-index:2;

    max-width:900px;

    margin:0 auto;

    height:100%;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:#fff;

    padding:40px;
}

.hero-badge{

    background:rgba(255,255,255,.15);

    backdrop-filter:blur(10px);

    padding:10px 18px;

    border-radius:30px;

    margin-bottom:25px;

    font-size:14px;
}

.hero-content h1{

    font-size:60px;

    line-height:1.15;

    margin:0 0 20px;
}

.hero-content h1 span{

    display:block;

    color:#ffb347;
}

.hero-content p{

    font-size:22px;

    max-width:850px;

    margin-bottom:35px;

    opacity:.95;
}

.hero-actions{

    display:flex;

    gap:15px;

    margin-bottom:40px;
}

.hero-btn-primary{

    background:#ff5a1f;

    color:#fff;

    padding:15px 30px;

    border-radius:10px;

    text-decoration:none;

    font-weight:700;
}

.hero-btn-primary:hover{

    background:#ff3d00;
}

.hero-btn-secondary{

    background:rgba(255,255,255,.15);

    color:#fff;

    padding:15px 30px;

    border-radius:10px;

    text-decoration:none;

    backdrop-filter:blur(10px);
}

.hero-stats{

    display:flex;

    gap:60px;
}

.hero-stats div{

    text-align:center;
}

.hero-stats strong{

    display:block;

    font-size:34px;

    color:#ffb347;
}

.hero-stats span{

    font-size:14px;
}
@media(max-width:768px){

    .hero-content{

        padding:25px;
    }

    .hero-badge{

        font-size:12px;

        margin-bottom:15px;
    }

    .hero-content h1{

        font-size:46px;

        line-height:1.1;

        margin-bottom:15px;
    }

    .hero-content p{

        font-size:18px;

        line-height:1.5;

        margin-bottom:25px;
    }

    .hero-actions{

        width:100%;

        display:grid;

        grid-template-columns:1fr 1fr;

        gap:10px;
    }

    .hero-btn-primary,
    .hero-btn-book{

        padding:14px 10px;

        text-align:center;

        font-size:16px;
    }

    .hero-stats{

        gap:20px;
    }

    .hero-stats strong{

        font-size:24px;
    }

}
.parts-home-block{
    margin:30px 0;
    background:#fff;
    border-radius:16px;
    padding:20px;
    border:1px solid #eee;
    box-shadow:0 3px 15px rgba(0,0,0,.05);
    overflow:hidden;
}
.parts-tabs{
    display:flex;
    align-items:center;
    background:#fff;
    border-bottom:2px solid #4caf50;
    margin-bottom:20px;
}

.parts-tab-title{
    position:relative;
    background:#e60012;
    color:#fff;
    font-weight:700;
    padding:12px 20px;
    text-transform:uppercase;
}

.parts-tab-title:after{
    content:'';
    position:absolute;
    right:-30px;
    top:0;
    border-top:25px solid transparent;
    border-bottom:20px solid transparent;
    border-left:30px solid #333;
}

.parts-tab-list{
    display:flex;
    gap:25px;
    padding-left:45px;
    flex-wrap:wrap;
}

.parts-tab{
    cursor:pointer;
    font-size:16px;
    transition:.2s;
}

.parts-tab:hover{
    color:#e30019;
}

.parts-tab.active{
    color:#e30019;
    font-weight:700;
}
.parts-slider-wrapper{
    position:relative;
}

#parts-slider{
    display:flex;
    gap:18px;
    overflow-x:auto;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:5px 10px 15px;
}

#parts-slider::-webkit-scrollbar{
    display:none;
}

/* dùng card cũ */

#parts-slider .product-card{
    min-width:260px;
    max-width:260px;
    flex:none;
}
.slider-btn{
    position:absolute;
    top:40%;
    width:46px;
    height:46px;
    border:none;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 15px rgba(0,0,0,.15);
    cursor:pointer;
    z-index:50;
    transition:.2s;
}

.slider-btn:hover{
    transform:scale(1.08);
}

.slider-prev{
    left:-23px;
}

.slider-next{
    right:-23px;
}
.parts-block-title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.parts-block-title h2{
    margin:0;
    font-size:24px;
    font-weight:700;
}

.parts-block-title a{
    color:#e30019;
    font-weight:600;
    text-decoration:none;
}
.search-title{
    padding:10px 15px;
    background:#f5f5f5;
    font-weight:700;
    border-bottom:1px solid #eee;
}

.search-category{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:#222;
    padding:10px 15px;

    border-bottom:1px solid #eee;

    cursor:pointer;
}

.search-category:hover{
    background:#fafafa;
}

.search-category i{
    color:#666;
}

.search-item{
    display:flex;
    gap:12px;

    padding:10px 15px;

    border-bottom:1px solid #eee;

    text-decoration:none;
}


.search-info{
    flex:1;
}

.search-price{
    color:#e60012;
    font-size:18px;
    font-weight:700;
    margin-top:4px;
}
@media(max-width:768px){

    #parts-slider{
        gap:12px;
        padding:5px 0 15px;
    }

    #parts-slider .product-card{
        min-width:170px;
        max-width:170px;
    }

    .product-image{
        height:130px;
        padding:10px;
    }

    .product-name{
        font-size:13px;
        min-height:42px;

        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .product-price{
        font-size:24px;
    }
}
@media(max-width:768px){

    .parts-tabs{
        display:block;
        border-bottom:none;
    }

    .parts-tab-title{
        width:100%;
        text-align:center;
        font-size:18px;
        padding:15px;
    }

    .parts-tab-title:after{
        display:none;
    }

    .parts-tab-list{
        display:flex;
        flex-wrap:nowrap;

        overflow-x:auto;
        overflow-y:hidden;

        gap:15px;

        padding:10px 0;

        scrollbar-width:none;

        border-bottom:2px solid #4caf50;
    }

    .parts-tab-list::-webkit-scrollbar{
        display:none;
    }

    .parts-tab{
        flex:none;
        white-space:nowrap;
    }
}
@media(max-width:768px){

    .reference-price-box{
        padding:10px;
        margin-top:10px;
        border-radius:10px;
        text-align:center;
    }

    .reference-label{
        font-size:11px;
        letter-spacing:0;
        line-height:1.3;
        display:block;
        text-align:center;
    }

    .product-price{
        font-size:18px;
        margin-top:5px;
        line-height:1.2;
        text-align:center;
    }

}
/* ===== Tài khoản nội bộ trên website ngoài ===== */
.public-account{position:relative;flex-shrink:0}
.public-account-trigger{border:0;background:rgba(255,255,255,.15);color:#fff;min-height:42px;padding:6px 10px 6px 6px;border-radius:12px;display:flex;align-items:center;gap:8px;cursor:pointer;font:inherit;font-weight:700}
.public-account-avatar{width:32px;height:32px;border-radius:50%;background:#fff;color:#e60012;display:flex;align-items:center;justify-content:center;font-weight:800;overflow:hidden;flex-shrink:0}
.public-account-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.public-account-name{max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-account-chevron{font-size:10px;transition:transform .2s ease}
.public-account.open .public-account-chevron{transform:rotate(180deg)}
.public-account-menu{position:absolute;right:0;top:calc(100% + 10px);width:220px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 18px 45px rgba(15,23,42,.18);padding:8px;z-index:10050;display:none;color:#111827}
.public-account.open .public-account-menu{display:block}
.public-account-meta{padding:9px 10px 10px;border-bottom:1px solid #eef2f7;margin-bottom:5px;display:grid;gap:2px}
.public-account-meta strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.public-account-meta small{font-size:11px;color:#64748b}
.header-actions .public-account-menu a{color:#111827;background:transparent;width:100%;height:auto;min-height:40px;padding:9px 10px;border-radius:9px;display:flex;justify-content:flex-start;gap:9px;font-size:13px}
.header-actions .public-account-menu a:hover{background:#f3f6fb}
.header-actions .public-account-menu a.public-account-logout{color:#dc2626}

@media(max-width:768px){
    .public-account-name,.public-account-chevron{display:none}
    .public-account-trigger{width:40px;height:40px;min-height:40px;padding:4px;justify-content:center;border-radius:10px}
    .public-account-avatar{width:32px;height:32px}
    .public-account-menu{right:0;top:48px;width:205px}
    .header-actions .public-account-menu a{display:flex;width:100%;height:auto;justify-content:flex-start;background:transparent;color:#111827}
}


/* ===== Trang tra cứu đơn hàng - CSS public độc lập, không phụ thuộc admin.css ===== */
.lookup-page{padding:34px 0 56px;background:#f4f7fb;min-height:calc(100vh - 150px)}
.lookup-page .container{max-width:1040px}
.lookup-hero{background:#fff;border:1px solid #e6ebf3;border-radius:24px;padding:28px;text-align:center;box-shadow:0 12px 40px rgba(15,23,42,.06);margin-bottom:26px}
.lookup-icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#2563eb,#6d28d9);color:#fff;display:grid;place-items:center;margin:0 auto 12px;font-size:22px}
.lookup-hero h1{font-size:28px;color:#111827;margin:0 0 8px}.lookup-hero p{color:#64748b;margin:0 auto 18px;max-width:650px}
.lookup-search{display:flex;max-width:720px;margin:0 auto;gap:8px}.lookup-search input{flex:1;min-width:0;border:1px solid #dbe2ec;border-radius:12px;padding:13px 14px;font-size:15px;outline:none}.lookup-search input:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.lookup-search button{border:0;border-radius:12px;background:linear-gradient(135deg,#2563eb,#6d28d9);color:#fff;font-weight:700;padding:0 18px;cursor:pointer}
.lookup-note{display:flex;align-items:center;justify-content:center;gap:7px;color:#64748b;margin-top:14px;font-size:13px}.lookup-note i{color:#16a34a}
.ticket-card{background:#fff;border:1px solid #e5eaf2;border-radius:22px;padding:22px;margin-bottom:18px;box-shadow:0 10px 30px rgba(15,23,42,.05);overflow:hidden}
.ticket-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.ticket-code-row{display:flex;align-items:center;gap:12px}.ticket-doc-icon{width:42px;height:42px;border-radius:12px;background:#eef4ff;color:#2563eb;display:grid;place-items:center}.ticket-code{font-size:22px;font-weight:800;color:#0f172a}.ticket-customer{margin-top:3px;color:#5f6b7d}
.ticket-detail-cta{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#2f6df6,#2454d9);color:#fff;border-radius:15px;padding:14px 16px;margin:12px 0 18px;text-decoration:none}.ticket-detail-icon{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.17);display:grid;place-items:center}.ticket-detail-copy{display:flex;flex-direction:column;flex:1}.ticket-detail-copy strong{font-size:16px}.ticket-detail-copy small{opacity:.88;margin-top:2px}.ticket-detail-arrow{font-size:18px}
.ticket-timeline{display:flex;align-items:center;justify-content:center;margin:14px 0 20px}.timeline-item{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:70px}.timeline-circle{width:28px;height:28px;border-radius:50%;background:#e8edf5;color:#64748b;display:grid;place-items:center;font-size:12px;font-weight:800}.timeline-item.done .timeline-circle{background:#2563eb;color:#fff}.timeline-label{font-size:11px;color:#64748b;text-align:center}.timeline-item.done .timeline-label{color:#1d4ed8;font-weight:700}.timeline-bar{height:3px;background:#e5eaf2;flex:1;max-width:100px;margin:0 2px 18px}.timeline-bar.done{background:#2563eb}
.ticket-info-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ticket-info-row .info-item{background:#f8fafc;border:1px solid #e7ecf3;border-radius:13px;padding:13px;min-width:0}.ticket-info-row .info-item span{display:block;color:#7b8798;font-size:12px;margin-bottom:5px}.ticket-info-row .info-item strong{display:block;color:#111827;font-size:14px;word-break:break-word}.map-open-btn{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:7px 10px;border-radius:9px;background:#e8f2ff;color:#1664d8;font-size:12px;font-weight:700}
.lookup-page .empty-box{padding:34px;text-align:center;color:#64748b}
@media(max-width:768px){
  .lookup-page{padding:18px 0 36px}.lookup-page .container{padding:0 9px}.lookup-hero{padding:20px 14px;border-radius:18px}.lookup-hero h1{font-size:22px}.lookup-search{flex-direction:column}.lookup-search button{height:44px}.ticket-card{border-radius:18px;padding:16px}.ticket-code{font-size:20px}.ticket-detail-cta{padding:13px 12px}.ticket-detail-copy strong{font-size:15px}.ticket-info-row{grid-template-columns:1fr}.ticket-timeline{overflow-x:auto;justify-content:flex-start;padding-bottom:4px}.timeline-bar{min-width:34px}.timeline-item{min-width:62px}.site-footer{position:static!important;inset:auto!important;width:auto!important;transform:none!important;margin-top:30px!important}.floating-contact{z-index:80}
}

/* =========================================================
   V18 - FIX MENU TAI KHOAN PUBLIC TREN MOBILE
   Avatar nam o ben trai hang thu hai, vi vay dropdown phai mo
   sang ben phai thay vi canh right lam menu bi day ra ngoai man hinh.
========================================================= */
@media (max-width:768px){
    .top-header,
    .header-main,
    .header-main .container,
    .header-actions,
    .public-account{
        overflow:visible !important;
    }

    .public-account{
        position:relative !important;
        z-index:10080 !important;
    }

    .public-account-menu{
        left:0 !important;
        right:auto !important;
        top:calc(100% + 8px) !important;
        width:min(230px, calc(100vw - 28px)) !important;
        max-width:calc(100vw - 28px) !important;
        z-index:10150 !important;
        transform:none !important;
    }

    .public-account-meta{
        display:grid !important;
    }

    .header-actions .public-account-menu a{
        display:flex !important;
        width:100% !important;
        min-width:0 !important;
        height:auto !important;
        min-height:42px !important;
        padding:9px 10px !important;
        justify-content:flex-start !important;
        align-items:center !important;
        gap:10px !important;
        background:transparent !important;
        color:#111827 !important;
        border-radius:9px !important;
    }

    .header-actions .public-account-menu a span{
        display:inline !important;
        color:inherit !important;
        white-space:nowrap !important;
    }

    .header-actions .public-account-menu a i{
        width:18px !important;
        flex:0 0 18px !important;
        color:inherit !important;
    }
}

/* =========================================================
   Booking modal - public site
   Kept in index.css because admin.css is intentionally not
   loaded on public pages.
   ========================================================= */
#bookingModal.booking-modal{
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    display:none;
    align-items:center;
    justify-content:center;
    z-index:2147483000;
    padding:20px;
    box-sizing:border-box;
}
#bookingModal .booking-overlay{
    position:absolute;
    inset:0;
    background:rgba(2,6,23,.72);
    backdrop-filter:blur(3px);
}
#bookingModal .booking-box{
    position:relative;
    z-index:2;
    width:min(760px,95vw);
    max-height:90vh;
    overflow-y:auto;
    background:#fff;
    border-radius:22px;
    padding:24px;
    box-shadow:0 25px 80px rgba(2,6,23,.35);
    box-sizing:border-box;
}
#bookingModal .booking-close{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border:0;
    border-radius:50%;
    background:#f1f5f9;
    color:#0f172a;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:5;
}
#bookingModal .booking-service{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 48px 20px 0;
    padding:15px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:16px;
}
#bookingModal .booking-service-icon{
    width:58px;
    height:58px;
    flex:0 0 58px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#fff;
    color:#ef0018;
    font-size:24px;
    box-shadow:0 5px 18px rgba(15,23,42,.06);
}
#bookingModal .booking-service-label{
    color:#64748b;
    font-size:12px;
    font-weight:700;
    letter-spacing:.03em;
}
#bookingModal .booking-service-title{
    margin-top:4px;
    color:#0f172a;
    font-size:19px;
    font-weight:800;
}
#bookingModal .booking-highlight{
    margin-top:7px;
    color:#475569;
    font-size:13px;
    line-height:1.5;
}
#bookingModal .booking-section{margin-bottom:18px;}
#bookingModal .booking-section-title{
    margin-bottom:10px;
    color:#0f172a;
    font-size:17px;
    font-weight:800;
}
#bookingModal .booking-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
#bookingModal .form-group{margin-bottom:12px;}
#bookingModal label{
    display:block;
    margin-bottom:7px;
    color:#334155;
    font-size:14px;
    font-weight:700;
}
#bookingModal .form-control,
#bookingModal input[type="text"],
#bookingModal input[type="tel"],
#bookingModal input[type="date"],
#bookingModal input[type="time"],
#bookingModal select,
#bookingModal textarea{
    width:100%;
    min-height:44px;
    padding:11px 13px;
    border:1px solid #cbd5e1;
    border-radius:11px;
    background:#fff;
    color:#0f172a;
    font:inherit;
    outline:none;
    box-sizing:border-box;
}
#bookingModal textarea{min-height:90px;resize:vertical;}
#bookingModal .form-control:focus,
#bookingModal input:focus,
#bookingModal select:focus,
#bookingModal textarea:focus{
    border-color:#ef0018;
    box-shadow:0 0 0 3px rgba(239,0,24,.10);
}
#bookingModal .booking-submit{
    width:100%;
    min-height:52px;
    border:0;
    border-radius:13px;
    background:linear-gradient(135deg,#ef0018,#ff4b23);
    color:#fff;
    font-size:16px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(239,0,24,.20);
}
#bookingModal .booking-error{
    margin-bottom:15px;
    padding:12px 14px;
    border-radius:10px;
    background:#fee2e2;
    color:#991b1b;
}
#bookingModal .booking-success{
    margin-bottom:15px;
    padding:12px 14px;
    border-radius:10px;
    background:#dcfce7;
    color:#166534;
}
body.booking-modal-open{overflow:hidden;}
.booking-success-popup{
    position:fixed;
    inset:0;
    z-index:2147483001;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(2,6,23,.72);
}
.booking-success-card{
    width:min(420px,92vw);
    padding:28px;
    border-radius:20px;
    background:#fff;
    text-align:center;
    box-shadow:0 25px 80px rgba(2,6,23,.35);
}
.booking-success-card .success-icon{font-size:60px;margin-bottom:12px;}
.booking-success-card h3{margin:0 0 8px;font-size:24px;}
.booking-success-card p{margin:0 0 18px;color:#64748b;}

@media (max-width:768px){
    #bookingModal.booking-modal{padding:0;align-items:flex-end;}
    #bookingModal .booking-box{
        width:100%;
        max-width:100%;
        max-height:94vh;
        border-radius:22px 22px 0 0;
        padding:20px 16px calc(20px + env(safe-area-inset-bottom));
    }
    #bookingModal .booking-grid{grid-template-columns:1fr;gap:0;}
    #bookingModal .booking-service{margin-right:44px;align-items:flex-start;}
    #bookingModal .booking-service-title{font-size:16px;}
    #bookingModal .booking-highlight{font-size:12px;}
}

/* ================================================================
   V20 - Compatibility for booking modals on service/product detail
   These pages still use the legacy .modal/.modal-box markup.
   Keep scoped to public detail booking/search modals only.
   ================================================================ */
#bookingModal.modal,
#productSearchModal.modal{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100dvh !important;
    z-index:100000 !important;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,.62);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
    overflow-y:auto;
}
#bookingModal.modal .modal-box,
#productSearchModal.modal .modal-box{
    position:relative;
    width:min(760px,100%);
    max-height:calc(100dvh - 40px);
    display:flex;
    flex-direction:column;
    margin:auto;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:22px;
    box-shadow:0 28px 90px rgba(15,23,42,.28);
    overflow:hidden;
}
#productSearchModal.modal .modal-box{width:min(680px,100%)}
#bookingModal.modal .modal-head,
#productSearchModal.modal .modal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 20px;
    border-bottom:1px solid #e9edf5;
    background:#fff;
    flex:0 0 auto;
}
#bookingModal.modal .modal-head h3,
#productSearchModal.modal .modal-head h3{
    margin:0;
    font-size:19px;
    line-height:1.35;
    color:#0f172a;
}
#bookingModal.modal .modal-close,
#productSearchModal.modal .modal-close{
    width:40px;
    height:40px;
    border:0;
    border-radius:12px;
    background:#f1f5f9;
    color:#475569;
    cursor:pointer;
    display:grid;
    place-items:center;
    flex:0 0 auto;
}
#bookingModal.modal form{display:flex;flex-direction:column;min-height:0;max-height:inherit}
#bookingModal.modal .modal-body,
#productSearchModal.modal .modal-body{
    padding:20px;
    overflow:auto;
    overscroll-behavior:contain;
    min-height:0;
}
#bookingModal.modal .modal-foot{
    padding:15px 20px;
    border-top:1px solid #e9edf5;
    background:#fff;
    flex:0 0 auto;
}
#bookingModal.modal .btn-book{
    width:100%;
    min-height:48px;
    border:0;
    border-radius:13px;
    background:linear-gradient(135deg,#2563eb,#6d28d9);
    color:#fff;
    font-weight:800;
    font-size:15px;
    cursor:pointer;
}
#bookingModal.modal .booking-section{margin-bottom:18px}
#bookingModal.modal .booking-section h3,
#bookingModal.modal .booking-section-title{margin:0 0 12px;font-size:15px;font-weight:800;color:#0f172a}
#bookingModal.modal .form-grid,
#bookingModal.modal .booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
#bookingModal.modal .form-group{min-width:0}
#bookingModal.modal label{display:block;margin-bottom:6px;font-size:13px;font-weight:700;color:#334155}
#bookingModal.modal .form-control,
#productSearchModal.modal .form-control{
    width:100%;
    box-sizing:border-box;
    min-height:44px;
    border:1px solid #dbe2ea;
    border-radius:11px;
    padding:10px 12px;
    background:#fff;
    color:#0f172a;
    outline:none;
}
#bookingModal.modal textarea.form-control{min-height:90px;resize:vertical}
#bookingModal.modal .form-control:focus,
#productSearchModal.modal .form-control:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
#bookingModal.modal .booking-service{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px;
    margin-bottom:18px;
    border-radius:14px;
    background:#f5f7ff;
    border:1px solid #e3e7ff;
}
#bookingModal.modal .booking-service-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#e8e9ff;color:#4f46e5;flex:0 0 auto}
#bookingModal.modal .booking-service-label{font-size:11px;font-weight:800;color:#64748b}
#bookingModal.modal .booking-service-title{font-weight:800;color:#0f172a;margin-top:2px}
#bookingModal.modal .booking-error{padding:11px 13px;margin-bottom:14px;border-radius:11px;background:#fff1f2;border:1px solid #fecdd3;color:#be123c}
#bookingModal.modal .selected-product{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid #e2e8f0;border-radius:13px;margin-bottom:10px;background:#fff}
#bookingModal.modal .selected-product-image{width:58px;height:58px;border-radius:10px;object-fit:cover;flex:0 0 auto}
#bookingModal.modal .selected-product-info{flex:1;min-width:0}
#bookingModal.modal .selected-product-name{font-weight:800;color:#0f172a}
#bookingModal.modal .selected-product-price{margin-top:3px;color:#e11d48;font-weight:800}
#bookingModal.modal .remove-product-btn{width:38px;height:38px;border:0;border-radius:10px;background:#fff1f2;color:#e11d48;cursor:pointer}
#bookingModal.modal .btn-select-product{border:1px solid #c7d2fe;border-radius:11px;padding:10px 13px;background:#eef2ff;color:#4338ca;font-weight:800;cursor:pointer}
body.public-booking-open{overflow:hidden !important}
@media (max-width:700px){
    #bookingModal.modal,
    #productSearchModal.modal{padding:0;align-items:flex-end}
    #bookingModal.modal .modal-box,
    #productSearchModal.modal .modal-box{
        width:100%;
        max-height:92dvh;
        border-radius:22px 22px 0 0;
        margin:0;
    }
    #bookingModal.modal .modal-head,
    #productSearchModal.modal .modal-head{padding:14px 16px}
    #bookingModal.modal .modal-body,
    #productSearchModal.modal .modal-body{padding:16px}
    #bookingModal.modal .modal-foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
    #bookingModal.modal .form-grid,
    #bookingModal.modal .booking-grid{grid-template-columns:1fr;gap:10px}
}

/* V21 regression guard: product selector must always be above the booking modal. */
#bookingModal.modal{z-index:100000!important}
#productSearchModal.modal{z-index:100020!important}
#productSearchModal .modal-body{background:#fff}
#productSearchModal #productSearchResult{position:relative;z-index:1;width:100%;min-height:0}


/* =========================================================
   V22 - FIX FLOATING CONTACT POSITION ON PUBLIC DESKTOP/MOBILE
   Keep public floating actions independent from admin.css.
========================================================= */
.floating-contact{
    position:fixed !important;
    right:20px !important;
    bottom:90px !important;
    left:auto !important;
    top:auto !important;
    width:auto !important;
    height:auto !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:12px !important;
    margin:0 !important;
    padding:0 !important;
    z-index:99990 !important;
    pointer-events:auto !important;
}
.floating-contact .fc-btn{
    flex:0 0 58px !important;
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    min-height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:50% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}
.floating-contact .fc-btn i,
.floating-contact .fc-btn span{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    margin:0 !important;
    line-height:1 !important;
}
@media (max-width:768px){
    .floating-contact{
        right:14px !important;
        bottom:18px !important;
        gap:10px !important;
        z-index:99990 !important;
    }
    .floating-contact .fc-btn{
        flex-basis:58px !important;
        width:58px !important;
        height:58px !important;
    }
}
@media (min-width:769px){
    .floating-contact{
        right:22px !important;
        bottom:30px !important;
    }
}


/* =========================================================
   V24 - PUBLIC HEADER / MOBILE NAV
   Logo Viet Quoc + search sticky + bottom navigation.
========================================================= */
.logo a{
    display:flex;
    align-items:center;
    height:46px;
}
.logo img{
    display:block;
    width:215px;
    height:50px;
    max-width:none;
    object-fit:contain;
    object-position:left center;
}
.search-form{
    overflow:hidden;
    border-radius:12px;
    background:#fff;
    box-shadow:0 1px 0 rgba(15,23,42,.04);
}
.search-form input{
    padding:0 14px;
    min-width:0;
}
.search-form button{
    border-left:1px solid #edf0f4;
}
.public-mobile-bottom-nav,
.public-mobile-account-menu{display:none}

@media(max-width:768px){
    body{padding-bottom:72px}
    .top-header{
        position:sticky;
        top:0;
        z-index:12000;
        box-shadow:0 5px 18px rgba(15,23,42,.12);
    }
    .header-main{
        padding:7px 10px 9px;
    }
    .header-main .container{
        display:grid;
        grid-template-columns:1fr;
        gap:7px;
        padding:0;
    }
    .logo{
        width:100%;
        min-width:0;
        display:flex;
        justify-content:flex-start;
        align-items:center;
    }
    .logo a{
        height:38px;
        width:176px;
    }
    .logo img{
        width:176px;
        height:40px;
    }
    .category-btn,
    .header-actions{
        display:none !important;
    }
    .search-box{
        order:initial;
        width:100%;
        max-width:none;
        z-index:3;
    }
    .search-form{
        height:46px;
        border-radius:12px;
        box-shadow:0 5px 18px rgba(20,30,55,.16);
    }
    .search-form input{
        height:46px;
        padding:0 14px;
        font-size:15px;
        background:#fff;
        color:#111827;
    }
    .search-form input::placeholder{color:#7b8794;opacity:1}
    .search-form button{
        width:52px;
        height:46px;
        flex:0 0 52px;
        background:#fff;
    }
    .search-form button i{font-size:18px;color:#42526a}
    #searchSuggest{
        position:absolute;
        left:0;
        right:0;
        top:calc(100% + 5px);
        max-height:55vh;
        overflow:auto;
        z-index:12100;
    }

    .public-mobile-bottom-nav{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        height:64px;
        display:grid;
        grid-template-columns:repeat(4,1fr);
        align-items:stretch;
        background:rgba(255,255,255,.98);
        border-top:1px solid #e6eaf0;
        box-shadow:0 -8px 28px rgba(15,23,42,.12);
        z-index:13000;
        padding-bottom:env(safe-area-inset-bottom);
    }
    .public-mobile-nav-item{
        appearance:none;
        border:0;
        background:transparent;
        color:#596579;
        text-decoration:none;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:4px;
        min-width:0;
        font-family:inherit;
        cursor:pointer;
    }
    .public-mobile-nav-item i{
        font-size:19px;
        line-height:1;
        color:#26364f;
    }
    .public-mobile-nav-item>span:last-child{
        font-size:10.5px;
        line-height:1;
        font-weight:700;
        white-space:nowrap;
    }
    .public-mobile-nav-item:active,
    .public-mobile-nav-item:focus{color:#e60012}
    .public-mobile-nav-avatar{
        width:24px;
        height:24px;
        border-radius:50%;
        display:grid;
        place-items:center;
        overflow:hidden;
        background:#e60012;
        color:#fff;
        font-size:11px;
        font-weight:800;
    }
    .public-mobile-nav-avatar img{width:100%;height:100%;object-fit:cover;display:block}
    .public-mobile-account-menu{
        position:fixed;
        right:10px;
        bottom:72px;
        width:min(235px,calc(100vw - 20px));
        background:#fff;
        border:1px solid #e5e7eb;
        border-radius:16px;
        box-shadow:0 18px 50px rgba(15,23,42,.22);
        padding:8px;
        z-index:13100;
        color:#111827;
    }
    .public-mobile-account-menu.open{display:block}
    .public-mobile-account-meta{
        display:grid;
        gap:2px;
        padding:9px 10px 10px;
        border-bottom:1px solid #edf0f4;
        margin-bottom:5px;
    }
    .public-mobile-account-meta strong{font-size:13px}
    .public-mobile-account-meta small{font-size:11px;color:#718096}
    .public-mobile-account-menu a{
        display:flex;
        align-items:center;
        gap:10px;
        min-height:42px;
        border-radius:10px;
        padding:9px 10px;
        color:#111827;
        font-weight:700;
        font-size:13px;
    }
    .public-mobile-account-menu a i{width:18px;text-align:center}
    .public-mobile-account-menu a.logout{color:#dc2626}
}

/* =========================================================
   V25 - Header logo supplied by owner + stable mobile nav
========================================================= */
.logo a{
    width:220px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    overflow:visible;
}
.logo img{
    display:block;
    width:220px;
    height:52px;
    object-fit:contain;
    object-position:left center;
}

@media(max-width:768px){
    html,body{max-width:100%;overflow-x:hidden}
    .top-header{
        position:sticky!important;
        top:0!important;
        left:0!important;
        right:0!important;
        width:100%!important;
        max-width:100%!important;
        transform:none!important;
        z-index:12000!important;
    }
    .header-main{
        width:100%!important;
        max-width:100%!important;
        padding:6px 10px 8px!important;
        overflow:visible!important;
    }
    .header-main .container{
        width:100%!important;
        max-width:100%!important;
        margin:0!important;
        padding:0!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        gap:6px!important;
        overflow:visible!important;
    }
    .logo{
        width:100%!important;
        min-width:0!important;
        height:42px!important;
        display:flex!important;
        align-items:center!important;
    }
    .logo a{
        width:154px!important;
        height:42px!important;
        max-width:46vw!important;
        overflow:visible!important;
    }
    .logo img{
        width:154px!important;
        height:42px!important;
        max-width:100%!important;
        object-fit:contain!important;
        object-position:left center!important;
    }
    .search-box{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        margin:0!important;
    }
    .search-form{
        width:100%!important;
        max-width:100%!important;
        height:46px!important;
        margin:0!important;
    }
    .search-form input{min-width:0!important;width:100%!important}

    .public-mobile-bottom-nav{
        display:grid!important;
        position:fixed!important;
        left:0!important;
        right:0!important;
        bottom:0!important;
        top:auto!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        height:calc(62px + env(safe-area-inset-bottom))!important;
        margin:0!important;
        padding:0 0 env(safe-area-inset-bottom)!important;
        transform:none!important;
        grid-template-columns:repeat(4,minmax(0,1fr))!important;
        box-sizing:border-box!important;
        overflow:visible!important;
        z-index:2147483000!important;
        background:#fff!important;
        border-top:1px solid #e4e8ef!important;
        box-shadow:0 -7px 24px rgba(15,23,42,.16)!important;
    }
    .public-mobile-nav-item{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
        padding:7px 2px 6px!important;
        overflow:hidden!important;
        box-sizing:border-box!important;
    }
    .public-mobile-nav-item>span:last-child{
        max-width:100%!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
    }
    body{padding-bottom:calc(72px + env(safe-area-inset-bottom))!important}
}

/* =========================================================
   V26 - High contrast brand header + professional public footer
========================================================= */
.logo a{
    width:286px;
    height:58px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    overflow:visible;
}
.logo img{
    display:block;
    width:286px;
    height:58px;
    object-fit:contain;
    object-position:left center;
    filter:drop-shadow(0 3px 8px rgba(72,0,0,.18));
}

.site-footer-v2{
    position:relative!important;
    overflow:hidden;
    background:linear-gradient(135deg,#07142f 0%,#0b1f46 52%,#102b5b 100%)!important;
    color:#dce7fb;
    border-top:0!important;
    padding:44px 0 18px!important;
    margin-top:48px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.site-footer-v2:before{
    content:"";
    position:absolute;
    width:380px;
    height:380px;
    right:-150px;
    top:-220px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(239,0,24,.24),rgba(239,0,24,0) 68%);
    pointer-events:none;
}
.footer-v2-grid{
    position:relative;
    z-index:1;
    display:grid!important;
    grid-template-columns:minmax(280px,1.55fr) repeat(3,minmax(150px,.7fr));
    gap:34px;
    align-items:start;
}
.footer-v2-brand{min-width:0}
.footer-v2-logo{
    width:min(360px,100%);
    display:block;
    margin:0 0 16px;
}
.footer-v2-logo img{
    width:100%;
    max-height:106px;
    display:block;
    object-fit:contain;
    object-position:left center;
}
.footer-v2-brand p{
    max-width:520px;
    margin:0 0 18px!important;
    text-align:left!important;
    color:#adbedb;
    line-height:1.7;
    font-size:14px;
}
.footer-v2-contact{display:flex;flex-wrap:wrap;gap:9px}
.footer-v2-contact a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:38px;
    padding:0 13px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:11px;
    background:rgba(255,255,255,.06);
    color:#fff;
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}
.footer-v2-contact a:hover{background:rgba(255,255,255,.11);transform:translateY(-1px)}
.footer-v2-contact i{color:#ffbd32}
.footer-v2-column{display:flex;flex-direction:column;gap:11px}
.footer-v2-column h3{
    margin:4px 0 7px;
    font-size:15px;
    color:#fff;
    font-weight:800;
    letter-spacing:.1px;
}
.footer-v2-column a{
    color:#b9c7df;
    text-decoration:none;
    font-size:13px;
    line-height:1.4;
    transition:.18s ease;
}
.footer-v2-column a:hover{color:#fff;transform:translateX(2px)}
.footer-v2-support a{display:flex;align-items:flex-start;gap:8px}
.footer-v2-support i{width:17px;color:#ffbd32;margin-top:2px;text-align:center}
.footer-v2-bottom{
    position:relative;
    z-index:1;
    margin-top:32px!important;
    padding-top:17px!important;
    border-top:1px solid rgba(255,255,255,.10);
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    color:#879ab8;
    font-size:12px;
}
.footer-v2-trust{display:inline-flex;align-items:center;gap:7px}
.footer-v2-trust i{color:#ffbd32}

@media(max-width:980px){
    .logo a,.logo img{width:240px;height:54px}
    .footer-v2-grid{grid-template-columns:1.3fr repeat(2,1fr)}
    .footer-v2-support{grid-column:2 / 4}
}

@media(max-width:768px){
    .logo{
        height:50px!important;
        justify-content:flex-start!important;
    }
    .logo a{
        width:min(245px,68vw)!important;
        max-width:none!important;
        height:50px!important;
    }
    .logo img{
        width:100%!important;
        height:50px!important;
        max-width:none!important;
        object-fit:contain!important;
        object-position:left center!important;
    }
    .site-footer-v2{
        padding:30px 18px 24px!important;
        margin-top:34px!important;
        border-radius:22px 22px 0 0;
    }
    .site-footer-v2 .container{width:100%!important;max-width:100%!important;padding:0!important}
    .footer-v2-grid{grid-template-columns:1fr!important;gap:24px!important}
    .footer-v2-logo{width:min(330px,100%);margin-bottom:12px}
    .footer-v2-logo img{max-height:96px}
    .footer-v2-brand p{font-size:13px;line-height:1.65;margin-bottom:14px!important}
    .footer-v2-contact{display:grid;grid-template-columns:1fr;gap:8px}
    .footer-v2-contact a{justify-content:flex-start}
    .footer-v2-column{padding-top:1px;gap:9px}
    .footer-v2-column:not(.footer-v2-support){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}
    .footer-v2-column h3{grid-column:1 / -1;margin-bottom:3px}
    .footer-v2-support{grid-column:auto!important}
    .footer-v2-bottom{margin-top:24px!important;flex-direction:column;align-items:flex-start!important;gap:7px!important;padding-bottom:4px!important}
}
