/*
 * GameVora fluid layout and readable typography.
 * Loaded after every page stylesheet so all templates share one scale.
 */
:root {
  --gv-content-max: 1720px;
  --gv-wide-gutter: clamp(24px, 3.2vw, 64px);
  --gv-page-space: clamp(48px, 6.4vw, 128px);
}

html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { font-size: 16px; line-height: 1.6; }
img, video, iframe { max-width: 100%; }
button, input, select, textarea { font-size: max(16px, 1em); }
.gv-home, .gv-category, .gv-hub, .gv-article, .gv-games, .gv-library, .gv-game-section { overflow-x: clip; }
.gv-home a, .gv-category a, .gv-hub a, .gv-article a,
.gv-footer a, .gv-header a { overflow-wrap: anywhere; }

/* Shared wide containers */
.gv-header,
.gv-header.is-sticky,
.gv-footer__container,
.gv-home-container,
.gv-category-hero__inner,
.gv-category__container,
.gv-hub-container,
.gv-article-container,
.gv-games-container,
.gv-library-container,
.gv-demo-hero {
  max-width: var(--gv-content-max);
}
.gv-header,
.gv-header.is-sticky,
.gv-home-container,
.gv-category-hero__inner,
.gv-category__container,
.gv-hub-container,
.gv-games-container,
.gv-library-container,
.gv-demo-hero {
  width: min(calc(100% - var(--gv-page-space)), var(--gv-content-max));
}
.gv-footer__container { width: min(100%, var(--gv-content-max)); }
.gv-article { padding-inline: var(--gv-wide-gutter); }
.gv-article-container { width: min(100%, var(--gv-content-max)); }
.gv-listing-results { max-width: var(--gv-content-max); }

/* Desktop search fields: a clear idle state and an unmistakable focus state. */
@media (min-width: 768px) {
  .gv-search__form,
  .gv-home-hero form,
  .gv-category-hero__copy form,
  .gv-library-hero form,
  .gv-error-page form {
    border: 1px solid #53616a;
    background: #12191e;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 0 0 1px rgba(0,0,0,.28);
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
  }
  .gv-search__form:hover,
  .gv-home-hero form:hover,
  .gv-category-hero__copy form:hover,
  .gv-library-hero form:hover,
  .gv-error-page form:hover {
    border-color: #78858d;
  }
  .gv-search__form:focus-within,
  .gv-home-hero form:focus-within,
  .gv-category-hero__copy form:focus-within,
  .gv-library-hero form:focus-within,
  .gv-error-page form:focus-within {
    border-color: var(--gv-primary);
    background: #0d1317;
    box-shadow: 0 0 0 3px rgba(255,106,0,.2), 0 8px 24px rgba(0,0,0,.2);
  }
  .gv-home-hero form input,
  .gv-category-hero__copy form input,
  .gv-library-hero form input,
  .gv-error-page form input {
    border: 0;
    outline: 0;
  }
  .gv-search input::placeholder,
  .gv-home-hero input::placeholder,
  .gv-category-hero__copy input::placeholder,
  .gv-library-hero input::placeholder,
  .gv-error-page input::placeholder,
  .ggdb-filters input::placeholder {
    color: #b0b9be;
    opacity: 1;
  }
  .gv-search__form button,
  .gv-home-hero form button,
  .gv-category-hero__copy form button,
  .gv-library-hero form button,
  .gv-error-page form button {
    box-shadow: inset 1px 0 rgba(255,255,255,.1);
  }
  .ggdb-filters input[type="search"],
  .ggdb-filters input[type="text"],
  .ggdb-filters select {
    border-color: #53616a;
    background: #12191e;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
    transition: border-color .18s ease, box-shadow .18s ease;
  }
  .ggdb-filters input:focus,
  .ggdb-filters select:focus {
    border-color: var(--gv-primary, #ff6a00);
    box-shadow: 0 0 0 3px rgba(255,106,0,.2);
  }
  body.gv-light .gv-search__form,
  body.gv-light .gv-home-hero form,
  body.gv-light .gv-category-hero__copy form,
  body.gv-light .gv-library-hero form,
  body.gv-light .gv-error-page form,
  body.gv-light .ggdb-filters input,
  body.gv-light .ggdb-filters select {
    border-color: #7b878e;
    background: #fff;
  }
}

/* The ten public templates use the same wide canvas as the game-topic page. */
@media (min-width: 1440px) {
  .gv-games-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(18px, 1.4vw, 26px); }
  .gv-library-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(26px, 2vw, 38px); }
  .gv-library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 1.4vw, 26px); }
  .gv-game-section-layout { grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(26px, 2vw, 38px); }
  .gv-game-section-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 1.4vw, 26px); }
}

/* Header and mega menu */
@media (min-width: 1025px) {
  .gv-header, .gv-header.is-sticky {
    height: 72px;
    margin: 24px auto 0;
  }
  .gv-header__bar, .gv-header.is-sticky .gv-header__bar { height: 72px; }
  .gv-header__bar { padding-inline: clamp(22px, 2vw, 36px); gap: clamp(20px, 2vw, 38px); }
  .gv-brand__fallback { font-size: 20px; }
  .gv-brand__mark { width: 46px; height: 43px; }
  .gv-nav-trigger { padding-inline: clamp(12px, 1vw, 20px); font-size: 16px; }
  .gv-search { width: clamp(250px, 20vw, 360px); }
  .gv-search input { font-size: 14px; }
  .gv-mega-wrap { width: min(1040px, calc(100vw - var(--gv-page-space))); }
  .gv-mega__title { height: 44px; font-size: 14px; }
  .gv-menu-group h3 { font-size: 12px; }
  .gv-menu-list a { min-height: 42px; font-size: 14px; }
  .gv-view-all { min-height: 42px; font-size: 13px; }
}

/* Homepage */
@media (min-width: 768px) {
  .gv-home-hero { min-height: 480px; }
  .gv-home-hero__inner { min-height: 455px; grid-template-columns: minmax(0, 1.65fr) minmax(350px, .65fr); }
  .gv-home-hero h1 { max-width: 820px; font-size: clamp(50px, 4.2vw, 76px); }
  .gv-home-hero__copy > strong { font-size: 15px; }
  .gv-home-hero__copy > p { max-width: 680px; font-size: 18px; }
  .gv-home-hero form { max-width: 680px; height: 54px; }
  .gv-home-hero form button { flex-basis: 120px; font-size: 14px; }
  .gv-home-trending { font-size: 12px; gap: 8px; }
  .gv-home-trending b { font-size: 13px; }
  .gv-home-featured--desktop { padding: 30px 68px; }
  .gv-home-featured > span { font-size: 11px; }
  .gv-home-featured h2 { font-size: 34px; }
  .gv-home-featured > b, .gv-home-featured > p { font-size: 14px; }
  .gv-home-featured > a { min-height: 44px; font-size: 13px; }
  .gv-home-body { padding-block: 24px 42px; }
  .gv-home-section header, .gv-home-panel header, .gv-home-faq header { min-height: 52px; padding-inline: 18px; }
  .gv-home-section h2, .gv-home-panel h2, .gv-home-faq h2 { font-size: 17px; }
  .gv-home-section header a, .gv-home-panel header a, .gv-home-faq header a { font-size: 13px; }
  .gv-home-game-track { padding: 0 18px 18px; grid-template-columns: repeat(6, minmax(180px, 1fr)); gap: 15px; }
  .gv-home-game { min-height: 150px; }
  .gv-home-game > b { font-size: 11px; }
  .gv-home-game strong { font-size: 15px; }
  .gv-home-game small { font-size: 12px; }
  .gv-home-dashboard { gap: 18px; margin-top: 18px; }
  .gv-home-guides article { min-height: 94px; padding: 10px 16px; grid-template-columns: 112px 1fr 18px; gap: 15px; }
  .gv-home-thumb { height: 74px; }
  .gv-home-guides article p > a { font-size: 15px; }
  .gv-home-guides article p span b, .gv-home-guides article p span small { font-size: 11px; }
  .gv-home-guides time { font-size: 11px; }
  .gv-home-tiers article { min-height: 105px; grid-template-columns: 180px 1fr; }
  .gv-home-tier-thumb { height: 82px; }
  .gv-tier-chart { height: 82px; }
  .gv-home-tiers article p a { font-size: 14px; }
  .gv-home-tiers article p small { font-size: 11px; }
  .gv-home-codes > div > a { min-height: 55px; }
  .gv-home-codes strong { font-size: 14px; }
  .gv-home-codes small { font-size: 12px; }
  .gv-home-codes > div > a > b { font-size: 10px; }
  .gv-home-database > div a { min-height: 88px; font-size: 13px; }
  .gv-home-updates > div { padding: 0 16px 16px; gap: 14px; }
  .gv-home-updates article { min-height: 88px; grid-template-columns: 98px 1fr 14px; }
  .gv-home-updates .gv-home-thumb { height: 68px; }
  .gv-home-updates time, .gv-home-updates small { font-size: 11px; }
  .gv-home-updates p > a { font-size: 14px; }
  .gv-home-why { padding: 18px; }
  .gv-home-why article { min-height: 88px; grid-template-columns: 48px 1fr; }
  .gv-home-why .gv-icon { width: 38px; height: 38px; }
  .gv-home-why strong { font-size: 15px; }
  .gv-home-why span { font-size: 13px; }
  .gv-home-faq { padding: 0 18px 14px; }
  .gv-home-faq summary { min-height: 48px; font-size: 14px; }
  .gv-home-faq details p { font-size: 13px; }
}

/* Category archive */
@media (min-width: 768px) {
  .gv-category-hero__inner { min-height: 350px; grid-template-columns: 1.35fr .85fr; gap: 40px; }
  .gv-breadcrumbs { font-size: 13px; }
  .gv-category-hero__copy { max-width: 700px; }
  .gv-category-hero__copy h1 { font-size: clamp(48px, 4vw, 72px); }
  .gv-category-hero__copy p { max-width: 620px; font-size: 17px; }
  .gv-category-hero__copy form { max-width: 560px; height: 54px; }
  .gv-category-hero__shortcuts { max-width: 520px; padding: 20px; }
  .gv-category-hero__shortcuts h2, .gv-game-browser h2, .gv-guide-shortcuts > h2 { font-size: 15px; }
  .gv-category-hero__shortcuts > div a { min-height: 60px; }
  .gv-category-hero__shortcuts strong { font-size: 14px; }
  .gv-category-hero__shortcuts small { font-size: 12px; }
  .gv-category-button { min-height: 40px; font-size: 13px; }
  .gv-category__container { padding-block: 28px 44px; }
  .gv-game-browser > header a, .gv-trending header a, .gv-mobile-section-head a { font-size: 13px; }
  .gv-game-browser__track { grid-template-columns: repeat(6, minmax(190px, 1fr)); gap: 15px; }
  .gv-game-card { min-height: 142px; }
  .gv-game-card strong { font-size: 15px; }
  .gv-game-card small { font-size: 12px; }
  .gv-category-filters { min-height: 62px; padding-inline: 16px; }
  .gv-category-filters a, .gv-category-filters button { min-height: 40px; font-size: 13px; }
  .gv-category-grid { grid-template-columns: minmax(0, 2.15fr) minmax(340px, .85fr); gap: 20px; }
  .gv-guide-row { min-height: 126px; grid-template-columns: 220px 1fr 28px; gap: 18px; }
  .gv-guide-row__content h2 { font-size: 18px; }
  .gv-guide-row__content p { font-size: 14px; line-height: 1.5; }
  .gv-guide-row__content > div { font-size: 12px; }
  .gv-guide-row__thumb b { font-size: 11px; }
  .gv-pagination a, .gv-pagination .current { min-width: 40px; height: 40px; font-size: 13px; }
  .gv-trending, .gv-guide-shortcuts { padding: 18px; }
  .gv-trending h2, .gv-mobile-section-head h2 { font-size: 15px; }
  .gv-trending article { min-height: 70px; grid-template-columns: 30px 82px 1fr; }
  .gv-trending article div > a { font-size: 13px; }
  .gv-trending article small { font-size: 11px; }
  .gv-guide-shortcuts > div a { min-height: 42px; font-size: 12px; }
  .gv-guide-shortcuts > div b { font-size: 12px; }
  .gv-category-cta { min-height: 130px; padding: 22px; }
  .gv-category-cta h2 { font-size: 18px; }
  .gv-category-cta p, .gv-category-cta a { font-size: 13px; }
}

/* Game topic */
@media (min-width: 768px) {
  .gv-hub-hero { min-height: 455px; }
  .gv-hub-hero__inner { min-height: 430px; grid-template-columns: minmax(0, 2fr) minmax(350px, .72fr); }
  .gv-hub-breadcrumbs { font-size: 13px; }
  .gv-hub-platforms span { font-size: 12px; }
  .gv-hub-hero h1 { font-size: clamp(50px, 4vw, 72px); }
  .gv-hub-hero__content > p { max-width: 650px; font-size: 17px; }
  .gv-hub-meta dt { font-size: 12px; }
  .gv-hub-meta dd { font-size: 14px; }
  .gv-hub-actions > * { min-width: 165px; height: 46px; font-size: 14px; }
  .gv-hub-overview { padding: 24px; }
  .gv-hub-overview h2, .gv-hub-quick h2, .gv-hub-about h2 { font-size: 14px; }
  .gv-hub-overview > p { font-size: 13px; }
  .gv-hub-overview dl div { min-height: 36px; font-size: 12px; }
  .gv-hub-tabs > div { height: 56px; }
  .gv-hub-tabs a { min-width: 108px; font-size: 12px; }
  .gv-hub-body { padding-block: 30px 44px; grid-template-columns: minmax(0, 2.15fr) minmax(330px, .85fr); gap: 24px; }
  .gv-hub-section { padding: 20px; }
  .gv-hub-section h2, .gv-hub-content h2, .gv-hub-lists h2, .gv-hub-faq h2, .gv-hub-related h2 { font-size: 15px; }
  .gv-hub-section header a, .gv-hub-lists header a, .gv-hub-faq header a, .gv-hub-related header a { font-size: 13px; }
  .gv-hub-card-track { gap: 15px; }
  .gv-hub-card__image { height: 155px; }
  .gv-hub-card__image b { font-size: 11px; }
  .gv-hub-card h3 { margin: 12px 12px 5px; font-size: 15px; }
  .gv-hub-card time { margin: 0 12px 12px; font-size: 11px; }
  .gv-hub-quick, .gv-hub-about { padding: 20px; }
  .gv-hub-quick a { min-height: 42px; font-size: 13px; }
  .gv-hub-quick a b { font-size: 11px; }
  .gv-hub-about { min-height: 170px; }
  .gv-hub-about p, .gv-hub-about a { font-size: 13px; }
  .gv-hub-content, .gv-hub-lists > section, .gv-hub-faq, .gv-hub-related { padding: 20px; }
  .gv-hub-content a { min-height: 112px; }
  .gv-hub-content strong { font-size: 13px; }
  .gv-hub-content small { font-size: 11px; }
  .gv-hub-lists > section > a { min-height: 48px; font-size: 13px; }
  .gv-hub-lists > section > a b, .gv-hub-lists > section > a small { font-size: 10px; }
  .gv-hub-topics div a { font-size: 12px; }
  .gv-hub-faq summary, .gv-hub-faq details p { font-size: 13px; }
  .gv-hub-related > div a { min-height: 118px; }
  .gv-hub-related strong { font-size: 13px; }
  .gv-hub-related small { font-size: 11px; }
  .gv-hub-subscribe { min-height: 88px; }
  .gv-hub-subscribe strong { font-size: 15px; }
  .gv-hub-subscribe small, .gv-hub-subscribe button { font-size: 12px; }
}

/* Article */
@media (min-width: 1400px) {
  .gv-article-container { grid-template-columns: 220px minmax(700px, 1fr) 300px; gap: clamp(20px, 1.7vw, 28px); }
}
@media (min-width: 768px) {
  .gv-article { padding-block: 24px 48px; }
  .gv-article-breadcrumbs { font-size: 13px; }
  .gv-article-left > section, .gv-article-right > section { padding: 20px; }
  .gv-article-left h2, .gv-article-right h2, .gv-article-right header h2 { font-size: 13px; }
  .gv-article-toc > h2 { min-height: 52px; font-size: 13px; }
  .gv-article-toc ol { font-size: 12px; line-height: 1.65; }
  .gv-article-badges span { font-size: 11px; }
  .gv-article-header h1 { font-size: clamp(44px, 3.5vw, 64px); }
  .gv-article-header > p { max-width: 850px; font-size: 17px; }
  .gv-article-byline { font-size: 13px; }
  .gv-article-featured { height: clamp(380px, 30vw, 540px); }
  .gv-quick-answer strong { font-size: 13px; }
  .gv-quick-answer p { font-size: 16px; }
  .gv-article-content { font-size: 18px; line-height: 1.75; }
  .gv-article-content h2 { margin-top: 34px; font-size: 30px; }
  .gv-article-content h3 { margin-top: 28px; font-size: 23px; }
  .gv-article-content p { margin-bottom: 20px; }
  .gv-article-content figcaption { font-size: 13px; }
  .gv-article-content th, .gv-article-content td { padding: 14px; }
  .gv-article-about > div { grid-template-columns: 125px 1fr; }
  .gv-article-about p, .gv-article-info dl div { font-size: 12px; }
  .gv-article-right section > header a { font-size: 11px; }
  .gv-article-related article, .gv-article-trending article { min-height: 76px; }
  .gv-article-related article { grid-template-columns: 100px 1fr; }
  .gv-article-trending article { grid-template-columns: 28px 78px 1fr; }
  .gv-related-thumb { height: 64px; }
  .gv-article-related article p > a, .gv-article-trending article p > a { font-size: 13px; }
  .gv-article-related time, .gv-article-trending small { font-size: 11px; }
  .gv-article-tags a { font-size: 11px; }
}

@media (min-width: 961px) {
  .gv-article-right {
    position: sticky;
    top: 88px;
    align-self: start;
    max-height: calc(100vh - 108px);
    max-height: calc(100dvh - 108px);
    padding-right: 4px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #3d464d transparent;
  }
  .admin-bar .gv-article-right {
    top: 120px;
    max-height: calc(100vh - 140px);
    max-height: calc(100dvh - 140px);
  }
}

/* Desktop footer */
@media (min-width: 768px) {
  .gv-footer { padding-inline: var(--gv-wide-gutter); }
  .gv-footer-desktop__main { min-height: 270px; padding-block: 32px 26px; grid-template-columns: minmax(270px, 1.25fr) repeat(3, minmax(155px, .72fr)) minmax(340px, 1.35fr); }
  .gv-footer-desktop__about > p { max-width: 290px; font-size: 14px; }
  .gv-footer-desktop__column h2, .gv-footer-desktop__newsletter h2 { font-size: 15px; }
  .gv-footer-desktop__column a { font-size: 14px; }
  .gv-footer-desktop__newsletter > p { font-size: 14px; }
  .gv-footer-desktop__newsletter input[type="email"] { font-size: 14px; }
  .gv-footer-desktop__newsletter small { font-size: 12px; }
  .gv-footer-desktop__bottom { min-height: 72px; }
  .gv-footer-desktop__bottom > p, .gv-footer-desktop__bottom nav a { font-size: 13px; }
}

/* Tablet: use the available width without crowding sidebars. */
@media (min-width: 768px) and (max-width: 1399px) {
  :root {
    --gv-wide-gutter: clamp(20px, 2.5vw, 34px);
    --gv-page-space: clamp(40px, 5vw, 68px);
  }
  .gv-home-dashboard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gv-category-grid { grid-template-columns: minmax(0, 1.6fr) minmax(300px, .8fr); }
  .gv-hub-body { grid-template-columns: minmax(0, 1.55fr) minmax(290px, .8fr); }
  .gv-article-container { grid-template-columns: minmax(0, 1fr) minmax(270px, .42fr); }
  .gv-article-left { display: none; }
  .gv-article-toc--mobile { display: block; margin-bottom: 15px; }
  .gv-footer-desktop__main { grid-template-columns: minmax(210px, 1fr) repeat(3, minmax(120px, .65fr)) minmax(270px, 1.15fr); }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .gv-article-container { grid-template-columns: 1fr; }
  .gv-article-breadcrumbs, .gv-article-main, .gv-article-right { grid-column: 1; }
  .gv-article-right { position: static; max-height: none; padding-right: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; overflow: visible; }
  .gv-article-right > section { margin-top: 0 !important; }
}

@media (min-width: 768px) and (max-width: 920px) {
  .gv-category-grid { grid-template-columns: 1fr; }
  .gv-category-sidebar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .gv-category-sidebar > * { margin-top: 0 !important; }
  .gv-hub-body { grid-template-columns: 1fr; }
  .gv-hub-body > * { grid-column: 1 / -1; }
  .gv-hub-side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .gv-hub-side > section { margin-top: 0 !important; }
  .gv-article-container { grid-template-columns: 1fr; }
  .gv-article-breadcrumbs, .gv-article-main, .gv-article-right { grid-column: 1; }
  .gv-article-right { position: static; max-height: none; padding-right: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; overflow: visible; }
  .gv-article-right > section { margin-top: 0 !important; }
  .gv-footer-desktop__main { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 28px; }
  .gv-footer-desktop__about { padding-right: 18px; }
  .gv-footer-desktop__column { padding-inline: 16px; }
  .gv-footer-desktop__newsletter { grid-column: 1 / -1; margin-left: 0; }
}

/* Mobile header: remove phantom admin-bar offsets and dock flush while scrolling. */
@media (max-width: 1024px) {
  .gv-header,
  .gv-header.is-sticky,
  .admin-bar .gv-header {
    top: var(--gv-mobile-sticky-top, 0px);
    width: 100%;
    height: 64px;
    margin-top: 0;
  }
  .gv-header__bar,
  .gv-header.is-sticky .gv-header__bar {
    height: 64px;
    border-right: 0;
    border-left: 0;
    border-radius: 0 0 10px 10px;
  }
  .gv-header.is-sticky .gv-user-menu,
  .admin-bar .gv-header.is-sticky .gv-user-menu {
    top: calc(var(--gv-mobile-sticky-top, 0px) + 64px);
  }
}

/* Phones */
@media (max-width: 767px) {
  :root { --gv-wide-gutter: 14px; --gv-page-space: 28px; }
  html, body { font-size: 16px; }
  .gv-header, .gv-header.is-sticky { width: 100%; }
  .gv-home-container, .gv-category-hero__inner, .gv-category__container, .gv-hub-container, .gv-demo-hero { width: calc(100% - 28px); }
  .gv-article { padding-inline: 14px; }

  .gv-home-hero__copy > strong { font-size: 12px; }
  .gv-home-hero h1 { max-width: 92%; font-size: clamp(36px, 10vw, 48px); line-height: 1.05; }
  .gv-home-hero__copy > p { max-width: 78%; font-size: 15px; line-height: 1.55; }
  .gv-home-hero form { height: 48px; }
  .gv-home-hero form button { flex-basis: 104px; font-size: 14px; }
  .gv-home-section header, .gv-home-panel header, .gv-home-faq header { min-height: 50px; }
  .gv-home-section h2, .gv-home-panel h2, .gv-home-faq h2 { font-size: 16px; }
  .gv-home-section header a, .gv-home-panel header a, .gv-home-faq header a { font-size: 13px; }
  .gv-home-game strong { font-size: 15px; }
  .gv-home-game small { font-size: 12px; }
  .gv-home-guides article { min-height: 88px; grid-template-columns: 104px 1fr 18px; }
  .gv-home-thumb { height: 70px; }
  .gv-home-guides article p > a { font-size: 14px; }
  .gv-home-guides article p span b, .gv-home-guides article p span small, .gv-home-guides time { font-size: 10px; }
  .gv-home-featured--mobile h2 { font-size: 24px; }
  .gv-home-featured--mobile > p { max-width: 100%; font-size: 13px; }
  .gv-home-codes strong, .gv-home-upcoming strong { font-size: 13px; }
  .gv-home-codes small, .gv-home-upcoming span, .gv-home-upcoming time { font-size: 11px; }
  .gv-home-database > div a { font-size: 12px; }
  .gv-home-updates p > a { font-size: 13px; }
  .gv-home-updates time, .gv-home-updates small { font-size: 11px; }
  .gv-home-why strong { font-size: 14px; }
  .gv-home-why span { font-size: 12px; }
  .gv-home-faq summary { min-height: 46px; font-size: 14px; }
  .gv-home-faq details p { font-size: 13px; }

  .gv-breadcrumbs, .gv-article-breadcrumbs, .gv-hub-breadcrumbs { font-size: 12px; }
  .gv-category-hero__copy { max-width: 78%; }
  .gv-category-hero__copy h1 { font-size: clamp(36px, 10vw, 46px); }
  .gv-category-hero__copy p { font-size: 14px; }
  .gv-category-hero__copy form { height: 48px; }
  .gv-game-browser h2, .gv-mobile-section-head h2 { font-size: 16px; }
  .gv-game-browser > header a, .gv-mobile-section-head a { font-size: 13px; }
  .gv-game-card strong { font-size: 15px; }
  .gv-game-card small { font-size: 12px; }
  .gv-category-filters a, .gv-category-filters button { min-height: 42px; font-size: 13px; }
  .gv-guide-row__content h2 { font-size: 15px; }
  .gv-guide-row__content p { font-size: 13px; }
  .gv-guide-row__content > div { font-size: 11px; }
  .gv-trending h2, .gv-guide-shortcuts > h2 { font-size: 16px; }
  .gv-trending article div > a { font-size: 13px; }
  .gv-trending article small { font-size: 11px; }
  .gv-guide-shortcuts > div a, .gv-guide-shortcuts > div b { font-size: 12px; }
  .gv-category-cta h2 { font-size: 18px; }
  .gv-category-cta p, .gv-category-cta a { font-size: 13px; }

  .gv-hub-hero h1 { font-size: clamp(38px, 10vw, 48px); }
  .gv-hub-hero__content > p { max-width: 72%; font-size: 14px; }
  .gv-hub-meta dt { font-size: 11px; }
  .gv-hub-meta dd { font-size: 13px; }
  .gv-hub-actions > * { min-height: 46px; font-size: 13px; }
  .gv-hub-tabs a { min-width: 98px; font-size: 12px; }
  .gv-hub-section h2, .gv-hub-content h2, .gv-hub-lists h2, .gv-hub-faq h2, .gv-hub-related h2 { font-size: 15px; }
  .gv-hub-section header a, .gv-hub-lists header a, .gv-hub-faq header a, .gv-hub-related header a { font-size: 12px; }
  .gv-hub-card h3 { font-size: 14px; }
  .gv-hub-card time { font-size: 11px; }
  .gv-hub-content strong, .gv-hub-lists > section > a, .gv-hub-quick a { font-size: 13px; }
  .gv-hub-content small, .gv-hub-lists > section > a small { font-size: 11px; }
  .gv-hub-about p, .gv-hub-about a, .gv-hub-faq summary, .gv-hub-faq details p { font-size: 13px; }
  .gv-hub-related strong { font-size: 13px; }
  .gv-hub-related small { font-size: 11px; }

  .gv-article-header h1 { font-size: clamp(34px, 9vw, 46px); }
  .gv-article-header > p { font-size: 15px; }
  .gv-article-badges span { font-size: 10px; }
  .gv-article-byline { font-size: 12px; }
  .gv-article-featured { height: auto; aspect-ratio: 16 / 9; }
  .gv-quick-answer strong { font-size: 12px; }
  .gv-quick-answer p { font-size: 15px; }
  .gv-article-toc > h2 { min-height: 50px; font-size: 16px; }
  .gv-article-toc ol { font-size: 13px; line-height: 1.65; }
  .gv-article-content { font-size: 16px; line-height: 1.72; }
  .gv-article-content h2 { font-size: 25px; }
  .gv-article-content h3 { font-size: 20px; }
  .gv-article-content figcaption { font-size: 12px; }
  .gv-article-left h2, .gv-article-right h2, .gv-article-right header h2 { font-size: 14px; }
  .gv-article-about p, .gv-article-info dl div { font-size: 13px; }
  .gv-article-related article p > a, .gv-article-trending article p > a { font-size: 13px; }
  .gv-article-related time, .gv-article-trending small, .gv-article-tags a { font-size: 11px; }

  .gv-footer-mobile p, .gv-footer-column li a { font-size: 13px; }
  .gv-footer-column > button { min-height: 52px; font-size: 15px; }
  .gv-mobile-quick h2 { font-size: 17px; }
  .gv-mobile-quick a { min-height: 96px; font-size: 13px; }
  .gv-footer { padding-bottom: max(18px, env(safe-area-inset-bottom)); }
  .gv-footer-bottom {
    padding: 18px;
    display: grid;
    grid-template-columns: 1fr 48px;
    align-items: center;
    gap: 16px 12px;
  }
  .gv-footer-bottom nav {
    grid-column: 1 / -1;
    grid-row: 1;
    order: 0;
  }
  .gv-copyright {
    grid-column: 1;
    grid-row: 2;
    order: 0;
    text-align: left;
  }
  .gv-footer-bottom .gv-back-top {
    position: static;
    grid-column: 2;
    grid-row: 2;
    width: 48px;
    height: 48px;
    justify-self: end;
    border: 1px solid rgba(255, 106, 0, .55);
    border-radius: 8px;
    box-shadow: none;
  }
  .gv-footer-bottom nav a, .gv-copyright { font-size: 13px; }
}

/* Very narrow devices: prevent control and card overflow. */
@media (max-width: 380px) {
  :root { --gv-wide-gutter: 12px; --gv-page-space: 24px; }
  .gv-home-container, .gv-category-hero__inner, .gv-category__container, .gv-hub-container, .gv-demo-hero { width: calc(100% - 24px); }
  .gv-article { padding-inline: 12px; }
  .gv-home-hero__copy > p, .gv-hub-hero__content > p { max-width: 88%; }
  .gv-home-guides article { grid-template-columns: 88px 1fr 14px; gap: 8px; }
  .gv-home-side-panels { grid-template-columns: 1fr; }
  .gv-hub-actions { display: grid; grid-template-columns: 1fr; }
  .gv-hub-actions > * { width: 100%; }
  .gv-article-info dl { grid-template-columns: 1fr; }
}
