/*
Theme Name: TOP10 Đồng Nai
Theme URI: https://top10dongnai.com
Author: DonaWeb
Author URI: https://donaweb.vn
Description: Theme WordPress cho cổng thông tin xếp hạng, đánh giá địa điểm và doanh nghiệp tại Đồng Nai. Bao gồm trang chủ, archive chuyên mục, single bài viết, tối ưu di động và chuẩn SEO cơ bản.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: top10dongnai
Tags: blog, news, two-columns, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =====================================================
   Bảng màu & biến dùng chung — xem chi tiết bên dưới
   ===================================================== */

:root{
    --pine:#0c5a2e;
    --pine-deep:#073d1f;
    --leaf:#3f9142;
    --leaf-light:#eef7ec;
    --gold:#f0b429;
    --gold-deep:#c8870f;
    --cream:#fbfaf6;
    --ink:#1c2b22;
    --ink-soft:#52645a;
    --line:#e1e8e0;
    --white:#ffffff;
    --radius:14px;
    --font-display:'Be Vietnam Pro', 'Segoe UI', sans-serif;
    --font-body:'Be Vietnam Pro', 'Segoe UI', sans-serif;
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--cream);
    font-size:17px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:#00b14d; text-decoration:none;}
  ul{list-style:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}

  /* ===== Top bar ===== */
  .topbar{
    background:var(--pine-deep);
    color:#cfe9d6;
    font-size:13.5px;
  }
  .topbar .wrap{
    display:flex; justify-content:space-between; align-items:center;
    height:38px;
  }
  .topbar a{opacity:.92}
  .topbar a:hover{opacity:1; text-decoration:underline}
  .topbar-links{display:flex; gap:18px;}

  /* ===== Header ===== */
  header.site-header{
    background:var(--white);
    border-bottom:1px solid var(--line);
    position:sticky; top:0; z-index:50;
    box-shadow:0 1px 0 rgba(0,0,0,.02);
  }
  .header-inner{
    display:flex; align-items:center; justify-content:space-between;
    height:78px; gap:20px;
  }
  .logo{display:flex; align-items:center; gap:10px;}
  .logo-badge{
    width:46px; height:46px; border-radius:50%;
    background:conic-gradient(from 200deg, var(--leaf), var(--pine), var(--leaf));
    display:flex; align-items:center; justify-content:center;
    color:var(--gold); font-weight:900; font-size:11px; flex-shrink:0;
    border:2px solid var(--gold);
  }
  .logo-text{display:flex; flex-direction:column; line-height:1.05;}
  .logo-text b{
    font-family:var(--font-display); font-weight:900; font-size:20px;
    color:var(--pine); letter-spacing:.2px;
  }
  .logo-text b span{color:var(--gold-deep);}
  .logo-text small{font-size:11px; color:var(--ink-soft); letter-spacing:.6px; font-weight:600;}

  .search-form{
    flex:1; max-width:420px;
    display:flex; align-items:center;
    border:1.5px solid var(--line); border-radius:999px;
    padding:6px 8px 6px 18px; background:#f7f8f5;
  }
  .search-form input{
    border:0; outline:0; background:transparent; flex:1; font-size:15px; font-family:inherit;
  }
  .search-form button{
    border:0; background:var(--pine); color:#fff; width:38px; height:38px;
    border-radius:50%; cursor:pointer; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }

  .nav-toggle{
    display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;
  }
  .nav-toggle span{width:24px; height:3px; background:var(--pine); border-radius:2px;}

  nav.main-nav{
    background:var(--pine);
  }
  nav.main-nav .wrap{display:flex;}
  nav.main-nav ul{display:flex; flex-wrap:wrap;}
  nav.main-nav a{
    display:block; padding:13px 18px; font-weight:600; font-size:15px;
    color:#eaf5ec; white-space:nowrap;
    border-bottom:3px solid transparent;
  }
  nav.main-nav a:hover, nav.main-nav li.active a{
    background:var(--pine-deep); border-bottom-color:var(--gold); color:#fff;
  }

  /* ===== Hero ===== */
  .hero{
    background:
      radial-gradient(circle at 18% 20%, rgba(63,145,66,.18), transparent 45%),
      linear-gradient(180deg, #f3f8f1, var(--cream));
    padding:52px 0 60px;
    border-bottom:1px solid var(--line);
  }
  .hero-inner{display:flex; align-items:center; gap:48px; flex-wrap:wrap;}
  .hero-copy{flex:1 1 420px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--leaf-light); color:var(--pine);
    font-size:13px; font-weight:700; letter-spacing:.5px;
    padding:6px 14px; border-radius:999px; margin-bottom:18px;
  }
  .eyebrow::before{content:"●"; color:var(--gold-deep); font-size:9px;}
  .hero h1{
    font-family:var(--font-display); font-weight:900;
    font-size:clamp(30px, 4.4vw, 46px); line-height:1.15;
    color:var(--pine-deep); margin-bottom:18px;
  }
  .hero h1 em{font-style:normal; color:var(--gold-deep);}
  .hero p.lead{
    font-size:17.5px; color:var(--ink-soft); max-width:520px; margin-bottom:28px;
  }
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 26px; border-radius:999px; font-weight:700; font-size:15.5px;
    cursor:pointer; border:2px solid transparent; transition:transform .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--gold); color:var(--pine-deep);}
  .btn-ghost{border-color:var(--pine); color:var(--pine);}

  .hero-stats{display:flex; gap:28px; margin-top:36px; flex-wrap:wrap;}
  .hero-stats div b{
    font-family:var(--font-display); font-size:26px; font-weight:900; color:var(--pine); display:block;
  }
  .hero-stats div span{font-size:13px; color:var(--ink-soft);}

  .hero-art{
    flex:1 1 320px; position:relative; min-height:280px;
    display:flex; align-items:center; justify-content:center;
  }
  .hero-art .ring{
    width:300px; height:300px; border-radius:50%;
    background:linear-gradient(160deg, var(--leaf), var(--pine));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 30px 60px -20px rgba(7,61,31,.4);
  }
  .hero-art .ring-inner{
    width:88%; height:88%; border-radius:50%; background:var(--white);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  }
  .hero-art .ring-inner b{font-family:var(--font-display); font-size:54px; color:var(--gold-deep); font-weight:900;}
  .hero-art .ring-inner span{font-weight:800; color:var(--pine); letter-spacing:1px;}

  /* ===== Section heading ===== */
  .section{padding:56px 0;}
  .section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:30px; flex-wrap:wrap;}
  .section-head h2{
    font-family:var(--font-display); font-weight:800; font-size:clamp(22px,3vw,30px);
    color:var(--pine-deep);
  }
  .section-head p{color:var(--ink-soft); font-size:15px; margin-top:6px;}
  .section-head a.view-all{font-weight:700; color:var(--pine); border-bottom:2px solid var(--gold); padding-bottom:2px; flex-shrink:0;}

  /* ===== Category grid ===== */
  .cat-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:20px;
  }
  .cat-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:26px 22px; transition:.2s ease; position:relative; overflow:hidden;
  }
  .cat-card:hover{border-color:var(--leaf); box-shadow:0 14px 30px -16px rgba(12,90,46,.35); transform:translateY(-3px);}
  .cat-card .icon{
    width:52px; height:52px; border-radius:14px; background:var(--leaf-light);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
    font-size:24px;
  }
  .cat-card h3{font-size:17px; font-weight:700; color:var(--ink); margin-bottom:6px;}
  .cat-card p{font-size:13.5px; color:var(--ink-soft); margin-bottom:14px;}
  .cat-card .count{font-size:12.5px; font-weight:700; color:var(--gold-deep);}

  /* ===== Listing section with sidebar tabs ===== */
  .listing-section{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:28px;}
  .tab{
    padding:9px 18px; border-radius:999px; border:1.5px solid var(--line); font-weight:600; font-size:14px; color:var(--ink-soft); cursor:pointer;
  }
  .tab.is-active{background:var(--pine); color:#fff; border-color:var(--pine);}

  .listing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .place-card{
    border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--white);
  }
  .place-card .thumb{
    height:160px; background:linear-gradient(135deg, var(--leaf-light), #dcebd9);
    display:flex; align-items:center; justify-content:center; position:relative;
  }
  .place-card .thumb .rank{
    position:absolute; top:12px; left:12px; background:var(--gold); color:var(--pine-deep);
    font-weight:800; font-size:13px; padding:4px 11px; border-radius:999px;
  }
  .place-card .thumb .mono{font-size:38px; color:var(--leaf); opacity:.5;}
  .place-body{padding:18px 20px;}
  .place-body .tag{font-size:12px; font-weight:700; color:var(--pine); text-transform:uppercase; letter-spacing:.4px;}
  .place-body h3{font-size:17.5px; font-weight:700; margin:6px 0 8px; color:var(--ink);}
  .place-body p{font-size:14px; color:var(--ink-soft); margin-bottom:14px;}
  .place-meta{display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:12px; font-size:13px; color:var(--ink-soft);}
  .stars{color:var(--gold-deep); font-weight:700;}

  /* ===== Blog strip ===== */
  .blog-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:22px;}
  .blog-feature{
    border-radius:var(--radius); overflow:hidden; background:var(--pine-deep); color:#fff; position:relative; min-height:340px;
    display:flex; align-items:flex-end; padding:28px;
  }
  .blog-feature::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(7,61,31,.92), rgba(7,61,31,.2));
  }
  .blog-feature .content{position:relative; z-index:1;}
  .blog-feature .tag{background:var(--gold); color:var(--pine-deep); font-size:12px; font-weight:800; padding:4px 12px; border-radius:999px;}
  .blog-feature h3{font-family:var(--font-display); font-size:23px; font-weight:800; margin:14px 0 8px; line-height:1.3;}
  .blog-feature p{font-size:14px; opacity:.85;}

  .blog-card{border:1px solid var(--line); border-radius:var(--radius); padding:18px; background:var(--white); margin-bottom:22px;}
  .blog-card:last-child{margin-bottom:0;}
  .blog-card .tag{font-size:11.5px; font-weight:700; color:var(--gold-deep); text-transform:uppercase;}
  .blog-card h4{font-size:15.5px; font-weight:700; margin:8px 0 6px; line-height:1.4;}
  .blog-card span.date{font-size:12.5px; color:var(--ink-soft);}
  .blog-col{display:flex; flex-direction:column;}

  /* ===== CTA banner ===== */
  .cta-banner{
    background:linear-gradient(120deg, var(--pine), var(--leaf));
    border-radius:20px; padding:46px; text-align:center; color:#fff;
    display:flex; flex-direction:column; align-items:center; gap:16px;
  }
  .cta-banner h2{font-family:var(--font-display); font-size:clamp(22px,3.4vw,30px); font-weight:800;}
  .cta-banner p{max-width:560px; opacity:.92; font-size:15.5px;}

  /* ===== Footer ===== */
  footer{background:var(--pine-deep); color:#cfe9d6; padding-top:54px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.12);}
  .footer-grid h4{color:#fff; font-size:15.5px; font-weight:700; margin-bottom:16px;}
  .footer-grid ul li{margin-bottom:10px; font-size:14px;}
  .footer-grid ul a:hover{color:#fff; text-decoration:underline;}
  .footer-about p{font-size:14px; opacity:.85; margin-bottom:16px; max-width:320px;}
  .foot-bottom{padding:22px 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:13px; opacity:.75;}

  /* ===== Responsive ===== */
  @media (max-width:980px){
    .cat-grid{grid-template-columns:repeat(2,1fr);}
    .listing-grid{grid-template-columns:repeat(2,1fr);}
    .blog-grid{grid-template-columns:1fr 1fr;}
    .blog-feature{grid-column:1 / -1;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  /* ===== Breadcrumb ===== */
  .breadcrumb{
    background:var(--leaf-light); border-bottom:1px solid var(--line);
    padding:14px 0; font-size:13.5px; color:var(--ink-soft);
  }
  .breadcrumb a{color:var(--pine); font-weight:600;}
  .breadcrumb a:hover{text-decoration:underline;}
  .breadcrumb .sep{margin:0 6px; opacity:.5;}

  /* ===== Archive layout ===== */
  .archive-head{padding:36px 0 8px;}
  .archive-head h1{
    font-family:var(--font-display); font-weight:900;
    font-size:clamp(26px,4vw,38px); color:var(--pine-deep); margin-bottom:10px;
  }
  .archive-head p{color:var(--ink-soft); font-size:15.5px; max-width:640px;}
  .archive-toolbar{
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    flex-wrap:wrap; padding:18px 0 28px; border-bottom:1px solid var(--line); margin-bottom:30px;
  }
  .result-count{font-size:14px; color:var(--ink-soft);}
  .sort-select{
    border:1.5px solid var(--line); border-radius:999px; padding:9px 16px;
    font-family:inherit; font-size:14px; color:var(--ink); background:#fff;
  }

  .archive-layout{display:grid; grid-template-columns:2.4fr 1fr; gap:36px; align-items:start;}

  .sidebar{
    position:sticky; top:96px; display:flex; flex-direction:column; gap:22px;
  }
  .sidebar-box{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:20px;
  }
  .sidebar-box h4{font-size:15px; font-weight:800; color:var(--pine-deep); margin-bottom:14px;}
  .filter-list label{
    display:flex; align-items:center; gap:9px; font-size:14px; color:var(--ink-soft);
    margin-bottom:11px; cursor:pointer;
  }
  .filter-list input{accent-color:var(--pine); width:16px; height:16px;}
  .sidebar-box.promo{
    background:linear-gradient(150deg, var(--pine), var(--leaf)); color:#fff; border:0;
  }
  .sidebar-box.promo h4{color:#fff;}
  .sidebar-box.promo p{font-size:13.5px; opacity:.9; margin-bottom:14px;}

  .pagination{display:flex; justify-content:center; gap:8px; margin-top:36px;}
  .pagination a{
    width:40px; height:40px; display:flex; align-items:center; justify-content:center;
    border:1.5px solid var(--line); border-radius:10px; font-weight:700; font-size:14px; color:var(--ink-soft);
  }
  .pagination a.is-active{background:var(--pine); border-color:var(--pine); color:#fff;}
  .pagination a:hover{border-color:var(--pine); color:var(--pine);}

  /* ===== Single post layout ===== */
  .post-hero{padding:34px 0 0;}
  .post-cat-tag{
    display:inline-block; background:var(--gold); color:var(--pine-deep);
    font-size:12.5px; font-weight:800; padding:5px 14px; border-radius:999px; margin-bottom:16px;
  }
  .post-hero h1{
    font-family:var(--font-display); font-weight:900;
    font-size:clamp(26px,4.4vw,42px); line-height:1.22; color:var(--pine-deep); max-width:880px; margin-bottom:18px;
  }
  .post-meta{
    display:flex; align-items:center; gap:18px; flex-wrap:wrap; font-size:14px; color:var(--ink-soft);
    padding-bottom:26px; border-bottom:1px solid var(--line); margin-bottom:30px;
  }
  .post-meta .author{display:flex; align-items:center; gap:9px;}
  .post-meta .avatar{
    width:34px; height:34px; border-radius:50%; background:var(--leaf-light);
    display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--pine); font-size:13px;
  }
  .post-cover{
    width:100%; height:380px; border-radius:18px; margin-bottom:38px;
    background:linear-gradient(135deg, var(--leaf-light), #d8eccf);
    display:flex; align-items:center; justify-content:center; font-size:64px; color:var(--leaf); opacity:.6;
  }

  .post-layout{display:grid; grid-template-columns:2.4fr 1fr; gap:48px; align-items:start; padding-bottom:50px;}
  .post-content{font-size:17px; color:var(--ink); line-height:1.85;}
  .post-content h2{
    font-family:var(--font-display); font-size:24px; font-weight:800; color:var(--pine-deep);
    margin:34px 0 14px;
  }
  .post-content h3{font-size:19px; font-weight:700; color:var(--ink); margin:26px 0 10px;}
  .post-content p{margin-bottom:18px; color:#424242;}
  .post-content ul, .post-content ol{margin:0 0 18px 22px; color:var(--ink-soft);}
  .post-content li{margin-bottom:8px;}
  .post-content blockquote{
    border-left:4px solid var(--gold); background:var(--leaf-light); padding:18px 22px;
    border-radius:0 12px 12px 0; font-style:italic; color:var(--pine-deep); margin:24px 0; font-size:16.5px;
  }
  .ranked-item{
    display:flex; gap:16px; align-items:flex-start; background:var(--white);
    border:1px solid var(--line); border-radius:14px; padding:18px; margin-bottom:16px;
  }
  .ranked-item .num{
    font-family:var(--font-display); font-size:26px; font-weight:900; color:var(--gold-deep); flex-shrink:0; width:42px;
  }
  .ranked-item h3{margin:0 0 6px; font-size:17px;}
  .ranked-item p{margin:0; font-size:14.5px;}

  .post-tags{display:flex; flex-wrap:wrap; gap:8px; margin:30px 0;}
  .post-tags a{
    border:1.5px solid var(--line); border-radius:999px; padding:7px 14px; font-size:13px;
    color:var(--ink-soft); font-weight:600;
  }
  .post-tags a:hover{border-color:var(--pine); color:var(--pine);}

  .share-row{
    display:flex; align-items:center; gap:12px; padding:22px 0; border-top:1px solid var(--line);
    border-bottom:1px solid var(--line); margin:26px 0;
  }
  .share-row span{font-size:13.5px; font-weight:700; color:var(--ink-soft);}
  .share-row a{
    width:36px; height:36px; border-radius:50%; background:var(--leaf-light); color:var(--pine);
    display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700;
  }

  .author-box{
    display:flex; gap:16px; background:var(--leaf-light); border-radius:16px; padding:22px; margin:32px 0;
  }
  .author-box .avatar{
    width:56px; height:56px; border-radius:50%; background:var(--pine); color:#fff;
    display:flex; align-items:center; justify-content:center; font-weight:800; font-size:18px; flex-shrink:0;
  }
  .author-box h5{font-size:15.5px; font-weight:700; margin-bottom:4px; color:var(--ink);}
  .author-box p{font-size:13.5px; color:var(--ink-soft); margin:0;}

  .related-posts{margin-top:54px;}
  .related-posts h2{
    font-family:var(--font-display); font-size:22px; font-weight:800; color:var(--pine-deep); margin-bottom:22px;
  }

  @media (max-width:980px){
    .archive-layout, .post-layout{grid-template-columns:1fr;}
    .sidebar{position:static;}
  }

  @media (max-width:760px){
    .post-cover{height:220px; font-size:44px;}
    .post-meta{gap:12px;}
    .author-box{flex-direction:column; align-items:flex-start;}
  }

  @media (max-width:760px){
    body{font-size:16px;}
    .topbar{display:none;}
    .header-inner{height:64px;}
    .search-form{display:none;}
    .nav-toggle{display:flex;}
    nav.main-nav{display:none;}
    nav.main-nav.is-open{display:block;}
    nav.main-nav ul{flex-direction:column;}
    nav.main-nav a{padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.08);}
    .hero{padding:36px 0 40px;}
    .hero-inner{gap:30px;}
    .hero-art{order:-1; min-height:200px;}
    .hero-art .ring{width:200px; height:200px;}
    .hero-art .ring-inner b{font-size:38px;}
    .hero-stats{gap:20px;}
    .cat-grid{grid-template-columns:1fr 1fr; gap:14px;}
    .cat-card{padding:18px 16px;}
    .listing-grid{grid-template-columns:1fr;}
    .blog-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr; gap:24px;}
    .cta-banner{padding:32px 22px;}
    .section{padding:40px 0;}
  }

  /* ===== Tiện ích & bình luận (bổ sung cho theme WordPress) ===== */
  .screen-reader-text{
    position:absolute !important; width:1px; height:1px; overflow:hidden;
    clip:rect(1px,1px,1px,1px); white-space:nowrap; border:0; padding:0; margin:-1px;
  }
  .comments-area ol{margin:0;}
  .comment{
    background:var(--white); border:1px solid var(--line); border-radius:14px;
    padding:18px 20px; margin-bottom:16px;
  }
  .comment .comment-author{font-weight:700; font-size:14.5px; color:var(--ink);}
  .comment .comment-metadata{font-size:12.5px; color:var(--ink-soft); margin-bottom:10px;}
  .comment .comment-content p{font-size:14.5px; color:var(--ink-soft); margin:0;}
  .comment-form input[type="text"],
  .comment-form input[type="email"],
  .comment-form input[type="url"],
  .comment-form textarea{
    width:100%; border:1.5px solid var(--line); border-radius:10px; padding:11px 14px;
    font-family:inherit; font-size:14.5px; margin-bottom:14px; background:#fff;
  }
  .comment-form label{display:block; font-size:13.5px; font-weight:600; color:var(--ink-soft); margin-bottom:6px;}
  .comment-form p{margin-bottom:14px;}
.post-content img{
  max-width:100% !important;
  height:auto !important;
  border-radius:14px;
  display:block;
}
.post-content .wp-caption,
.post-content .wp-block-image{
  max-width:100% !important;
  width:auto !important;
  margin:24px 0;
}
.post-content .wp-caption img{
  width:100%;
  margin:0;
}
.post-content .wp-caption-text,
.post-content figcaption{
  font-size:13.5px;
  color:var(--ink-soft);
  text-align:center;
  padding:10px 4px 0;
  line-height:1.5;
  font-style:italic;
}
.post-content figure{margin:24px 0;}

@media (max-width:760px){
  .post-content .wp-caption,
  .post-content .wp-block-image,
  .post-content figure{
    width:100% !important;
  }
}
.listing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}

@media (max-width:980px){
  .listing-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .listing-grid{grid-template-columns:1fr;}
}
/* ===== Category grid (accordion) — bản gia cố, ưu tiên cao để đè CSS cũ ===== */
.cat-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:20px !important;
}
.cat-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  transition:.2s ease; position:relative; overflow:hidden;
  list-style:none !important;
}

/* Ẩn triệt để dấu tam giác mặc định của <details>/<summary> trên mọi trình duyệt */
.cat-card summary{
  list-style:none !important;
}
.cat-card summary::-webkit-details-marker{
  display:none !important;
}
.cat-card summary::marker{
  display:none !important;
  content:"" !important;
}

.cat-card-summary{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  list-style:none !important;
  cursor:pointer;
  padding:18px 20px;
  -webkit-tap-highlight-color:transparent;
}
.cat-card .icon{
  width:52px; height:52px; border-radius:14px; background:var(--leaf-light);
  display:flex !important; align-items:center; justify-content:center; flex-shrink:0;
  font-size:24px; margin:0 !important;
}
.cat-card-summary h3{
  font-size:17px; font-weight:700; color:var(--ink); margin:0 !important;
}
.cat-card-summary .chevron{
  margin-left:auto !important; font-size:16px; color:var(--ink-soft);
  transition:transform .2s ease; flex-shrink:0;
}
.cat-card[open] .cat-card-summary .chevron{transform:rotate(180deg);}

.cat-card-body{
  padding:0 20px 22px 20px;
}
.cat-card-body p{font-size:13.5px; color:var(--ink-soft); margin-bottom:14px;}
.cat-card-footer{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.cat-card-footer .count{font-size:12.5px; font-weight:700; color:var(--gold-deep);}
.cat-card-link{font-size:13.5px; font-weight:700; color:var(--pine);}
.cat-card-link:hover{text-decoration:underline;}

@media (min-width:761px){
  .cat-card-body{display:block !important;}
  .cat-card-summary{cursor:default;}
  .cat-card-summary .chevron{display:none !important;}
}
@media (max-width:980px) and (min-width:761px){
  .cat-grid{grid-template-columns:repeat(2,1fr) !important;}
}
@media (max-width:760px){
  .cat-grid{grid-template-columns:1fr !important; gap:10px !important;}
  .cat-card-summary{padding:14px 16px;}
  .cat-card .icon{width:40px; height:40px; font-size:19px; border-radius:11px;}
  .cat-card-summary h3{font-size:15.5px;}
  .cat-card-body{padding:0 16px 16px 16px;}
}
/* ===== Slider chuyên mục (vd. Công Ty - Dịch Vụ): 2 hàng x 4 cột, kéo ngang ===== */
.ct-slider-wrap{
  position:relative; display:flex; align-items:center; gap:10px;
}
.ct-slider{
  flex:1; display:grid; grid-auto-flow:column;
  grid-template-rows:repeat(2, 1fr);
  grid-auto-columns:calc(25% - 15px);
  gap:20px;
  overflow-x:auto; scroll-snap-type:x mandatory;
  padding-bottom:6px; scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.ct-slider::-webkit-scrollbar{height:6px;}
.ct-slider::-webkit-scrollbar-thumb{background:var(--line); border-radius:99px;}
.ct-slide-item{scroll-snap-align:start; min-width:0;}
.ct-slide-item .place-card{height:100%; display:flex; flex-direction:column;}
.ct-slide-item .place-body{flex:1; display:flex; flex-direction:column;}
.ct-slide-item .place-body p{flex:1;}

.ct-slider-nav{
  flex-shrink:0; width:42px; height:42px; border-radius:50%;
  border:1.5px solid var(--line); background:var(--white); color:var(--pine);
  font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:.2s ease;
}
.ct-slider-nav:hover{background:var(--pine); color:#fff; border-color:var(--pine);}

@media (max-width:980px){
  .ct-slider{grid-auto-columns:calc(46% - 15px);}
}
@media (max-width:760px){
  .ct-slider{
    grid-template-rows:none;
    grid-auto-flow:column;
    grid-auto-columns:82%;
    gap:14px;
  }
  .ct-slider-nav{width:36px; height:36px; font-size:17px;}
}