/*
 Theme responsive styles
 Managed separately and ordered from largest screen size to smallest screen size.
*/

@media (max-width: 1440px) {
  #related-proj-prev {
    left: -25px;
  }

  #related-proj-next {
    right: -25px;
  }
}

@media (max-width: 1200px) {
  .main-slider-wrapper {
    height: 380px;
  }

  .side-banner-card {
    height: calc((380px - 32px) / 3);
  }

  .carousel-tabs-indicators button {
    font-size: 13px;
    padding: 10px 8px !important;
    white-space: normal;
  }

  #related-proj-prev {
    left: -15px;
  }

  #related-proj-next {
    right: -15px;
  }
}

@media (max-width: 991.98px) {
  .header .container {
    gap: 10px !important;
  }

  .mega-menu-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: rgba(15, 23, 42, 0.6) !important;
    backdrop-filter: blur(4px);
    z-index: 2000 !important;
    display: block !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    animation: none !important;
  }

  .mega-menu-overlay.show {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .mega-menu-overlay .container {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 90% !important;
    max-width: 90vw !important;
    height: 100vh !important;
    background-color: #ffffff !important;
    transform: translateX(-100%) !important;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
    overflow-y: auto !important;
    border-radius: 0 !important;
    box-shadow: 15px 0 40px rgba(0, 0, 0, 0.2) !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
  }

  .mega-menu-overlay.show .container {
    transform: translateX(0) !important;
  }

  .mega-menu-overlay .row.g-0 {
    flex-direction: column !important;
    margin: 0 !important;
    flex-grow: 1;
  }

  .mega-menu-overlay .col-lg-2 {
    display: none !important;
  }

  .mega-menu-overlay .col-lg-7 {
    display: block !important;
    width: 100% !important;
    border: none !important;
    padding: 4px 14px 8px !important;
    order: 1;
  }

  /* JS accordion: ẩn cột content desktop khi pane đã chuyển vào sidebar */
  .mega-menu-overlay .col-lg-7.acc-empty {
    display: none !important;
  }

  .mega-menu-overlay .col-lg-3 {
    display: block !important;
    width: 100% !important;
    border: none !important;
    border-top: 1px dashed #e2e8f0 !important;
    padding: 12px 14px 20px !important;
    background-color: #ffffff !important;
    order: 2;
  }

  /* Mobile menu kiểu FPTSHOP: các mục sidebar là header accordion
     (JS main.js chuyển tab-pane vào li) — KHÔNG ẩn li[role="presentation"] */
  #mega-sidebar-tabs li[role="presentation"] {
    display: block !important;
  }

  /* Fallback trước khi JS accordion chạy: pane trong tabContent hiển thị đầy đủ */
  #mega-menu-tabContent .tab-pane {
    display: block !important;
    opacity: 1 !important;
  }

  /* Pane đã được JS chuyển vào sidebar (class mega-acc-pane): ẩn mặc định, chỉ hiện khi .show */
  #mega-sidebar-tabs .mega-acc-pane.tab-pane {
    display: none !important;
    opacity: 1 !important;
  }

  #mega-sidebar-tabs .mega-acc-pane.tab-pane.show {
    display: block !important;
  }

  #mega-menu-tabContent .tab-pane + .tab-pane {
    border-top: 1px dashed #e2e8f0;
    margin-top: 10px;
    padding-top: 10px;
  }

  .mobile-menu-header {
    display: flex !important;
  }

  /* Mobile menu specific styles */
  .mobile-menu-body {
    -webkit-overflow-scrolling: touch;
  }

  .mobile-menu-body .card {
    border-radius: 10px !important;
  }

  .mobile-cat-slider-inner::-webkit-scrollbar {
    display: none !important;
  }

  .btn[data-bs-toggle="collapse"] .transition-arrow {
    transition: transform 0.3s ease;
  }

  .btn[data-bs-toggle="collapse"]:not(.collapsed) .transition-arrow {
    transform: rotate(180deg);
  }
}

/* Hide floating actions when mobile menu is open to prevent peaking out from the side gaps */
body.menu-open .floating-actions {
  display: none !important;
}

@media (max-width: 991.98px) {
  .product-info-panel {
    padding: 24px 0 0 0;
  }

  .product-gallery-main {
    height: 340px !important;
  }
}

@media (max-width: 991px) {

  /* Global: tất cả container full width trên mobile/tablet */
  .container {
    max-width: 100% !important;
  }

  /* Tất cả slider arrows thụt vào trong item */
  #proj-prev {
    left: 20px !important;
    z-index: 10 !important;
  }

  #proj-next {
    right: 20px !important;
    z-index: 10 !important;
  }

  .products-slider-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .slider-arrow.arrow-left,
  #related-proj-prev {
    left: 15px !important;
    z-index: 10 !important;
  }

  .slider-arrow.arrow-right,
  #related-proj-next {
    right: 15px !important;
    z-index: 10 !important;
  }

  /* Dự án full container trên màn hình <= 991px */
  .projects-carousel-section .position-relative {
    padding: 0 !important;
  }

  #projects-slider-track {
    margin-left: 0 !important;
    margin-right: 0 !important;
    --bs-gutter-x: 0 !important;
  }

  /* Filters Navigation with Gradient Fade (<= 991px) */
  .project-filters-nav-wrapper,
  .prod-filters-nav-wrapper {
    position: relative !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .project-filters-bar,
  .prod-filters-bar {
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    align-items: center !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    scroll-behavior: smooth;
  }

  .project-filters-bar::-webkit-scrollbar,
  .prod-filters-bar::-webkit-scrollbar {
    display: none !important;
  }

  .filter-nav-fade {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    height: 100% !important;
    width: 48px !important;
    z-index: 5 !important;
    display: flex !important;
    align-items: center !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.2s ease !important;
  }

  .filter-nav-fade.is-active {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .filter-nav-fade-left {
    left: 0 !important;
    background: linear-gradient(to right, #ffffff 30%, rgba(255, 255, 255, 0) 100%) !important;
    justify-content: flex-start !important;
    padding-left: 2px !important;
  }

  .filter-nav-fade-right {
    right: 0 !important;
    background: linear-gradient(to left, #ffffff 30%, rgba(255, 255, 255, 0) 100%) !important;
    justify-content: flex-end !important;
    padding-right: 2px !important;
  }

  .featured-products-section .filter-nav-fade-left {
    background: linear-gradient(to right, #f5faf6 35%, rgba(245, 250, 246, 0) 100%) !important;
  }

  .featured-products-section .filter-nav-fade-right {
    background: linear-gradient(to left, #f5faf6 35%, rgba(245, 250, 246, 0) 100%) !important;
  }

  /* Trust Brands Horizontal Scroll with Nav Fade (<= 991px) */
  .brands-slider-nav-wrapper {
    position: relative !important;
    width: 100% !important;
  }

  .brands-slider-nav-wrapper .trust-brands-bar {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    align-items: center !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none !important;
    scroll-behavior: smooth;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
    --bs-gutter-x: 0 !important;
    --bs-gutter-y: 0 !important;
  }

  .brands-slider-nav-wrapper .trust-brands-bar::-webkit-scrollbar {
    display: none !important;
  }

  .brands-slider-nav-wrapper .trust-brands-bar > .col {
    flex: 0 0 auto !important;
    width: 150px !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .brands-slider-nav-wrapper .filter-nav-fade {
    top: 0 !important;
    bottom: 0 !important;
    height: 100% !important;
    width: 48px !important;
    display: flex !important;
    align-items: center !important;
  }

  .brands-slider-nav-wrapper .filter-nav-fade-left {
    padding-left: 6px !important;
    justify-content: flex-start !important;
  }

  .brands-slider-nav-wrapper .filter-nav-fade-right {
    padding-right: 6px !important;
    justify-content: flex-end !important;
  }

  .brands-slider-nav-wrapper .btn-filter-nav {
    width: 32px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .brands-slider-nav-wrapper .btn-filter-nav i {
    transform: translateY(4px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
  }


  .btn-filter-nav {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
    width: 28px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #495057 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: transform 0.15s ease, color 0.15s ease !important;
  }

  .btn-filter-nav i {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    transform: translateY(1.5px) !important;
  }

  .btn-filter-nav:hover {
    color: #000000 !important;
    transform: scale(1.15) !important;
  }

  .btn-filter-nav:active {
    transform: scale(0.9) !important;
  }


  .main-slider-wrapper {
    height: auto !important;
    aspect-ratio: 908 / 447 !important;
    display: block !important;
  }

  .main-slider-wrapper #mainBannerCarousel,
  .main-slider-wrapper .carousel-inner,
  .main-slider-wrapper .carousel-item {
    height: 100% !important;
  }

  .side-banner-card {
    height: auto !important;
    aspect-ratio: 294 / 150 !important;
    flex: 1 !important;
    width: 0;
  }

  .carousel-tabs-indicators {
    display: none !important;
  }



  .banner-grid-section .row.g-3 {
    --bs-gutter-x: 6px !important;
    --bs-gutter-y: 6px !important;
  }

  .banner-grid-section .col-lg-3 {
    gap: 6px !important;
  }

  .project-card-col {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .about-collage-wrapper {
    grid-template-columns: 1fr;
    gap: 15px !important;
  }

  .about-video-box {
    height: 280px;
    flex: none;
    border-radius: 8px !important;
  }

  .about-collage-right {
    flex-direction: row;
    gap: 15px !important;
    height: auto;
  }

  .about-collage-right-img {
    height: 200px;
    width: calc(50% - 7.5px) !important;
    flex-grow: 1;
    border-radius: 8px !important;
  }

  .about-collage-left {
    height: auto;
    padding-top: 0 !important;
  }

  .about-hotline-card {
    display: none !important;
  }

  .about-content-box {
    margin-top: 0 !important;
  }

  .about-section {
    padding-top: 15px !important;
  }

  .about-section .container {
    padding-top: 0 !important;
  }

  .about-section .row.g-5 {
    --bs-gutter-y: 15px !important;
    --bs-gutter-x: 15px !important;
  }

  .vision-image-box,
  .mission-image-box {
    height: 380px;
    border-radius: 8px !important;
  }

  .vision-image-box img,
  .mission-image-box img {
    border-radius: 8px !important;
  }

  .vision-section .row,
  .mission-section .row {
    --bs-gutter-y: 15px !important;
    --bs-gutter-x: 15px !important;
  }

  .vision-section .container,
  .mission-section .container {
    padding-bottom: 0 !important;
  }

  .about-title,
  .vision-title,
  .mission-title,
  .contact-title {
    font-size: 24px;
  }


  .web-breadcrumb {
    padding: 10px 0 !important;
    font-size: 13px;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .side-banner-card {
    height: auto !important;
    aspect-ratio: 294 / 150 !important;
    flex: 1;
  }

  .btn-mega-toggle {
    white-space: nowrap !important;
    padding-left: 10px !important;
    padding-right: 12px !important;
    gap: 6px !important;
  }

  .btn-mega-toggle span {
    font-size: 13px !important;
  }
}

@media (min-width: 768px) {
  .blog-list-card-horizontal {
    flex-direction: row;
    align-items: stretch;
  }


  .blog-list-card-horizontal .card-img-box {
    width: 33.3333%;
    aspect-ratio: unset;
    flex-shrink: 0;
  }

  .blog-list-card-horizontal .card-body {
    width: 66.6667%;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (max-width: 768px) {

  h2.title-section {
    font-size: 18px !important;
  }

  .custom-card-hover {
    height: 220px !important;
    border-radius: 8px !important;
  }

  .what-you-need-section .row.g-4 {
    --bs-gutter-y: 15px !important;
    --bs-gutter-x: 15px !important;
  }

  .custom-card-body {
    padding: 15px !important;
  }

  .custom-card-body h3 {
    font-size: 18px !important;
    margin-bottom: 4px !important;
  }

  .custom-card-body p {
    font-size: 12px !important;
    min-height: unset !important;
    margin-bottom: 10px !important;
    -webkit-line-clamp: 2 !important;
  }

  .custom-card-body .btn-card-more {
    padding: 5px 15px !important;
    font-size: 12px !important;
  }



  #prod-cat-filters,
  .project-archive-filters {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch;
    width: 100% !important;
    justify-content: flex-start !important;
    padding-bottom: 5px !important;
    scrollbar-width: none !important;
    scroll-behavior: smooth;
  }

  #prod-cat-filters::-webkit-scrollbar,
  .project-filters-bar::-webkit-scrollbar,
  .project-archive-filters::-webkit-scrollbar {
    display: none !important;
  }

  .btn-filter-pill {
    padding: 6px 14px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }


  .brand-logo-card {
    border-radius: 6px !important;
    padding: 8px !important;
  }

  .brand-logo-card img {
    max-height: 25px !important;
  }

  .products-slider-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }


  .products-grid {
    --bs-gutter-x: 12px !important;
    --bs-gutter-y: 12px !important;
  }

  .products-grid>.col {
    width: 66.6667% !important;
    flex-shrink: 0 !important;
  }

  .product-item-card {
    border-radius: 8px !important;
  }

  .btn-outline-green-pill {
    padding: 6px 20px !important;
    font-size: 13px !important;
  }

  .btn-green-pill {
    padding: 6px 16px !important;
    font-size: 13px !important;
  }

  .btn-nav-circle {
    width: 32px !important;
    height: 32px !important;
    font-size: 14px !important;
  }

  .project-filters-bar+.d-flex {
    padding-bottom: 8px !important;
  }

  .project-slide-card,
  .project-overlay {
    border-radius: 8px !important;
  }

  /* Danh mục sản phẩm - Mobile overrides */
  .category-grid-section h2.title-section {
    margin-bottom: 25px !important;
  }

  section#du-an-da-thuc-hien {
    overflow: hidden;
  }

  .category-grid-section .row {
    display: grid !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: column !important;
    grid-auto-columns: calc((100% - 16px) / 2.5) !important;
    overflow-x: auto !important;
    white-space: nowrap !important;
    flex-wrap: nowrap !important;
    -webkit-overflow-scrolling: touch;
    gap: 8px !important;
    margin-left: -12px !important;
    margin-right: -12px !important;
    padding: 5px 12px 15px 12px !important;
    scrollbar-width: none !important;
  }

  .category-grid-section .row::-webkit-scrollbar {
    display: none !important;
  }

  .category-grid-section .row>.col {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
  }

  .category-card {
    border-radius: 8px !important;
    padding: 12px 8px !important;
    width: 100% !important;
  }

  .category-card .icon-circle {
    width: 48px !important;
    height: 48px !important;
    margin-bottom: 8px !important;
  }

  .category-card .icon-circle img {
    width: 24px !important;
    height: 24px !important;
  }

  .category-card h3 {
    font-size: 13px !important;
    margin-bottom: 2px !important;
    white-space: normal !important;
  }

  .category-card span {
    font-size: 11px !important;
  }

  #projects-slider-track {
    padding-bottom: 15px !important;
  }

  .partners-logos-section {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
    margin-top: 20px !important;
    background-position: center -30px !important;
  }

  #partners-logos-container {
    --bs-gutter-x: 10px !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    padding-right: 0 !important;
  }

  #partners-logos-container>.col {
    width: calc((100vw - 15px) / 3) !important;
    flex-shrink: 0 !important;
  }

  #partners-logos-container .flex-column {
    gap: 10px !important;
  }

  .partner-logo-box {
    border-radius: 6px !important;
    padding: 8px !important;
  }

  .partner-logo-img {
    max-height: 25px !important;
  }

  #partner-dots .dot,
  #project-dots .dot {
    width: 6px !important;
    height: 6px !important;
  }

  #partner-dots .dot.active,
  #project-dots .dot.active {
    width: 6px !important;
    height: 6px !important;
  }

  #partner-dots,
  #project-dots {
    gap: 4px !important;
    margin-top: 15px !important;
  }

  /* Bài viết - Mobile overrides */
  .blog-featured-card-custom {
    height: auto !important;
  }

  .blog-list-card,
  .blog-featured-card-custom {
    margin-bottom: 10px;
  }

  .blog-featured-card-custom,
  .blog-list-card {
    border-radius: 8px !important;
  }

  .blog-featured-card-custom .featured-content-custom,
  .blog-list-card .card-body {
    padding: 12px !important;
  }

  .blog-featured-card-custom .blog-title {
    font-size: 18px !important;
  }

  .blog-thumb-box-custom {
    width: 80px !important;
    height: 60px !important;
  }

  .blog-list-title-custom {
    font-size: 14px !important;
  }

  /* Single Post Mobile Overrides */
  .single-post-detail-box {
    padding: 15px !important;
  }

  .single-post-title {
    font-size: 20px !important;
    line-height: 28px !important;
    margin-bottom: 10px !important;
  }

  .post-meta-row {
    font-size: 12px !important;
    margin-bottom: 15px !important;
    gap: 8px 12px !important;
  }

  .post-featured-image-wrapper {
    margin-bottom: 15px !important;
  }

  .single-post-content p {
    margin-bottom: 15px !important;
    line-height: 1.6 !important;
    font-size: 14px !important;
  }

  .single-post-content h2 {
    font-size: 17px !important;
    margin-top: 25px !important;
    margin-bottom: 12px !important;
    padding-left: 10px !important;
  }

  .single-post-content h3 {
    font-size: 15px !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
  }

  .single-post-content h4 {
    font-size: 14px !important;
    margin-top: 20px !important;
    margin-bottom: 10px !important;
  }

  .single-post-content blockquote {
    padding: 12px 15px !important;
    margin: 20px 0 !important;
    font-size: 14px !important;
  }

  .related-posts-section {
    padding-top: 25px !important;
    margin-top: 25px !important;
  }

  .related-posts-section h2 {
    margin-bottom: 20px !important;
    font-size: 16px !important;
  }

  .cta-registration-card {
    bottom: -20px !important;
    padding: 20px 15px !important;
    gap: 15px !important;
  }

  .slider-arrow {
    width: 30px;
    height: 30px;
  }

  .py-4 {
    padding-top: 7.5px !important;
    padding-bottom: 7.5px !important;
  }

  .py-5 {
    padding-top: 7.5px !important;
    padding-bottom: 7.5px !important;
  }

  .mb-5,
  .mb-4 {
    margin-bottom: 15px !important;
  }

  .search-input {
    height: 40px !important;
  }

  section#khach-hang {
    overflow: hidden;
  }

  .footer-heading {
    padding-bottom: 0;
    margin-bottom: 10px !important;
  }

  .slider-arrow.arrow-left {
    left: 15px !important;
  }

  .slider-arrow.arrow-right {
    right: 15px !important;
  }

  .blog-featured-card-custom .featured-img-box-custom {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  .lightbox-prev,
  .lightbox-next {
    width: 40px;
    height: 40px;
    font-size: 20px;
  }

  .lightbox-prev {
    left: 10px;
  }

  .lightbox-next {
    right: 10px;
  }

  #related-proj-prev {
    left: 5px;
  }

  #related-proj-next {
    right: 5px;
  }

  .product-lightbox-modal .lightbox-arrow {
    width: 48px;
    height: 48px;
    font-size: 24px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #097544 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    border: 1.5px solid rgba(9, 117, 68, 0.35);
  }

  .product-lightbox-modal .lightbox-arrow:hover {
    background: #ffffff !important;
    color: #075f36 !important;
  }

  .product-lightbox-modal .lightbox-prev {
    left: 10px;
  }

  .product-lightbox-modal .lightbox-next {
    right: 10px;
  }

  .footer {
    padding-top: 15px !important;
  }

  .footer .container {
    padding-top: 0 !important;
  }

  .footer .col-lg-2.col-md-4 {
    width: 50% !important;
    max-width: 50% !important;
    flex: 0 0 50% !important;
    margin-top: 25px !important;
  }

  .footer .col-lg-3.col-md-4 {
    margin-top: 25px !important;
  }

  .footer-link {
    font-size: 13px !important;
  }

  /* Trang dự toán - Mobile overrides */
  .calc-card-box,
  .calc-method-box,
  .sidebar-quote-box-calc {
    padding: 15px !important;
    border-radius: 8px !important;
    margin-bottom: 15px !important;
  }

  .selected-item-row {
    padding: 12px !important;
    border-radius: 6px !important;
  }

  .calc-heading {
    font-size: 15px !important;
    margin-bottom: 15px !important;
  }

  /* Single Project Page Responsive */
  .info-image-project,
  .single-project-content,
  .project-sidebar-quote-box-single {
    padding: 15px !important;
    margin-bottom: 15px !important;
    border-radius: 8px !important;
  }

  .info-image-project h1 {
    font-size: 24px !important;
    line-height: 1.35 !important;
    margin-bottom: 12px !important;
  }

  .project-meta-row {
    gap: 12px 15px !important;
    margin-bottom: 15px !important;
    font-size: 13px !important;
  }

  .project-meta-row svg {
    width: 18px !important;
    height: 18px !important;
  }

  .project-collage-large {
    height: 280px !important;
  }

  .project-collage-small {
    height: 130px !important;
  }

  .project-description-content p {
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin-bottom: 12px !important;
  }

  .single-project-content h2 {
    font-size: 16px !important;
    margin-top: 15px !important;
    margin-bottom: 10px !important;
  }

  .project-sidebar-quote-box-single h3 {
    font-size: 14px !important;
    margin-bottom: 8px !important;
  }

  .project-sidebar-quote-box-single p {
    font-size: 13px !important;
    margin-bottom: 15px !important;
  }

  .project-sidebar-quote-box-single .btn-brand-green {
    font-size: 13.5px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .related-projects-section h2 {
    font-size: 18px !important;
    margin-bottom: 20px !important;
  }
}

@media (max-width: 767.98px) {
  .floating-actions {
    bottom: 90px !important;
    right: 15px !important;
  }
}

@media (max-width: 767px) {
  .mobile-menu-search {
    display: block !important;
  }

  .header .container {
    gap: 0 !important;
  }

  .btn-mega-toggle,
  .btn-action-pill {
    width: 44px !important;
    padding: 0 !important;
    justify-content: center !important;
    border-radius: 50% !important;
  }

  button#mega-menu-btn-mobile,
  button#action-cart-btn-mobile {
    padding: 0 !important;
  }

  .action-badge {
    right: 0px !important;
  }

  .project-overlay {
    padding: 12px 16px !important;
    left: 15px !important;
    right: 15px !important;
    bottom: -20px !important;
    border-radius: 10px !important;
  }

  .project-overlay .project-title {
    font-size: 15px !important;
    margin-bottom: 4px !important;
    line-height: 1.35 !important;
  }

  .project-overlay .project-excerpt {
    font-size: 12px !important;
    margin-bottom: 4px !important;
    line-height: 1.4 !important;
  }

  .header-logo-img {
    max-height: 32px;
  }

  .header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1050 !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    border-bottom: 0 !important;
  }

  body.admin-bar .header {
    top: 46px !important;
  }

  .mobile-search-wrapper {
    margin-top: 2px !important;
    padding-bottom: 2px !important;
  }
}

@media (max-width: 576px) {
  .main-slider-wrapper {
    height: auto !important;
    aspect-ratio: 908 / 447 !important;
    display: block !important;
  }


  .slide-cta-btn {
    padding: 8px 20px !important;
    font-size: 13px;
    top: 55%;
  }

  .about-video-box {
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    flex: none;
  }

  .about-collage-right {
    flex-direction: row !important;
    gap: 15px !important;
  }

  .about-collage-right-img {
    height: 120px !important;
    width: calc(50% - 7.5px) !important;
  }

  .about-play-btn {
    width: 50px;
    height: 50px;
    font-size: 22px;
  }

  .cat-brand-card {
    height: 50px !important;
  }

  .brand-marquee-item {
    font-size: 13px;
    padding: 0 20px;
  }

  .brand-marquee-item img.marquee-logo {
    height: 22px;
  }

  .vision-image-box,
  .mission-image-box {
    height: 280px;
  }

  .about-title,
  .vision-title,
  .mission-title,
  .contact-title {
    font-size: 20px;
  }

  .contact-map-wrapper {
    margin-bottom: 15px !important;
  }

  .contact-content-box.ps-lg-3 {
    padding-top: 15px;
  }

  /* Reduce border-radius globally on mobile devices */
  .rounded-4,
  .sidebar-widget,
  .single-post-detail-box,
  .blog-featured-card-custom,
  .blog-list-card,
  .product-item-card,
  .product-item-card .product-img-box,
  .category-card,
  .project-slide-card,
  .project-overlay,
  .custom-card-hover,
  .about-video-box,
  .about-collage-right-img,
  .vision-image-box,
  .mission-image-box,
  .vision-image-box img,
  .mission-image-box img,
  .cta-registration-card,
  .main-slider-wrapper,
  .banner-grid-col-left,
  .banner-grid-col-right,
  .cat-news-sidebar,
  .cat-sale-banner {
    border-radius: 8px !important;
  }

  /* Reduce thumbnail and inner element border-radius even more on mobile */
  .sidebar-recent-item .sidebar-recent-thumb,
  .blog-thumb-box-custom,
  .card-img-box,
  .featured-img-box-custom {
    border-radius: 6px !important;
  }

  /* Category Slider Mobile Override */
  .category-slider-wrapper {
    height: 150px !important;
  }

  .category-slider-wrapper img {
    height: 150px !important;
    object-fit: cover;
  }

  /* Category Archive page - Brand & Category List mobile styling matching home page */
  .cat-brand-card {
    min-height: 50px !important;
    padding: 8px !important;
    border-radius: 6px !important;
  }

  .cat-brand-card img {
    max-height: 25px !important;
  }

  .mobile-scroll-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    -webkit-overflow-scrolling: touch;
    gap: 8px !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    padding-bottom: 10px !important;
    scrollbar-width: none !important;
  }

  .mobile-scroll-row::-webkit-scrollbar {
    display: none !important;
  }

  .mobile-scroll-row>.col {
    width: calc((100vw - 30px - 16px) / 2.5) !important;
    /* show exactly 2.5 items */
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
    padding: 0 !important;
  }

  .cat-need-card {
    min-height: 140px !important;
    padding: 15px 8px !important;
    border-radius: 8px !important;
  }

  .cat-need-card img {
    width: 36px !important;
    height: 36px !important;
    margin-bottom: 8px !important;
  }

  .cat-need-card p {
    font-size: 12px !important;
    white-space: normal !important;
  }

  .cat-need-card span {
    font-size: 11px !important;
  }

  /* Brands horizontal scroll mobile style */
  .brands-slider-nav-wrapper .trust-brands-bar > .col {
    width: 135px !important;
  }

  /* Mobile Sort & Filter Bar */
  .mobile-sort-filter-bar {
    display: flex !important;
    align-items: center !important;
    background-color: #fff !important;
    border-top: 1px solid #f1f5f9 !important;
    border-bottom: 1px solid #f1f5f9 !important;
    padding: 8px 12px !important;
    margin-bottom: 15px !important;
    gap: 8px !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }

  .mobile-sort-scroll {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    flex-grow: 1 !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding-right: 4px !important;
  }

  .mobile-sort-scroll::-webkit-scrollbar {
    display: none !important;
  }

  /* Sort Pills on Mobile */
  .mobile-sort-scroll .cat-sort-pill.mobile-sort-btn {
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    background-color: #f8fafc !important;
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 6px 12px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    position: relative !important;
    overflow: hidden !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    line-height: 1.4 !important;
  }

  .mobile-sort-scroll .cat-sort-pill.mobile-sort-btn.active {
    border-color: #d70018 !important;
    color: #d70018 !important;
    background-color: #fff !important;
    font-weight: 600 !important;
  }

  /* Red diagonal ribbon on active sort buttons */
  .mobile-sort-scroll .cat-sort-pill.mobile-sort-btn.active::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 0 !important;
    height: 0 !important;
    border-style: solid !important;
    border-width: 0 14px 14px 0 !important;
    border-color: transparent #d70018 transparent transparent !important;
    z-index: 1 !important;
  }

  .mobile-sort-scroll .cat-sort-pill.mobile-sort-btn.active::before {
    content: "✓" !important;
    position: absolute !important;
    top: 0px !important;
    right: 1px !important;
    font-size: 8px !important;
    color: #fff !important;
    font-weight: bold !important;
    z-index: 2 !important;
    line-height: 1 !important;
  }

  /* Filter separator */
  .filter-divider {
    width: 1px !important;
    height: 24px !important;
    background-color: #cbd5e1 !important;
    flex-shrink: 0 !important;
  }

  /* Filter trigger button on mobile */
  .mobile-filter-trigger-btn {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    color: #0f172a !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
  }

  .mobile-filter-trigger-btn i {
    font-size: 16px !important;
    color: #0f172a !important;
  }

  /* Bottom Sheet Offcanvas */
  .mobile-filter-offcanvas {
    height: 80vh !important;
    border-top-left-radius: 16px !important;
    border-top-right-radius: 16px !important;
    overflow: hidden !important;
    z-index: 99999 !important;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.1) !important;
  }

  .mobile-filter-offcanvas .offcanvas-header {
    border-bottom: 1px solid #f1f5f9 !important;
    padding: 16px !important;
  }

  .mobile-filter-offcanvas .offcanvas-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #0f172a !important;
  }

  .mobile-filter-offcanvas .offcanvas-body {
    padding: 16px !important;
    padding-bottom: 90px !important;
    overflow-y: auto !important;
  }

  .offcanvas-body::-webkit-scrollbar {
    width: 4px !important;
  }

  .offcanvas-body::-webkit-scrollbar-track {
    background: #f1f5f9 !important;
  }

  .offcanvas-body::-webkit-scrollbar-thumb {
    background: var(--color-brand-green, #097544) !important;
    border-radius: 10px !important;
  }

  /* Filter collapsible titles & carets */
  .filter-group-title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #0f172a !important;
  }

  .filter-group [aria-expanded="false"] .collapse-icon {
    transform: rotate(180deg) !important;
  }

  /* Offcanvas Option Buttons */
  .mobile-filter-option-btn {
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid #e2e8f0 !important;
    background-color: #fff !important;
    color: #0f172a !important;
    border-radius: 6px !important;
    padding: 8px 10px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    box-shadow: none !important;
  }

  .mobile-filter-option-btn.active {
    border-color: #d70018 !important;
    color: #d70018 !important;
    background-color: #fff !important;
    font-weight: 600 !important;
  }

  .mobile-filter-option-btn.active::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 0 !important;
    height: 0 !important;
    border-style: solid !important;
    border-width: 0 14px 14px 0 !important;
    border-color: transparent #d70018 transparent transparent !important;
    z-index: 1 !important;
  }

  .mobile-filter-option-btn.active::before {
    content: "✓" !important;
    position: absolute !important;
    top: 0px !important;
    right: 1px !important;
    font-size: 8px !important;
    color: #fff !important;
    font-weight: bold !important;
    z-index: 2 !important;
    line-height: 1 !important;
  }

  /* Style inner elements color/thickness/material tags to not be full width */
  .filter-group .collapse .d-flex.flex-wrap .mobile-filter-option-btn {
    width: auto !important;
    min-height: unset !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
    border-radius: 6px !important;
    height: auto !important;
  }

  /* Offcanvas footer sticky bottom */
  .mobile-filter-offcanvas .offcanvas-footer {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    background-color: #fff !important;
    border-top: 1px solid #f1f5f9 !important;
    padding: 12px 16px !important;
    display: flex !important;
    gap: 12px !important;
    z-index: 100 !important;
    margin: 0 !important;
  }

  .mobile-filter-offcanvas .offcanvas-footer button {
    height: 42px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    box-shadow: none !important;
  }

  #btn-reset-mobile-filters {
    border: 1px solid #cbd5e1 !important;
    color: #94a3b8 !important;
    background-color: #fff !important;
  }

  #btn-reset-mobile-filters:hover {
    background-color: #f8fafc !important;
    border-color: #94a3b8 !important;
    color: #64748b !important;
  }

  #btn-apply-mobile-filters {
    background-color: var(--color-brand-green, #097544) !important;
    color: #fff !important;
    border: none !important;
  }

  #btn-apply-mobile-filters:hover {
    background-color: var(--color-brand-green-dark, #075f36) !important;
  }

  /* Compact Product Card Overrides on Mobile (2 items per row) */
  .product-item-card {
    border-radius: 6px !important;
  }

  .product-item-card .p-3 {
    padding: 8px !important;
  }

  .product-item-card .product-name {
    font-size: 13px !important;
    line-height: 1.35 !important;
    margin-bottom: 4px !important;
  }

  .product-item-card .product-name a {
    font-size: 13px !important;
  }

  .product-item-card .product-desc {
    font-size: 10.5px !important;
    margin-bottom: 6px !important;
  }

  .product-item-card .price-box {
    margin-bottom: 6px !important;
    gap: 4px !important;
    flex-wrap: wrap !important;
  }

  .product-item-card .price-current {
    font-size: 13.5px !important;
    font-weight: 700 !important;
  }

  .product-item-card .price-old {
    font-size: 10px !important;
  }

  .product-item-card .price-discount {
    font-size: 9px !important;
    padding: 1px 3px !important;
  }

  .product-item-card .color-dots-row {
    margin-top: 4px !important;
    gap: 3px !important;
  }

  .product-item-card .color-dot {
    width: 10px !important;
    height: 10px !important;
    border-width: 1px !important;
  }

  .product-item-card .color-dot.active {
    box-shadow: 0 0 0 1px var(--color-brand-green, #097544) !important;
  }

  .product-item-card .badge-status {
    top: 6px !important;
    left: 6px !important;
    padding: 2px 6px !important;
    font-size: 9px !important;
  }

  /* Mobile Pagination Scale Down */
  .news-pagination {
    margin-top: 30px !important;
  }

  .news-pagination ul.page-numbers {
    gap: 6px !important;
  }

  .news-pagination ul.page-numbers a.page-numbers,
  .news-pagination ul.page-numbers span.page-numbers {
    width: 32px !important;
    height: 32px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
  }

  /* Scale down h2 titles in archive product pages on mobile */
  .woocommerce-page h2,
  .woocommerce-page h2[style*="font-size"] {
    font-size: 20px !important;
  }

  /* Sale Section Mobile Overrides */
  .cat-sale-banner {
    padding: 12px 10px !important;
    border-radius: 8px !important;
  }

  .cat-sale-banner h2 {
    font-size: 16px !important;
  }

  .cat-sale-banner img[alt="Hot"] {
    width: 24px !important;
    height: 24px !important;
  }

  #sale-countdown {
    width: 100% !important;
    justify-content: space-between !important;
    gap: 4px !important;
  }

  .countdown-box {
    width: calc(25% - 3px) !important;
    max-width: 80px !important;
    min-width: unset !important;
    padding: 4px 0 !important;
    border-radius: 6px !important;
    font-size: 11px !important;
    gap: 2px !important;
  }

  .countdown-num {
    font-size: 12px !important;
    width: auto !important;
  }

  .countdown-label {
    font-size: 10px !important;
  }

  /* Prevent page horizontal scroll on mobile */
  html,
  body {
    overflow-x: clip !important;
    width: 100% !important;
  }

  /* FAQ smaller border-radius & padding on mobile */
  .cat-faq-item {
    border-radius: 6px !important;
  }

  .cat-faq-header {
    padding: 12px 14px !important;
    font-size: 14px !important;
    gap: 8px !important;
  }

  .cat-faq-header span {
    font-size: 13.5px !important;
    line-height: 1.35 !important;
  }

  .cat-faq-body {
    padding: 0 14px !important;
  }

  .cat-faq-item.active .cat-faq-body {
    padding: 0 14px 12px !important;
  }

  /* Product News Sidebar smaller border-radius & padding on mobile */
  .cat-news-sidebar {
    border-radius: 8px !important;
    padding: 15px !important;
  }

  .cat-news-sidebar h3 {
    font-size: 14px !important;
  }

  .cat-news-sidebar a.text-decoration-none {
    font-size: 12px !important;
  }

  .cat-news-item {
    padding: 4px !important;
    border-radius: 6px !important;
    gap: 10px !important;
  }

  .cat-news-item span {
    font-size: 12.5px !important;
    line-height: 1.35 !important;
  }

  .cat-news-item img {
    width: 70px !important;
    height: 52px !important;
  }

  /* Single Product Detail Page Mobile Styles */
  .single-product .bg-white.rounded-4.p-4.shadow-sm {
    padding: 15px !important;
    border-radius: 8px !important;
    padding-top: 0 !important;
  }

  .product-gallery-main.rounded-3.position-relative.overflow-hidden.mb-3.bg-light.d-flex.align-items-center.justify-content-center {
    margin-top: 0 !important;
  }

  .single-product h1.fw-800.fs-3 {
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin-bottom: 15px !important;
  }

  .single-product #detail-current-price {
    font-size: 20px !important;
  }

  .single-product .price-label {
    font-size: 13px !important;
  }

  .single-product .product-specs-box {
    padding: 10px !important;
    border-radius: 8px !important;
  }

  .single-product .product-specs-box .row.g-3 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .single-product .product-specs-box .row.g-3>[class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .single-product .product-specs-box span.text-muted {
    font-size: 10.5px !important;
    margin-bottom: 2px !important;
  }

  .single-product .product-specs-box .d-flex {
    align-items: flex-start !important;
    gap: 6px !important;
  }

  .single-product .product-specs-box .d-flex img {
    width: 15px !important;
    height: 15px !important;
    margin-top: 1.5px !important;
  }

  .single-product .product-specs-box strong.spec-value {
    font-size: 12.5px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
  }

  .single-product label.form-label.fs-9 {
    font-size: 10px !important;
    margin-bottom: 4px !important;
  }

  .single-product .form-control-sm {
    font-size: 13px !important;
    height: 34px !important;
    padding: 4px 6px !important;
  }

  .single-product .estimation-summary-box {
    padding: 15px !important;
    border-radius: 8px !important;
  }

  .single-product .estimation-summary-box .row {
    --bs-gutter-x: 15px !important;
    --bs-gutter-y: 15px !important;
  }

  .single-product #calc-area-result,
  .single-product #calc-total-result {
    font-size: 16px !important;
  }

  .single-product #calc-area-result span,
  .single-product #calc-total-result span {
    font-size: 12px !important;
  }

  .single-product div.mb-3.border.rounded-3.p-3 {
    padding: 10px !important;
    border-radius: 8px !important;
    border-color: #e2e8f0 !important;
    background-color: #fff !important;
  }

  .single-product div.mb-3.border.rounded-3.p-3>.d-flex.flex-column {
    gap: 8px !important;
  }

  .single-product .buy-along-item {
    background-color: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
    padding: 8px 10px !important;
    gap: 10px !important;
    border-radius: 8px !important;
    margin-bottom: 0 !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  }

  .single-product .buy-along-item:has(input:checked) {
    background-color: #f0fdf4 !important;
    border-color: var(--color-brand-green, #097544) !important;
    box-shadow: 0 4px 12px rgba(9, 117, 68, 0.06) !important;
  }

  .single-product .buy-along-item input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    border-radius: 4px !important;
    border: 1.5px solid #cbd5e1 !important;
    background-color: #fff !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .single-product .buy-along-item input[type="checkbox"]:checked {
    background-color: var(--color-brand-green, #097544) !important;
    border-color: var(--color-brand-green, #097544) !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: 12px !important;
  }

  .single-product .buy-along-item img {
    width: 44px !important;
    height: 44px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
    border: 1px solid #e2e8f0 !important;
    background-color: #fff !important;
    padding: 2px !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02) !important;
  }

  .single-product .accessory-item-title {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #1e293b !important;
    margin-bottom: 2px !important;
  }

  .single-product .buy-along-item span.fs-8.5 {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #ef4444 !important;
  }

  .single-product .buy-along-item span.fs-9 {
    font-size: 10.5px !important;
    color: #94a3b8 !important;
    margin-left: 6px !important;
  }

  .single-product #btn-add-to-cart-detail,
  .single-product #btn-buy-now-detail {
    height: 48px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
  }

  .single-product #btn-add-to-cart-detail img {
    width: 18px !important;
    height: 18px !important;
  }

  .single-product #btn-add-to-cart-detail span.fs-8 {
    font-size: 11px !important;
  }

  .single-product #btn-buy-now-detail span.fw-800.fs-7 {
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  .single-product #btn-buy-now-detail span.fs-9 {
    font-size: 10px !important;
  }

  .single-product .btn-contact-custom {
    padding: 8px 6px !important;
    height: 38px !important;
    border-radius: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .single-product .btn-contact-custom img {
    width: 20px !important;
    height: 20px !important;
    flex-shrink: 0 !important;
    object-fit: contain !important;
  }

  .single-product .btn-contact-custom svg {
    width: 24px !important;
    height: auto !important;
    flex-shrink: 0 !important;
  }

  .single-product .btn-contact-custom span {
    font-size: 12px !important;
    font-weight: 600 !important;
  }

  /* Gallery Arrows & Thumbnails */
  .single-product .product-gallery-main {
    height: 320px !important;
    margin-bottom: 15px !important;
  }

  .single-product .gallery-arrow {
    width: 38px !important;
    height: 38px !important;
    border-width: 1.5px !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18) !important;
  }

  .single-product .gallery-arrow.arrow-left {
    left: 10px !important;
  }

  .single-product .gallery-arrow.arrow-right {
    right: 10px !important;
  }

  .single-product .gallery-arrow i {
    font-size: 17px !important;
  }

  .single-product .gallery-thumbnails {
    gap: 15px !important;
  }

  .single-product .gallery-thumbnails .thumb-item {
    width: 58px !important;
    height: 58px !important;
  }

  /* Stacked Policy Cards */
  .single-product .mt-4 h5 {
    font-size: 14px !important;
    margin-bottom: 15px !important;
  }

  .single-product .mt-4 .row.g-3 {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
    margin: 0 !important;
  }

  .single-product .mt-4 .col-4 {
    width: 100% !important;
    padding: 0 !important;
    margin-top: 0 !important;
  }

  .single-product .mt-4 .p-3 {
    padding: 10px 12px !important;
    border-radius: 8px !important;
    border: 1px solid #f1f5f9 !important;
    background-color: #f8fafc !important;
    display: grid !important;
    grid-template-columns: 24px 1fr !important;
    align-items: center !important;
    column-gap: 12px !important;
    row-gap: 2px !important;
  }

  .single-product .mt-4 .p-3 .d-flex {
    display: contents !important;
  }

  .single-product .mt-4 .p-3 img {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    width: 24px !important;
    height: 24px !important;
    object-fit: contain !important;
    align-self: center !important;
  }

  .single-product .mt-4 .p-3 h6 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    line-height: 1.2 !important;
    align-self: end !important;
  }

  .single-product .mt-4 .p-3 p {
    grid-column: 2 !important;
    grid-row: 2 !important;
    margin: 0 !important;
    font-size: 12px !important;
    color: #64748b !important;
    line-height: 1.2 !important;
    align-self: start !important;
  }

  .single-product .product-gallery-wrapper>.mt-4 {
    margin-bottom: 0 !important;
  }

  /* Standardised Gaps & Spacing */
  .single-product .product-info-panel {
    padding-left: 0 !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .single-product .bg-white>*:first-child,
  .single-product .bg-white>form>*:first-child,
  .single-product .product-info-panel>*:first-child {
    margin-top: 0 !important;
  }

  .single-product .row.g-4>.col-lg-6:first-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .single-product .row.g-4>.col-lg-6:last-child {
    margin-top: 15px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
  }

  .single-product .product-info-panel>h1,
  .single-product .product-info-panel>div,
  .single-product .product-info-panel>p {
    margin-bottom: 15px !important;
  }

  .single-product .mb-3:not(.product-item-card *),
  .single-product .mb-4:not(.product-item-card *),
  .single-product .mb-5:not(.product-item-card *),
  .single-product .mt-4:not(.product-item-card *) {
    margin-bottom: 15px !important;
    margin-top: 15px !important;
  }

  .single-product .pb-3 {
    padding-bottom: 15px !important;
  }

  .single-product .row.g-4 {
    --bs-gutter-y: 15px !important;
    --bs-gutter-x: 15px !important;
  }

  .single-product .g-2 {
    --bs-gutter-x: 15px !important;
    --bs-gutter-y: 15px !important;
  }

  .single-product .row.g-3 {
    --bs-gutter-x: 10px !important;
    --bs-gutter-y: 10px !important;
  }

  .single-product .d-flex.gap-2 {
    gap: 15px !important;
  }

  .single-product .d-flex.gap-2.mb-2 {
    margin-bottom: 15px !important;
  }

  .single-product h5.panel-section-title,
  .single-product h5.fw-500 {
    margin-bottom: 15px !important;
    margin-top: 15px !important;
  }

  .single-product #qa-submit-form+*,
  .single-product .row.g-2.mb-2 {
    margin-bottom: 15px !important;
  }

  .single-product .bg-white.rounded-4.border.p-4.shadow-sm {
    padding: 15px !important;
    border-radius: 8px !important;
  }

  .single-product .col-lg-4>.bg-white {
    padding: 15px !important;
    border-radius: 8px !important;
  }

  .single-product .col-lg-4>.bg-white>.d-flex.flex-column {
    gap: 15px !important;
  }

  .single-product .related-post-item {
    gap: 15px !important;
  }

  .single-product .border-end {
    border-right: none !important;
    border-bottom: 1px solid #dee2e6 !important;
    padding-bottom: 15px !important;
    margin-bottom: 15px !important;
  }

  .single-product .review-items-list {
    gap: 15px !important;
  }

  .single-product .review-item {
    padding-bottom: 15px !important;
  }

  .single-product .review-item p {
    font-size: 13px !important;
    line-height: 1.4 !important;
    margin-bottom: 8px !important;
  }

  .single-product .review-item strong {
    font-size: 13.5px !important;
  }

  .single-product #qa-submit-form {
    padding-bottom: 15px !important;
    margin-bottom: 15px !important;
  }

  .single-product #qa-submit-form .d-flex {
    flex-direction: column !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .single-product #qa-submit-form textarea {
    width: 100% !important;
    min-height: 70px !important;
    font-size: 13px !important;
    border-radius: 8px !important;
    padding: 8px 12px !important;
    border-color: #cbd5e1 !important;
  }

  .single-product #qa-submit-form button[type="submit"] {
    width: 100% !important;
    height: 40px !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
  }

  .single-product .mb-4>.d-flex.gap-3.align-items-start {
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    margin-bottom: 12px !important;
  }

  .single-product .mb-4>.d-flex.gap-3.align-items-start img {
    width: 48px !important;
    height: 48px !important;
    border-radius: 8px !important;
    object-fit: contain !important;
    border: 1px solid #e2e8f0 !important;
    padding: 2px !important;
    background: #fff !important;
  }

  .single-product .mb-4>.d-flex.gap-3.align-items-start h5 {
    font-size: 14px !important;
    font-weight: 700 !important;
    margin-bottom: 2px !important;
  }

  .single-product .mb-4>.d-flex.gap-3.align-items-start p {
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  .single-product .qa-threads-list {
    gap: 15px !important;
  }

  .single-product .qa-thread-item {
    padding-bottom: 15px !important;
    margin-bottom: 15px !important;
  }

  .single-product .qa-thread-item .d-flex.gap-3 {
    gap: 15px !important;
  }

  .single-product .qa-thread-reply-wrapper {
    margin-top: 15px !important;
  }

  .single-product .qa-thread-reply-wrapper .d-flex.gap-3 {
    gap: 15px !important;
  }

  .single-product .qa-thread-item p {
    margin-top: 8px !important;
    margin-bottom: 15px !important;
  }

  .single-product .d-flex.flex-column.gap-4 {
    gap: 15px !important;
  }

  /* Single Project Page Mobile (max-width: 576px) */
  .info-image-project,
  .single-project-content,
  .project-sidebar-quote-box-single {
    padding: 10px !important;
    margin-bottom: 10px !important;
  }

  .info-image-project h1 {
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin-bottom: 8px !important;
  }

  .project-meta-row {
    margin-bottom: 10px !important;
    gap: 8px 12px !important;
  }

  .project-collage,
  .project-collage .row {
    --bs-gutter-x: 8px !important;
    --bs-gutter-y: 8px !important;
  }

  .project-collage-large {
    height: 200px !important;
  }

  .project-collage-small {
    height: 100px !important;
  }

  .lightbox-close {
    top: 15px !important;
    right: 15px !important;
    font-size: 36px !important;
  }

  #related-proj-prev,
  #related-proj-next {
    display: none !important;
  }
}

@media (max-width: 575.98px) {
  .product-gallery-main {
    height: 260px !important;
  }

  .spec-grid-item {
    padding: 8px !important;
  }

  #btn-add-to-cart-detail,
  #btn-buy-now-detail {
    height: 46px !important;
    font-size: 13px !important;
  }

  .d-flex>a[href*="zalo"],
  .d-flex>a[href*="m.me"],
  .d-flex>a[href*="tel:"] {
    padding: 6px 8px !important;
    font-size: 12px !important;
  }

  .error-404-number-container {
    font-size: 90px;
  }

  .error-404-face {
    width: 70px;
    height: 70px;
  }

  .face-eye-mask {
    width: 44px;
    height: 20px;
    border-radius: 4px;
  }

  .eye-x {
    font-size: 9px;
  }

  .face-mouth {
    width: 10px;
    height: 5px;
    bottom: 14px;
  }

  .single-product .d-flex.gap-2 {
    gap: 5px !important;
  }

  .note-data-chat {
    margin: 15px 0;
    font-size: 14px;
  }
}

/* Active Filter Tags (Global & Mobile) */
.active-filter-tags-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 10px !important;
  margin-bottom: 15px !important;
}

.active-filter-tag {
  background-color: #f1f5f9 !important;
  color: #334155 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 6px 14px !important;
  border-radius: 50px !important;
  border: 1px solid #e2e8f0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.active-filter-tag:hover {
  background-color: #e2e8f0 !important;
  color: #0f172a !important;
  border-color: #cbd5e1 !important;
}

.active-filter-tag i {
  font-size: 14px !important;
  color: #94a3b8 !important;
  display: flex !important;
  align-items: center !important;
}

.active-filter-tag:hover i {
  color: #64748b !important;
}

#btn-clear-all-tags {
  color: #d70018 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  margin-left: 8px !important;
  cursor: pointer !important;
}

#btn-clear-all-tags:hover {
  color: #c20016 !important;
  text-decoration: underline !important;
}

.filter-results-count {
  font-size: 13px !important;
  color: #64748b !important;
  font-weight: 500 !important;
}

/* Contact Buttons Mobile Improvements */
@media (max-width: 767px) {
  .single-product h3.text-brand-green {
    font-size: 18px !important;
  }

  .single-product .btn-contact-custom {
    padding: 8px 6px !important;
    height: 42px !important;
    border-radius: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
  }

  .single-product .btn-contact-custom img {
    width: 22px !important;
    height: 22px !important;
    flex-shrink: 0 !important;
    object-fit: contain !important;
  }

  .single-product .btn-contact-custom svg {
    width: 22px !important;
    height: 22px !important;
    flex-shrink: 0 !important;
  }

  .single-product .btn-contact-custom span {
    font-size: 13px !important;
    font-weight: 700 !important;
  }

  h3.fw-800.text-brand-green.fs-4.border-bottom.pb-3.mb-3 {
    margin-top: 0 !important;
  }
}

@media (max-width: 575.98px) {

  /* Override the generic zalo link styles to keep our custom contact buttons consistent */
  .single-product .d-flex>a.btn-contact-custom[href*="zalo"],
  .single-product .d-flex>a.btn-contact-custom[href*="m.me"],
  .single-product .d-flex>a.btn-contact-custom[href*="tel:"] {
    padding: 8px 6px !important;
    height: 42px !important;
    font-size: 12px !important;
  }

  .single-product .btn-contact-custom img {
    width: 22px !important;
    height: 22px !important;
  }

  .single-product .btn-contact-custom svg {
    width: 22px !important;
    height: 22px !important;
  }
}

/* === PRODUCT REVIEW MODAL POPUP & ATTACHMENTS PREMIUM RESTYLING === */
.review-modal-overlay {
  background-color: rgba(15, 23, 42, 0.4) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

.review-modal-container {
  border-radius: 12px !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.25) !important;
}

.review-modal-header {
  padding: 16px 20px !important;
  border-bottom: 1px solid #f1f5f9 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.review-modal-title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
}

.review-modal-close {
  font-size: 20px !important;
  color: #64748b !important;
  background: #f1f5f9 !important;
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
}

.review-modal-close:hover {
  background: #fee2e2 !important;
  color: #ef4444 !important;
}

.review-modal-body {
  padding: 20px !important;
  max-height: 65vh !important;
}

/* Custom premium scrollbar for modal body */
.review-modal-body::-webkit-scrollbar {
  width: 5px !important;
}

.review-modal-body::-webkit-scrollbar-track {
  background: #f8fafc !important;
}

.review-modal-body::-webkit-scrollbar-thumb {
  background: #cbd5e1 !important;
  border-radius: 10px !important;
}

.review-modal-body::-webkit-scrollbar-thumb:hover {
  background: var(--color-brand-green, #097544) !important;
}

.review-modal-body .form-label {
  font-weight: 600 !important;
  font-size: 13px !important;
  color: #334155 !important;
  margin-bottom: 6px !important;
}

.review-modal-body .form-control {
  border: 1px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 10px 14px !important;
  font-size: 14px !important;
  transition: all 0.2s ease !important;
  background-color: #ffffff !important;
}

.review-modal-body .form-control:focus {
  border-color: var(--color-brand-green, #097544) !important;
  box-shadow: 0 0 0 3px rgba(9, 117, 68, 0.12) !important;
  outline: none !important;
}

/* Interactive Star Rating Selector */
.rating-stars-select {
  display: flex !important;
  gap: 10px !important;
  margin-top: 4px !important;
}

.rating-stars-select i {
  font-size: 26px !important;
  color: #cbd5e1 !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}

.rating-stars-select i.bi-star-fill {
  color: #eab308 !important;
  transform: scale(1.1) !important;
}

.rating-stars-select i:hover {
  transform: scale(1.2) !important;
  color: #eab308 !important;
}

/* Image Upload Dropzone area */
.image-upload-dropzone {
  border: 1.5px dashed #cbd5e1 !important;
  border-radius: 10px !important;
  padding: 16px !important;
  background-color: #f8fafc !important;
  transition: all 0.2s ease !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
}

.image-upload-dropzone:hover {
  border-color: var(--color-brand-green, #097544) !important;
  background-color: #f0fdf4 !important;
}

.image-upload-dropzone i {
  font-size: 22px !important;
  color: #64748b !important;
}

.image-upload-dropzone:hover i {
  color: var(--color-brand-green, #097544) !important;
}

.image-upload-dropzone span {
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: #64748b !important;
}

/* Modal Footer */
.review-modal-footer {
  padding: 16px 20px !important;
  border-top: 1px solid #f1f5f9 !important;
  background-color: #ffffff !important;
  display: flex !important;
  gap: 12px !important;
  justify-content: flex-end !important;
}

.review-modal-footer .btn {
  height: 40px !important;
  padding: 8px 20px !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  transition: all 0.2s ease !important;
}

#btn-cancel-review {
  background-color: #f1f5f9 !important;
  border: none !important;
  color: #475569 !important;
}

#btn-cancel-review:hover {
  background-color: #e2e8f0 !important;
  color: #1e293b !important;
}

#btn-submit-review {
  background-color: var(--color-brand-green, #097544) !important;
  border: none !important;
  color: #ffffff !important;
  box-shadow: 0 4px 10px rgba(9, 117, 68, 0.15) !important;
}

#btn-submit-review:hover {
  background-color: #075e36 !important;
  box-shadow: 0 6px 12px rgba(9, 117, 68, 0.25) !important;
  transform: translateY(-1px) !important;
}

/* Mobile specific styling for review modal */
@media (max-width: 767px) {
  .review-modal-container {
    width: 95% !important;
    margin: 10px !important;
  }

  .review-modal-header {
    padding: 14px 15px !important;
  }

  .review-modal-title {
    font-size: 16px !important;
  }

  .review-modal-body {
    padding: 15px !important;
    max-height: 60vh !important;
  }

  .review-modal-footer {
    padding: 12px 15px !important;
    display: flex !important;
    gap: 8px !important;
  }

  .review-modal-footer .btn {
    flex: 1 !important;
    width: 50% !important;
    height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13.5px !important;
  }
}

/* Mobile responsive for news category module */
@media (max-width: 768px) {
  .news-h-thumb {
    width: 110px !important;
    height: 85px !important;
  }

  .news-h-title {
    font-size: 14.5px !important;
  }

  .featured-primary-card .featured-title {
    font-size: 16px !important;
  }

  .sub-featured-card .sub-title {
    font-size: 13px !important;
  }

  .trending-item .trending-thumb {
    width: 65px !important;
    height: 50px !important;
  }

  .trending-title {
    font-size: 13px !important;
  }
}
/* ============================================
   HEADER: breakpoint md-lg (768-1199) — nút luôn có text, search không bị bóp
   ============================================ */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .header .container {
    gap: 10px !important;
  }

  /* Logo thu gọn */
  .header-logo-img {
    max-height: 30px;
    width: auto;
  }

  /* Nút Danh mục: chỉ icon */
  .btn-mega-toggle {
    padding: 8px 11px !important;
    gap: 0 !important;
  }

  .btn-mega-toggle span {
    display: none !important;
  }

  /* 2 nút hành động: icon + text */
  .btn-action-pill {
    padding: 8px 13px !important;
    gap: 6px !important;
  }

  .btn-action-pill .action-badge {
    display: none !important;
  }

  .btn-action-pill .fw-normal {
    display: inline !important;
    font-size: 14px !important;
    white-space: nowrap;
  }

  /* Search: không bị bóp */
  .search-wrapper {
    min-width: 150px;
  }

  .search-input {
    font-size: 14px !important;
    padding-left: 14px !important;
    padding-right: 40px !important;
  }
}

/* Mega menu mobile: cột thông số gọn gàng */
@media (max-width: 991.98px) {
  #mega-menu-tabContent .row > .col-md-4 {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }

  .mega-menu-overlay .mega-specs-content {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 14px;
  }

  .mega-menu-overlay .mega-specs-content p {
    margin: 0;
  }

  .mobile-logo-box {
    width: 42px;
  }
}

/* ============================================
   MEGA MENU MOBILE (≤575): grid 3 cột, specs full-width
   ============================================ */
@media (max-width: 575.98px) {
  /* Icon grid + brand row: 5 cột quá chật -> 3 cột cho chữ không xuống nhiều dòng */
  #mega-menu-overlay .row-cols-5 > * {
    flex: 0 0 33.333% !important;
    max-width: 33.333% !important;
  }

  .mega-menu-overlay .cat-action-box,
  .mega-menu-overlay .brand-box {
    padding: 8px 6px !important;
  }

  .mega-menu-overlay .cat-action-box .title-single-data-menu {
    font-size: 12px !important;
  }

  /* Specs Màu sắc/Độ dày/Chất liệu: stack full-width, item chảy ngang gọn */
  #mega-menu-tabContent .row > .col-md-4 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  .mega-menu-overlay .mega-specs-content {
    gap: 3px 18px;
  }

  .mega-menu-overlay .mega-specs-content a,
  .mega-menu-overlay .mega-specs-content span {
    font-size: 14px !important;
  }
}
