/*
Theme Name: Game Hub GeneratePress Child
Description: Game Hub UI child theme for GeneratePress. Game data and importer functionality live in the Game Hub Core plugin.
Author: Game Hub
Template: generatepress
Version: 2.1.20
Text Domain: game-hub
*/

:root{
  --bg:#0e1015;
  --panel:#161a24;
  --panel-alt:#1b2030;
  --card:#1a1f2c;
  --border:rgba(255,255,255,0.07);
  --text:#f2f3f7;
  --text-dim:#8d94aa;
  --green:#34e0a1;
  --orange:#ff9f52;
  --blue:#5aa8ff;
  --gold:#ffcf5c;
  --radius:12px;
  --radius-lg:18px;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:'Inter', sans-serif; background:var(--bg); color:var(--text); display:flex; min-height:100vh;}
h1,h2,h3,.logo,.nav a,.section-title{font-family:'Space Grotesk', sans-serif;}
a{color:inherit;}
img{max-width:100%; display:block;}

/* Sidebar left */
.sidebar{
  width:258px; flex-shrink:0; background:var(--panel);
  border-right:1px solid var(--border); display:flex; flex-direction:column;
  padding:20px 16px; position:sticky; top:0; height:100vh; overflow-y:auto;
}
.logo{display:flex; align-items:center; gap:9px; font-size:20px; font-weight:700; margin-bottom:22px; text-decoration:none; color:var(--text);}
.logo-badge{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--green),var(--blue));display:flex;align-items:center;justify-content:center;font-size:16px;}
.logo-badge-img{background:none;padding:0;overflow:hidden;}
.logo-badge-img img{width:100%;height:100%;object-fit:cover;border-radius:9px;display:block;}
.nav{list-style:none; display:flex; flex-direction:column; gap:2px; margin-bottom:18px;}
.nav a{display:flex; align-items:center; gap:11px; padding:9px 9px; border-radius:8px; color:var(--text-dim); text-decoration:none; font-size:16.5px; font-weight:500; cursor:pointer; transition:background .15s,color .15s;}
.nav a:hover{background:rgba(255,255,255,.04); color:var(--text);}
.nav a.active{color:var(--green); background:rgba(52,224,161,.08);}
.nav a .ic{width:19px; text-align:center; font-size:16px;}
.nav a .ic.ic-img{display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px;}
.nav a .ic.ic-img img{width:18px; height:18px; object-fit:contain; border-radius:4px; display:block;}
.nav-divider{height:1px; background:var(--border); margin:10px 0;}
.side-game-thumb{width:26px !important; height:26px !important; border-radius:6px; overflow:hidden; flex-shrink:0;}
.side-game-thumb img{width:100%; height:100%; object-fit:cover; border-radius:6px; display:block;}
.side-list a{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.foot-links{display:flex; flex-direction:column; gap:7px; margin-bottom:auto;}
.foot-links a{color:var(--text-dim); font-size:15.5px; text-decoration:none; cursor:pointer;}
.foot-links a:hover{color:var(--text);}
.sidebar-copy{font-size:14px; color:#565c72; margin-top:16px;}

/* Main */
.main{flex:1; min-width:0; display:flex; flex-direction:column;}
.topbar{padding:16px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:5;}
.topbar-inner{display:flex;align-items:center;}
.search-form{width:100%; max-width:480px; margin:0 auto; display:flex; align-items:center; gap:9px; background:var(--panel-alt); border:1px solid var(--border); border-radius:10px; padding:0 14px; color:var(--text-dim); font-size:13.5px;}
.search-form .search-icon{width:17px; height:17px; flex-shrink:0; color:var(--text-dim);}
.search-form input{flex:1; background:none; border:0; color:var(--text); font-size:13.5px; padding:10px 0; outline:none; font-family:'Inter',sans-serif;}
.search-form button{background:none;border:0;color:var(--text-dim);cursor:pointer;font-size:14px;}

/* ===== 3-column single/home view ===== */
.content-3col{display:flex; gap:20px; align-items:flex-start; padding:22px 16px;}
.center-col{flex:1 1 560px; min-width:0;}
.right-col{width:400px; flex-shrink:0;}
.right-col-title{font-size:14px; color:var(--text-dim); margin-bottom:12px; font-weight:600; text-transform:uppercase; letter-spacing:.04em;}
.right-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.mini-card{cursor:pointer; border-radius:12px; overflow:hidden; background:var(--card); border:1px solid var(--border); transition:transform .15s; text-decoration:none; display:block; color:var(--text);}
.mini-card:hover{transform:translateY(-2px); border-color:var(--mini-glow, var(--green));}
.mini-thumb{aspect-ratio: 5 / 3; display:flex; align-items:center; justify-content:center; font-size:40px; background-size:cover; background-position:center;}
.mini-title{padding:11px 12px 13px; font-size:14px; font-weight:600; line-height:1.3;}

.hero{border-radius:12px 12px 0 0; overflow:hidden; position:relative; aspect-ratio:16/8; background:#000;}
.hero-cover{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px; cursor:pointer;}
.hero-cover-bg{position:absolute; inset:0; filter:blur(6px) brightness(.55); opacity:.9; background-size:cover; background-position:center;}
.hero-icon-box{position:relative; width:100px; height:100px; border-radius:16px; display:flex; align-items:center; justify-content:center; font-size:44px; box-shadow:0 14px 30px -8px rgba(0,0,0,.6); overflow:hidden; background-size:cover; background-position:center;}
.play-btn{position:relative; background:var(--green); color:#08130e; font-weight:700; font-size:14px; border:0; padding:11px 26px; border-radius:9px; cursor:pointer;}
.hero iframe{width:100%; height:100%; border:0; display:none;}
.hero.playing .hero-cover{display:none;}
.hero.playing iframe{display:block;}

/* Fullscreen player mode */
.hero.fullscreen{
  position:fixed; inset:0; z-index:1000; width:100vw; height:100vh;
  aspect-ratio:auto; border-radius:0; border:0;
}
.hero-exit-btn{
  display:none; position:absolute; top:46px; right:16px; z-index:1001;
  background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.2); color:#fff;
  width:38px; height:38px; border-radius:9px; cursor:pointer; font-size:16px;
}
.hero.fullscreen .hero-exit-btn{display:block;}
body.player-fullscreen{overflow:hidden;}
body.player-fullscreen .sidebar,
body.player-fullscreen .topbar,
body.player-fullscreen .right-col,
body.player-fullscreen .quick-strip,
body.player-fullscreen .article-panel,
body.player-fullscreen .player-bar,
body.player-fullscreen footer,
body.player-fullscreen .footer-copy{display:none !important;}
body.player-fullscreen .content-3col{padding:0;}
body.player-fullscreen .main{width:100%;}

.player-bar{display:flex; align-items:center; justify-content:space-between; background:var(--panel-alt); border:1px solid var(--border); border-top:0; border-radius:0 0 var(--radius) var(--radius); padding:10px 16px; margin-top:-1px;}
.player-bar-title{display:flex; align-items:center; gap:9px; font-weight:600; font-size:14.5px;}
.player-bar-title .mini-ic{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px; background-size:cover; background-position:center;}
.fs-btn{background:none; border:1px solid var(--border); color:var(--text-dim); width:30px; height:30px; border-radius:7px; cursor:pointer;}

/* Game reactions + share */
.player-bar-actions{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;}
.reaction-btn,.share-btn{height:34px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.025);color:var(--text-dim);display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 11px;font:500 13px/1 'Inter',sans-serif;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s;}
.reaction-btn:hover,.share-btn:hover,.fs-btn:hover{background:rgba(255,255,255,.055);color:var(--text);border-color:rgba(255,255,255,.14);}
.reaction-btn:active,.share-btn:active{transform:translateY(1px);}
.reaction-icon,.share-icon{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 16px;}
.reaction-icon svg,.share-icon svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.reaction-like.active{color:var(--green);border-color:rgba(52,224,161,.32);background:rgba(52,224,161,.09);}
.reaction-dislike.active{color:#ff6680;border-color:rgba(255,102,128,.32);background:rgba(255,102,128,.08);}
.share-btn{color:var(--blue);}
.player-bar-actions .fs-btn{flex:0 0 34px;width:34px;height:34px;margin-left:16px;}
.share-panel{position:absolute;right:50px;top:calc(100% + 10px);z-index:60;width:min(390px,calc(100vw - 32px));padding:14px;background:var(--panel-alt);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 18px 38px -16px rgba(0,0,0,.8);}
.share-panel[hidden]{display:none;}
.share-panel-title{font-size:14px;font-weight:700;margin-bottom:10px;color:var(--text);}
.share-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;}
.share-option{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-dim);text-decoration:none;text-align:center;padding:9px 6px;font:500 11px/1.2 'Inter',sans-serif;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.share-option:hover{color:var(--text);border-color:rgba(255,255,255,.16);}
button.share-option{width:100%;}

.quick-strip{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-top:18px;}
.quick-strip .qcard{cursor:pointer; border-radius:11px; overflow:hidden; background:var(--card); border:1px solid var(--border); transition:transform .15s; text-decoration:none; display:block; color:var(--text);}
.quick-strip .qcard:hover{transform:translateY(-2px);}
.quick-strip .qthumb{aspect-ratio: 5 / 3; display:flex; align-items:center; justify-content:center; font-size:26px; background-size:cover; background-position:center;}
.quick-strip .qtitle{font-size:12px; padding:7px 8px 9px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

.article-panel{margin-top:22px; background:var(--panel-alt); border:1px solid var(--border); border-radius:var(--radius-lg); padding:28px 17px;}
.article-panel h1{font-size:22px; margin-bottom:14px;}
.article-panel h2,.article-panel h3{font-size:16px; margin:20px 0 8px;}
.article-panel p{color:#c7cbdb; font-size:14px; line-height:1.7; margin-bottom:8px;}
.article-panel ul,.article-panel ol{margin:8px 0 0 20px; color:#c7cbdb; font-size:14px; line-height:1.9;}
.tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:22px;}
.tag{background:rgba(52,224,161,.1); color:var(--green); border:1px solid rgba(52,224,161,.25); padding:6px 13px; border-radius:7px; font-size:12.5px; font-weight:600; text-decoration:none; display:inline-block; cursor:default;}

/* ===== plain grid views (categories/archive/search) ===== */
.content{padding:24px 28px 10px;}
.section-title{font-size:24px; font-weight:700; margin-bottom:16px;}
.section-desc{color:var(--text-dim); font-size:14px; margin:-10px 0 18px;}
.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:20px;}
.game-card{cursor:pointer; border-radius:var(--radius); overflow:hidden; background:var(--card); border:1px solid var(--border); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; text-decoration:none; display:block; color:var(--text);}
.game-card:hover{transform:translateY(-4px); box-shadow:0 12px 26px -10px rgba(0,0,0,.55); border-color:var(--card-glow, var(--green));}
.thumb{aspect-ratio: 5 / 3; display:flex; align-items:center; justify-content:center; font-size:32px; color:rgba(255,255,255,.9); background-size:cover; background-position:center;}
.game-title{padding:10px 11px 12px; font-size:13.5px; font-weight:600;}
.empty-state{color:var(--text-dim); font-size:14px; padding:20px 0;}

/* Static pages */
.static-panel{background:var(--panel-alt); border:1px solid var(--border); border-radius:var(--radius-lg); padding:32px; max-width:780px; margin:0 auto;}
.static-panel h1{font-size:24px; margin-bottom:14px;}
.static-panel p{color:#c7cbdb; font-size:14px; line-height:1.7; margin-bottom:10px;}
.static-panel ul,.static-panel ol{margin:12px 0 0 20px; color:#c7cbdb; font-size:14px; line-height:1.9;}
.static-panel a{color:var(--green);}

/* pagination */
.pagination{display:flex; gap:8px; margin:22px 0 10px; flex-wrap:wrap;}
.pagination a,.pagination span{padding:8px 13px; border-radius:8px; background:var(--card); border:1px solid var(--border); color:var(--text-dim); text-decoration:none; font-size:13px;}
.pagination .current{color:var(--green); border-color:var(--green);}
.pagination a:hover{color:var(--text);}

footer{
    margin-top:30px;
    border-top:1px solid var(--border);
    padding:30px 28px;
    display:grid;
    grid-template-columns:minmax(0,480px) auto;
    gap:36px;
    align-items:center;
}

.footer-brand{
    width:100%;
    max-width:480px;
}

.footer-brand .logo{margin-bottom:10px;}

footer .footer-description{
    width:100%;
    max-width:480px;
    color:var(--text-dim) !important;
    font-size:15px !important;
    font-weight:400 !important;
    line-height:1.5 !important;
    white-space:normal;
}
.socials{display:flex; gap:9px; margin-top:12px;}
.socials a{width:32px; height:32px; border-radius:8px; background:var(--panel-alt); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; color:var(--text-dim); text-decoration:none; font-size:13px;}
.socials a:hover{color:var(--text); border-color:var(--text-dim);}
.socials a svg{display:block;}
.footer-copy{text-align:center; padding:14px; color:#565c72; font-size:14.5px; border-top:1px solid var(--border);}

@media(max-width:1080px){
  .content-3col{flex-direction:column;}
  .right-col{width:100%;}
  .right-grid{grid-template-columns:repeat(4,1fr);}
  .quick-strip{grid-template-columns:repeat(4,1fr);}
}
@media(max-width:820px){
  .sidebar{position:fixed; left:-260px; z-index:20; transition:left .2s; top:0;}
  .sidebar.open{left:0; box-shadow:0 0 0 100vmax rgba(0,0,0,.5);}
  .menu-toggle{display:block !important;}
  .right-grid{grid-template-columns:repeat(2,1fr);}
  .quick-strip{grid-template-columns:repeat(3,1fr);}
  .hero{aspect-ratio:4/3;}
  .player-bar{flex-wrap:wrap;gap:10px;}
  .player-bar-title{min-width:0;flex:1 1 auto;}
  .player-bar-title > span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .player-bar-actions{flex:1 0 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-left:0;}
  .reaction-btn,.share-btn,.player-bar-actions .fs-btn{width:100%;height:40px;padding:0 8px;}
  .player-bar-actions .fs-btn{margin-left:0;}
  .share-panel{right:0;top:calc(100% + 8px);}
}
@media(max-width:520px){
  .player-bar{padding:10px;}
  .player-bar-actions{gap:6px;}
  .reaction-btn,.share-btn,.player-bar-actions .fs-btn{height:44px;border-radius:9px;font-size:12px;gap:5px;}
  .reaction-icon,.share-icon{width:17px;height:17px;flex-basis:17px;}
  .reaction-icon svg,.share-icon svg{width:17px;height:17px;}
  .share-btn span:last-child{display:none;}
  .share-options{grid-template-columns:repeat(2,minmax(0,1fr));}
  .share-panel{width:calc(100vw - 28px);right:-2px;}
}
.menu-toggle{display:none; background:none; border:0; color:var(--text); font-size:32px; cursor:pointer; margin-right:10px;}

/* ===== v1.3.2: Breadcrumb + configurable footer ===== */
.gh-breadcrumb-wrap{padding:18px 16px 0;}
.gh-breadcrumb{font-size:13px;color:var(--text-dim);margin-bottom:16px;}
.gh-breadcrumb ol{display:flex;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:0;}
.gh-breadcrumb li{display:flex;align-items:center;}
.gh-breadcrumb li+li:before{content:'›';margin:0 8px;color:#565c72;}
.gh-breadcrumb a{color:var(--text-dim);text-decoration:none;}
.gh-breadcrumb a:hover{color:var(--text);}
.gh-breadcrumb [aria-current="page"]{color:#c7cbdb;}
.footer-nav{display:flex;align-items:center;margin-left:auto;}
.footer-menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;}
.footer-menu li{margin:0;padding:0;}
.footer-menu a{display:block;color:var(--text-dim);text-decoration:none;font-size:15px;white-space:nowrap;}
.footer-menu a:hover{color:var(--text);}
@media(max-width:700px){
  footer{justify-content:flex-start;}
  .footer-brand{
      flex:1 1 100%;
      max-width:100%;
  }
  .footer-description{
      max-width:100%;
  }
  .footer-nav{width:100%;margin-left:0;}
  .footer-menu{gap:10px 18px;}
}

/* Native Fullscreen API element */
.hero:fullscreen,
.hero:-webkit-full-screen{
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  aspect-ratio:auto;
  border-radius:0;
  background:#000;
}
.hero:fullscreen .hero-exit-btn,
.hero:-webkit-full-screen .hero-exit-btn{display:block;}

/* ===== v1.3.4: Blog archive + single article ===== */
.blog-archive{padding-bottom:30px;}
.blog-header{max-width:980px;margin:0 auto 24px;}
.blog-header h1{font-size:30px;line-height:1.2;margin-bottom:10px;}
.blog-intro{max-width:760px;color:var(--text-dim);font-size:15px;line-height:1.75;}
.blog-intro p{margin-bottom:10px;}

.blog-list{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;}
.blog-card{min-width:0;overflow:hidden;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
.blog-card:hover{transform:translateY(-3px);border-color:rgba(52,224,161,.3);box-shadow:0 14px 30px -18px rgba(0,0,0,.75);}
.blog-card-thumb{display:block;width:100%;aspect-ratio:5/3;overflow:hidden;background:var(--card);}
.blog-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease;}
.blog-card:hover .blog-card-thumb img{transform:scale(1.025);}
.blog-card-body{padding:20px 22px 22px;}
.blog-card-meta{color:#6f768c;font-size:12.5px;margin-bottom:8px;}
.blog-card-body h2{font-size:20px;line-height:1.35;margin:0 0 10px;}
.blog-card-body h2 a{text-decoration:none;color:var(--text);}
.blog-card-body h2 a:hover{color:var(--green);}
.blog-card-body p{color:var(--text-dim);font-size:14px;line-height:1.7;margin-bottom:15px;}
.blog-read-more{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-size:14px;text-decoration:none;font-weight:650;}
.blog-read-more:hover{text-decoration:underline;}
.blog-archive .pagination{max-width:1180px;margin:24px auto 10px;}

.blog-single-wrap{padding-bottom:40px;}
.blog-single-wrap > .gh-breadcrumb{max-width:920px;margin-left:auto;margin-right:auto;}
.blog-article{max-width:920px;margin:0 auto;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius-lg);padding:38px 44px 44px;overflow:hidden;}
.blog-article-header{margin-bottom:24px;}
.blog-article-header h1{font-size:34px;line-height:1.22;letter-spacing:-.02em;margin:0 0 12px;}
.blog-article-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;color:#71798f;font-size:13px;}
.blog-featured-image{margin:0 0 30px;border-radius:14px;overflow:hidden;background:var(--card);}
.blog-featured-image img{width:100%;height:auto;display:block;}
.blog-content{color:#c7cbdb;font-size:16px;line-height:1.82;overflow-wrap:anywhere;}
.blog-content > *:first-child{margin-top:0;}
.blog-content p{margin:0 0 18px;}
.blog-content h2{font-size:25px;line-height:1.35;color:var(--text);margin:34px 0 14px;}
.blog-content h3{font-size:20px;line-height:1.4;color:var(--text);margin:28px 0 12px;}
.blog-content h4{font-size:17px;line-height:1.45;color:var(--text);margin:24px 0 10px;}
.blog-content ul,.blog-content ol{margin:0 0 20px 24px;padding:0;}
.blog-content li{margin:6px 0;}
.blog-content a{color:var(--green);text-underline-offset:3px;}
.blog-content img{height:auto;border-radius:12px;margin:8px auto 22px;}
.blog-content figure{max-width:100%;margin:24px 0;}
.blog-content figure img{margin:0 auto;}
.blog-content figcaption{text-align:center;color:#71798f;font-size:13px;line-height:1.55;margin-top:8px;}
.blog-content blockquote{margin:24px 0;padding:16px 20px;border-left:3px solid var(--green);background:rgba(52,224,161,.055);border-radius:0 10px 10px 0;}
.blog-content blockquote p:last-child{margin-bottom:0;}
.blog-content table{width:100%;border-collapse:collapse;margin:24px 0;display:block;overflow-x:auto;}
.blog-content th,.blog-content td{padding:11px 13px;border:1px solid var(--border);text-align:left;min-width:120px;}
.blog-content th{color:var(--text);background:var(--card);}
.blog-content hr{border:0;border-top:1px solid var(--border);margin:30px 0;}
.blog-content .wp-block-button__link{display:inline-block;background:var(--green);color:#07120e;text-decoration:none;border-radius:9px;padding:10px 18px;font-weight:700;}
.blog-page-links{margin-top:28px;color:var(--text-dim);}

@media(max-width:900px){
  .blog-list{grid-template-columns:1fr;}
  .blog-article{padding:30px 28px 34px;}
}
@media(max-width:700px){
  .blog-header h1{font-size:26px;}
  .blog-article{padding:24px 20px 28px;border-radius:14px;}
  .blog-article-header h1{font-size:28px;}
  .blog-content{font-size:15px;line-height:1.75;}
  .blog-content h2{font-size:22px;}
  .blog-content h3{font-size:19px;}
}


/* Footer responsive improvements */
footer{
    grid-template-columns:minmax(0,480px) auto;
}
@media(max-width:1200px){
    footer{
        grid-template-columns:1fr;
    }
    .footer-nav{
        width:100%;
        margin-left:0;
    }
}
@media(max-width:700px){
    footer{
        padding:24px 18px;
        grid-template-columns:1fr;
    }
    .footer-brand,
    .footer-description{
        max-width:100%;
        width:100%;
    }
    .footer-menu{
        flex-wrap:wrap;
        gap:12px 18px;
    }
}


/* v2.0.10: real thumbnail images keep the existing card layout */
.thumb,
.mini-thumb,
.qthumb{
  position:relative;
  overflow:hidden;
}
.thumb img,
.mini-thumb img,
.qthumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.game-thumb-fallback{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,var(--panel-alt),var(--card));
}


/* ===== v2.0.14: desktop toggle sidebar like reference UI =====
   Mobile/tablet styles from v2.0.10 remain unchanged. */
@media(min-width:821px){

  /* Header becomes a full desktop bar: toggle + logo/site name + search. */
  .topbar{
    padding:12px 16px;
    z-index:50;
  }

  .topbar-inner{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
  }

  .topbar .menu-toggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    flex:0 0 38px;
    width:38px;
    height:38px;
    margin:0;
    padding:0;
    background:none;
    border:0;
    border-radius:8px;
    color:var(--text);
    font-size:28px;
    line-height:1;
  }

  .topbar .menu-toggle:hover{
    background:rgba(255,255,255,.05);
  }

  .desktop-topbar-brand{
    display:flex;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
    color:var(--text);
    text-decoration:none;
    font-family:'Space Grotesk',sans-serif;
    font-size:18px;
    font-weight:700;
    white-space:nowrap;
  }

  .desktop-topbar-brand .logo-badge{
    width:30px;
    height:30px;
    flex:0 0 30px;
    margin:0;
  }

  .topbar .search-form{
    width:100%;
    max-width:480px;
    margin-left:auto;
    margin-right:auto;
  }

  /* Normal desktop state = full sidebar, same visual structure as original. */
  .sidebar{
    width:258px;
    min-width:258px;
    flex:0 0 258px;
    transition:width .18s ease, min-width .18s ease, flex-basis .18s ease, padding .18s ease;
  }

  /* Collapsed state = icon rail only. */
  body.gh-sidebar-collapsed .sidebar{
    width:64px;
    min-width:64px;
    flex-basis:64px;
    padding-left:12px;
    padding-right:12px;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }

  body.gh-sidebar-collapsed .sidebar::-webkit-scrollbar{
    width:0;
    height:0;
    display:none;
  }

  body.gh-sidebar-collapsed .sidebar > .logo{
    display:none;
  }

  body.gh-sidebar-collapsed .sidebar .nav{
    width:40px;
    overflow:hidden;
  }

  body.gh-sidebar-collapsed .sidebar .nav a{
    width:40px;
    height:40px;
    min-height:40px;
    padding:0;
    justify-content:center;
    gap:0;
    overflow:hidden;
    white-space:nowrap;
    font-size:0;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic{
    width:40px;
    flex:0 0 40px;
    margin:0;
    font-size:16px;
    text-align:center;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic.ic-img{
    width:40px;
    height:40px;
    flex:0 0 40px;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic.ic-img img{
    width:20px;
    height:20px;
    margin:auto;
  }

  body.gh-sidebar-collapsed .sidebar .side-game-thumb{
    width:40px !important;
    height:40px !important;
    flex:0 0 40px;
    border-radius:7px;
    padding:7px;
  }

  body.gh-sidebar-collapsed .sidebar .side-game-thumb img{
    width:26px;
    height:26px;
  }

  /* Text-only / secondary controls disappear in icon mode; all category icons remain available. */
    body.gh-sidebar-collapsed .sidebar .sidebar-section-label,
  body.gh-sidebar-collapsed .sidebar .foot-links,
  body.gh-sidebar-collapsed .sidebar .sidebar-copy,
  body.gh-sidebar-collapsed .sidebar .nav-divider{
    display:none;
  }

  /* Keep the Related Games rail fixed; freed sidebar width goes to the player area. */
  .right-col{
    width:400px;
    flex:0 0 400px;
  }

  .center-col{
    min-width:0;
  }
}

/* Original mobile header should not show the new desktop brand. */
@media(max-width:820px){
  .desktop-topbar-brand{
    display:none;
  }
}


/* ===== v2.0.15: desktop brand lives in header only ===== */
@media(min-width:821px){
  .sidebar > .logo{
    display:none !important;
  }
}


/* ===== v2.0.16: full-width desktop header + professional sidebar icons ===== */
@media(min-width:821px){
  :root{ --gh-desktop-header-h:64px; }

  .topbar{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:var(--gh-desktop-header-h);
    padding:11px 16px !important;
    z-index:100;
    background:var(--panel) !important;
    border-bottom:1px solid var(--border);
  }

  .topbar-inner{
    height:100%;
    width:100%;
  }

  .main{
    padding-top:var(--gh-desktop-header-h);
  }

  .sidebar{
    top:var(--gh-desktop-header-h) !important;
    height:calc(100vh - var(--gh-desktop-header-h)) !important;
  }

  .sidebar > .logo{
    display:none !important;
  }

  .right-col{
    width:400px;
    flex:0 0 400px;
  }

  .center-col{
    min-width:0;
  }
}

.nav a .ic.nav-svg{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.nav a .ic.nav-svg svg{
  width:22px;
  height:22px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media(max-width:820px){
  .nav a .ic.nav-svg svg{
    width:18px;
    height:18px;
  }
}


/* ===== v2.0.17: tablet UI (701px–1024px) =====
   Mobile <=700px intentionally keeps the original v2.0.10 UI. */
@media(min-width:701px) and (max-width:1024px){

  :root{
    --gh-tablet-header-h:60px;
  }

  /* Full-width header, same visual language as desktop. */
  .topbar{
    position:fixed !important;
    top:0;
    left:0;
    right:0;
    width:100%;
    height:var(--gh-tablet-header-h);
    padding:9px 12px !important;
    z-index:100;
    background:var(--panel) !important;
    border-bottom:1px solid var(--border);
  }

  .topbar-inner{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    height:100%;
  }

  .topbar .menu-toggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    flex:0 0 38px;
    width:38px;
    height:38px;
    margin:0;
    padding:0;
    background:none;
    border:0;
    border-radius:8px;
    color:var(--text);
    font-size:27px;
    line-height:1;
  }

  .desktop-topbar-brand{
    display:flex !important;
    align-items:center;
    gap:8px;
    flex:0 0 auto;
    color:var(--text);
    text-decoration:none;
    font-family:'Space Grotesk',sans-serif;
    font-size:17px;
    font-weight:700;
    white-space:nowrap;
  }

  .desktop-topbar-brand .logo-badge{
    width:28px;
    height:28px;
    flex:0 0 28px;
    margin:0;
  }

  .topbar .search-form{
    flex:1 1 auto;
    width:auto;
    max-width:430px;
    min-width:180px;
    margin-left:auto;
    margin-right:0;
  }

  /* Push page below header. */
  .main{
    padding-top:var(--gh-tablet-header-h);
  }

  /* Override the old <=820px mobile drawer rules:
     tablet gets a persistent toggleable sidebar below the header. */
  .sidebar{
    position:sticky !important;
    left:auto !important;
    top:var(--gh-tablet-header-h) !important;
    width:220px;
    min-width:220px;
    flex:0 0 220px;
    height:calc(100vh - var(--gh-tablet-header-h)) !important;
    padding:18px 12px;
    z-index:30;
    box-shadow:none !important;
    transition:width .18s ease,min-width .18s ease,flex-basis .18s ease,padding .18s ease;
  }

  .sidebar.open{
    left:auto !important;
    box-shadow:none !important;
  }

  .sidebar > .logo{
    display:none !important;
  }

  /* Tablet collapsed rail. */
  body.gh-sidebar-collapsed .sidebar{
    width:60px;
    min-width:60px;
    flex-basis:60px;
    padding-left:10px;
    padding-right:10px;
    overflow-x:hidden;
    overflow-y:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }

  body.gh-sidebar-collapsed .sidebar::-webkit-scrollbar{
    width:0;
    height:0;
    display:none;
  }

  body.gh-sidebar-collapsed .sidebar .nav{
    width:40px;
    overflow:hidden;
  }

  body.gh-sidebar-collapsed .sidebar .nav a{
    width:40px;
    height:40px;
    min-height:40px;
    padding:0;
    justify-content:center;
    gap:0;
    overflow:hidden;
    white-space:nowrap;
    font-size:0;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic{
    width:40px;
    flex:0 0 40px;
    margin:0;
    font-size:16px;
    text-align:center;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic.ic-img{
    width:40px;
    height:40px;
    flex:0 0 40px;
  }

  body.gh-sidebar-collapsed .sidebar .nav a .ic.ic-img img{
    width:20px;
    height:20px;
    margin:auto;
  }

  body.gh-sidebar-collapsed .sidebar .side-game-thumb{
    width:40px !important;
    height:40px !important;
    flex:0 0 40px;
    border-radius:7px;
    padding:7px;
  }

  body.gh-sidebar-collapsed .sidebar .side-game-thumb img{
    width:26px;
    height:26px;
  }

    body.gh-sidebar-collapsed .sidebar .sidebar-section-label,
  body.gh-sidebar-collapsed .sidebar .foot-links,
  body.gh-sidebar-collapsed .sidebar .sidebar-copy,
  body.gh-sidebar-collapsed .sidebar .nav-divider{
    display:none;
  }

  /* Main game area: use available tablet width cleanly. */
  .content-3col{
    width:100%;
    max-width:100%;
    padding:18px 14px;
    gap:18px;
  }

  .center-col{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  /* On tablet the secondary games move below the main player. */
  .right-col{
    width:100% !important;
    flex:0 0 100% !important;
  }

  .right-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
  }

  .hero{
    aspect-ratio:16/9;
  }

  /* Undo the mobile-only stacked action bar for tablet. */
  .player-bar{
    flex-wrap:nowrap;
    gap:10px;
  }

  .player-bar-actions{
    flex:0 0 auto;
    display:flex;
    grid-template-columns:none;
    width:auto;
    margin-left:auto;
    gap:8px;
  }

  .reaction-btn,
  .share-btn,
  .player-bar-actions .fs-btn{
    width:auto;
    height:34px;
    padding:0 10px;
  }

  .player-bar-actions .fs-btn{
    margin-left:10px;
  }

  .quick-strip{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

/* Mobile is intentionally left as the original UI. */


/* ===== v2.0.19: denser game-list grid ===== */
@media(max-width:700px){
  .content .grid,
  .blog-archive .grid,
  .game-grid,
  .grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .game-card{
    min-width:0;
  }

  .game-title{
    padding:8px 9px 10px;
    font-size:12.5px;
    line-height:1.3;
  }
}


/* ===== v2.1.0: stable server-side listing pagination =====
   The server always returns 30 games per page. CSS alone handles columns. */
@media(min-width:701px){
  .gh-game-list-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));}
}


/* ===== v2.0.23: unified post-category layout =====
   All WordPress post categories render through category.php using the
   existing .blog-archive / .blog-list / .blog-card styles. */


/* ===== v2.1.0: Category Hub homepage ===== */
.sidebar-section-label{
  padding:2px 9px 8px;
  color:#6f768c;
  font-family:'Space Grotesk',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.sidebar-empty{color:var(--text-dim);font-size:13px;padding:9px;display:block;}
.category-nav-icon.ic-img{overflow:hidden;border-radius:5px;}
.category-nav-icon.ic-img img{width:19px;height:19px;object-fit:cover;border-radius:5px;}

.home-hub{padding-top:30px;padding-bottom:26px;}
.home-game-section,.home-category-browser{margin:0 0 34px;}
.home-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px;}
.home-section-head h2{display:flex;align-items:center;gap:8px;font-size:19px;line-height:1.3;margin:0;}
.home-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;flex:0 0 21px;}
.home-nav-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.home-section-icon{display:inline-flex!important;align-items:center;justify-content:center;width:22px!important;height:22px!important;flex:0 0 22px;overflow:hidden;border-radius:6px;}
.home-section-icon img{width:22px!important;height:22px!important;object-fit:cover;border-radius:6px;}
.home-view-all{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:#a8afc2;font-size:13px;font-weight:650;text-decoration:none;white-space:nowrap;transition:color .16s ease;}
.home-view-all-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;transition:transform .16s ease;}
.home-view-all-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.home-view-all:hover{color:var(--green);}
.home-view-all:hover .home-view-all-icon{transform:translateX(3px);}
.home-section-empty{display:none;margin:0;padding:14px 0;color:var(--text-dim);font-size:13px;}
.home-section-empty-server{display:block;}
.home-recent-section.is-empty .home-section-empty{display:block;}

/* Six columns on desktop = 12 cards = exactly two rows. */
.home-game-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;}
.home-game-grid > .game-card:nth-child(n+13){display:none;}

.home-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;}
.home-category-card{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-width:0;padding:12px 13px;border-radius:11px;background:var(--panel-alt);border:1px solid var(--border);text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease;}
.home-category-card:hover{transform:translateY(-2px);border-color:rgba(52,224,161,.26);background:#1d2332;}
.home-category-icon{grid-row:1/3;display:flex!important;align-items:center;justify-content:center;width:38px!important;height:38px!important;border-radius:9px;background:rgba(52,224,161,.08);overflow:hidden;font-size:18px;}
.home-category-icon img{width:38px!important;height:38px!important;object-fit:cover;border-radius:9px;}
.home-category-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:700;color:var(--text);}
.home-category-count{font-size:11px;color:#71798f;white-space:nowrap;}

.home-seo-content{width:100%;max-width:none;margin:6px 0 14px;padding:28px 30px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008));}
.home-seo-copy{width:100%;max-width:none;color:var(--text-dim);font-size:14px;line-height:1.8;}
.home-seo-copy h1,.home-seo-copy h2,.home-seo-copy h3,.home-seo-copy h4,.home-seo-copy h5,.home-seo-copy h6{color:var(--text);margin:0 0 12px;line-height:1.3;}
.home-seo-copy h1{font-size:30px;}
.home-seo-copy h2{font-size:22px;}
.home-seo-copy h3{font-size:19px;}
.home-seo-copy h4,.home-seo-copy h5,.home-seo-copy h6{font-size:16px;}
.home-seo-copy p,.home-seo-copy ul,.home-seo-copy ol,.home-seo-copy blockquote{margin:0 0 12px;}
.home-seo-copy ul,.home-seo-copy ol{padding-left:22px;}
.home-seo-copy > :last-child{margin-bottom:0;}
.home-seo-copy a{color:var(--green);text-decoration:none;}
.home-seo-copy a:hover{text-decoration:underline;}

/* ===== v2.1.3: streamlined Category + All Categories pages ===== */
.game-category-archive .section-title{margin-bottom:22px;}
.archive-seo-content{margin:32px 0 6px;padding:28px 30px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008));}
.archive-seo-content h2{margin:0 0 12px;font-size:22px;line-height:1.3;}
.archive-seo-copy{width:100%;max-width:none;color:var(--text-dim);font-size:14px;line-height:1.8;}
.archive-seo-copy p{margin:0 0 12px;}
.archive-seo-copy p:last-child{margin-bottom:0;}
.archive-seo-copy a{color:var(--green);text-decoration:none;}
.archive-seo-copy a:hover{text-decoration:underline;}
.all-categories-page .section-title{margin-bottom:20px;}
.all-categories-page .archive-seo-content{margin-top:0;margin-bottom:30px;}
.all-categories-list-title{margin:0 0 15px;font-size:19px;}
.all-categories-grid{margin-bottom:8px;}

/* Single game taxonomy is now real internal navigation. */
.game-taxonomy-row{margin-top:20px;}
.game-taxonomy-row+.game-taxonomy-row{margin-top:12px;}
.game-taxonomy-label{display:block;margin-bottom:8px;color:#777f95;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.game-taxonomy-row .tags{margin-top:0;}
.tag{cursor:pointer;}
.tag:hover{background:rgba(52,224,161,.16);border-color:rgba(52,224,161,.42);}
.tag-secondary{color:#9eb9d5;background:rgba(90,168,255,.08);border-color:rgba(90,168,255,.2);}
.tag-secondary:hover{background:rgba(90,168,255,.14);border-color:rgba(90,168,255,.38);}
.game-tag-label{cursor:default;pointer-events:none;}
.game-tag-label:hover{background:rgba(90,168,255,.08);border-color:rgba(90,168,255,.2);}

.quick-strip-section{margin-top:18px;}
.quick-strip-head{margin-bottom:10px;}
.quick-strip-head h2{font-size:15px;color:var(--text-dim);font-weight:650;}
.quick-strip-section .quick-strip{margin-top:0;}

@media(max-width:1300px){
  .home-game-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
  .home-game-grid > .game-card:nth-child(n+11){display:none;}
  .home-category-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:1100px){
  .home-game-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .home-game-grid > .game-card:nth-child(n+9){display:none;}
}
@media(max-width:900px){
  .home-game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
  .home-game-grid > .game-card:nth-child(n+7){display:none;}
  .home-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:700px){
  .home-hub{padding:22px 16px 12px;}
  .home-game-section,.home-category-browser{margin-bottom:28px;}
  .home-section-head h2{font-size:17px;}
  .home-view-all{gap:6px;font-size:12.5px;}
  .home-view-all-icon{width:17px;height:17px;}
  .home-seo-content{padding:22px 18px;margin-top:2px;}
  .home-seo-copy h1{font-size:25px;}
  .home-seo-copy h2{font-size:19px;}
  .archive-seo-content{padding:22px 18px;}
  .archive-seo-content h2{font-size:19px;}
  .home-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .sidebar-section-label{padding-left:9px;}
}
@media(max-width:600px){
  .home-game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .home-game-grid > .game-card:nth-child(n+5){display:none;}
  .home-category-card{grid-template-columns:34px minmax(0,1fr);padding:10px;column-gap:8px;}
  .home-category-icon{width:34px!important;height:34px!important;}
  .home-category-icon img{width:34px!important;height:34px!important;}
  .home-category-count{font-size:10.5px;}
}

/* ===== v2.1.5: flexible category SEO HTML ===== */
.archive-seo-copy h2,.archive-seo-copy h3,.archive-seo-copy h4,.archive-seo-copy h5,.archive-seo-copy h6{color:var(--text);margin:0 0 12px;line-height:1.3;}
.archive-seo-copy h2{font-size:22px;}.archive-seo-copy h3{font-size:19px;}.archive-seo-copy h4,.archive-seo-copy h5,.archive-seo-copy h6{font-size:16px;}
.archive-seo-copy ul,.archive-seo-copy ol{margin:0 0 12px;padding-left:22px;}.archive-seo-copy blockquote{margin:0 0 12px;padding-left:16px;border-left:3px solid var(--border);}.archive-seo-copy > :last-child{margin-bottom:0;}


/* v2.1.6 production hardening */
.gh-semantic-home-h1{font-size:32px;line-height:1.2;margin:0 0 24px;color:var(--text);font-weight:700;}
.gh-single-game-title{font-size:30px;line-height:1.2;margin:18px 16px 0;color:var(--text);font-weight:700;}
@media(max-width:600px){.gh-semantic-home-h1{font-size:26px;margin-bottom:18px}.gh-single-game-title{font-size:25px;margin-top:14px}}
:where(a,button,input,textarea,select):focus-visible{outline:2px solid var(--green);outline-offset:3px;}
.menu-toggle:focus-visible,.home-view-all:focus-visible{border-radius:8px;}


/* ===== v2.1.10: wide-desktop listing integrity =====
   Keep server pagination deterministic at 30 games/page. On very wide
   desktops cap archive/taxonomy/search grids at 6 columns so a full page
   renders as exactly 6 columns x 5 rows instead of auto-expanding to 7+. */
@media (min-width:1600px){
  .gh-game-list-grid{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
}


/* ===== v2.1.11: structured game editorial sections ===== */
.game-editorial-section{margin-top:28px;}
.game-editorial-section h2{font-size:22px;line-height:1.25;margin:0 0 12px;}
.game-editorial-content{color:var(--text-dim);line-height:1.75;}
.game-editorial-content p{margin:0 0 12px;}
.game-editorial-content ul,.game-editorial-content ol{margin:0 0 12px 22px;}
.game-editorial-content a{color:var(--green);text-decoration:underline;text-underline-offset:2px;}

/* Favorite button */
.favorite-btn {
  line-height:1;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--border-color, rgba(255,255,255,.1));
  background:transparent;
  color:inherit;
  border-radius:8px;
  padding:8px 12px;
  cursor:pointer;
}
.favorite-btn.active { color:#ff5c8a; }

/* Favorite UI alignment */
.favorite-btn .favorite-icon{width:18px;height:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;}
.favorite-btn .favorite-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.favorite-btn .favorite-icon.filled svg{fill:currentColor;}
.favorite-btn.active .favorite-icon{color:#ff5c8a;}
#ghFavoriteGrid .game-card{width:auto;}
#ghFavoriteGrid .game-thumb{aspect-ratio:5/3;object-fit:cover;display:block;width:100%;}

/* Favorite and player action responsive */
.player-actions, .game-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
}
.favorite-btn, .share-btn, .reaction-btn, .fs-btn {
  min-height:36px;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (max-width:480px){
  .favorite-btn, .share-btn, .reaction-btn, .fs-btn {
    padding:8px 10px;
  }
  .favorite-btn .favorite-icon,
  .favorite-btn .favorite-icon svg,
  .share-icon svg {
    width:18px;
    height:18px;
  }
}


/* Player actions responsive refinement v5 */
.player-bar-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:8px;
  min-width:0;
}

.player-bar-title {
  min-width:0;
  overflow:hidden;
  display:flex;
  align-items:center;
  gap:8px;
}

.player-bar-title > span:last-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Keep favorite heart consistent */
.favorite-btn .favorite-icon,
.favorite-btn .favorite-icon svg {
  width:18px;
  height:18px;
}

.favorite-btn.active .favorite-icon svg {
  fill:currentColor;
}

/* Tablet: keep only game icon, remove duplicate title */
@media (max-width: 1024px) and (min-width: 601px) {
  .player-bar-title > span:last-child {
    display:none;
  }
  .player-bar-title {
    flex:0 0 auto;
  }
}

/* Mobile compact player actions */
@media (max-width: 600px) {
  .player-bar {
    display:block;
  }

  .player-bar-title {
    padding:8px 10px;
  }

  .player-bar-actions {
    width:100%;
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:6px;
    padding:8px 10px;
  }

  .player-bar-actions .reaction-btn,
  .player-bar-actions .favorite-btn,
  .player-bar-actions .share-btn,
  .player-bar-actions .fs-btn {
    width:100%;
    min-width:0;
    height:40px;
    padding:0;
    justify-content:center;
    gap:0;
  }

  .player-bar-actions .reaction-count,
  .player-bar-actions .favorite-label,
  .player-bar-actions .share-btn span:not(.share-icon) {
    display:none;
  }

  .player-bar-actions .reaction-icon,
  .player-bar-actions .favorite-icon,
  .player-bar-actions .share-icon {
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .player-bar-actions svg,
  .player-bar-actions .favorite-icon svg {
    width:18px;
    height:18px;
  }
}


/* ===== v2.1.18: sidebar rail/category flow + mobile drawer safety =====
   Scope: fixes only the collapsed sidebar category flow and mobile outside-click
   behavior. Existing game/category UI and desktop layout remain unchanged. */
@media (min-width:821px){
  body.gh-sidebar-collapsed .sidebar{
    display:flex;
    flex-direction:column;
    overflow-y:auto;
    overflow-x:hidden;
  }

  body.gh-sidebar-collapsed .sidebar > .nav,
  body.gh-sidebar-collapsed .sidebar > .cat-nav{
    position:static;
    float:none;
    flex:0 0 auto;
    height:auto;
    min-height:0;
    margin-top:0;
    margin-bottom:18px;
    overflow:hidden;
    transform:none;
  }

  body.gh-sidebar-collapsed .sidebar > .cat-nav{
    margin-top:0;
    padding-top:0;
  }

  body.gh-sidebar-collapsed .sidebar > .nav-divider + .sidebar-section-label + .cat-nav{
    margin-top:0;
  }
}

@media (min-width:701px) and (max-width:1024px){
  body.gh-sidebar-collapsed .sidebar > .nav,
  body.gh-sidebar-collapsed .sidebar > .cat-nav{
    flex:0 0 auto;
    height:auto;
    min-height:0;
    margin-bottom:18px;
    overflow:hidden;
  }
}


/* ===== v2.1.20: collapsed sidebar shows all categories without scrollbar =====
   Scope: only the collapsed desktop/tablet sidebar. Keep every category
   available in the icon rail while hiding the native vertical scrollbar.
   Expanded/mobile sidebar remains unchanged. */
@media (min-width:701px){
  body.gh-sidebar-collapsed .sidebar{
    overflow-y:auto !important;
    overflow-x:hidden !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }

  body.gh-sidebar-collapsed .sidebar::-webkit-scrollbar{
    width:0 !important;
    height:0 !important;
    display:none !important;
  }

  /* Show the complete category list; the rail itself can scroll when the
     viewport is shorter than the full sidebar, but no scrollbar is shown. */
  body.gh-sidebar-collapsed .sidebar > .cat-nav > li{
    display:block;
  }

  body.gh-sidebar-collapsed .sidebar > .cat-nav{
    overflow:visible !important;
    height:auto !important;
    max-height:none !important;
    margin-bottom:0 !important;
  }
}


/* ===== v2.1.20: built-in ad placement manager ===== */
.gh-ad-slot{
  width:100%;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1;
  min-width:0;
}
.gh-ad-slot:empty{display:none;}
.gh-ad-slot ins.adsbygoogle{max-width:100%;}
.gh-ad-slot iframe,.gh-ad-slot img{max-width:100%;}
.gh-ad-header{padding:18px 16px 0;}
.gh-ad-home-top{margin:0 0 30px;}
.gh-ad-home-middle{margin:2px 0 34px;}
.gh-ad-above-game{padding:18px 16px 0;}
.gh-ad-below-game{margin:24px 0 6px;}
.gh-ad-game-content{margin:24px 0 0;}
.gh-ad-sidebar{margin:0 0 20px;}
.gh-ad-footer{padding:22px 16px 0;}
body.player-fullscreen .gh-ad-slot{display:none!important;}
@media(max-width:700px){
  .gh-ad-header,.gh-ad-above-game,.gh-ad-footer{padding-left:12px;padding-right:12px;}
  .gh-ad-home-top,.gh-ad-home-middle{margin-bottom:24px;}
  .gh-ad-below-game,.gh-ad-game-content{margin-top:20px;}
}
