/* ===========================================================
   CoffeeHunters 中文版官网 改版主题 (coffeehunters2026)
   风格参考: noticiasambientales.com/en/ (tagDiv Newspaper)
   配色: 咖啡豆色 + 森林绿
   =========================================================== */

/* ---------- CSS Variables ---------- */
:root{
    --ch-bg: #ffffff;
    --ch-bg-soft: #faf7f2;
    --ch-bg-warm: #f4ede1;
    --ch-text: #1a1a1a;
    --ch-text-soft: #555;
    --ch-text-muted: #888;
    --ch-border: #e5dfd3;
    --ch-accent: #6f4e37;          /* coffee brown */
    --ch-accent-dark: #3e2723;     /* dark coffee */
    --ch-green: #2e7d32;            /* category green */
    --ch-green-soft: #4caf50;
    --ch-link: #6f4e37;
    --ch-link-hover: #3e2723;
    --ch-shadow: 0 2px 8px rgba(60, 40, 20, .08);
    --ch-shadow-lg: 0 6px 24px rgba(60, 40, 20, .12);
    --ch-radius: 4px;
    --ch-radius-lg: 8px;
    --ch-container: 1200px;
    --ch-font-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
    --ch-font-sans:  "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body{
    margin:0;
    font-family:var(--ch-font-sans);
    font-size:15px;
    line-height:1.65;
    color:var(--ch-text);
    background:var(--ch-bg);
}
a{ color:var(--ch-link); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--ch-link-hover); }
img{ max-width:100%; height:auto; display:block; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{ margin:0; font-weight:700; line-height:1.3; font-family:var(--ch-font-serif); }
p{ margin:0 0 1em; }
button{ font-family:inherit; cursor:pointer; }

/* ---------- Layout helpers ---------- */
.ch-container{ max-width:var(--ch-container); margin:0 auto; padding:0 16px; }
.ch-clearfix::after{ content:""; display:table; clear:both; }
.ch-row{ display:flex; flex-wrap:wrap; margin:0 -12px; }
.ch-row > *{ padding:0 12px; }
.ch-hidden{ display:none !important; }

/* ============================================================
   Top Bar
   ============================================================ */
.ch-topbar{
    background:#1a1a1a;
    color:#cbcbcb;
    font-size:12.5px;
    border-bottom:1px solid #2a2a2a;
}
.ch-topbar-inner{
    display:flex; align-items:center; justify-content:space-between;
    min-height:36px;
}
.ch-topbar a{ color:#cbcbcb; }
.ch-topbar a:hover{ color:#fff; }
.ch-social{ display:flex; gap:14px; align-items:center; }
.ch-social a{ display:inline-flex; width:22px; height:22px; align-items:center; justify-content:center; opacity:.85; }
.ch-social a:hover{ opacity:1; transform:translateY(-1px); }
.ch-social svg{ width:14px; height:14px; fill:currentColor; }
.ch-top-right{ display:flex; gap:18px; align-items:center; }
.ch-top-right .ch-lang{ display:inline-flex; align-items:center; gap:6px; }
.ch-top-right .ch-flag{ width:18px; height:13px; border-radius:2px; object-fit:cover; box-shadow:0 0 0 1px rgba(255,255,255,.1); }

/* ============================================================
   Header / Logo
   ============================================================ */
.ch-header{
    background:var(--ch-bg);
    padding:28px 0 22px;
    border-bottom:1px solid var(--ch-border);
}
.ch-header-inner{
    display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.ch-newsletter-link{
    font-size:12px; letter-spacing:1.5px; color:var(--ch-accent);
    font-weight:700; text-transform:uppercase;
}
.ch-newsletter-link:hover{ color:var(--ch-accent-dark); }
.ch-logo{ display:flex; align-items:center; gap:11px; text-decoration:none; }
.ch-logo-icon{
    width:40px; height:40px; flex:0 0 40px;
    border-radius:9px;
}
.ch-logo-text{ line-height:1; }
.ch-logo-word{
    font-family:Georgia, "Times New Roman", var(--ch-font-serif);
    font-size:31px; font-weight:700; font-style:italic;
    color:var(--ch-accent-dark);
    letter-spacing:-0.4px;
    line-height:1;
    white-space:nowrap;
}
.ch-logo-word i{
    font-style:italic; color:var(--ch-green);
}
.ch-logo-text small{
    display:block; font-size:11px; font-weight:500; color:var(--ch-text-muted);
    letter-spacing:4px; margin-top:5px; text-align:center; padding-left:4px;
    font-family:var(--ch-font-sans);
    white-space:nowrap;
}
.ch-header-right{ display:flex; align-items:center; gap:16px; }
.ch-search-btn{
    background:transparent; border:0; padding:6px;
    color:var(--ch-accent);
    display:inline-flex; align-items:center; justify-content:center;
}
.ch-search-btn:hover{ color:var(--ch-accent-dark); }
.ch-search-btn svg{ width:20px; height:20px; }
.ch-search-overlay{
    display:none;
    position:fixed; inset:0; background:rgba(0,0,0,.7); z-index:9999;
    align-items:flex-start; justify-content:center; padding-top:18vh;
}
.ch-search-overlay.is-open{ display:flex; }
.ch-search-box{
    width:min(640px, 92vw);
    background:#fff; border-radius:8px; padding:24px;
    box-shadow:var(--ch-shadow-lg);
}
.ch-search-box form{ display:flex; gap:8px; }
.ch-search-box input{
    flex:1; padding:12px 14px; font-size:16px;
    border:2px solid var(--ch-border); border-radius:4px;
    font-family:inherit;
}
.ch-search-box input:focus{ outline:none; border-color:var(--ch-accent); }
.ch-search-box button{
    padding:0 18px; background:var(--ch-accent); color:#fff; border:0; border-radius:4px;
    font-weight:600;
}
.ch-search-box button:hover{ background:var(--ch-accent-dark); }

/* ============================================================
   Navigation
   ============================================================ */
.ch-nav{
    background:var(--ch-bg);
    border-bottom:1px solid var(--ch-border);
    position:sticky; top:0; z-index:100;
}
.ch-nav-inner{
    display:flex; align-items:center; gap:6px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}
.ch-nav a{
    display:inline-flex; align-items:center;
    padding:14px 16px;
    color:var(--ch-text);
    font-weight:600; font-size:14.5px;
    text-transform:uppercase; letter-spacing:.4px;
    white-space:nowrap;
    border-bottom:3px solid transparent;
    transition:all .2s ease;
}
.ch-nav a:hover{ color:var(--ch-green); }
.ch-nav a.is-active{
    color:var(--ch-green);
    border-bottom-color:var(--ch-green);
}
.ch-nav-spacer{ flex:1; }

/* ============================================================
   Hero / Featured
   ============================================================ */
.ch-hero{ padding:36px 0 28px; background:var(--ch-bg); }
.ch-hero-grid{
    display:grid; grid-template-columns: 1.6fr 1fr; gap:24px;
}
.ch-hero-main{ position:relative; overflow:hidden; border-radius:var(--ch-radius); }
.ch-hero-main a{ display:block; position:relative; }
.ch-hero-main .ch-img{
    width:100%; aspect-ratio: 16/10; object-fit:cover; display:block;
    transition:transform .4s ease;
}
.ch-hero-main:hover .ch-img{ transform:scale(1.03); }
.ch-hero-main .ch-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, transparent 30%, rgba(0,0,0,.85));
    display:flex; align-items:flex-end; padding:28px;
}
.ch-hero-main .ch-meta-cat{
    position:absolute; top:16px; left:16px;
    background:var(--ch-green); color:#fff; font-size:11px; font-weight:700;
    padding:4px 10px; border-radius:2px; letter-spacing:1px;
    text-transform:uppercase;
}
.ch-hero-main h2{
    color:#fff; font-size:30px; line-height:1.2; margin:0;
    text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.ch-hero-side{ display:grid; grid-template-rows: 1fr 1fr; gap:20px; }
.ch-hero-side .ch-card{
    display:grid; grid-template-columns: 130px 1fr; gap:14px;
    align-items:start;
}
.ch-hero-side .ch-card .ch-thumb{ aspect-ratio: 1/1; border-radius:4px; overflow:hidden; }
.ch-hero-side .ch-card .ch-thumb img{ width:100%; height:100%; object-fit:cover; }
.ch-hero-side .ch-card h3{ font-size:16px; line-height:1.4; margin:0 0 6px; }
.ch-hero-side .ch-card .ch-cat{ font-size:11px; color:var(--ch-green); font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.ch-hero-side .ch-card .ch-date{ font-size:12px; color:var(--ch-text-muted); }

/* ============================================================
   Section Title (category block header)
   ============================================================ */
.ch-section{ padding:32px 0; }
.ch-section + .ch-section{ padding-top:0; }
.ch-section-head{
    display:flex; align-items:flex-end; justify-content:space-between;
    padding-bottom:12px; border-bottom:2px solid var(--ch-green);
    margin-bottom:24px;
}
.ch-section-title{
    display:flex; align-items:center; gap:10px;
    font-family:var(--ch-font-serif);
    font-size:28px; font-weight:800;
    color:var(--ch-accent-dark);
    margin:0;
}
.ch-section-title svg{ width:28px; height:28px; flex:0 0 28px; }
.ch-section-more{
    display:inline-flex; align-items:center; gap:6px;
    font-size:12px; font-weight:700; color:var(--ch-accent);
    text-transform:uppercase; letter-spacing:1.5px;
    padding-bottom:4px;
}
.ch-section-more:hover{ color:var(--ch-green); }
.ch-section-more svg{ width:14px; height:14px; transition:transform .2s ease; }
.ch-section-more:hover svg{ transform:translateX(3px); }

/* ============================================================
   Article Cards Grid
   ============================================================ */
.ch-grid{ display:grid; gap:24px; }
.ch-grid-4{ grid-template-columns: repeat(4, 1fr); }
.ch-grid-3{ grid-template-columns: repeat(3, 1fr); }
.ch-grid-2{ grid-template-columns: repeat(2, 1fr); }

.ch-card{
    display:flex; flex-direction:column; background:#fff;
    border-radius:var(--ch-radius);
    transition:transform .25s ease, box-shadow .25s ease;
}
.ch-card:hover{ transform:translateY(-3px); box-shadow:var(--ch-shadow); }
.ch-card-thumb{
    display:block; overflow:hidden; border-radius:var(--ch-radius);
    aspect-ratio: 16/10;
    background:var(--ch-bg-warm);
}
.ch-card-thumb img{
    width:100%; height:100%; object-fit:cover;
    transition:transform .5s ease;
}
.ch-card:hover .ch-card-thumb img{ transform:scale(1.06); }
.ch-card-body{ padding:14px 2px 4px; }
.ch-card-cat{
    display:inline-block;
    color:var(--ch-green); font-size:11px; font-weight:700;
    text-transform:uppercase; letter-spacing:1.5px;
    margin-bottom:6px;
}
.ch-card-title{
    font-family:var(--ch-font-serif);
    font-size:17px; line-height:1.4; font-weight:700;
    color:var(--ch-text);
    margin:0 0 8px;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
    overflow:hidden;
    transition:color .2s ease;
}
.ch-card:hover .ch-card-title{ color:var(--ch-accent); }
.ch-card-meta{
    display:flex; align-items:center; gap:12px;
    font-size:12px; color:var(--ch-text-muted);
}
.ch-card-meta .ch-author{ display:inline-flex; align-items:center; gap:5px; }
.ch-card-meta .ch-avatar{ width:20px; height:20px; border-radius:50%; object-fit:cover; background:var(--ch-bg-warm); }

/* simple list (no thumb) variant */
.ch-list .ch-list-item{
    display:flex; gap:10px; padding:10px 0;
    border-bottom:1px dashed var(--ch-border);
}
.ch-list .ch-list-item:last-child{ border-bottom:0; }
.ch-list .ch-list-item a{ color:var(--ch-text); font-weight:500; }
.ch-list .ch-list-item a:hover{ color:var(--ch-accent); }
.ch-list .ch-list-item .ch-date{ font-size:12px; color:var(--ch-text-muted); flex:0 0 90px; }

/* numbered list (top articles) */
.ch-toplist{ counter-reset: top; }
.ch-toplist li{
    counter-increment: top;
    display:flex; gap:14px; align-items:flex-start;
    padding:14px 0;
    border-bottom:1px solid var(--ch-border);
}
.ch-toplist li:last-child{ border-bottom:0; }
.ch-toplist li::before{
    content:counter(top, decimal-leading-zero);
    flex:0 0 auto;
    font-family:var(--ch-font-serif);
    font-size:28px; font-weight:800;
    color:var(--ch-green);
    line-height:1;
    min-width:42px;
}
.ch-toplist .ch-card-body{ padding:0; }
.ch-toplist .ch-card-title{ font-size:15px; -webkit-line-clamp:2; }
.ch-toplist .ch-card-meta{ margin-top:6px; }

/* ============================================================
   Sidebar
   ============================================================ */
.ch-sidebar{ }
.ch-widget{ margin-bottom:32px; }
.ch-widget-title{
    font-family:var(--ch-font-serif);
    font-size:18px; font-weight:800;
    color:var(--ch-accent-dark);
    margin:0 0 16px;
    padding-bottom:10px; border-bottom:2px solid var(--ch-green);
}
.ch-widget-hot li{
    display:grid; grid-template-columns: 90px 1fr; gap:10px;
    padding:10px 0;
    border-bottom:1px dashed var(--ch-border);
}
.ch-widget-hot li:last-child{ border-bottom:0; }
.ch-widget-hot a{ display:contents; }
.ch-widget-hot .ch-thumb{ aspect-ratio: 1/1; overflow:hidden; border-radius:4px; background:var(--ch-bg-warm); }
.ch-widget-hot .ch-thumb img{ width:100%; height:100%; object-fit:cover; }
.ch-widget-hot h6{ margin:0; font-size:13.5px; line-height:1.4; font-family:var(--ch-font-serif); font-weight:600; }
.ch-widget-hot h6 a{ color:var(--ch-text); }
.ch-widget-hot h6 a:hover{ color:var(--ch-accent); }

.ch-widget-new li{ padding:8px 0; border-bottom:1px dashed var(--ch-border); }
.ch-widget-new li:last-child{ border-bottom:0; }
.ch-widget-new a{ font-size:13.5px; color:var(--ch-text); font-weight:500; }
.ch-widget-new a:hover{ color:var(--ch-accent); }
.ch-widget-new .ch-date{ display:block; font-size:11.5px; color:var(--ch-text-muted); margin-top:3px; }

/* ============================================================
   Article List (category) page
   ============================================================ */
.ch-breadcrumb{
    font-size:13px; color:var(--ch-text-muted);
    padding:18px 0 12px;
}
.ch-breadcrumb a{ color:var(--ch-text-muted); }
.ch-breadcrumb a:hover{ color:var(--ch-accent); }
.ch-breadcrumb .ch-sep{ margin:0 6px; color:var(--ch-border); }

.ch-page-title{
    font-family:var(--ch-font-serif);
    font-size:32px; font-weight:800;
    color:var(--ch-accent-dark);
    margin:0 0 6px;
    padding-bottom:14px; border-bottom:3px solid var(--ch-green);
    display:inline-block;
}
.ch-page-desc{ color:var(--ch-text-soft); margin:0 0 24px; font-size:14.5px; }

.ch-list2 .ch-card{ display:grid; grid-template-columns: 240px 1fr; gap:20px; margin-bottom:20px; }
.ch-list2 .ch-card-thumb{ aspect-ratio: 16/10; }
.ch-list2 .ch-card-body{ padding:0; }
.ch-list2 .ch-card-title{ font-size:20px; -webkit-line-clamp:2; }
.ch-list2 .ch-card-desc{
    color:var(--ch-text-soft); font-size:14px; line-height:1.7;
    margin:8px 0 12px;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
    overflow:hidden;
}
.ch-list2 .ch-card-more{ display:inline-block; margin-top:6px; font-weight:600; font-size:13px; }

/* pagination */
.ch-pager{ display:flex; justify-content:center; gap:4px; margin:32px 0 16px; flex-wrap:wrap; }
.ch-pager a, .ch-pager span{
    display:inline-flex; min-width:36px; height:36px; align-items:center; justify-content:center;
    padding:0 10px; border:1px solid var(--ch-border);
    border-radius:3px; font-size:13px; color:var(--ch-text);
    background:#fff;
}
.ch-pager a:hover{ background:var(--ch-accent); color:#fff; border-color:var(--ch-accent); }
.ch-pager .ch-current{ background:var(--ch-accent); color:#fff; border-color:var(--ch-accent); font-weight:700; }

/* ============================================================
   Article Show (detail)
   ============================================================ */
.ch-article{ padding:24px 0 48px; }
.ch-article-header{ margin-bottom:24px; }
.ch-article-cat{ color:var(--ch-green); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:2px; }
.ch-article-title{
    font-family:var(--ch-font-serif);
    font-size:34px; line-height:1.25; font-weight:800;
    color:var(--ch-accent-dark);
    margin:10px 0 14px;
}
.ch-article-meta{
    display:flex; align-items:center; gap:18px; flex-wrap:wrap;
    font-size:13px; color:var(--ch-text-muted);
    padding:12px 0; border-top:1px solid var(--ch-border); border-bottom:1px solid var(--ch-border);
}
.ch-article-meta .ch-author{ display:inline-flex; align-items:center; gap:8px; color:var(--ch-text-soft); }
.ch-article-meta .ch-avatar{ width:28px; height:28px; border-radius:50%; object-fit:cover; background:var(--ch-bg-warm); }
.ch-article-body{
    font-size:16.5px; line-height:1.85; color:#2a2a2a;
    font-family:var(--ch-font-sans);
}
.ch-article-body p{ margin:0 0 1.2em; }
.ch-article-body h2, .ch-article-body h3, .ch-article-body h4{
    color:var(--ch-accent-dark);
    font-family:var(--ch-font-serif);
    margin:1.6em 0 .6em;
}
.ch-article-body h2{ font-size:24px; }
.ch-article-body h3{ font-size:20px; }
.ch-article-body img{ margin:1em auto; border-radius:4px; }
.ch-article-body blockquote{
    border-left:4px solid var(--ch-green);
    background:var(--ch-bg-soft);
    padding:14px 20px; margin:1.4em 0;
    color:var(--ch-text-soft); font-style:italic;
    border-radius:0 4px 4px 0;
}

.ch-article-tags{
    margin:32px 0 20px; padding:18px 0;
    border-top:1px solid var(--ch-border); border-bottom:1px solid var(--ch-border);
    display:flex; flex-wrap:wrap; gap:8px;
    align-items:center;
}
.ch-article-tags .ch-tags-label{ font-size:13px; font-weight:700; color:var(--ch-text-soft); margin-right:6px; }
.ch-article-tags a{
    display:inline-block; padding:5px 12px; border-radius:20px;
    background:var(--ch-bg-soft); color:var(--ch-accent);
    font-size:12.5px; font-weight:500;
    border:1px solid var(--ch-border);
}
.ch-article-tags a:hover{ background:var(--ch-accent); color:#fff; border-color:var(--ch-accent); }

.ch-article-nav{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; margin:24px 0; }
.ch-article-nav a{
    display:block; padding:16px;
    background:var(--ch-bg-soft); border:1px solid var(--ch-border);
    border-radius:4px; color:var(--ch-text);
}
.ch-article-nav a:hover{ background:#fff; border-color:var(--ch-accent); }
.ch-article-nav .ch-nav-label{ display:block; font-size:11px; font-weight:700; color:var(--ch-green); letter-spacing:2px; text-transform:uppercase; }
.ch-article-nav .ch-nav-title{ display:block; font-size:14.5px; font-weight:600; margin-top:4px; line-height:1.4; }
.ch-article-nav .ch-next{ text-align:right; }

/* ============================================================
   Page / Misc
   ============================================================ */
.ch-page-body{
    padding:32px 0; min-height:50vh;
    font-size:16px; line-height:1.85;
}
.ch-page-body h2, .ch-page-body h3{ color:var(--ch-accent-dark); margin:1.2em 0 .6em; }

.ch-msg{ padding:80px 16px; text-align:center; min-height:50vh; }
.ch-msg h1{ font-size:48px; color:var(--ch-accent-dark); }
.ch-msg p{ color:var(--ch-text-soft); font-size:18px; margin:14px 0 24px; }
.ch-msg a{ display:inline-block; padding:10px 28px; background:var(--ch-accent); color:#fff; border-radius:4px; font-weight:600; }
.ch-msg a:hover{ background:var(--ch-accent-dark); }

.ch-404{ text-align:center; }

/* ============================================================
   Footer
   ============================================================ */
.ch-footer-top{
    background:var(--ch-accent-dark);
    color:#d6c8b6;
    padding:48px 0 32px;
}
.ch-footer-top a{ color:#d6c8b6; }
.ch-footer-top a:hover{ color:#fff; }
.ch-footer-grid{
    display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:36px;
}
.ch-footer h4{
    color:#fff;
    font-family:var(--ch-font-serif);
    font-size:18px; font-weight:800;
    margin:0 0 16px; padding-bottom:10px;
    border-bottom:1px solid #5a3a2a;
}
.ch-footer-brand .ch-logo-word{ color:#f5ede2; }
.ch-footer-brand .ch-logo-word i{ color:#7cb342; }
.ch-footer-brand .ch-logo-text small{ color:#b9a48a; }
.ch-footer-brand p{ color:#b9a48a; font-size:13.5px; line-height:1.7; margin-top:14px; }
.ch-footer ul li{ padding:5px 0; font-size:13.5px; }
.ch-footer ul li a{ color:#d6c8b6; }
.ch-footer ul li a:hover{ color:#fff; padding-left:4px; transition:padding .2s ease; }
.ch-footer-social{ display:flex; gap:10px; margin-top:12px; }
.ch-footer-social a{
    width:36px; height:36px; border-radius:50%;
    background:#5a3a2a; color:#d6c8b6;
    display:inline-flex; align-items:center; justify-content:center;
    transition:all .2s ease;
}
.ch-footer-social a:hover{ background:var(--ch-green); color:#fff; transform:translateY(-2px); }
.ch-footer-social svg{ width:16px; height:16px; fill:currentColor; }

.ch-footer-middle{
    background:#251610;
    padding:14px 0;
    border-top:1px solid #3e2723;
}
.ch-friendlinks{
    display:flex; align-items:center; gap:16px; flex-wrap:wrap;
    font-size:12.5px;
}
.ch-friendlinks .ch-fl-label{ color:#8c7a68; font-weight:700; }
.ch-friendlinks a{ color:#b9a48a; }
.ch-friendlinks a:hover{ color:#fff; }
.ch-friendlinks .ch-fl-img{ height:24px; opacity:.85; transition:opacity .2s ease; }
.ch-friendlinks .ch-fl-img:hover{ opacity:1; }

.ch-footer-bottom{
    background:#1a0f0a;
    color:#8c7a68;
    padding:18px 0;
    font-size:12.5px;
    text-align:center;
    line-height:1.7;
}
.ch-footer-bottom a{ color:#b9a48a; font-weight:500; }
.ch-footer-bottom a:hover{ color:#fff; }
.ch-footer-bottom .ch-copy-divider{ margin:0 6px; color:#5a3a2a; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1100px){
    .ch-grid-4{ grid-template-columns: repeat(3, 1fr); }
    .ch-hero-grid{ grid-template-columns: 1.4fr 1fr; }
    .ch-hero-main h2{ font-size:24px; }
    .ch-footer-grid{ grid-template-columns: 1.4fr 1fr 1fr; }
    .ch-footer-grid > div:last-child{ grid-column:1 / -1; }
}
@media (max-width: 860px){
    .ch-grid-4{ grid-template-columns: repeat(2, 1fr); }
    .ch-grid-3{ grid-template-columns: repeat(2, 1fr); }
    .ch-hero-grid{ grid-template-columns: 1fr; }
    .ch-hero-side{ grid-template-rows: auto; grid-template-columns: 1fr 1fr; }
    .ch-logo-word{ font-size:23px; }
    .ch-logo-icon{ width:34px; height:34px; flex:0 0 34px; }
    .ch-section-title{ font-size:22px; }
    .ch-article-title{ font-size:26px; }
    .ch-article-body{ font-size:15.5px; }
    .ch-list2 .ch-card{ grid-template-columns: 1fr; }
    .ch-footer-grid{ grid-template-columns: 1fr 1fr; }
    .ch-topbar{ display:none; }
}
@media (max-width: 540px){
    .ch-grid-4, .ch-grid-3, .ch-grid-2{ grid-template-columns: 1fr; }
    .ch-hero-side{ grid-template-columns: 1fr; }
    .ch-section-head{ flex-direction:column; align-items:flex-start; gap:6px; }
    .ch-article-nav{ grid-template-columns: 1fr; }
    .ch-article-meta{ gap:10px; }
    .ch-header{ padding:18px 0 14px; }
    .ch-footer-grid{ grid-template-columns: 1fr; }
}

/* utility */
.text-center{ text-align:center; }
.mt-0{ margin-top:0 !important; }
.mb-0{ margin-bottom:0 !important; }

/* ---------- Scroll to top button ---------- */
.ch-scroll-top{
    position:fixed; right:24px; bottom:24px; z-index:99;
    width:44px; height:44px; border-radius:50%;
    background:var(--ch-accent); color:#fff; border:0;
    display:flex; align-items:center; justify-content:center;
    box-shadow:var(--ch-shadow-lg); cursor:pointer;
    opacity:0; visibility:hidden;
    transform:translateY(10px);
    transition:all .25s ease;
}
.ch-scroll-top.is-show{ opacity:1; visibility:visible; transform:translateY(0); }
.ch-scroll-top:hover{ background:var(--ch-accent-dark); }
.ch-scroll-top svg{ width:20px; height:20px; }
