:root {
    --tg007-bg: #12171c;
    --tg007-surface: #f3f6f8;
    --tg007-surface-strong: #ffffff;
    --tg007-surface-soft: #e9eef2;
    --tg007-text: #1d2730;
    --tg007-muted: #667481;
    --tg007-line: #d8e0e6;
    --tg007-dark: #171d23;
    --tg007-dark-2: #222b33;
    --tg007-blue: #3d7ead;
    --tg007-blue-dark: #285f87;
    --tg007-red: #5b86a6;
    --tg007-red-dark: #3f657f;
    --tg007-shadow: 0 24px 70px rgba(0, 0, 0, .28);
    --tg007-card-shadow: 0 14px 38px rgba(28, 36, 44, .08);
    --tg007-radius-sm: .7rem;
    --tg007-radius: 1.05rem;
    --tg007-radius-lg: 1.55rem;
    --tg007-content-width: 1320px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

/* Build 0119 — canonical global chrome owner. */
body.tg-modern-body {
    margin: 0 !important;
    padding: 0 !important;
    min-width: 320px;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    color: var(--tg007-text);
    background-color: var(--tg007-bg);
    /* Build 0143 — render the source outer background image without tint/gradient overlays. */
    background-image: url('../../../cms/imgs/main/bg.jpg');
    background-position: top center;
    background-size: cover;
    background-attachment: fixed;
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.tg-modern-body a {
    color: inherit;
}

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.tg-modern-body a:focus-visible,
body.tg-modern-body button:focus-visible,
body.tg-modern-body summary:focus-visible {
    outline: 3px solid rgba(47, 110, 165, .4);
    outline-offset: 3px;
}

.tg-skip-link {
    position: fixed;
    z-index: 9999;
    top: 10px;
    left: 10px;
    transform: translateY(-160%);
    padding: .7rem 1rem;
    border-radius: .6rem;
    background: #fff;
    color: #111;
    font-weight: 700;
    text-decoration: none;
}

.tg-skip-link:focus {
    transform: translateY(0);
}

.tg-shell-width {
    width: min(calc(100% - 48px), var(--tg007-content-width));
    margin-inline: auto;
}

.tg-preview-ribbon {
    position: relative;
    z-index: 5;
    color: #dfe5ea;
    background: rgba(9, 11, 13, .92);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.tg-preview-ribbon .tg-shell-width {
    padding-block: .52rem;
}

/* Build 0119 — canonical global chrome owner. */
.tg-site-shell {
    flex: 1 0 auto;
    width: min(calc(100% - 32px), 1440px);
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    margin-block: 0 !important;
    margin-inline: auto !important;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: var(--tg007-surface);
    box-shadow:
        -24px 0 42px -34px rgba(0, 0, 0, .9),
        24px 0 42px -34px rgba(0, 0, 0, .9);
}

.tg-header {
    position: relative;
    z-index: 20;
}

/* Build 0119 — canonical global chrome owner. */
.tg-brand-band {
    position: relative;
    z-index: 60;
    overflow: visible;
    color: #f7f9fb;
    background-color: #1b2024;
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, repeat-x;
    background-position: right center, left top;
    background-size: auto 112%, auto 100%;
}

.tg-brand-band::after {
    position: absolute;
    inset: 0 0 0 auto;
    width: min(44vw, 560px);
    content: "";
    pointer-events: none;
    opacity: .34;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 150% no-repeat;
    mix-blend-mode: screen;
}

.tg-brand-row {
    position: relative;
    z-index: 2;
    min-height: 112px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.tg-brand {
    display: inline-flex;
    align-items: center;
    gap: 1.15rem;
    min-width: 0;
    color: #fff;
    text-decoration: none;
}

.tg-brand img {
    width: 245px;
    height: auto;
    max-width: 52vw;
    filter: drop-shadow(0 9px 20px rgba(0, 0, 0, .28));
}

.tg-brand-copy {
    display: none;
    padding-left: 1.15rem;
    border-left: 1px solid rgba(255, 255, 255, .16);
}

.tg-brand-copy strong,
.tg-brand-copy small {
    display: block;
}

.tg-brand-copy strong {
    font-size: .94rem;
    letter-spacing: .16em;
}

.tg-brand-copy small {
    margin-top: .2rem;
    color: #aeb8c2;
    font-size: .73rem;
    letter-spacing: .06em;
}

.tg-account-area {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .45rem 1rem;
    font-size: .82rem;
}

.tg-account-area a {
    color: #dfe5ea;
    font-weight: 700;
    text-decoration: none;
}

.tg-account-area a:hover {
    color: #fff;
}

.tg-account-greeting {
    color: #aeb8c2;
}

.tg-account-greeting strong {
    color: #fff;
}

.tg-account-button {
    padding: .56rem .88rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
}

.tg-account-button:hover {
    background: rgba(255, 255, 255, .14);
}

/* Build 0119 — canonical global chrome owner. */
.tg-nav-band {
    position: relative;
    z-index: 50;
    border-top: 0 !important;
    border-bottom: 1px solid #282828;
    background: #161616;
}

.tg-nav-row {
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.tg-primary-nav {
    display: flex;
    align-items: center;
    gap: .2rem;
}

.tg-primary-nav > a,
.tg-nav-more > summary {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 66px;
    padding: 0 .95rem;
    color: #4b535c;
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
    cursor: pointer;
    list-style: none;
}

.tg-nav-more > summary::-webkit-details-marker {
    display: none;
}

.tg-nav-more > summary::after {
    width: .42rem;
    height: .42rem;
    margin: -.2rem 0 0 .5rem;
    border-right: 1.7px solid currentColor;
    border-bottom: 1.7px solid currentColor;
    content: "";
    transform: rotate(45deg);
}

.tg-primary-nav > a::after,
.tg-nav-more > summary::before {
    position: absolute;
    right: .9rem;
    bottom: 0;
    left: .9rem;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: linear-gradient(90deg, var(--tg007-red), #4f89b2);
    content: "";
    opacity: 0;
    transform: scaleX(.3);
    transition: .18s ease;
}

.tg-primary-nav > a:hover,
.tg-primary-nav > a.is-active,
.tg-nav-more > summary:hover,
.tg-nav-more[open] > summary {
    color: #171a1e;
}

.tg-primary-nav > a:hover::after,
.tg-primary-nav > a.is-active::after,
.tg-nav-more > summary:hover::before,
.tg-nav-more[open] > summary::before {
    opacity: 1;
    transform: scaleX(1);
}

.tg-nav-more {
    position: relative;
}

.tg-nav-dropdown {
    position: absolute;
    top: calc(100% - 4px);
    left: .2rem;
    min-width: 220px;
    padding: .55rem;
    border: 1px solid var(--tg007-line);
    border-radius: .85rem;
    background: #fff;
    box-shadow: 0 18px 44px rgba(18, 26, 34, .16);
}

.tg-nav-dropdown a {
    display: block;
    padding: .7rem .8rem;
    border-radius: .55rem;
    color: #3d454e;
    font-size: .86rem;
    font-weight: 650;
    text-decoration: none;
}

.tg-nav-dropdown a:hover {
    color: var(--tg007-blue-dark);
    background: #f0f4f7;
}

.tg-search-link {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .58rem .8rem;
    border: 1px solid #d9dfe5;
    border-radius: 999px;
    color: #4c5660;
    background: #f8fafb;
    font-size: .82rem;
    font-weight: 750;
    text-decoration: none;
}

.tg-search-link:hover {
    border-color: #c7d1da;
    color: var(--tg007-blue-dark);
    background: #fff;
}

.tg-search-link svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.tg-nav-toggle {
    display: none;
    width: 44px;
    height: 44px;
    padding: 10px;
    border: 1px solid var(--tg007-line);
    border-radius: .7rem;
    background: #fff;
}

.tg-nav-toggle > span:not(.visually-hidden) {
    display: block;
    width: 100%;
    height: 2px;
    margin: 4px 0;
    border-radius: 99px;
    background: #343b43;
}

.tg-maintenance-bypass-wrap {
    padding-top: .65rem;
    padding-bottom: .65rem;
}

.tg-maintenance-bypass-alert {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    min-height: 48px;
    padding: .55rem .65rem .55rem .7rem;
    overflow: hidden;
    border: 1px solid rgba(61, 126, 173, .42);
    border-left: 3px solid var(--tg007-blue);
    border-radius: .55rem;
    color: #dbe7ef;
    background:
        linear-gradient(90deg, rgba(61, 126, 173, .12), transparent 46%),
        #18232c;
    box-shadow: 0 8px 22px rgba(13, 24, 33, .12);
    font-size: .8rem;
}

.tg-maintenance-bypass-icon {
    display: inline-grid;
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid rgba(94, 173, 225, .28);
    border-radius: .5rem;
    color: #8ec9ee;
    background: rgba(61, 126, 173, .14);
}

.tg-maintenance-bypass-icon svg {
    width: 1.08rem;
    height: 1.08rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tg-maintenance-bypass-copy {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: .55rem;
}

.tg-maintenance-bypass-kicker {
    flex: 0 0 auto;
    color: #79bce7;
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .105em;
    text-transform: uppercase;
}

.tg-maintenance-bypass-message {
    min-width: 0;
    color: #adbbc6;
    line-height: 1.35;
}

.tg-maintenance-bypass-message strong {
    color: #f4f8fb;
    font-weight: 700;
}

.tg-maintenance-bypass-action {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-height: 32px;
    padding: .38rem .55rem;
    border: 1px solid rgba(110, 181, 226, .28);
    border-radius: .45rem;
    color: #cfe8f8 !important;
    background: rgba(61, 126, 173, .12);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}

.tg-maintenance-bypass-action svg {
    width: .9rem;
    height: .9rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tg-maintenance-bypass-action:hover {
    border-color: rgba(110, 181, 226, .5);
    color: #fff !important;
    background: rgba(61, 126, 173, .24);
}

.tg-validation-wrap {
    padding-top: 1rem;
}

.tg-validation-alert {
    padding: .9rem 1rem;
    border: 1px solid #f1c4cb;
    border-radius: .8rem;
    color: #742236;
    background: #fff2f4;
    font-size: .9rem;
}

.tg-hero {
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid #dce1e6;
    background:
        radial-gradient(circle at 16% 16%, rgba(47, 110, 165, .12), transparent 24rem),
        radial-gradient(circle at 84% 12%, rgba(61, 112, 149, .09), transparent 22rem),
        linear-gradient(145deg, #ffffff 0%, #f2f4f6 62%, #e8ecef 100%);
}

.tg-hero::after {
    position: absolute;
    right: -110px;
    bottom: -170px;
    width: 520px;
    height: 520px;
    border: 1px solid rgba(47, 110, 165, .12);
    border-radius: 50%;
    box-shadow: inset 0 0 0 45px rgba(47, 110, 165, .02), inset 0 0 0 90px rgba(61, 112, 149, .018);
    content: "";
}

.tg-hero-grid {
    position: relative;
    z-index: 2;
    min-height: 560px;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(330px, .75fr);
    align-items: center;
    gap: clamp(2.5rem, 7vw, 6.5rem);
    padding-block: clamp(4.2rem, 8vw, 7.1rem);
}

.tg-eyebrow,
.tg-kicker {
    display: inline-block;
    color: var(--tg007-red);
    font-size: .74rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tg-hero-copy h1 {
    max-width: 800px;
    margin: .9rem 0 1.3rem;
    color: #22272d;
    font-size: clamp(3.2rem, 6.1vw, 6.4rem);
    font-weight: 850;
    letter-spacing: -.055em;
    line-height: .9;
}

.tg-hero-copy h1 span {
    color: transparent;
    background: linear-gradient(90deg, var(--tg007-blue-dark), var(--tg007-blue) 52%, var(--tg007-red));
    -webkit-background-clip: text;
    background-clip: text;
}

.tg-hero-copy > p {
    max-width: 680px;
    margin: 0;
    color: #5e6873;
    font-size: clamp(1.08rem, 1.7vw, 1.35rem);
    line-height: 1.55;
}

.tg-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2rem;
}

.tg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .76rem 1.15rem;
    border: 1px solid transparent;
    border-radius: .78rem;
    font-size: .88rem;
    font-weight: 800;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.tg-btn:hover {
    transform: translateY(-1px);
}

.tg-btn-primary {
    color: #fff !important;
    border-color: var(--tg007-blue-dark);
    background: linear-gradient(135deg, var(--tg007-blue), var(--tg007-blue-dark));
    box-shadow: 0 10px 24px rgba(47, 110, 165, .22);
}

.tg-btn-primary:hover {
    box-shadow: 0 14px 30px rgba(47, 110, 165, .28);
}

.tg-btn-secondary {
    border-color: #d1d8de;
    color: #333a42;
    background: rgba(255, 255, 255, .72);
}

.tg-btn-secondary:hover {
    border-color: #bcc7d0;
    background: #fff;
}

/* Quiet shared action: secondary without falling back to an unstyled link. */
.tg-btn-quiet,
.tg-btn-quiet:visited {
    border-color: transparent;
    color: var(--tg007-blue-dark) !important;
    background: transparent;
    box-shadow: none;
}

.tg-btn-quiet:hover,
.tg-btn-quiet:focus-visible {
    border-color: #c7d2da;
    color: #1f557b !important;
    background: #edf3f6;
    box-shadow: none;
}

.tg-btn-dark {
    color: #fff !important;
    background: #1e242a;
}

.tg-hero-panel {
    position: relative;
    overflow: hidden;
    padding: clamp(1.6rem, 3vw, 2.25rem);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--tg007-radius-lg);
    color: #f7f9fb;
    background:
        linear-gradient(145deg, rgba(39, 44, 49, .97), rgba(22, 25, 29, .98)),
        url('../../../cms/imgs/main/headerbar_special.png') right top / 72% auto no-repeat;
    box-shadow: 0 28px 55px rgba(21, 26, 31, .24);
}

.tg-hero-panel::after {
    position: absolute;
    top: -35%;
    right: -30%;
    width: 310px;
    height: 310px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(61, 112, 149, .22), transparent 65%);
    content: "";
}

.tg-hero-panel-kicker {
    position: relative;
    z-index: 2;
    color: #9fb9cf;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tg-hero-panel h2 {
    position: relative;
    z-index: 2;
    max-width: 340px;
    margin: .75rem 0 1.5rem;
    font-size: clamp(1.55rem, 2.5vw, 2.15rem);
    font-weight: 760;
    letter-spacing: -.025em;
    line-height: 1.08;
}

.tg-stat-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.tg-stat-grid a {
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .9rem;
    color: #fff;
    background: rgba(255, 255, 255, .055);
    text-decoration: none;
    transition: .16s ease;
}

.tg-stat-grid a:hover {
    border-color: rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .09);
    transform: translateY(-1px);
}

.tg-stat-grid strong,
.tg-stat-grid span {
    display: block;
}

.tg-stat-grid strong {
    font-size: 1.65rem;
    line-height: 1;
}

.tg-stat-grid span {
    margin-top: .35rem;
    color: #aeb8c2;
    font-size: .76rem;
    font-weight: 700;
}

.tg-hero-panel-note {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-top: 1.2rem;
    color: #adb7c1;
    font-size: .76rem;
}

.tg-live-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: #59bb7b;
    box-shadow: 0 0 0 5px rgba(89, 187, 123, .1);
}

.tg-section {
    padding-block: clamp(4rem, 7vw, 6.2rem);
    background: var(--tg007-surface);
}

.tg-section-tight {
    padding-top: clamp(3.6rem, 6vw, 5rem);
}

.tg-section-white {
    border-top: 1px solid #e4e8ec;
    border-bottom: 1px solid #e4e8ec;
    background: #fff;
}

.tg-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.9rem;
}

.tg-section-heading-compact {
    margin-bottom: 1.2rem;
}

.tg-section-heading h2 {
    margin: .28rem 0 0;
    color: #242a30;
    font-size: clamp(1.9rem, 3vw, 2.7rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.tg-section-heading > p {
    max-width: 380px;
    margin: 0 0 .22rem;
    color: var(--tg007-muted);
    text-align: right;
}

.tg-text-link {
    color: var(--tg007-blue-dark) !important;
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.tg-text-link:hover {
    color: var(--tg007-red) !important;
}

.tg-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.tg-feature-card {
    position: relative;
    min-height: 250px;
    display: flex;
    flex-direction: column;
    padding: 1.45rem;
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius);
    color: var(--tg007-text);
    background: #fff;
    box-shadow: 0 8px 22px rgba(26, 34, 42, .035);
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.tg-feature-card::before {
    position: absolute;
    top: 0;
    right: 1.45rem;
    left: 1.45rem;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, var(--tg007-blue), var(--tg007-red));
    content: "";
    opacity: .78;
}

.tg-feature-card:hover {
    border-color: #cad3db;
    box-shadow: var(--tg007-card-shadow);
    transform: translateY(-4px);
}

.tg-feature-icon {
    width: 43px;
    height: 43px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .7rem;
    color: #fff;
    background: #252b31;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .05em;
}

.tg-feature-card h3 {
    margin: 1.25rem 0 .55rem;
    color: #242a30;
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.tg-feature-card p {
    margin: 0;
    color: var(--tg007-muted);
    font-size: .9rem;
}

.tg-card-link {
    margin-top: auto;
    padding-top: 1.2rem;
    color: var(--tg007-blue-dark);
    font-size: .82rem;
    font-weight: 800;
}

.tg-news-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr);
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tg-news-card {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 1rem;
    padding: 1.35rem;
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius);
    background: #fbfcfd;
}

.tg-news-card-featured {
    grid-row: 1 / span 2;
    grid-template-columns: 112px minmax(0, 1fr);
    align-content: center;
    padding: clamp(1.8rem, 3vw, 2.6rem);
    background:
        radial-gradient(circle at 90% 10%, rgba(47, 110, 165, .07), transparent 20rem),
        #fbfcfd;
}

.tg-news-icon-wrap {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border: 1px solid #e2e7eb;
    border-radius: .9rem;
    background: #fff;
}

.tg-news-card-featured .tg-news-icon-wrap {
    width: 112px;
    height: 112px;
}

.tg-news-icon-wrap img {
    max-width: 72%;
    max-height: 72%;
}

.tg-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .8rem;
    color: #79838d;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.tg-meta span:first-child {
    color: var(--tg007-red);
}

.tg-news-card h3 {
    margin: .55rem 0 .55rem;
    color: #252a30;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.25;
}

.tg-news-card-featured h3 {
    font-size: clamp(1.75rem, 2.7vw, 2.55rem);
    line-height: 1.08;
}

.tg-news-card h3 a {
    text-decoration: none;
}

.tg-news-card h3 a:hover {
    color: var(--tg007-blue-dark);
}

.tg-news-card p {
    margin: 0;
    color: var(--tg007-muted);
    font-size: .86rem;
}

.tg-news-card-featured p {
    font-size: .97rem;
    line-height: 1.65;
}

.tg-news-footer {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    margin-top: 1rem;
    color: #7c858f;
    font-size: .74rem;
}

.tg-community-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .7fr);
    align-items: stretch;
    gap: 1.25rem;
}

.tg-topic-list,
.tg-community-card,
.tg-resource-panel {
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius);
    background: #fff;
}

.tg-topic-list {
    overflow: hidden;
}

.tg-topic-row {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #e9edf0;
    color: #30363d;
    text-decoration: none;
    transition: background .15s ease;
}

.tg-topic-row:last-child {
    border-bottom: 0;
}

.tg-topic-row:hover {
    background: #f8fafb;
}

.tg-topic-marker {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--tg007-blue);
    box-shadow: 0 0 0 4px rgba(47, 110, 165, .08);
}

.tg-topic-main strong,
.tg-topic-main small,
.tg-topic-stats strong,
.tg-topic-stats small {
    display: block;
}

.tg-topic-main strong {
    overflow: hidden;
    color: #2f353c;
    font-size: .9rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tg-topic-main small,
.tg-topic-stats small {
    margin-top: .18rem;
    color: #828b94;
    font-size: .72rem;
}

.tg-topic-stats {
    min-width: 62px;
    text-align: right;
}

.tg-topic-stats strong {
    color: #3b424a;
    font-size: .92rem;
}

.tg-community-card {
    position: relative;
    overflow: hidden;
    padding: 1.8rem;
    color: #f6f8fa;
    border-color: #242a30;
    background:
        radial-gradient(circle at 100% 0%, rgba(61, 112, 149, .22), transparent 17rem),
        linear-gradient(145deg, #2a3036, #1c2025);
}

.tg-community-card h2 {
    margin: .45rem 0 .45rem;
    font-size: 2.2rem;
    font-weight: 830;
    letter-spacing: -.04em;
}

.tg-community-card p {
    color: #b4bec8;
    font-size: .86rem;
}

.tg-community-card .tg-kicker {
    color: #9fb9cf;
}

.tg-online-names {
    min-height: 72px;
    margin: 1.35rem 0;
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: .8rem;
    color: #d9e0e6;
    background: rgba(255, 255, 255, .045);
    font-size: .78rem;
    line-height: 1.6;
}

.tg-resource-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.tg-resource-panel {
    overflow: hidden;
}

.tg-resource-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
    border-bottom: 1px solid #e5e9ed;
    background: #f8fafb;
}

.tg-resource-panel-head h3 {
    margin: 0;
    font-size: .98rem;
    font-weight: 800;
}

.tg-resource-panel-head a {
    color: var(--tg007-blue-dark);
    font-size: .74rem;
    font-weight: 800;
    text-decoration: none;
}

.tg-resource-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .8rem;
    padding: .95rem 1.15rem;
    border-bottom: 1px solid #edf0f2;
    color: #30363c;
    text-decoration: none;
}

.tg-resource-row:last-child {
    border-bottom: 0;
}

.tg-resource-row:hover {
    background: #fbfcfd;
}

.tg-resource-badge {
    min-width: 44px;
    padding: .34rem .4rem;
    border-radius: .48rem;
    color: #fff;
    background: var(--tg007-blue-dark);
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-align: center;
}

.tg-resource-badge-code {
    background: var(--tg007-red-dark);
}

.tg-resource-main strong,
.tg-resource-main small {
    display: block;
}

.tg-resource-main strong {
    overflow: hidden;
    font-size: .84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tg-resource-main small,
.tg-resource-date {
    color: #818a93;
    font-size: .7rem;
}

.tg-resource-main small {
    margin-top: .16rem;
}

.tg-resource-date {
    text-align: right;
    white-space: nowrap;
}

.tg-screenshot-section {
    color: #f5f7f9;
    background:
        radial-gradient(circle at 12% 0%, rgba(47, 110, 165, .18), transparent 22rem),
        radial-gradient(circle at 92% 100%, rgba(61, 112, 149, .16), transparent 24rem),
        linear-gradient(145deg, #252a2f, #181b1f);
}

.tg-section-heading-light h2 {
    color: #f7f9fb;
}

.tg-section-heading-light .tg-kicker {
    color: #9db8cf;
}

.tg-section-heading-light .tg-text-link {
    color: #cbdbe8 !important;
}

.tg-screenshot-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .8rem;
}

.tg-screenshot-card {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .9rem;
    color: #fff;
    background: rgba(255, 255, 255, .045);
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.tg-screenshot-card:hover {
    border-color: rgba(255, 255, 255, .2);
    background: rgba(255, 255, 255, .07);
    transform: translateY(-3px);
}

.tg-screenshot-card img {
    width: 100%;
    aspect-ratio: 16 / 10;
    display: block;
    object-fit: cover;
    background: #111418;
}

.tg-screenshot-card > span {
    display: block;
    padding: .72rem .78rem .78rem;
}

.tg-screenshot-card strong,
.tg-screenshot-card small {
    display: block;
}

.tg-screenshot-card strong {
    overflow: hidden;
    font-size: .76rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tg-screenshot-card small {
    margin-top: .2rem;
    color: #aab4be;
    font-size: .65rem;
}

.tg-empty-card {
    padding: 1.2rem;
    border: 1px dashed #d7dde3;
    border-radius: .8rem;
    color: #707a84;
    background: #fafbfc;
}

/* Build 0119 — canonical global chrome owner. */
.tg-footer {
    position: relative;
    flex: 0 0 auto;
    margin-top: auto;
    overflow: hidden;
    border-top: 1px solid #2b3f4f;
    color: #cbd3d8;
    background-color: #1b2024;
    background-image: url('../../../cms/imgs/main/headerbar_special.png');
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: auto 205px;
}

.tg-footer-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(120px, .55fr));
    gap: 3rem;
    padding-block: 3.4rem;
}

.tg-footer-brand img {
    width: 205px;
    max-width: 100%;
}

.tg-footer-brand p {
    max-width: 430px;
    margin: 1rem 0 0;
    color: #89939d;
    font-size: .82rem;
}

.tg-footer h2 {
    margin: 0 0 .9rem;
    color: #fff;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tg-footer-grid > div:not(.tg-footer-brand) a {
    display: block;
    margin: .48rem 0;
    color: #9ca6af;
    font-size: .8rem;
    text-decoration: none;
}

.tg-footer-grid > div:not(.tg-footer-brand) a:hover {
    color: #fff;
}

.tg-footer-bottom {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid rgba(255, 255, 255, .07);
    color: #78828c;
    font-size: .7rem;
}

@media (min-width: 1120px) {
    .tg-brand-copy {
        display: block;
    }
}

@media (max-width: 1180px) {
    .tg-feature-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tg-screenshot-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tg-account-greeting {
        display: none;
    }
}

@media (max-width: 980px) {
    .tg-shell-width {
        width: min(calc(100% - 32px), var(--tg007-content-width));
    }

    .tg-site-shell {
        width: min(calc(100% - 20px), 1440px);
        margin-top: 10px;
        border-radius: 18px;
    }

    .tg-brand-row {
        min-height: 96px;
    }

    .tg-brand img {
        width: 205px;
    }

    .tg-account-area > a:not(.tg-account-button) {
        display: none;
    }

    .tg-nav-toggle {
        display: block;
    }

    .tg-nav-row {
        position: relative;
    }

    .tg-primary-nav {
        position: absolute;
        z-index: 50;
        top: calc(100% - 2px);
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100vh - 150px);
        overflow: auto;
        padding: .65rem;
        border: 1px solid var(--tg007-line);
        border-radius: 0 0 1rem 1rem;
        background: #fff;
        box-shadow: 0 20px 42px rgba(20, 28, 36, .18);
    }

    .tg-primary-nav.is-open {
        display: block;
    }

    .tg-primary-nav > a,
    .tg-nav-more > summary {
        min-height: 0;
        display: flex;
        padding: .82rem .75rem;
        border-radius: .55rem;
    }

    .tg-primary-nav > a:hover,
    .tg-primary-nav > a.is-active,
    .tg-nav-more > summary:hover,
    .tg-nav-more[open] > summary {
        background: #f4f6f8;
    }

    .tg-primary-nav > a::after,
    .tg-nav-more > summary::before {
        display: none;
    }

    .tg-nav-dropdown {
        position: static;
        min-width: 0;
        margin: 0 0 .4rem 1rem;
        border: 0;
        border-left: 2px solid #e1e6ea;
        border-radius: 0;
        box-shadow: none;
    }

    .tg-search-link span {
        display: none;
    }

    .tg-search-link {
        width: 44px;
        height: 44px;
        justify-content: center;
        padding: 0;
        border-radius: .7rem;
    }

    .tg-hero-grid,
    .tg-community-grid {
        grid-template-columns: 1fr;
    }

    .tg-hero-grid {
        min-height: 0;
    }

    .tg-hero-panel {
        max-width: 620px;
    }

    .tg-news-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .tg-news-card-featured {
        grid-row: auto;
    }

    .tg-resource-columns {
        grid-template-columns: 1fr;
    }

    .tg-footer-grid {
        grid-template-columns: 1.4fr repeat(3, 1fr);
        gap: 2rem;
    }
}

@media (max-width: 720px) {
    body.tg-modern-body {
        background-attachment: scroll;
    }

    .tg-preview-ribbon {
        font-size: .66rem;
    }

    .tg-site-shell {
        width: 100%;
        margin: 0;
        border: 0;
        border-radius: 0;
    }

    .tg-shell-width {
        width: min(calc(100% - 28px), var(--tg007-content-width));
    }

    .tg-brand-row {
        min-height: 86px;
    }

    .tg-brand img {
        width: 180px;
        max-width: 58vw;
    }

    .tg-account-area {
        font-size: .74rem;
    }

    .tg-account-button {
        padding: .48rem .68rem;
    }

    .tg-nav-row {
        min-height: 58px;
    }

    .tg-hero-grid {
        gap: 2.2rem;
        padding-block: 3.8rem;
    }

    .tg-hero-copy h1 {
        font-size: clamp(3rem, 16vw, 4.4rem);
    }

    .tg-hero-copy > p {
        font-size: 1.02rem;
    }

    .tg-hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .tg-btn {
        width: 100%;
    }

    .tg-feature-grid {
        grid-template-columns: 1fr;
    }

    .tg-feature-card {
        min-height: 220px;
    }

    .tg-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .65rem;
    }

    .tg-section-heading > p {
        text-align: left;
    }

    .tg-news-card,
    .tg-news-card-featured {
        grid-template-columns: 1fr;
    }

    .tg-news-card-featured .tg-news-icon-wrap {
        width: 86px;
        height: 86px;
    }

    .tg-topic-row {
        grid-template-columns: 10px minmax(0, 1fr);
    }

    .tg-topic-stats {
        display: none;
    }

    .tg-resource-row {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .tg-resource-date {
        display: none;
    }

    .tg-screenshot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tg-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2rem 1rem;
    }

    .tg-footer-brand {
        grid-column: 1 / -1;
    }

    .tg-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        padding-block: 1rem;
    }
}

@media (max-width: 440px) {
    .tg-brand img {
        width: 165px;
    }

    .tg-account-button {
        font-size: .7rem;
    }

    .tg-stat-grid {
        grid-template-columns: 1fr 1fr;
    }

    .tg-screenshot-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Build 0056 — production homepage/news shell additions */
.tg-count-badge {
    display: inline-flex;
    min-width: 1.22rem;
    height: 1.22rem;
    margin-left: .22rem;
    padding: 0 .34rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #fff;
    background: var(--tg007-red);
    font-size: .66rem;
    font-weight: 800;
    line-height: 1;
    vertical-align: middle;
}

.tg-account-signout {
    color: #bac2ca !important;
}

.tg-account-signout:hover {
    color: #fff !important;
}

.tg-ad-section {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.tg-ad-section-muted {
    padding-top: 0;
    padding-bottom: 2rem;
}

.tg-ad-wrap {
    min-height: 78px;
    overflow: hidden;
    padding: .5rem .7rem .65rem;
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius-sm);
    background: rgba(255, 255, 255, .72);
    text-align: center;
}

.tg-ad-label {
    display: block;
    margin-bottom: .2rem;
    color: #929aa3;
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tg-page-hero {
    position: relative;
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 78% 30%, rgba(47, 110, 165, .34), transparent 26rem),
        radial-gradient(circle at 15% 110%, rgba(61, 112, 149, .28), transparent 30rem),
        linear-gradient(120deg, #252a2f 0%, #1e2226 56%, #191c20 100%);
}

.tg-page-hero::after {
    position: absolute;
    inset: 0 0 0 auto;
    width: min(46vw, 620px);
    content: "";
    pointer-events: none;
    opacity: .17;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 170% no-repeat;
}

.tg-page-hero-grid {
    position: relative;
    z-index: 2;
    min-height: 270px;
    padding-top: 4rem;
    padding-bottom: 4rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 3rem;
}

.tg-page-hero h1 {
    max-width: 850px;
    margin: .55rem 0 .8rem;
    color: #fff;
    font-size: clamp(2.35rem, 5vw, 4.35rem);
    font-weight: 820;
    letter-spacing: -.045em;
    line-height: .98;
}

.tg-page-hero p {
    max-width: 760px;
    margin: 0;
    color: #c6cdd4;
    font-size: clamp(1rem, 1.6vw, 1.16rem);
}

.tg-page-hero-stat {
    min-width: 190px;
    padding: 1.1rem 1.3rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--tg007-radius);
    background: rgba(255, 255, 255, .06);
    backdrop-filter: blur(7px);
}

.tg-page-hero-stat strong,
.tg-page-hero-stat span {
    display: block;
}

.tg-page-hero-stat strong {
    color: #fff;
    font-size: 2rem;
    font-weight: 850;
    line-height: 1;
}

.tg-page-hero-stat span {
    margin-top: .35rem;
    color: #adb7c0;
    font-size: .77rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.tg-news-index-section {
    padding-top: 3.25rem;
}

.tg-section-heading-news {
    margin-bottom: 1.35rem;
}

.tg-category-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 2rem;
    padding-bottom: 1.4rem;
    border-bottom: 1px solid var(--tg007-line);
}

.tg-category-nav > a,
.tg-category-menu > summary {
    padding: .55rem .82rem;
    border: 1px solid var(--tg007-line);
    border-radius: 999px;
    color: #5c6670 !important;
    background: #fff;
    font-size: .78rem;
    font-weight: 760;
    text-decoration: none;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}

.tg-category-nav > a:hover,
.tg-category-menu > summary:hover {
    transform: translateY(-1px);
    border-color: #c4ccd4;
    color: var(--tg007-blue-dark) !important;
    background: #f8fafb;
}

.tg-category-nav > a.is-active {
    border-color: var(--tg007-dark);
    color: #fff !important;
    background: var(--tg007-dark);
}


.tg-category-menu {
    position: relative;
}

.tg-category-menu > summary {
    list-style: none;
    cursor: pointer;
}

.tg-category-menu > summary::-webkit-details-marker {
    display: none;
}

.tg-category-menu > summary::after {
    content: "▾";
    margin-left: .4rem;
    font-size: .68rem;
}

.tg-category-menu[open] > summary {
    border-color: #c4ccd4;
    color: var(--tg007-blue-dark) !important;
    background: #f8fafb;
}

.tg-category-menu-panel {
    position: absolute;
    z-index: 40;
    top: calc(100% + .55rem);
    left: 0;
    width: min(720px, calc(100vw - 5rem));
    max-height: 360px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .28rem;
    padding: .65rem;
    border: 1px solid var(--tg007-line);
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 20px 50px rgba(20, 28, 36, .16);
}

.tg-category-menu-panel a {
    padding: .55rem .62rem;
    border-radius: .55rem;
    color: #59636d !important;
    font-size: .76rem;
    font-weight: 700;
    text-decoration: none;
}

.tg-category-menu-panel a:hover {
    color: var(--tg007-blue-dark) !important;
    background: var(--tg007-surface-soft);
}

.tg-category-menu-panel a.is-active {
    color: #fff !important;
    background: var(--tg007-dark);
}

.tg-news-index-list {
    display: grid;
    gap: 1rem;
}

.tg-news-index-card {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 1.25rem;
    padding: 1.35rem;
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius);
    background: #fff;
    box-shadow: 0 10px 30px rgba(31, 39, 47, .045);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.tg-news-index-card:hover {
    transform: translateY(-2px);
    border-color: #cbd3da;
    box-shadow: var(--tg007-card-shadow);
}

.tg-news-index-icon {
    display: grid;
    width: 112px;
    height: 112px;
    place-items: center;
    overflow: hidden;
    border-radius: .82rem;
    background:
        radial-gradient(circle at 30% 25%, rgba(47, 110, 165, .12), transparent 48%),
        var(--tg007-surface-soft);
}

.tg-news-index-icon img {
    max-width: 74px;
    max-height: 74px;
    object-fit: contain;
}

.tg-news-index-body {
    min-width: 0;
}

.tg-news-index-body h3 {
    margin: .42rem 0 .55rem;
    color: #22272d;
    font-size: clamp(1.15rem, 2vw, 1.52rem);
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.18;
}

.tg-news-index-body h3 a {
    color: inherit;
    text-decoration: none;
}

.tg-news-index-body h3 a:hover {
    color: var(--tg007-blue-dark);
}

.tg-news-index-body p {
    margin: 0;
    color: var(--tg007-muted);
    font-size: .93rem;
}

.tg-news-index-footer {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    margin-top: .9rem;
    color: #7a848e;
    font-size: .76rem;
    font-weight: 650;
}

.tg-news-index-footer a {
    margin-left: auto;
    color: var(--tg007-blue-dark) !important;
    font-weight: 800;
    text-decoration: none;
}

.tg-news-index-footer a:hover {
    text-decoration: underline;
}

.tg-pagination {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) auto minmax(100px, 1fr);
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--tg007-line);
}

.tg-pagination a {
    color: #4e5963 !important;
    text-decoration: none;
}

.tg-pagination-edge {
    font-size: .85rem;
    font-weight: 800;
}

.tg-pagination > .tg-pagination-edge:last-child {
    justify-self: end;
}

.tg-pagination-pages {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .28rem;
}

.tg-pagination-pages a,
.tg-pagination-pages span {
    min-width: 2.15rem;
    height: 2.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .55rem;
    font-size: .78rem;
    font-weight: 800;
}

.tg-pagination-pages a:hover {
    background: var(--tg007-surface-soft);
}

.tg-pagination-pages a.is-active {
    color: #fff !important;
    background: var(--tg007-dark);
}

.tg-empty-card-large {
    padding: 3.5rem 2rem;
    text-align: center;
}

.tg-empty-card-large h2 {
    margin-top: 0;
}

.tg-empty-card-large p {
    color: var(--tg007-muted);
}

.tg-cookiebar {
    position: fixed;
    z-index: 1000;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    width: min(calc(100% - 2rem), 940px);
    margin-inline: auto;
    padding: .95rem 1rem .95rem 1.2rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1rem;
    color: #e8edf1;
    background: rgba(28, 31, 35, .97);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .35);
}

.tg-cookiebar[hidden] {
    display: none !important;
}

.tg-cookiebar strong {
    display: block;
    margin-bottom: .12rem;
    color: #fff;
    font-size: .88rem;
}

.tg-cookiebar p {
    margin: 0;
    color: #bbc4cc;
    font-size: .78rem;
}

.tg-cookiebar p a {
    color: #fff !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tg-cookiebar .tg-btn {
    flex: 0 0 auto;
    border: 0;
    cursor: pointer;
}

@media (max-width: 980px) {
    .tg-page-hero-grid {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 1.6rem;
    }

    .tg-page-hero-stat {
        min-width: 0;
        width: min(100%, 320px);
    }
}

@media (max-width: 720px) {
    .tg-ad-section {
        padding-top: .6rem;
        padding-bottom: .6rem;
    }

    .tg-page-hero-grid {
        min-height: 0;
        padding-top: 3rem;
        padding-bottom: 3rem;
    }


    .tg-category-menu-panel {
        position: fixed;
        z-index: 100;
        top: 18vh;
        right: 1rem;
        left: 1rem;
        width: auto;
        max-height: 64vh;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tg-news-index-card {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: .9rem;
        padding: 1rem;
    }

    .tg-news-index-icon {
        width: 72px;
        height: 72px;
    }

    .tg-news-index-icon img {
        max-width: 50px;
        max-height: 50px;
    }

    .tg-news-index-footer a {
        width: 100%;
        margin-left: 0;
    }

    .tg-pagination {
        grid-template-columns: 1fr 1fr;
    }

    .tg-pagination-pages {
        grid-column: 1 / -1;
        grid-row: 1;
        flex-wrap: wrap;
    }

    .tg-pagination > .tg-pagination-edge:last-child {
        justify-self: end;
    }

    .tg-cookiebar {
        align-items: stretch;
        flex-direction: column;
    }

    .tg-cookiebar .tg-btn {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .tg-news-index-card {
        grid-template-columns: 1fr;
    }

    .tg-news-index-icon {
        width: 64px;
        height: 64px;
    }
}

/* Build 0057 — Modern News Article Experience */
.tg-article-hero {
    position: relative;
    overflow: hidden;
    padding: 3.8rem 0 3.5rem;
    border-bottom: 1px solid #dce1e6;
    background:
        radial-gradient(circle at 88% 12%, rgba(61, 112, 149, .10), transparent 23rem),
        radial-gradient(circle at 8% 8%, rgba(47, 110, 165, .09), transparent 22rem),
        linear-gradient(145deg, #ffffff 0%, #f2f4f6 64%, #e9edf0 100%);
}

.tg-article-hero::after {
    position: absolute;
    right: -10rem;
    bottom: -14rem;
    width: 31rem;
    height: 31rem;
    border: 1px solid rgba(47, 110, 165, .10);
    border-radius: 50%;
    box-shadow: inset 0 0 0 4rem rgba(47, 110, 165, .018), inset 0 0 0 8rem rgba(61, 112, 149, .014);
    content: "";
    pointer-events: none;
}

.tg-back-link {
    position: relative;
    z-index: 1;
    display: inline-flex;
    margin-bottom: 1.3rem;
    color: #53606b !important;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
}

.tg-back-link:hover {
    color: var(--tg007-blue-dark) !important;
}

.tg-article-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
}

.tg-article-heading {
    max-width: 900px;
}

.tg-article-meta,
.tg-article-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .42rem .75rem;
    color: #6f7983;
    font-size: .8rem;
    font-weight: 700;
}

.tg-article-meta a,
.tg-article-byline a {
    color: var(--tg007-blue-dark) !important;
    text-decoration: none;
}

.tg-article-meta a:hover,
.tg-article-byline a:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tg-article-heading h1 {
    max-width: 960px;
    margin: .7rem 0 1rem;
    color: #1e2328;
    font-size: clamp(2.4rem, 5vw, 4.8rem);
    font-weight: 880;
    letter-spacing: -.055em;
    line-height: .99;
}

.tg-article-byline strong {
    color: #343b42;
}

.tg-article-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1.55rem;
}

.tg-article-actions .tg-btn {
    cursor: pointer;
}

.tg-share-status {
    min-height: 1.15rem;
    margin: .55rem 0 0;
    color: #65717c;
    font-size: .76rem;
    font-weight: 700;
}

.tg-article-category-card {
    min-height: 250px;
    padding: 1.35rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: var(--tg007-radius-lg);
    color: #f4f7f9 !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(61, 112, 149, .22), transparent 12rem),
        linear-gradient(145deg, #2d3238, #20252a);
    box-shadow: 0 22px 48px rgba(28, 34, 40, .18);
    text-decoration: none;
}

.tg-article-category-card .tg-kicker {
    color: #aeb9c4;
}

.tg-article-category-card img {
    width: 70px;
    height: 70px;
    margin: .85rem 0 .8rem;
    padding: .5rem;
    border-radius: .9rem;
    background: rgba(255, 255, 255, .94);
    object-fit: contain;
}

.tg-article-category-card strong {
    display: block;
    color: #fff;
    font-size: 1.22rem;
    line-height: 1.15;
}

.tg-article-category-card > span:last-child {
    margin-top: .45rem;
    color: #b8c2cb;
    font-size: .78rem;
    font-weight: 750;
}

.tg-article-category-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 26px 58px rgba(28, 34, 40, .24);
}

.tg-article-section {
    padding-top: 3rem;
    padding-bottom: 3.5rem;
}

.tg-article-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 350px);
    align-items: start;
    gap: 2rem;
}

.tg-article-card,
.tg-article-side-card {
    border: 1px solid var(--tg007-line);
    border-radius: var(--tg007-radius);
    background: #fff;
    box-shadow: var(--tg007-card-shadow);
}

.tg-article-card {
    min-width: 0;
    padding: clamp(1.35rem, 3vw, 2.7rem);
}

.tg-article-content {
    color: #2a3036;
    font-size: 1.02rem;
    line-height: 1.78;
    overflow-wrap: anywhere;
}

.tg-article-content > :first-child {
    margin-top: 0 !important;
}

.tg-article-content > :last-child {
    margin-bottom: 0 !important;
}

.tg-article-content p,
.tg-article-content ul,
.tg-article-content ol,
.tg-article-content blockquote,
.tg-article-content pre,
.tg-article-content table {
    margin-top: 0;
    margin-bottom: 1.25rem;
}

.tg-article-content h1,
.tg-article-content h2,
.tg-article-content h3,
.tg-article-content h4,
.tg-article-content h5,
.tg-article-content h6 {
    margin: 1.7em 0 .65em;
    color: #20262c;
    font-weight: 820;
    letter-spacing: -.025em;
    line-height: 1.18;
}

.tg-article-content h2 { font-size: clamp(1.55rem, 2.8vw, 2.05rem); }
.tg-article-content h3 { font-size: clamp(1.3rem, 2.3vw, 1.65rem); }

.tg-article-content a {
    color: var(--tg007-blue-dark) !important;
    font-weight: 650;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.tg-article-content img,
.tg-article-content video,
.tg-article-content iframe {
    max-width: 100% !important;
}

.tg-article-content img {
    height: auto !important;
    border-radius: .7rem;
}

.tg-article-content iframe,
.tg-article-content video {
    display: block;
    width: 100%;
    border: 0;
    border-radius: .8rem;
}

.tg-article-content blockquote {
    padding: 1rem 1.2rem;
    border-left: 4px solid var(--tg007-blue);
    border-radius: 0 .75rem .75rem 0;
    color: #4a545d;
    background: #f4f7f9;
}

.tg-article-content pre,
.tg-article-content code {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

.tg-article-content pre {
    max-width: 100%;
    overflow: auto;
    padding: 1rem 1.15rem;
    border-radius: .75rem;
    color: #eef3f6;
    background: #20252a;
    font-size: .88rem;
    line-height: 1.55;
}

.tg-article-content :not(pre) > code {
    padding: .13em .36em;
    border-radius: .32rem;
    color: #8a1d31;
    background: #f5e9ec;
    font-size: .9em;
}

.tg-article-content table {
    width: 100% !important;
    max-width: 100%;
    display: block;
    overflow-x: auto;
    border-collapse: collapse;
}

.tg-article-content th,
.tg-article-content td {
    padding: .65rem .75rem;
    border: 1px solid #dce2e7;
    text-align: left;
}

.tg-article-content th {
    background: #f2f5f7;
}

.tg-source-note {
    margin-top: 2rem;
    padding-top: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-top: 1px solid var(--tg007-line);
}

.tg-source-note strong {
    display: block;
    margin-top: .15rem;
    font-size: .92rem;
}

.tg-article-sidebar {
    position: sticky;
    top: 1.25rem;
    display: grid;
    gap: 1rem;
}

.tg-article-side-card {
    padding: 1.25rem;
}

.tg-article-side-card h2 {
    margin: .3rem 0 .55rem;
    color: #252b31;
    font-size: 1.15rem;
    font-weight: 820;
    letter-spacing: -.02em;
}

.tg-article-side-card p {
    margin: 0 0 1rem;
    color: #68737e;
    font-size: .86rem;
}

.tg-article-discussion-card {
    color: #eaf0f4;
    border-color: rgba(255, 255, 255, .08);
    background:
        radial-gradient(circle at 100% 0%, rgba(61, 112, 149, .24), transparent 13rem),
        linear-gradient(145deg, #2d3238, #20252a);
}

.tg-article-discussion-card h2 {
    color: #fff;
}

.tg-article-discussion-card p {
    color: #b8c2ca;
}

.tg-article-discussion-card .tg-kicker {
    color: #9eadb9;
}

.tg-article-discussion-card .tg-text-link {
    color: #fff !important;
}

.tg-side-card-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
}

.tg-side-card-heading h2 {
    margin-bottom: 0;
}

.tg-side-card-heading .tg-text-link {
    flex: 0 0 auto;
    font-size: .72rem;
}

.tg-related-news-list {
    display: grid;
}

.tg-related-news-item {
    display: block;
    padding: .85rem 0;
    border-top: 1px solid var(--tg007-line);
    color: #252b31 !important;
    text-decoration: none;
}

.tg-related-news-item:first-child {
    border-top: 0;
}

.tg-related-news-item span {
    display: block;
    margin-bottom: .24rem;
    color: #8a4b59;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.tg-related-news-item strong {
    display: block;
    font-size: .86rem;
    line-height: 1.35;
}

.tg-related-news-item:hover strong {
    color: var(--tg007-blue-dark);
}

@media (max-width: 980px) {
    .tg-article-hero-grid,
    .tg-article-layout {
        grid-template-columns: 1fr;
    }

    .tg-article-category-card {
        min-height: 0;
        max-width: 420px;
    }

    .tg-article-sidebar {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-article-hero {
        padding: 2.7rem 0 2.5rem;
    }

    .tg-article-heading h1 {
        font-size: clamp(2.15rem, 12vw, 3.35rem);
    }

    .tg-article-actions,
    .tg-article-actions .tg-btn {
        width: 100%;
    }

    .tg-article-actions .tg-btn {
        justify-content: center;
        text-align: center;
    }

    .tg-article-sidebar {
        grid-template-columns: 1fr;
    }

    .tg-source-note {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Build 0058 — compact flagship homepage density pass.
 * Scoped to the homepage so the already-modern News surfaces keep their
 * confirmed Build 0057 dimensions while the homepage visual baseline evolves.
 */
body.tg-homepage .tg-site-shell {
    margin-top: 16px;
    margin-bottom: 32px;
}

body.tg-homepage .tg-hero-grid {
    min-height: 360px;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, .68fr);
    gap: clamp(2rem, 4.5vw, 4.5rem);
    padding-block: clamp(2.35rem, 4vw, 3.45rem);
}

body.tg-homepage .tg-hero-copy h1 {
    max-width: 720px;
    margin: .55rem 0 .8rem;
    font-size: clamp(2.85rem, 4.7vw, 4.45rem);
    line-height: .93;
}

body.tg-homepage .tg-hero-copy > p {
    max-width: 625px;
    font-size: clamp(.98rem, 1.25vw, 1.12rem);
    line-height: 1.5;
}

body.tg-homepage .tg-hero-actions {
    margin-top: 1.25rem;
}

body.tg-homepage .tg-btn {
    min-height: 42px;
    padding: .62rem 1rem;
}

body.tg-homepage .tg-hero-panel {
    padding: 1.25rem;
    border-radius: 1.25rem;
    box-shadow: 0 20px 42px rgba(21, 26, 31, .21);
}

body.tg-homepage .tg-hero-panel-kicker {
    margin-bottom: .75rem;
}

body.tg-homepage .tg-stat-grid {
    gap: .55rem;
}

body.tg-homepage .tg-stat-grid a {
    padding: .72rem .8rem;
    border-radius: .72rem;
}

body.tg-homepage .tg-stat-grid strong {
    font-size: 1.35rem;
}

body.tg-homepage .tg-stat-grid span {
    margin-top: .22rem;
    font-size: .7rem;
}

body.tg-homepage .tg-hero-panel-note {
    margin-top: .8rem;
    font-size: .7rem;
}

body.tg-homepage .tg-ad-section {
    padding-top: .6rem;
    padding-bottom: .6rem;
}

body.tg-homepage .tg-ad-section-muted {
    padding-top: 0;
    padding-bottom: 1.15rem;
}

body.tg-homepage .tg-section {
    padding-block: clamp(2.45rem, 4vw, 3.25rem);
}

body.tg-homepage .tg-section-tight {
    padding-top: clamp(2.3rem, 3.6vw, 2.9rem);
}

body.tg-homepage .tg-section-heading {
    margin-bottom: 1.15rem;
}

body.tg-homepage .tg-section-heading-compact {
    margin-bottom: .85rem;
}

body.tg-homepage .tg-section-heading h2 {
    margin-top: .18rem;
    font-size: clamp(1.65rem, 2.4vw, 2.2rem);
}

body.tg-homepage .tg-kicker,
body.tg-homepage .tg-eyebrow {
    font-size: .68rem;
}

body.tg-homepage .tg-feature-grid {
    gap: .8rem;
}

body.tg-homepage .tg-feature-card {
    min-height: 172px;
    padding: 1.05rem;
    border-radius: .9rem;
}

body.tg-homepage .tg-feature-card::before {
    right: 1.05rem;
    left: 1.05rem;
}

body.tg-homepage .tg-feature-icon {
    width: 36px;
    height: 36px;
    border-radius: .58rem;
    font-size: .64rem;
}

body.tg-homepage .tg-feature-card h3 {
    margin: .78rem 0 .35rem;
    font-size: 1.02rem;
}

body.tg-homepage .tg-feature-card p {
    font-size: .82rem;
    line-height: 1.45;
}

body.tg-homepage .tg-card-link {
    padding-top: .68rem;
    font-size: .75rem;
}

body.tg-homepage .tg-news-grid {
    gap: .8rem;
}

body.tg-homepage .tg-news-card {
    gap: .8rem;
    padding: 1rem;
}

body.tg-homepage .tg-news-card-featured {
    align-content: start;
    grid-template-columns: 88px minmax(0, 1fr);
    padding: 1.25rem;
}

body.tg-homepage .tg-news-card-featured .tg-news-icon-wrap {
    width: 88px;
    height: 88px;
}

body.tg-homepage .tg-news-card-featured h3 {
    font-size: clamp(1.5rem, 2.25vw, 2rem);
}

body.tg-homepage .tg-news-card-featured p {
    font-size: .9rem;
    line-height: 1.52;
}

body.tg-homepage .tg-news-footer {
    margin-top: .7rem;
}

body.tg-homepage .tg-community-grid {
    gap: 1rem;
}

body.tg-homepage .tg-topic-row {
    gap: .8rem;
    padding: .72rem .95rem;
}

body.tg-homepage .tg-topic-main strong {
    font-size: .86rem;
}

body.tg-homepage .tg-community-card {
    padding: 1.25rem;
}

body.tg-homepage .tg-community-card h2 {
    margin: .3rem 0;
    font-size: 1.8rem;
}

body.tg-homepage .tg-community-card p {
    margin-bottom: .6rem;
    font-size: .8rem;
}

body.tg-homepage .tg-online-names {
    min-height: 0;
    margin: .7rem 0 .85rem;
    padding: .72rem;
    font-size: .74rem;
    line-height: 1.45;
}

body.tg-homepage .tg-resource-columns {
    gap: .8rem;
}

body.tg-homepage .tg-resource-panel-head {
    padding: .78rem .95rem;
}

body.tg-homepage .tg-resource-row {
    gap: .68rem;
    padding: .68rem .95rem;
}

body.tg-homepage .tg-resource-badge {
    min-width: 40px;
    padding: .28rem .36rem;
}

body.tg-homepage .tg-screenshot-grid {
    gap: .65rem;
}

body.tg-homepage .tg-screenshot-card > span {
    padding: .55rem .62rem .6rem;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 2.35rem;
}

body.tg-homepage .tg-cookiebar {
    width: min(calc(100% - 2rem), 820px);
    padding: .72rem .8rem .72rem 1rem;
}

@media (max-width: 980px) {
    body.tg-homepage .tg-hero-grid {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 1.5rem;
        padding-block: 2.7rem;
    }

    body.tg-homepage .tg-hero-panel {
        max-width: 620px;
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-site-shell {
        margin: 0;
    }

    body.tg-homepage .tg-hero-grid {
        gap: 1.35rem;
        padding-block: 2.35rem;
    }

    body.tg-homepage .tg-hero-copy h1 {
        font-size: clamp(2.7rem, 14vw, 3.65rem);
    }

    body.tg-homepage .tg-hero-actions {
        margin-top: 1rem;
    }

    body.tg-homepage .tg-section,
    body.tg-homepage .tg-section-tight {
        padding-block: 2.15rem;
    }

    body.tg-homepage .tg-feature-card {
        min-height: 0;
        padding: 1rem;
    }

    body.tg-homepage .tg-section-heading {
        margin-bottom: .9rem;
    }

    body.tg-homepage .tg-news-card-featured {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-footer-grid {
        padding-block: 2rem;
    }
}

/* Build 0060 — homepage editorial density and hierarchy refinement.
 * Homepage-only overrides: reduce duplication, tighten vertical rhythm and
 * let News/Forum carry more visual weight than navigation utility cards.
 */
body.tg-homepage .tg-site-shell {
    margin-top: 12px;
    margin-bottom: 24px;
}

body.tg-homepage .tg-hero-grid {
    min-height: 300px;
    grid-template-columns: minmax(0, 1.62fr) minmax(270px, .62fr);
    gap: clamp(1.5rem, 3.5vw, 3.25rem);
    padding-block: clamp(1.85rem, 3vw, 2.45rem);
}

body.tg-homepage .tg-hero-copy h1 {
    max-width: 650px;
    margin: .45rem 0 .6rem;
    font-size: clamp(2.65rem, 4vw, 3.8rem);
    line-height: .92;
}

body.tg-homepage .tg-hero-copy > p {
    max-width: 600px;
    font-size: clamp(.92rem, 1.1vw, 1.03rem);
    line-height: 1.45;
}

body.tg-homepage .tg-hero-actions {
    margin-top: .95rem;
}

body.tg-homepage .tg-btn {
    min-height: 38px;
    padding: .52rem .85rem;
    border-radius: .65rem;
    font-size: .78rem;
}

body.tg-homepage .tg-hero-panel {
    padding: 1rem;
    border-radius: 1rem;
    box-shadow: 0 16px 34px rgba(21, 26, 31, .2);
}

body.tg-homepage .tg-hero-panel-kicker {
    margin-bottom: .55rem;
    font-size: .62rem;
}

body.tg-homepage .tg-stat-grid {
    gap: .42rem;
}

body.tg-homepage .tg-stat-grid a {
    padding: .58rem .65rem;
    border-radius: .62rem;
}

body.tg-homepage .tg-stat-grid strong {
    font-size: 1.16rem;
}

body.tg-homepage .tg-stat-grid span {
    margin-top: .15rem;
    font-size: .62rem;
}

body.tg-homepage .tg-hero-panel-note {
    margin-top: .58rem;
    font-size: .62rem;
}

body.tg-homepage .tg-live-dot {
    width: 6px;
    height: 6px;
    flex-basis: 6px;
    box-shadow: 0 0 0 4px rgba(89, 187, 123, .08);
}

body.tg-homepage .tg-ad-section {
    padding-top: .35rem;
    padding-bottom: .35rem;
}

body.tg-homepage .tg-ad-section-muted {
    padding-top: 0;
    padding-bottom: .65rem;
}

body.tg-homepage .tg-ad-wrap {
    min-height: 52px;
    padding: .28rem .5rem .38rem;
    border-radius: .55rem;
}

body.tg-homepage .tg-ad-label {
    margin-bottom: .1rem;
    font-size: .55rem;
}

body.tg-homepage .tg-ad-section:has(.adsbygoogle[data-ad-status="unfilled"]) {
    display: none;
}

body.tg-homepage .tg-home-quick-section {
    padding: 1rem 0 1.35rem;
    background: var(--tg007-surface);
}

body.tg-homepage .tg-home-quicklinks {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
}

body.tg-homepage .tg-home-quicklinks > a {
    min-width: 0;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: .62rem;
    padding: .72rem .78rem;
    border: 1px solid var(--tg007-line);
    border-radius: .72rem;
    color: var(--tg007-text);
    background: #fff;
    box-shadow: 0 5px 14px rgba(26, 34, 42, .025);
    text-decoration: none;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

body.tg-homepage .tg-home-quicklinks > a:hover {
    border-color: #c9d2da;
    box-shadow: 0 8px 18px rgba(26, 34, 42, .06);
    transform: translateY(-1px);
}

body.tg-homepage .tg-home-quick-icon {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    color: #fff;
    background: #252b31;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .04em;
}

body.tg-homepage .tg-home-quick-copy,
body.tg-homepage .tg-home-quick-copy strong,
body.tg-homepage .tg-home-quick-copy small {
    min-width: 0;
    display: block;
}

body.tg-homepage .tg-home-quick-copy strong {
    overflow: hidden;
    font-size: .8rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.tg-homepage .tg-home-quick-copy small {
    margin-top: .12rem;
    overflow: hidden;
    color: var(--tg007-muted);
    font-size: .64rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.tg-homepage .tg-home-quick-arrow {
    color: var(--tg007-blue-dark);
    font-size: .88rem;
    font-weight: 850;
}

body.tg-homepage .tg-section {
    padding-block: clamp(1.85rem, 3vw, 2.35rem);
}

body.tg-homepage .tg-section-heading,
body.tg-homepage .tg-section-heading-compact {
    margin-bottom: .72rem;
}

body.tg-homepage .tg-section-heading h2 {
    margin-top: .12rem;
    font-size: clamp(1.5rem, 2vw, 1.95rem);
}

body.tg-homepage .tg-kicker,
body.tg-homepage .tg-eyebrow {
    font-size: .61rem;
}

body.tg-homepage .tg-text-link {
    font-size: .72rem;
}

body.tg-homepage .tg-news-grid {
    grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, .72fr));
    grid-template-rows: auto;
    gap: .65rem;
}

body.tg-homepage .tg-news-card,
body.tg-homepage .tg-news-card-featured {
    grid-row: auto;
    min-height: 0;
    align-content: start;
    gap: .7rem;
    padding: .9rem;
}

body.tg-homepage .tg-news-card-featured {
    grid-template-columns: 72px minmax(0, 1fr);
}

body.tg-homepage .tg-news-card:not(.tg-news-card-featured) {
    grid-template-columns: 52px minmax(0, 1fr);
}

body.tg-homepage .tg-news-card-featured .tg-news-icon-wrap {
    width: 72px;
    height: 72px;
}

body.tg-homepage .tg-news-card:not(.tg-news-card-featured) .tg-news-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: .65rem;
}

body.tg-homepage .tg-news-card-featured h3 {
    margin: .34rem 0 .35rem;
    font-size: clamp(1.28rem, 1.8vw, 1.62rem);
    line-height: 1.08;
}

body.tg-homepage .tg-news-card:not(.tg-news-card-featured) h3 {
    margin: .28rem 0 .3rem;
    font-size: .9rem;
    line-height: 1.18;
}

body.tg-homepage .tg-news-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: .75rem;
    line-height: 1.42;
}

body.tg-homepage .tg-news-card-featured p {
    font-size: .82rem;
    line-height: 1.45;
}

body.tg-homepage .tg-meta,
body.tg-homepage .tg-news-footer {
    font-size: .62rem;
}

body.tg-homepage .tg-news-footer {
    margin-top: .48rem;
}

body.tg-homepage .tg-community-grid {
    grid-template-columns: minmax(0, 1.75fr) minmax(250px, .55fr);
    align-items: start;
    gap: .75rem;
}

body.tg-homepage .tg-topic-row {
    gap: .65rem;
    padding: .58rem .8rem;
}

body.tg-homepage .tg-topic-main strong {
    font-size: .79rem;
}

body.tg-homepage .tg-topic-main small,
body.tg-homepage .tg-topic-stats small {
    font-size: .62rem;
}

body.tg-homepage .tg-community-card {
    align-self: start;
    padding: 1rem;
}

body.tg-homepage .tg-community-card h2 {
    margin: .22rem 0;
    font-size: 1.48rem;
}

body.tg-homepage .tg-community-card p {
    margin-bottom: .45rem;
    font-size: .7rem;
}

body.tg-homepage .tg-online-names {
    margin: .5rem 0 .65rem;
    padding: .58rem;
    font-size: .66rem;
}

body.tg-homepage .tg-resource-columns {
    gap: .65rem;
}

body.tg-homepage .tg-resource-panel-head {
    padding: .62rem .8rem;
}

body.tg-homepage .tg-resource-panel-head h3,
body.tg-homepage .tg-resource-panel-head a {
    font-size: .72rem;
}

body.tg-homepage .tg-resource-row {
    gap: .58rem;
    padding: .54rem .8rem;
}

body.tg-homepage .tg-resource-main strong {
    font-size: .74rem;
}

body.tg-homepage .tg-resource-main small,
body.tg-homepage .tg-resource-date {
    font-size: .61rem;
}

body.tg-homepage .tg-resource-badge {
    min-width: 36px;
    padding: .22rem .3rem;
    font-size: .63rem;
}

body.tg-homepage .tg-screenshot-section {
    padding-block: 1.8rem;
}

body.tg-homepage .tg-screenshot-grid {
    gap: .5rem;
}

body.tg-homepage .tg-screenshot-card > span {
    padding: .46rem .52rem .5rem;
}

body.tg-homepage .tg-screenshot-card strong {
    font-size: .69rem;
}

body.tg-homepage .tg-screenshot-card small {
    font-size: .58rem;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 1.85rem;
}

body.tg-homepage .tg-footer-brand p,
body.tg-homepage .tg-footer-grid > div:not(.tg-footer-brand) a {
    font-size: .72rem;
}

body.tg-homepage .tg-footer-bottom {
    min-height: 46px;
}

@media (max-width: 1180px) {
    body.tg-homepage .tg-home-quicklinks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.tg-homepage .tg-news-grid {
        grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
    }

    body.tg-homepage .tg-news-card-featured {
        grid-row: 1 / span 2;
    }
}

@media (max-width: 980px) {
    body.tg-homepage .tg-hero-grid {
        min-height: 0;
        gap: 1rem;
        padding-block: 2rem;
    }

    body.tg-homepage .tg-news-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.tg-homepage .tg-news-card-featured {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    body.tg-homepage .tg-community-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-community-card {
        width: 100%;
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-hero-grid {
        padding-block: 1.75rem;
    }

    body.tg-homepage .tg-hero-copy h1 {
        font-size: clamp(2.45rem, 13vw, 3.25rem);
    }

    body.tg-homepage .tg-home-quick-section {
        padding: .75rem 0 1rem;
    }

    body.tg-homepage .tg-home-quicklinks {
        grid-template-columns: 1fr 1fr;
        gap: .5rem;
    }

    body.tg-homepage .tg-home-quicklinks > a {
        grid-template-columns: 28px minmax(0, 1fr);
        padding: .65rem;
    }

    body.tg-homepage .tg-home-quick-arrow {
        display: none;
    }

    body.tg-homepage .tg-section {
        padding-block: 1.65rem;
    }

    body.tg-homepage .tg-news-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-news-card-featured {
        grid-column: auto;
    }
}

@media (max-width: 440px) {
    body.tg-homepage .tg-home-quicklinks {
        grid-template-columns: 1fr;
    }
}

/* Build 0061 — homepage composition and shared chrome refinement.
 * Removes dashboard-like duplication, turns News into a true editorial lead +
 * headline rail, removes the oversized online sidebar, improves screenshot
 * storytelling, collapses empty homepage ad chrome and simplifies signed-in UI.
 */
.tg-brand-row {
    min-height: 98px;
}

.tg-nav-row,
.tg-primary-nav > a,
.tg-nav-more > summary {
    min-height: 58px;
}

.tg-account-area {
    flex-wrap: nowrap;
    gap: .45rem .8rem;
}

.tg-account-utility {
    white-space: nowrap;
}

.tg-account-menu {
    position: relative;
}

.tg-account-menu > summary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 36px;
    padding: .3rem .72rem .3rem .38rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 999px;
    color: #f4f7f9;
    background: rgba(255, 255, 255, .07);
    font-size: .78rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    transition: background .16s ease, border-color .16s ease;
}

.tg-account-menu > summary::-webkit-details-marker {
    display: none;
}

.tg-account-menu > summary::after {
    width: .38rem;
    height: .38rem;
    margin: -.18rem 0 0 .1rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    content: "";
    transform: rotate(45deg);
}

.tg-account-menu[open] > summary,
.tg-account-menu > summary:hover {
    border-color: rgba(255, 255, 255, .26);
    background: rgba(255, 255, 255, .12);
}

.tg-account-avatar {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, var(--tg007-blue), var(--tg007-red));
    font-size: .68rem;
    font-weight: 900;
}

.tg-account-dropdown {
    position: absolute;
    z-index: 80;
    top: calc(100% + .55rem);
    right: 0;
    min-width: 190px;
    padding: .42rem;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: .8rem;
    background: #202429;
    box-shadow: 0 18px 42px rgba(0, 0, 0, .28);
}

.tg-account-dropdown a {
    display: block;
    padding: .62rem .72rem;
    border-radius: .52rem;
    color: #dfe5ea;
    font-size: .78rem;
    font-weight: 700;
}

.tg-account-dropdown a:hover {
    color: #fff;
    background: rgba(255, 255, 255, .08);
}

.tg-account-dropdown .tg-account-signout {
    margin-top: .28rem;
    padding-top: .68rem;
    border-top: 1px solid rgba(255, 255, 255, .09);
    border-radius: 0 0 .52rem .52rem;
}

body.tg-homepage .tg-ad-section,
body.tg-homepage .tg-ad-section-muted {
    padding-top: 0;
    padding-bottom: 0;
}

body.tg-homepage .tg-ad-wrap {
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.tg-homepage .tg-ad-label {
    display: none;
}

body.tg-homepage .tg-ad-wrap .adsbygoogle[data-ad-status="filled"] {
    margin: .55rem 0;
}

body.tg-homepage .tg-section {
    padding-block: clamp(1.65rem, 2.7vw, 2.1rem);
}

body.tg-homepage .tg-home-news-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(330px, .8fr);
    align-items: stretch;
    gap: .7rem;
}

body.tg-homepage .tg-home-news-lead,
body.tg-homepage .tg-home-news-headline {
    min-width: 0;
    border: 1px solid var(--tg007-line);
    background: #fff;
}

body.tg-homepage .tg-home-news-lead {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: start;
    gap: .78rem;
    padding: 1rem;
    border-radius: .9rem;
    background: linear-gradient(135deg, #fff 0%, #f8fafc 100%);
}

body.tg-homepage .tg-home-news-lead .tg-news-icon-wrap {
    width: 76px;
    height: 76px;
}

body.tg-homepage .tg-home-news-lead h3 {
    margin: .28rem 0 .35rem;
    font-size: clamp(1.25rem, 1.75vw, 1.58rem);
    line-height: 1.08;
}

body.tg-homepage .tg-home-news-lead p {
    margin: 0;
    color: #626c76;
    font-size: .82rem;
    line-height: 1.48;
}

body.tg-homepage .tg-home-news-headlines {
    display: grid;
    grid-template-rows: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--tg007-line);
    border-radius: .9rem;
    background: #fff;
}

body.tg-homepage .tg-home-news-headline {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: .68rem;
    padding: .78rem .85rem;
    border: 0;
    border-radius: 0;
}

body.tg-homepage .tg-home-news-headline + .tg-home-news-headline {
    border-top: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-news-headline .tg-news-icon-wrap {
    width: 48px;
    height: 48px;
    border-radius: .6rem;
}

body.tg-homepage .tg-home-news-headline h3 {
    margin: .22rem 0 .22rem;
    font-size: .86rem;
    line-height: 1.18;
}

body.tg-homepage .tg-home-news-headline p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #6f7881;
    font-size: .69rem;
    line-height: 1.36;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-home-news-layout .tg-meta,
body.tg-homepage .tg-home-news-layout .tg-news-footer {
    font-size: .59rem;
}

body.tg-homepage .tg-home-news-layout .tg-news-footer {
    margin-top: .42rem;
}

body.tg-homepage .tg-community-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
}

body.tg-homepage .tg-online-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    max-width: 310px;
    padding: .34rem .58rem;
    border: 1px solid #dbe1e6;
    border-radius: 999px;
    color: #5c6670;
    background: #fff;
    font-size: .64rem;
    white-space: nowrap;
}

body.tg-homepage .tg-online-pill strong {
    color: #252b31;
    font-size: .68rem;
}

body.tg-homepage .tg-online-pill > span:last-child:not(.tg-live-dot) {
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.tg-homepage .tg-topic-list {
    overflow: hidden;
    border: 1px solid var(--tg007-line);
    border-radius: .8rem;
    background: #fff;
}

body.tg-homepage .tg-topic-row {
    border: 0;
    border-radius: 0;
}

body.tg-homepage .tg-topic-row + .tg-topic-row {
    border-top: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-screenshot-section {
    padding-block: 1.65rem 1.75rem;
}

body.tg-homepage .tg-screenshot-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

body.tg-homepage .tg-screenshot-card img {
    aspect-ratio: 16 / 9;
}

body.tg-homepage .tg-screenshot-card > span {
    min-height: 62px;
    padding: .58rem .62rem .62rem;
}

body.tg-homepage .tg-screenshot-card strong {
    display: -webkit-box;
    overflow: hidden;
    font-size: .73rem;
    line-height: 1.25;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-screenshot-card small {
    margin-top: .3rem;
    font-size: .59rem;
}

@media (max-width: 1180px) {
    body.tg-homepage .tg-home-news-layout {
        grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
    }
}

@media (max-width: 980px) {
    .tg-brand-row {
        min-height: 88px;
    }

    .tg-account-area > .tg-account-utility {
        display: none;
    }

    .tg-account-menu > summary {
        min-height: 34px;
        padding-right: .58rem;
    }

    body.tg-homepage .tg-home-news-layout {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-headlines {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-template-rows: auto;
    }

    body.tg-homepage .tg-home-news-headline + .tg-home-news-headline {
        border-top: 0;
        border-left: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-screenshot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-account-menu > summary > span:not(.tg-account-avatar) {
        display: none;
    }

    .tg-account-menu > summary::after {
        display: none;
    }

    .tg-account-menu > summary {
        width: 38px;
        height: 38px;
        justify-content: center;
        padding: 0;
    }

    .tg-account-dropdown {
        right: 0;
    }

    body.tg-homepage .tg-home-news-lead {
        grid-template-columns: 58px minmax(0, 1fr);
        padding: .85rem;
    }

    body.tg-homepage .tg-home-news-lead .tg-news-icon-wrap {
        width: 58px;
        height: 58px;
    }

    body.tg-homepage .tg-home-news-headlines {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-headline + .tg-home-news-headline {
        border-top: 1px solid var(--tg007-line);
        border-left: 0;
    }

    body.tg-homepage .tg-section-heading-compact {
        align-items: flex-start;
    }

    body.tg-homepage .tg-community-heading-actions {
        align-items: flex-end;
        flex-direction: column-reverse;
        gap: .35rem;
    }

    body.tg-homepage .tg-online-pill > span:last-child:not(.tg-live-dot) {
        display: none;
    }

    body.tg-homepage .tg-screenshot-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 440px) {
    body.tg-homepage .tg-screenshot-grid {
        grid-template-columns: 1fr;
    }
}

/* Build 0062 — unified cool-neutral homepage system.
 * Re-centers the modern design on charcoal, cool gray and steel blue,
 * establishes the intended Google-font typography hierarchy, merges the
 * community/resource middle of the homepage, and removes the alternating
 * "stack of modules" feeling from the primary landing page.
 */


.tg-modern-body h1,
.tg-modern-body h2,
.tg-modern-body h3,
.tg-modern-body h4,
.tg-modern-body .tg-primary-nav,
.tg-modern-body .tg-brand-copy strong,
.tg-modern-body .tg-btn {
    font-family: "Inter Tight", "Inter", ui-sans-serif, system-ui, sans-serif;
}





.tg-brand-band::after {
    opacity: .22;
    filter: grayscale(1) saturate(0) contrast(1.08);
    mix-blend-mode: screen;
}

.tg-account-avatar {
    background: linear-gradient(145deg, #568bb2, #2a607f);
}

.tg-primary-nav > a::after,
.tg-nav-more > summary::before {
    background: #3d7ead;
}

.tg-primary-nav > a:hover,
.tg-primary-nav > a.is-active,
.tg-nav-more > summary:hover,
.tg-nav-more[open] > summary {
    color: #17212a;
}



body.tg-homepage #main-content {
    background: #f3f6f8;
}

body.tg-homepage .tg-hero {
    border-bottom-color: #d8e0e6;
    background:
        radial-gradient(circle at 12% 12%, rgba(61, 126, 173, .11), transparent 21rem),
        linear-gradient(132deg, #f9fbfc 0%, #f1f5f8 62%, #e7edf2 100%);
}

body.tg-homepage .tg-hero::after {
    right: -155px;
    bottom: -215px;
    width: 475px;
    height: 475px;
    border-color: rgba(61, 126, 173, .10);
    box-shadow: inset 0 0 0 48px rgba(61, 126, 173, .018),
                inset 0 0 0 94px rgba(39, 70, 93, .014);
}

body.tg-homepage .tg-hero-grid {
    min-height: 252px;
    grid-template-columns: minmax(0, 1.72fr) minmax(255px, .55fr);
    gap: clamp(1.3rem, 3vw, 2.6rem);
    padding-block: 1.55rem;
}

body.tg-homepage .tg-eyebrow,
body.tg-homepage .tg-kicker {
    color: #4a7798;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .115em;
}

body.tg-homepage .tg-hero-copy h1 {
    max-width: 660px;
    margin: .32rem 0 .48rem;
    color: #1b242c;
    font-size: clamp(2.8rem, 3.8vw, 3.65rem);
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: .94;
}

body.tg-homepage .tg-hero-copy h1 span {
    color: #356f9a;
    background: none;
    -webkit-text-fill-color: currentColor;
}

body.tg-homepage .tg-hero-copy > p {
    max-width: 610px;
    color: #60707d;
    font-size: .94rem;
    line-height: 1.42;
}

body.tg-homepage .tg-hero-actions {
    margin-top: .78rem;
}

body.tg-homepage .tg-btn {
    min-height: 36px;
    padding: .48rem .82rem;
    font-size: .77rem;
    font-weight: 700;
}

body.tg-homepage .tg-hero-panel {
    max-width: 300px;
    justify-self: end;
    padding: .82rem;
    border-color: rgba(123, 151, 172, .22);
    border-radius: .82rem;
    background: linear-gradient(145deg, #202830 0%, #141a20 100%);
    box-shadow: 0 14px 28px rgba(18, 28, 36, .18);
}

body.tg-homepage .tg-hero-panel::after {
    top: -65%;
    right: -45%;
    background: radial-gradient(circle, rgba(61, 126, 173, .24), transparent 64%);
}

body.tg-homepage .tg-hero-panel-kicker {
    color: #95b4ca;
}

body.tg-homepage .tg-stat-grid {
    gap: .36rem;
}

body.tg-homepage .tg-stat-grid a {
    padding: .5rem .58rem;
    border-color: rgba(174, 198, 216, .11);
    border-radius: .5rem;
    background: rgba(255, 255, 255, .045);
}

body.tg-homepage .tg-stat-grid strong {
    font-size: 1.08rem;
    font-weight: 750;
}

body.tg-homepage .tg-stat-grid span {
    color: #abb8c3;
    font-size: .61rem;
}

body.tg-homepage .tg-hero-panel-note {
    color: #98a8b5;
    font-size: .6rem;
}

body.tg-homepage .tg-ad-section,
body.tg-homepage .tg-ad-section-muted {
    min-height: 0;
    padding: 0;
}

body.tg-homepage .tg-section,
body.tg-homepage .tg-section-white {
    padding-block: 1.35rem;
    border: 0;
    background: #f3f6f8;
}

body.tg-homepage .tg-section + .tg-section {
    border-top: 1px solid #dde4e9;
}

body.tg-homepage .tg-section-heading,
body.tg-homepage .tg-section-heading-compact {
    margin-bottom: .68rem;
}

body.tg-homepage .tg-section-heading h2,
body.tg-homepage .tg-home-panel-heading h2 {
    margin: .08rem 0 0;
    color: #1d2730;
    font-size: clamp(1.42rem, 1.8vw, 1.72rem);
    font-weight: 750;
    letter-spacing: -.025em;
    line-height: 1.05;
}

body.tg-homepage .tg-text-link {
    color: #315f82 !important;
    font-size: .71rem;
    font-weight: 750;
}

body.tg-homepage .tg-text-link:hover {
    color: #1e4e72 !important;
}

body.tg-homepage .tg-home-news-layout {
    grid-template-columns: minmax(0, 1.5fr) minmax(310px, .72fr);
    align-items: start;
    gap: .65rem;
}

body.tg-homepage .tg-home-news-lead,
body.tg-homepage .tg-home-news-headlines,
body.tg-homepage .tg-topic-list,
body.tg-homepage .tg-resource-panel {
    border-color: #d7e0e7;
    box-shadow: 0 7px 18px rgba(31, 45, 56, .035);
}

body.tg-homepage .tg-home-news-lead {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: .72rem;
    padding: .82rem .88rem;
    border-radius: .72rem;
    background: #fff;
}

body.tg-homepage .tg-home-news-lead .tg-news-icon-wrap {
    width: 64px;
    height: 64px;
    border-radius: .66rem;
}

body.tg-homepage .tg-home-news-lead h3 {
    margin: .22rem 0 .25rem;
    font-size: clamp(1.22rem, 1.55vw, 1.48rem);
    font-weight: 720;
    line-height: 1.08;
}

body.tg-homepage .tg-home-news-lead p {
    font-size: .84rem;
    line-height: 1.42;
}

body.tg-homepage .tg-home-news-headlines {
    grid-template-rows: auto auto;
    align-content: start;
    border-radius: .72rem;
}

body.tg-homepage .tg-home-news-headline {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: .58rem;
    padding: .66rem .72rem;
}

body.tg-homepage .tg-home-news-headline .tg-news-icon-wrap {
    width: 42px;
    height: 42px;
    border-radius: .5rem;
}

body.tg-homepage .tg-home-news-headline h3 {
    margin: .16rem 0 .14rem;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.18;
}

body.tg-homepage .tg-home-news-headline p {
    -webkit-line-clamp: 1;
    color: #6b7883;
    font-size: .72rem;
    line-height: 1.34;
}

body.tg-homepage .tg-home-news-layout .tg-meta,
body.tg-homepage .tg-home-news-layout .tg-news-footer {
    color: #7a8791;
    font-size: .63rem;
    font-weight: 650;
}

body.tg-homepage .tg-meta span:first-child {
    color: #3d7297;
}

body.tg-homepage .tg-home-activity-section {
    padding-block: 1.25rem;
}

body.tg-homepage .tg-home-activity-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(360px, .75fr);
    align-items: start;
    gap: .8rem;
}

body.tg-homepage .tg-home-activity-panel {
    min-width: 0;
}

body.tg-homepage .tg-home-panel-heading {
    min-height: 42px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .58rem;
}

body.tg-homepage .tg-community-heading-actions {
    gap: .52rem;
}

body.tg-homepage .tg-online-pill {
    padding: .27rem .48rem;
    border-color: #d6e0e7;
    color: #62717d;
    background: #fff;
    font-size: .61rem;
}

body.tg-homepage .tg-online-pill strong {
    color: #26343e;
    font-size: .64rem;
}

body.tg-homepage .tg-topic-list {
    border-radius: .68rem;
}

body.tg-homepage .tg-topic-row {
    min-height: 55px;
    gap: .58rem;
    padding: .55rem .7rem;
}

body.tg-homepage .tg-topic-main strong {
    color: #27333d;
    font-size: .82rem;
    font-weight: 680;
}

body.tg-homepage .tg-topic-main small,
body.tg-homepage .tg-topic-stats small {
    color: #84909a;
    font-size: .64rem;
}

body.tg-homepage .tg-topic-stats strong {
    color: #34434e;
    font-size: .82rem;
}

body.tg-homepage .tg-home-resource-stack {
    display: grid;
    gap: .55rem;
}

body.tg-homepage .tg-resource-panel {
    border: 1px solid #d7e0e7;
    border-radius: .68rem;
    background: #fff;
}

body.tg-homepage .tg-resource-panel-head {
    padding: .48rem .66rem;
    border-bottom-color: #e3e8ec;
    background: #f7f9fa;
}

body.tg-homepage .tg-resource-panel-head h3,
body.tg-homepage .tg-resource-panel-head a {
    font-size: .72rem;
}

body.tg-homepage .tg-resource-row {
    gap: .5rem;
    min-height: 42px;
    padding: .43rem .66rem;
}

body.tg-homepage .tg-resource-badge {
    min-width: 32px;
    padding: .2rem .26rem;
    border-radius: .36rem;
    background: #326f9a;
    font-size: .58rem;
}

body.tg-homepage .tg-resource-badge-code {
    background: #566f82;
}

body.tg-homepage .tg-resource-main strong {
    color: #2a3640;
    font-size: .78rem;
    font-weight: 680;
}

body.tg-homepage .tg-resource-main small,
body.tg-homepage .tg-resource-date {
    color: #85919b;
    font-size: .64rem;
}

body.tg-homepage .tg-screenshot-section {
    padding: 1.05rem 0 1.2rem;
    color: #eef3f6;
    background: #f3f6f8;
}

body.tg-homepage .tg-screenshot-section > .tg-shell-width {
    padding: 1.05rem;
    border: 1px solid #273744;
    border-radius: .9rem;
    background:
        radial-gradient(circle at 10% 0%, rgba(61, 126, 173, .14), transparent 20rem),
        linear-gradient(145deg, #202830 0%, #141a1f 100%);
    box-shadow: 0 12px 28px rgba(18, 27, 34, .12);
}

body.tg-homepage .tg-screenshot-section .tg-section-heading {
    margin-bottom: .62rem;
}

body.tg-homepage .tg-section-heading-light h2 {
    color: #f4f7f9;
}

body.tg-homepage .tg-section-heading-light .tg-kicker {
    color: #91b3cb;
}

body.tg-homepage .tg-section-heading-light .tg-text-link {
    color: #b9d0e1 !important;
}

body.tg-homepage .tg-screenshot-grid {
    gap: .55rem;
}

body.tg-homepage .tg-screenshot-card {
    border-color: rgba(171, 194, 211, .14);
    border-radius: .65rem;
    background: #20282f;
}

body.tg-homepage .tg-screenshot-card:hover {
    border-color: rgba(137, 183, 214, .35);
    background: #25313a;
}

body.tg-homepage .tg-screenshot-card > span {
    min-height: 54px;
    padding: .48rem .54rem;
}

body.tg-homepage .tg-screenshot-card strong {
    font-size: .76rem;
    font-weight: 650;
}

body.tg-homepage .tg-screenshot-card small {
    color: #9eacb7;
    font-size: .62rem;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 1.55rem;
}

body.tg-homepage .tg-footer-brand p,
body.tg-homepage .tg-footer-grid > div:not(.tg-footer-brand) a {
    font-size: .68rem;
}

@media (max-width: 1120px) {
    body.tg-homepage .tg-home-activity-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-resource-stack {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    body.tg-homepage .tg-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(240px, .5fr);
        padding-block: 1.4rem;
    }

    body.tg-homepage .tg-home-news-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-hero-grid {
        grid-template-columns: 1fr;
        gap: .9rem;
        padding-block: 1.35rem;
    }

    body.tg-homepage .tg-hero-panel {
        width: 100%;
        max-width: none;
        justify-self: stretch;
    }

    body.tg-homepage .tg-hero-copy h1 {
        font-size: clamp(2.35rem, 12vw, 3rem);
    }

    body.tg-homepage .tg-home-panel-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .38rem;
    }

    body.tg-homepage .tg-community-heading-actions {
        width: 100%;
        justify-content: space-between;
    }

    body.tg-homepage .tg-home-resource-stack {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-resource-date {
        display: none;
    }

    body.tg-homepage .tg-screenshot-section > .tg-shell-width {
        padding: .8rem;
        border-radius: .72rem;
    }
}


/* Build 0063 — neutral off-white content canvas refinement.
   Keep the TG007 chrome charcoal/steel-blue while removing the blue-green
   cast from reading surfaces. White cards remain distinct from the warmer
   off-white site canvas, with blue reserved for accents and actions. */
:root {
    --tg007-surface: #f8f7f4;
    --tg007-surface-strong: #ffffff;
    --tg007-surface-soft: #f1f2f1;
    --tg007-text: #20272d;
    --tg007-muted: #6c747a;
    --tg007-line: #dedfdf;
}



body.tg-homepage .tg-hero {
    border-bottom-color: #e0e1df;
    background:
        radial-gradient(circle at 84% 8%, rgba(61, 126, 173, .055), transparent 22rem),
        linear-gradient(145deg, #fbfaf7 0%, #f7f7f4 64%, #f0f2f2 100%);
}

body.tg-homepage .tg-hero::after {
    border-color: rgba(61, 126, 173, .075);
    box-shadow: inset 0 0 0 45px rgba(61, 126, 173, .012), inset 0 0 0 90px rgba(61, 126, 173, .01);
}

body.tg-homepage .tg-section,
body.tg-homepage .tg-section-white,
body.tg-homepage .tg-screenshot-section {
    background: #f8f7f4;
}

body.tg-homepage .tg-section + .tg-section {
    border-top-color: #e1e2e0;
}

body.tg-homepage .tg-home-news-lead,
body.tg-homepage .tg-home-news-headlines,
body.tg-homepage .tg-topic-list,
body.tg-homepage .tg-resource-panel,
body.tg-homepage .tg-online-pill {
    border-color: #dedfdf;
    background-color: #ffffff;
}

body.tg-homepage .tg-home-news-lead {
    background: #ffffff;
}

body.tg-homepage .tg-resource-panel-head {
    border-bottom-color: #e5e5e3;
    background: #f8f8f6;
}

body.tg-homepage .tg-topic-row:hover,
body.tg-homepage .tg-resource-row:hover {
    background: #fafaf8;
}

body.tg-homepage .tg-section-heading h2,
body.tg-homepage .tg-home-panel-heading h2,
body.tg-homepage .tg-topic-main strong,
body.tg-homepage .tg-resource-main strong {
    color: #22292f;
}

body.tg-homepage .tg-home-news-headline p,
body.tg-homepage .tg-home-news-layout .tg-meta,
body.tg-homepage .tg-home-news-layout .tg-news-footer,
body.tg-homepage .tg-topic-main small,
body.tg-homepage .tg-topic-stats small,
body.tg-homepage .tg-resource-main small,
body.tg-homepage .tg-resource-date {
    color: #737b81;
}

/* Build 0064 — homepage editorial reset.
 * The previous landing-page/card composition is intentionally retired.
 * TG007 now uses a flatter editorial/community layout: continuous off-white
 * canvas, charcoal chrome, steel-blue accents, rule-based grouping and only
 * content-native containers (images, controls) where they add meaning.
 */
:root {
    --tg007-surface: #f8f7f3;
    --tg007-surface-strong: #ffffff;
    --tg007-surface-soft: #f1f2f1;
    --tg007-text: #1b2329;
    --tg007-muted: #68727a;
    --tg007-line: #d9dddf;
    --tg007-blue: #337aa8;
    --tg007-blue-dark: #245f86;
}



.tg-modern-body h1,
.tg-modern-body h2,
.tg-modern-body h3,
.tg-modern-body h4,
.tg-modern-body .tg-primary-nav,
.tg-modern-body .tg-brand-copy strong,
.tg-modern-body .tg-btn,
.tg-modern-body .tg-account-menu > summary {
    font-family: "Space Grotesk", "Inter", ui-sans-serif, system-ui, sans-serif;
}



/* Shared modern chrome: one dark visual system instead of dark + white bands. */


.tg-brand-band::after {
    opacity: .16;
    filter: grayscale(1) saturate(0) contrast(1.08);
}

.tg-brand-row {
    min-height: 84px;
}

.tg-brand img {
    width: 216px;
}

.tg-brand-copy strong {
    font-size: .82rem;
    letter-spacing: .14em;
}

.tg-brand-copy small {
    color: #9caab4;
    font-size: .66rem;
}



.tg-nav-row,
.tg-primary-nav > a,
.tg-nav-more > summary {
    min-height: 50px;
}

.tg-primary-nav > a,
.tg-nav-more > summary {
    padding-inline: .82rem;
    color: #c7d1d8;
    font-size: .8rem;
    font-weight: 600;
}

.tg-primary-nav > a:hover,
.tg-primary-nav > a.is-active,
.tg-nav-more > summary:hover,
.tg-nav-more[open] > summary {
    color: #ffffff;
}

.tg-primary-nav > a::after,
.tg-nav-more > summary::before {
    right: .82rem;
    left: .82rem;
    height: 2px;
    background: #4c93bf;
}

.tg-search-link {
    border-color: #33414b;
    color: #c8d2d8;
    background: #182129;
}

.tg-search-link:hover {
    border-color: #466273;
    color: #ffffff;
    background: #1d2a33;
}

.tg-nav-dropdown {
    border-color: #2f3c45;
    background: #172027;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .3);
}

.tg-nav-dropdown a {
    color: #c8d2d9;
}

.tg-nav-dropdown a:hover {
    color: #ffffff;
    background: #22303a;
}

/* Homepage layout. */
body.tg-homepage #main-content,
body.tg-homepage .tg-home-main {
    background: #f8f7f3;
}

body.tg-homepage .tg-home-masthead {
    border-bottom: 1px solid var(--tg007-line);
    background:
        linear-gradient(90deg, rgba(51, 122, 168, .035), transparent 42%),
        #faf9f6;
}

body.tg-homepage .tg-home-masthead-grid {
    min-height: 238px;
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(330px, .6fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
    padding-block: 1.7rem;
}

body.tg-homepage .tg-home-overline {
    display: block;
    color: #3d779d;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .105em;
    text-transform: uppercase;
}

body.tg-homepage .tg-home-masthead-copy h1 {
    max-width: 670px;
    margin: .36rem 0 .48rem;
    color: #192128;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: clamp(2.75rem, 4vw, 3.7rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .94;
}

body.tg-homepage .tg-home-masthead-copy h1 span {
    color: #337aa8;
}

body.tg-homepage .tg-home-masthead-copy > p {
    max-width: 660px;
    margin: 0;
    color: #5d6870;
    font-size: .94rem;
    line-height: 1.46;
}

body.tg-homepage .tg-home-masthead-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .9rem;
}

body.tg-homepage .tg-home-primary-action,
body.tg-homepage .tg-home-secondary-action {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    padding: .48rem .78rem;
    border-radius: 5px;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .75rem;
    font-weight: 600;
    text-decoration: none;
}

body.tg-homepage .tg-home-primary-action {
    color: #fff;
    background: #2f719d;
}

body.tg-homepage .tg-home-primary-action:hover {
    background: #255f86;
}

body.tg-homepage .tg-home-secondary-action {
    border: 1px solid #cbd1d4;
    color: #263139;
    background: transparent;
}

body.tg-homepage .tg-home-secondary-action:hover {
    border-color: #9eabb2;
    background: #fff;
}

body.tg-homepage .tg-home-archive-summary {
    padding-left: clamp(1.4rem, 3vw, 2.4rem);
    border-left: 1px solid #cfd5d8;
}

body.tg-homepage .tg-home-archive-heading {
    margin-bottom: .62rem;
    color: #60707a;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

body.tg-homepage .tg-home-archive-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem 1.8rem;
}

body.tg-homepage .tg-home-archive-stats a {
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

body.tg-homepage .tg-home-archive-stats strong,
body.tg-homepage .tg-home-archive-stats span {
    display: block;
}

body.tg-homepage .tg-home-archive-stats strong {
    color: #1e2931;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
}

body.tg-homepage .tg-home-archive-stats span {
    margin-top: .15rem;
    color: #748089;
    font-size: .67rem;
}

body.tg-homepage .tg-home-archive-stats a:hover strong {
    color: #2e739f;
}

body.tg-homepage .tg-home-archive-note {
    display: flex;
    align-items: center;
    gap: .42rem;
    margin-top: .8rem;
    color: #7a858c;
    font-size: .62rem;
}

body.tg-homepage .tg-home-editorial,
body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    padding-block: 1.75rem;
    background: #f8f7f3;
}

body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    border-top: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-section-heading {
    min-width: 0;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .82rem;
}

body.tg-homepage .tg-home-section-heading h2 {
    margin: .12rem 0 0;
    color: #1c252c;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: clamp(1.35rem, 1.75vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.05;
}

body.tg-homepage .tg-home-section-heading a,
body.tg-homepage .tg-home-heading-actions > a,
body.tg-homepage .tg-home-resource-heading a {
    color: #2d678d;
    font-size: .7rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

body.tg-homepage .tg-home-section-heading a:hover,
body.tg-homepage .tg-home-heading-actions > a:hover,
body.tg-homepage .tg-home-resource-heading a:hover {
    color: #194d70;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* News is editorial content, not a collection of cards. */
body.tg-homepage .tg-home-news-editorial {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, .72fr);
    gap: clamp(1.8rem, 4vw, 3.4rem);
    border-top: 2px solid #25313a;
    padding-top: 1rem;
}

body.tg-homepage .tg-home-news-feature {
    min-width: 0;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: start;
    gap: .85rem;
    padding-right: clamp(1.5rem, 3vw, 2.6rem);
    border-right: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-news-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #d7dbdd;
    border-radius: 7px;
    background: #fff;
}

body.tg-homepage .tg-home-news-icon img {
    max-width: 46px;
    max-height: 46px;
}

body.tg-homepage .tg-home-news-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .7rem;
    color: #78838a;
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .025em;
    text-transform: uppercase;
}

body.tg-homepage .tg-home-news-meta span:first-child {
    color: #316f99;
}

body.tg-homepage .tg-home-news-feature h3 {
    margin: .3rem 0 .42rem;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: clamp(1.35rem, 1.8vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.08;
}

body.tg-homepage .tg-home-news-feature h3 a,
body.tg-homepage .tg-home-news-brief h3 a {
    color: #1a232a;
    text-decoration: none;
}

body.tg-homepage .tg-home-news-feature h3 a:hover,
body.tg-homepage .tg-home-news-brief h3 a:hover {
    color: #2d6e99;
}

body.tg-homepage .tg-home-news-feature p {
    max-width: 760px;
    margin: 0;
    color: #5f6970;
    font-size: .84rem;
    line-height: 1.5;
}

body.tg-homepage .tg-home-news-byline {
    margin-top: .48rem;
    color: #858e94;
    font-size: .62rem;
}

body.tg-homepage .tg-home-news-rail {
    min-width: 0;
}

body.tg-homepage .tg-home-news-brief {
    padding-bottom: .8rem;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    padding-top: .8rem;
    border-top: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-news-brief h3 {
    margin: .22rem 0 .26rem;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .94rem;
    font-weight: 600;
    line-height: 1.22;
}

body.tg-homepage .tg-home-news-brief p {
    margin: 0;
    color: #6c767d;
    font-size: .72rem;
    line-height: 1.42;
}

/* Forum + resources share one workspace and one alignment system. */
body.tg-homepage .tg-home-community-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(370px, .72fr);
    align-items: start;
    gap: clamp(2rem, 4vw, 3.6rem);
}

body.tg-homepage .tg-home-resources {
    min-width: 0;
    padding-left: clamp(1.8rem, 3vw, 2.8rem);
    border-left: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-heading-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
}

body.tg-homepage .tg-home-online {
    display: inline-flex;
    align-items: center;
    gap: .36rem;
    color: #66727a;
    font-size: .66rem;
    font-weight: 600;
}

body.tg-homepage .tg-home-conversation-list,
body.tg-homepage .tg-home-resource-list {
    border-top: 2px solid #25313a;
}

body.tg-homepage .tg-home-conversation-row,
body.tg-homepage .tg-home-resource-row {
    min-width: 0;
    display: grid;
    align-items: center;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-conversation-row {
    min-height: 52px;
    grid-template-columns: 10px minmax(0, 1fr) auto;
    gap: .65rem;
}

body.tg-homepage .tg-home-resource-row {
    min-height: 44px;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    gap: .55rem;
}

body.tg-homepage .tg-home-conversation-row:hover,
body.tg-homepage .tg-home-resource-row:hover {
    background: rgba(255, 255, 255, .46);
}

body.tg-homepage .tg-home-row-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #3a83b0;
}

body.tg-homepage .tg-home-row-copy {
    min-width: 0;
}

body.tg-homepage .tg-home-row-copy strong,
body.tg-homepage .tg-home-row-copy small {
    display: block;
}

body.tg-homepage .tg-home-row-copy strong {
    overflow: hidden;
    color: #263139;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .78rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.tg-homepage .tg-home-row-copy small {
    margin-top: .08rem;
    overflow: hidden;
    color: #828c92;
    font-size: .63rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.tg-homepage .tg-home-row-count {
    min-width: 42px;
    text-align: right;
}

body.tg-homepage .tg-home-row-count strong,
body.tg-homepage .tg-home-row-count small {
    display: block;
}

body.tg-homepage .tg-home-row-count strong {
    color: #31404a;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .8rem;
}

body.tg-homepage .tg-home-row-count small {
    color: #8a949a;
    font-size: .58rem;
}

body.tg-homepage .tg-home-resource-list + .tg-home-resource-list {
    margin-top: 1rem;
}

body.tg-homepage .tg-home-resource-heading {
    min-height: 35px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--tg007-line);
}

body.tg-homepage .tg-home-resource-heading h3 {
    margin: 0;
    color: #273139;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .76rem;
    font-weight: 600;
}

body.tg-homepage .tg-home-resource-type {
    justify-self: start;
    padding: .18rem .34rem;
    border-radius: 3px;
    color: #fff;
    background: #337aa8;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .53rem;
    font-weight: 700;
    letter-spacing: .035em;
}

body.tg-homepage .tg-home-resource-type-code {
    background: #536b7b;
}

body.tg-homepage .tg-home-resource-extra {
    color: #8a9399;
    font-size: .59rem;
    white-space: nowrap;
}

/* Ads are invisible chrome until AdSense actually fills them. */
body.tg-homepage .tg-home-ad-slot,
body.tg-homepage .tg-home-ad-slot .tg-ad-wrap {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

body.tg-homepage .tg-home-ad-slot .tg-ad-label {
    display: none;
}

body.tg-homepage .tg-home-ad-slot .adsbygoogle[data-ad-status="filled"] {
    margin-block: .7rem;
}

/* Screenshots are image-led editorial tiles, not another dark card module. */
body.tg-homepage .tg-home-gallery {
    padding-bottom: 2rem;
}

body.tg-homepage .tg-home-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .62rem;
}

body.tg-homepage .tg-home-gallery-item {
    position: relative;
    min-width: 0;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 5px;
    background: #1a2228;
    text-decoration: none;
}

body.tg-homepage .tg-home-gallery-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .22s ease, opacity .22s ease;
}

body.tg-homepage .tg-home-gallery-caption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 2.2rem .62rem .58rem;
    color: #f5f8fa;
    background: linear-gradient(to bottom, transparent, rgba(10, 15, 19, .92));
}

body.tg-homepage .tg-home-gallery-caption strong,
body.tg-homepage .tg-home-gallery-caption small {
    display: block;
}

body.tg-homepage .tg-home-gallery-caption strong {
    display: -webkit-box;
    overflow: hidden;
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .7rem;
    font-weight: 600;
    line-height: 1.22;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-home-gallery-caption small {
    margin-top: .2rem;
    color: #bac5cc;
    font-size: .56rem;
}

body.tg-homepage .tg-home-gallery-item:hover img {
    opacity: .9;
    transform: scale(1.025);
}

body.tg-homepage .tg-home-empty {
    margin: 0;
    padding-block: 1rem;
    border-top: 2px solid #25313a;
    color: #778188;
    font-size: .8rem;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 1.45rem;
}

@media (max-width: 1120px) {
    body.tg-homepage .tg-home-masthead-grid {
        grid-template-columns: minmax(0, 1.25fr) minmax(290px, .65fr);
    }

    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(330px, .72fr);
    }
}

@media (max-width: 980px) {
    .tg-nav-band {
        background: #161616;
    }

    .tg-nav-toggle {
        border-color: #34424c;
        background: #182129;
    }

    .tg-nav-toggle > span:not(.visually-hidden) {
        background: #d6dfe5;
    }

    .tg-primary-nav {
        border-color: #2d3a43;
        background: #172027;
        box-shadow: 0 20px 42px rgba(0, 0, 0, .28);
    }

    .tg-primary-nav > a,
    .tg-nav-more > summary {
        color: #d1dae0;
    }

    .tg-primary-nav > a:hover,
    .tg-primary-nav > a.is-active,
    .tg-nav-more > summary:hover,
    .tg-nav-more[open] > summary {
        color: #fff;
        background: #22303a;
    }

    .tg-nav-dropdown {
        border-left-color: #3b718f;
        background: transparent;
    }

    body.tg-homepage .tg-home-masthead-grid,
    body.tg-homepage .tg-home-news-editorial,
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-archive-summary,
    body.tg-homepage .tg-home-resources {
        padding-left: 0;
        border-left: 0;
    }

    body.tg-homepage .tg-home-archive-summary {
        padding-top: 1.2rem;
        border-top: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-home-news-feature {
        padding-right: 0;
        padding-bottom: 1rem;
        border-right: 0;
        border-bottom: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-home-news-rail {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.2rem;
    }

    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        padding-top: 0;
        padding-left: 1.2rem;
        border-top: 0;
        border-left: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-home-resources {
        padding-top: 1.4rem;
        border-top: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-brand-row {
        min-height: 76px;
    }

    .tg-brand img {
        width: 180px;
    }

    body.tg-homepage .tg-home-masthead-grid {
        min-height: 0;
        gap: 1.1rem;
        padding-block: 1.45rem;
    }

    body.tg-homepage .tg-home-masthead-copy h1 {
        font-size: clamp(2.35rem, 12vw, 3rem);
    }

    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .6rem;
    }

    body.tg-homepage .tg-home-archive-stats strong {
        font-size: 1.15rem;
    }

    body.tg-homepage .tg-home-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: .35rem;
    }

    body.tg-homepage .tg-home-heading-actions {
        width: 100%;
        justify-content: space-between;
    }

    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: 48px minmax(0, 1fr);
        gap: .68rem;
    }

    body.tg-homepage .tg-home-news-icon {
        width: 48px;
        height: 48px;
    }

    body.tg-homepage .tg-home-news-icon img {
        max-width: 38px;
        max-height: 38px;
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: 1fr;
        gap: 0;
    }

    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        padding-top: .75rem;
        padding-left: 0;
        border-top: 1px solid var(--tg007-line);
        border-left: 0;
    }

    body.tg-homepage .tg-home-resource-extra {
        display: none;
    }
}

@media (max-width: 480px) {
    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: 1fr;
    }
}

/* Build 0065 — editorial precision and cohesion pass.
 * Preserve the Build 0064 reset while correcting navigation contrast, reducing
 * residual masthead/section height, balancing the community/resources band,
 * and tightening typography without returning to card-driven composition.
 */

/* Guarantee dark-header navigation remains readable in every link state. */
body.tg-modern-body .tg-primary-nav > a:link,
body.tg-modern-body .tg-primary-nav > a:visited,
body.tg-modern-body .tg-nav-more > summary {
    color: #d6dde2;
}

body.tg-modern-body .tg-primary-nav > a:hover,
body.tg-modern-body .tg-primary-nav > a.is-active,
body.tg-modern-body .tg-primary-nav > a.is-active:visited,
body.tg-modern-body .tg-nav-more > summary:hover,
body.tg-modern-body .tg-nav-more[open] > summary {
    color: #ffffff;
}

body.tg-modern-body .tg-account-area > a:link,
body.tg-modern-body .tg-account-area > a:visited {
    color: #d7dfe4;
}

body.tg-modern-body .tg-account-area > a:hover {
    color: #ffffff;
}

.tg-brand-row {
    min-height: 78px;
}

.tg-brand img {
    width: 205px;
}

.tg-nav-row,
.tg-primary-nav > a,
.tg-nav-more > summary {
    min-height: 46px;
}

.tg-primary-nav > a,
.tg-nav-more > summary {
    font-size: .79rem;
}

.tg-search-link {
    min-height: 34px;
    padding: .38rem .72rem;
}

body.tg-homepage .tg-home-masthead-grid {
    min-height: 205px;
    grid-template-columns: minmax(0, 1.62fr) minmax(320px, .62fr);
    gap: clamp(1.8rem, 4vw, 3.7rem);
    padding-block: 1.3rem;
}

body.tg-homepage .tg-home-masthead-copy h1 {
    max-width: 620px;
    margin-top: .28rem;
    margin-bottom: .4rem;
    font-size: clamp(2.55rem, 3.55vw, 3.35rem);
    line-height: .95;
}

body.tg-homepage .tg-home-masthead-copy > p {
    max-width: 620px;
    font-size: .9rem;
    line-height: 1.42;
}

body.tg-homepage .tg-home-masthead-actions {
    margin-top: .72rem;
}

body.tg-homepage .tg-home-archive-summary {
    padding-left: clamp(1.25rem, 2.5vw, 2rem);
}

body.tg-homepage .tg-home-archive-stats {
    gap: .52rem 1.35rem;
}

body.tg-homepage .tg-home-archive-stats strong {
    font-size: 1.38rem;
}

body.tg-homepage .tg-home-editorial,
body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    padding-block: 1.45rem;
}

body.tg-homepage .tg-home-section-heading {
    margin-bottom: .68rem;
}

body.tg-homepage .tg-home-section-heading h2 {
    font-size: clamp(1.3rem, 1.55vw, 1.58rem);
}

body.tg-homepage .tg-home-news-editorial {
    grid-template-columns: minmax(0, 1.72fr) minmax(300px, .62fr);
    gap: clamp(1.45rem, 3vw, 2.6rem);
    padding-top: .82rem;
}

body.tg-homepage .tg-home-news-feature {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: .75rem;
    padding-right: clamp(1.2rem, 2.4vw, 2rem);
}

body.tg-homepage .tg-home-news-icon {
    width: 52px;
    height: 52px;
}

body.tg-homepage .tg-home-news-icon img {
    max-width: 41px;
    max-height: 41px;
}

body.tg-homepage .tg-home-news-feature h3 {
    margin: .24rem 0 .34rem;
    font-size: clamp(1.28rem, 1.62vw, 1.58rem);
}

body.tg-homepage .tg-home-news-feature p {
    max-width: 700px;
    font-size: .8rem;
    line-height: 1.45;
}

body.tg-homepage .tg-home-news-brief {
    padding-bottom: .68rem;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    padding-top: .68rem;
}

body.tg-homepage .tg-home-news-brief h3 {
    font-size: .9rem;
    line-height: 1.18;
}

body.tg-homepage .tg-home-news-brief p {
    display: -webkit-box;
    overflow: hidden;
    font-size: .69rem;
    line-height: 1.38;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* Balance Forum activity with two parallel resource columns so neither side
   creates an obvious dead zone below the other. */
body.tg-homepage .tg-home-community-grid {
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: clamp(1.6rem, 3vw, 2.8rem);
}

body.tg-homepage .tg-home-resources {
    padding-left: clamp(1.35rem, 2.4vw, 2rem);
}

body.tg-homepage .tg-home-resource-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
}

body.tg-homepage .tg-home-resource-list + .tg-home-resource-list {
    margin-top: 0;
}

body.tg-homepage .tg-home-conversation-row {
    min-height: 48px;
}

body.tg-homepage .tg-home-resource-row {
    min-height: 48px;
    grid-template-columns: 34px minmax(0, 1fr);
}

body.tg-homepage .tg-home-resource-extra {
    display: none;
}

body.tg-homepage .tg-home-resource-heading {
    min-height: 31px;
}

body.tg-homepage .tg-home-resource-heading h3 {
    font-size: .72rem;
}

body.tg-homepage .tg-home-resource-heading a {
    font-size: .63rem;
}

body.tg-homepage .tg-home-row-copy strong {
    font-size: .76rem;
}

body.tg-homepage .tg-home-row-copy small {
    font-size: .61rem;
}

body.tg-homepage .tg-home-gallery {
    padding-top: 1.35rem;
    padding-bottom: 1.55rem;
}

body.tg-homepage .tg-home-gallery-grid {
    gap: .72rem;
}

body.tg-homepage .tg-home-gallery-caption {
    padding: 2.35rem .68rem .6rem;
}

body.tg-homepage .tg-home-gallery-caption strong {
    font-size: .72rem;
    line-height: 1.2;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 1.28rem;
}

@media (max-width: 1120px) {
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    }

    body.tg-homepage .tg-home-resource-columns {
        grid-template-columns: 1fr;
        gap: .85rem;
    }
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-masthead-grid,
    body.tg-homepage .tg-home-news-editorial,
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-resource-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-brand-row {
        min-height: 72px;
    }

    body.tg-homepage .tg-home-resource-columns {
        grid-template-columns: 1fr;
    }
}


/* Build 0066 — homepage visual direction refinement + dropdown fixes.
 * Keep the flat editorial foundation, but make it feel intentional rather than
 * document-like: integrated masthead data rail, stronger type-led News,
 * readable community/resource typography, image-forward screenshots, and a
 * single steel-blue accent language. Also repair both desktop dropdown layers.
 */

/* Shared header stacking and dropdown visibility. The brand band previously
   clipped the account menu because it was an overflow container, while the
   subsequent nav band could paint over the menu even with a high child z-index. */
.tg-header {
    z-index: 400;
}



.tg-brand-row {
    z-index: 70;
}



.tg-account-area {
    position: relative;
    z-index: 1000;
}

.tg-account-menu {
    z-index: 1010;
}

.tg-account-menu[open] {
    z-index: 1300;
}

.tg-account-dropdown {
    z-index: 1400;
    top: calc(100% + .42rem);
    min-width: 208px;
    border-color: #34434d;
    border-radius: 8px;
    background: #172027;
    box-shadow: 0 20px 48px rgba(0, 0, 0, .38);
}

body.tg-modern-body .tg-account-dropdown a:link,
body.tg-modern-body .tg-account-dropdown a:visited {
    color: #e4ebef !important;
}

body.tg-modern-body .tg-account-dropdown a:hover,
body.tg-modern-body .tg-account-dropdown a:focus-visible {
    color: #ffffff !important;
    background: #24323b;
}

.tg-nav-more[open] {
    position: relative;
    z-index: 1200;
}

.tg-nav-dropdown {
    z-index: 1300;
    min-width: 232px;
    border-radius: 8px;
}

body.tg-modern-body .tg-nav-dropdown a:link,
body.tg-modern-body .tg-nav-dropdown a:visited {
    color: #e2e9ed !important;
}

body.tg-modern-body .tg-nav-dropdown a:hover,
body.tg-modern-body .tg-nav-dropdown a:focus-visible {
    color: #ffffff !important;
    background: #25343e;
}

body.tg-modern-body .tg-nav-dropdown a:focus-visible,
body.tg-modern-body .tg-account-dropdown a:focus-visible {
    outline: 2px solid #67a8d0;
    outline-offset: -2px;
}

/* Compact, integrated homepage masthead. */
body.tg-homepage .tg-home-masthead {
    position: relative;
    overflow: hidden;
    background: #faf9f6;
}

body.tg-homepage .tg-home-masthead::before {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    opacity: .42;
    background:
        linear-gradient(rgba(51, 122, 168, .035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(51, 122, 168, .035) 1px, transparent 1px),
        radial-gradient(circle at 82% 24%, rgba(51, 122, 168, .08), transparent 22rem);
    background-size: 32px 32px, 32px 32px, auto;
    mask-image: linear-gradient(90deg, transparent 0%, #000 30%, #000 100%);
}

body.tg-homepage .tg-home-masthead-grid {
    position: relative;
    z-index: 1;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: .9rem;
    padding-block: 1.15rem .8rem;
}

body.tg-homepage .tg-home-masthead-copy {
    max-width: 930px;
}

body.tg-homepage .tg-home-overline {
    color: #4b7390;
    font-size: .64rem;
    letter-spacing: .08em;
}

body.tg-homepage .tg-home-masthead-copy h1 {
    max-width: none;
    margin: .28rem 0 .35rem;
    font-size: clamp(2.45rem, 3.45vw, 3.28rem);
    letter-spacing: -.055em;
    line-height: .98;
}

body.tg-homepage .tg-home-masthead-copy > p {
    max-width: 760px;
    color: #56636c;
    font-size: .94rem;
    line-height: 1.45;
}

body.tg-homepage .tg-home-masthead-actions {
    margin-top: .68rem;
}

body.tg-homepage .tg-home-primary-action,
body.tg-homepage .tg-home-secondary-action {
    min-height: 34px;
    padding: .43rem .74rem;
    border-radius: 5px;
    font-size: .72rem;
}

body.tg-homepage .tg-home-archive-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.25rem;
    padding: .7rem 0 0;
    border-top: 1px solid #d8dddf;
    border-left: 0;
}

body.tg-homepage .tg-home-archive-heading {
    margin: 0;
    color: #52626d;
    font-size: .64rem;
    letter-spacing: .08em;
}

body.tg-homepage .tg-home-archive-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
}

body.tg-homepage .tg-home-archive-stats a {
    padding: 0 .95rem;
    border-left: 1px solid #dde1e3;
}

body.tg-homepage .tg-home-archive-stats strong {
    font-size: 1.16rem;
}

body.tg-homepage .tg-home-archive-stats span {
    margin-top: .1rem;
    font-size: .63rem;
}

body.tg-homepage .tg-home-archive-note {
    margin: 0;
    white-space: nowrap;
    font-size: .61rem;
}

/* Section rhythm: fewer labels/rules, stronger heading accents. */
body.tg-homepage .tg-home-editorial,
body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    padding-block: 1.6rem;
}

body.tg-homepage .tg-home-section-heading {
    position: relative;
    align-items: center;
    margin-bottom: .9rem;
    padding-left: .72rem;
}

body.tg-homepage .tg-home-section-heading::before {
    position: absolute;
    top: .08rem;
    bottom: .08rem;
    left: 0;
    width: 3px;
    border-radius: 3px;
    background: #3b80ab;
    content: "";
}

body.tg-homepage .tg-home-section-heading h2 {
    margin: 0;
    font-size: clamp(1.45rem, 1.8vw, 1.72rem);
    letter-spacing: -.04em;
}

body.tg-homepage .tg-home-section-heading a,
body.tg-homepage .tg-home-heading-actions > a,
body.tg-homepage .tg-home-resource-heading a {
    font-size: .72rem;
}

/* News is led by typography, not a legacy category icon or a pseudo-card. */
body.tg-homepage .tg-home-news-editorial {
    grid-template-columns: minmax(0, 1.7fr) minmax(310px, .68fr);
    gap: clamp(1.6rem, 3.2vw, 3rem);
    padding-top: .3rem;
}

body.tg-homepage .tg-home-news-feature {
    display: block;
    padding: .15rem clamp(1.6rem, 3vw, 2.65rem) .15rem 0;
    border-right: 1px solid #d9dddf;
}

body.tg-homepage .tg-home-news-icon {
    display: none;
}

body.tg-homepage .tg-home-news-meta {
    gap: .5rem;
    color: #6f7980;
    font-size: .66rem;
}

body.tg-homepage .tg-home-news-meta span:first-child {
    color: #2f719a;
    font-weight: 700;
}

body.tg-homepage .tg-home-news-feature h3 {
    max-width: 820px;
    margin: .35rem 0 .48rem;
    font-size: clamp(1.65rem, 2.4vw, 2.18rem);
    line-height: 1.05;
}

body.tg-homepage .tg-home-news-feature p {
    max-width: 780px;
    margin-bottom: .6rem;
    color: #4f5c64;
    font-size: .92rem;
    line-height: 1.55;
}

body.tg-homepage .tg-home-news-byline {
    font-size: .66rem;
}

body.tg-homepage .tg-home-news-rail {
    align-self: start;
}

body.tg-homepage .tg-home-news-brief {
    padding-bottom: .9rem;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    padding-top: .9rem;
}

body.tg-homepage .tg-home-news-brief h3 {
    margin: .27rem 0 .35rem;
    font-size: 1rem;
    line-height: 1.2;
}

body.tg-homepage .tg-home-news-brief p {
    color: #657078;
    font-size: .75rem;
    line-height: 1.45;
    -webkit-line-clamp: 3;
}

/* Community/resources: restore comfortable reading size and use the grid for
   hierarchy rather than shrinking everything until it fits. */
body.tg-homepage .tg-home-community-grid {
    grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
    gap: clamp(1.7rem, 3.2vw, 3.1rem);
}

body.tg-homepage .tg-home-resources {
    padding-left: clamp(1.45rem, 2.7vw, 2.3rem);
}

body.tg-homepage .tg-home-conversation-row,
body.tg-homepage .tg-home-resource-row {
    min-height: 52px;
}

body.tg-homepage .tg-home-row-copy strong {
    color: #202a31;
    font-size: .84rem;
    line-height: 1.25;
}

body.tg-homepage .tg-home-row-copy small {
    margin-top: .12rem;
    color: #6c767d;
    font-size: .66rem;
    line-height: 1.3;
}

body.tg-homepage .tg-home-row-count strong {
    font-size: .9rem;
}

body.tg-homepage .tg-home-row-count small {
    font-size: .58rem;
}

body.tg-homepage .tg-home-resource-heading {
    min-height: 34px;
}

body.tg-homepage .tg-home-resource-heading h3 {
    font-size: .78rem;
}

body.tg-homepage .tg-home-resource-heading a {
    font-size: .65rem;
}

body.tg-homepage .tg-home-resource-type {
    border-radius: 4px;
    font-size: .54rem;
}

/* Screenshot strip gains visual hierarchy without becoming another card band. */
body.tg-homepage .tg-home-gallery {
    padding-top: 1.55rem;
    padding-bottom: 1.75rem;
}

body.tg-homepage .tg-home-gallery-grid {
    grid-template-columns: 1.45fr repeat(3, minmax(0, 1fr));
    gap: .72rem;
}

body.tg-homepage .tg-home-gallery-item {
    min-height: 168px;
    border-radius: 7px;
}

body.tg-homepage .tg-home-gallery-item img {
    width: 100%;
    height: 168px;
    object-fit: cover;
}

body.tg-homepage .tg-home-gallery-caption {
    padding: 3.15rem .72rem .62rem;
    background: linear-gradient(180deg, transparent 0%, rgba(8, 14, 19, .14) 20%, rgba(8, 14, 19, .9) 100%);
}

body.tg-homepage .tg-home-gallery-caption strong {
    color: #ffffff;
    font-size: .78rem;
    line-height: 1.22;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}

body.tg-homepage .tg-home-gallery-caption small {
    color: #cbd6dc;
    font-size: .61rem;
}

body.tg-homepage .tg-footer-grid {
    padding-block: 1.15rem;
}

body.tg-homepage .tg-footer-bottom {
    padding-block: .72rem;
}

@media (max-width: 1120px) {
    body.tg-homepage .tg-home-archive-summary {
        grid-template-columns: auto minmax(0, 1fr);
    }

    body.tg-homepage .tg-home-archive-note {
        display: none;
    }

    body.tg-homepage .tg-home-resource-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .tg-brand-band {
        z-index: 60;
    }

    .tg-nav-band {
        z-index: 50;
    }

    .tg-account-dropdown {
        right: 0;
    }

    .tg-nav-dropdown {
        z-index: auto;
    }

    body.tg-homepage .tg-home-archive-summary {
        grid-template-columns: 1fr;
        gap: .55rem;
    }

    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    body.tg-homepage .tg-home-archive-stats a:first-child {
        border-left: 0;
        padding-left: 0;
    }

    body.tg-homepage .tg-home-news-editorial,
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-feature {
        padding-right: 0;
        padding-bottom: 1rem;
        border-right: 0;
        border-bottom: 1px solid var(--tg007-line);
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.tg-homepage .tg-home-resources {
        padding-top: 1.3rem;
        padding-left: 0;
        border-top: 1px solid var(--tg007-line);
        border-left: 0;
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-masthead-grid {
        padding-block: 1rem .75rem;
    }

    body.tg-homepage .tg-home-masthead-copy h1 {
        font-size: clamp(2.1rem, 10vw, 2.75rem);
    }

    body.tg-homepage .tg-home-archive-summary {
        padding-top: .62rem;
    }

    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem 0;
    }

    body.tg-homepage .tg-home-archive-stats a:nth-child(odd) {
        border-left: 0;
        padding-left: 0;
    }

    body.tg-homepage .tg-home-section-heading {
        width: 100%;
        align-items: flex-start;
        flex-direction: row;
        justify-content: space-between;
        gap: .7rem;
    }

    body.tg-homepage .tg-home-news-feature h3 {
        font-size: 1.55rem;
    }

    body.tg-homepage .tg-home-news-feature p {
        font-size: .86rem;
    }

    body.tg-homepage .tg-home-news-rail,
    body.tg-homepage .tg-home-resource-columns {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        padding-left: 0;
        border-left: 0;
    }

    body.tg-homepage .tg-home-gallery-item,
    body.tg-homepage .tg-home-gallery-item img {
        height: 150px;
        min-height: 150px;
    }
}

@media (max-width: 480px) {
    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-gallery-item,
    body.tg-homepage .tg-home-gallery-item img {
        height: 178px;
        min-height: 178px;
    }
}

/* Build 0067 — homepage balance, content depth and edge-to-edge shell correction.
 * Restore the stronger two-column masthead from the 0065 direction, keep the
 * 0066 dropdown safety fixes, increase real homepage content, bring News icons
 * back as brand/category cues, replace the uneven screenshot collage with a
 * consistent image-first gallery, soften rules, and stop presenting the whole
 * modern site as one rounded floating card.
 */

:root {
    --tg007-line: #e3e4e2;
}

/* The website is the page, not a rounded card sitting on the page. Preserve the
   original TG007 outer texture at the sides, but meet the viewport at top and
   finish naturally at the bottom. */


.tg-site-shell > main {
    flex: 1 0 auto;
}



/* Search must remain readable in normal, visited and hover states. */
body.tg-modern-body .tg-search-link:link,
body.tg-modern-body .tg-search-link:visited {
    border-color: #40515d;
    color: #eef4f7 !important;
    background: #1a242b;
}

body.tg-modern-body .tg-search-link span {
    color: inherit !important;
}

body.tg-modern-body .tg-search-link svg {
    stroke: currentColor;
}

body.tg-modern-body .tg-search-link:hover,
body.tg-modern-body .tg-search-link:focus-visible {
    border-color: #5d7b8e;
    color: #ffffff !important;
    background: #22313a;
}

/* Restore the better-balanced pre-0066 masthead: strong identity on the left,
   useful archive context on the right. */
body.tg-homepage .tg-home-masthead {
    border-bottom-color: #e4e4e1;
    background:
        linear-gradient(90deg, rgba(51, 122, 168, .025), transparent 44%),
        #faf9f6;
}

body.tg-homepage .tg-home-masthead::before {
    display: none;
}

body.tg-homepage .tg-home-masthead-grid {
    min-height: 205px;
    grid-template-columns: minmax(0, 1.62fr) minmax(320px, .62fr);
    align-items: center;
    gap: clamp(1.8rem, 4vw, 3.7rem);
    padding-block: 1.3rem;
}

body.tg-homepage .tg-home-masthead-copy {
    max-width: none;
}

body.tg-homepage .tg-home-overline {
    color: #4b7390;
    font-size: .64rem;
    letter-spacing: .09em;
}

body.tg-homepage .tg-home-masthead-copy h1 {
    max-width: 620px;
    margin: .28rem 0 .4rem;
    font-size: clamp(2.55rem, 3.55vw, 3.35rem);
    letter-spacing: -.055em;
    line-height: .95;
}

body.tg-homepage .tg-home-masthead-copy > p {
    max-width: 620px;
    color: #5d6870;
    font-size: .9rem;
    line-height: 1.42;
}

body.tg-homepage .tg-home-masthead-actions {
    margin-top: .72rem;
}

body.tg-homepage .tg-home-primary-action,
body.tg-homepage .tg-home-secondary-action {
    min-height: 35px;
    padding: .45rem .76rem;
    border-radius: 4px;
    font-size: .73rem;
}

body.tg-homepage .tg-home-archive-summary {
    display: block;
    padding: 0 0 0 clamp(1.25rem, 2.5vw, 2rem);
    border-top: 0;
    border-left: 1px solid #d9dcdd;
}

body.tg-homepage .tg-home-archive-heading {
    margin: 0 0 .62rem;
    color: #60707a;
    font-size: .66rem;
    letter-spacing: .09em;
}

body.tg-homepage .tg-home-archive-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .56rem 1.35rem;
}

body.tg-homepage .tg-home-archive-stats a {
    padding: 0;
    border-left: 0;
}

body.tg-homepage .tg-home-archive-stats strong {
    font-size: 1.38rem;
}

body.tg-homepage .tg-home-archive-stats span {
    margin-top: .12rem;
    font-size: .65rem;
}

body.tg-homepage .tg-home-archive-note {
    margin-top: .72rem;
    white-space: normal;
    font-size: .6rem;
}

/* The blue heading marker is enough hierarchy. Horizontal rules should support
   content rather than dominate the off-white canvas. */
body.tg-homepage .tg-home-editorial,
body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    padding-block: 1.45rem;
}

body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    border-top-color: #e6e6e3;
}

body.tg-homepage .tg-home-section-heading {
    margin-bottom: .72rem;
}

body.tg-homepage .tg-home-news-editorial,
body.tg-homepage .tg-home-conversation-list,
body.tg-homepage .tg-home-resource-list,
body.tg-homepage .tg-home-empty {
    border-top: 1px solid #cfd5d8;
}

body.tg-homepage .tg-home-news-feature,
body.tg-homepage .tg-home-resources {
    border-color: #e1e2e0;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief,
body.tg-homepage .tg-home-conversation-row,
body.tg-homepage .tg-home-resource-row,
body.tg-homepage .tg-home-resource-heading {
    border-color: #e3e4e2;
}

/* News gets its category artwork back without returning to boxed cards. */
body.tg-homepage .tg-home-news-editorial {
    grid-template-columns: minmax(0, 1.64fr) minmax(300px, .66fr);
    gap: clamp(1.5rem, 3vw, 2.7rem);
    padding-top: .82rem;
}

body.tg-homepage .tg-home-news-feature {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: start;
    gap: .78rem;
    padding: .08rem clamp(1.35rem, 2.5vw, 2.1rem) .08rem 0;
}

body.tg-homepage .tg-home-news-icon {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #dfe1e0;
    border-radius: 5px;
    background: #ffffff;
}

body.tg-homepage .tg-home-news-icon img {
    width: auto;
    height: auto;
    max-width: 43px;
    max-height: 43px;
}

body.tg-homepage .tg-home-news-feature-copy,
body.tg-homepage .tg-home-news-brief-copy {
    min-width: 0;
}

body.tg-homepage .tg-home-news-feature h3 {
    max-width: 760px;
    margin: .28rem 0 .38rem;
    font-size: clamp(1.45rem, 1.95vw, 1.82rem);
    line-height: 1.06;
}

body.tg-homepage .tg-home-news-feature p {
    max-width: 760px;
    font-size: .84rem;
    line-height: 1.48;
}

body.tg-homepage .tg-home-news-brief {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
    gap: .62rem;
    padding-bottom: .75rem;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    padding-top: .75rem;
}

body.tg-homepage .tg-home-news-brief-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #e0e2e1;
    border-radius: 4px;
    background: #fff;
}

body.tg-homepage .tg-home-news-brief-icon img {
    width: auto;
    height: auto;
    max-width: 31px;
    max-height: 31px;
}

body.tg-homepage .tg-home-news-brief h3 {
    margin: .22rem 0 .28rem;
    font-size: .92rem;
    line-height: 1.18;
}

body.tg-homepage .tg-home-news-brief p {
    font-size: .7rem;
    line-height: 1.38;
    -webkit-line-clamp: 2;
}

/* Five real rows in each homepage activity/resource list. Keep their density
   aligned so the middle band feels deliberate rather than padded. */
body.tg-homepage .tg-home-community-grid {
    grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
    gap: clamp(1.6rem, 3vw, 2.8rem);
}

body.tg-homepage .tg-home-resources {
    padding-left: clamp(1.35rem, 2.4vw, 2rem);
}

body.tg-homepage .tg-home-conversation-row,
body.tg-homepage .tg-home-resource-row {
    min-height: 46px;
}

body.tg-homepage .tg-home-row-copy strong {
    font-size: .79rem;
}

body.tg-homepage .tg-home-row-copy small {
    font-size: .62rem;
}

body.tg-homepage .tg-home-resource-columns {
    gap: 1.1rem;
}

/* Screenshots: consistent visual tiles with captions below the image. No
   oversized first tile, no cramped overlay text and no faux-dashboard cards. */
body.tg-homepage .tg-home-gallery {
    padding-top: 1.35rem;
    padding-bottom: 1.55rem;
}

body.tg-homepage .tg-home-gallery-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

body.tg-homepage .tg-home-gallery-item {
    min-height: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: visible;
    aspect-ratio: auto;
    border-radius: 0;
    color: inherit;
    background: transparent;
}

body.tg-homepage .tg-home-gallery-item img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border: 1px solid #d8dcdd;
    border-radius: 2px;
    background: #12191f;
}

body.tg-homepage .tg-home-gallery-caption {
    position: static;
    padding: .5rem 0 0;
    color: #222b31;
    background: transparent;
}

body.tg-homepage .tg-home-gallery-caption strong {
    color: #232c32;
    font-size: .75rem;
    line-height: 1.25;
    text-shadow: none;
}

body.tg-homepage .tg-home-gallery-caption small {
    margin-top: .2rem;
    color: #747d83;
    font-size: .59rem;
}

body.tg-homepage .tg-home-gallery-item:hover img {
    opacity: .94;
    transform: none;
    border-color: #8ca9ba;
}

@media (max-width: 1120px) {
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    }
}

@media (max-width: 980px) {
    .tg-site-shell {
        width: min(calc(100% - 20px), 1440px);
        margin: 0 auto;
        border-radius: 0;
    }

    body.tg-homepage .tg-home-masthead-grid,
    body.tg-homepage .tg-home-news-editorial,
    body.tg-homepage .tg-home-community-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-archive-summary {
        padding: .85rem 0 0;
        border-top: 1px solid #e0e2e1;
        border-left: 0;
    }

    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    body.tg-homepage .tg-home-news-feature {
        padding-right: 0;
        padding-bottom: 1rem;
        border-right: 0;
        border-bottom: 1px solid #e3e4e2;
    }

    body.tg-homepage .tg-home-resources {
        padding-top: 1.2rem;
        padding-left: 0;
        border-top: 1px solid #e3e4e2;
        border-left: 0;
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-site-shell {
        width: 100%;
    }

    body.tg-homepage .tg-home-masthead-grid {
        gap: .8rem;
        padding-block: 1rem;
    }

    body.tg-homepage .tg-home-masthead-copy h1 {
        font-size: clamp(2.2rem, 11vw, 2.85rem);
    }

    body.tg-homepage .tg-home-archive-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem 1rem;
    }

    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: .65rem;
    }

    body.tg-homepage .tg-home-news-icon {
        width: 46px;
        height: 46px;
    }

    body.tg-homepage .tg-home-news-icon img {
        max-width: 37px;
        max-height: 37px;
    }

    body.tg-homepage .tg-home-news-brief {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    body.tg-homepage .tg-home-news-brief-icon {
        width: 34px;
        height: 34px;
    }

    body.tg-homepage .tg-home-resource-columns,
    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-gallery-item img {
        aspect-ratio: 16 / 8.6;
    }
}

/* Build 0068 — homepage surface hierarchy, shell-edge, hero-accent and screenshot fidelity refinement.
 * Remove the bright shell borders in favor of subtle dark side depth, guarantee the footer reaches the
 * viewport floor on short pages, add restrained TG007 geometry/texture to the masthead, give News its
 * own quiet contrast surface, and present full-resolution screenshots without stretching thumbnail files.
 */

html {
    min-height: 100%;
}





.tg-site-shell > main {
    flex: 1 0 auto;
}



/* Masthead: retain the 0067 proportions but give it a recognisable, restrained
   technology accent rather than leaving a large flat off-white field. */
body.tg-homepage .tg-home-masthead {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background:
        linear-gradient(100deg, #faf9f6 0%, #faf9f6 58%, #f4f6f7 100%);
}

body.tg-homepage .tg-home-masthead::before {
    display: block;
    position: absolute;
    z-index: 0;
    top: -14%;
    right: -2%;
    width: min(47vw, 660px);
    height: 128%;
    content: "";
    pointer-events: none;
    opacity: .055;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 165% no-repeat;
    filter: grayscale(1) saturate(.3) contrast(1.05);
}

body.tg-homepage .tg-home-masthead::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    right: clamp(-120px, -7vw, -46px);
    width: clamp(280px, 29vw, 430px);
    aspect-ratio: 1;
    border: 1px solid rgba(55, 119, 160, .14);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, rgba(61, 126, 173, .045) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 52px rgba(61, 126, 173, .027),
        0 0 0 104px rgba(61, 126, 173, .014);
}

body.tg-homepage .tg-home-masthead-grid {
    position: relative;
    z-index: 2;
}

/* News should read as a deliberate editorial band, not another continuation of
   the same off-white canvas. Keep the contrast quiet and neutral/cool. */
body.tg-homepage .tg-home-editorial {
    background: linear-gradient(180deg, #f2f4f5 0%, #f0f2f3 100%);
    border-top: 1px solid #e4e6e6;
    border-bottom: 1px solid #e0e3e4;
}

body.tg-homepage .tg-home-editorial .tg-home-section-heading::before {
    background: #357ca8;
}

body.tg-homepage .tg-home-news-editorial,
body.tg-homepage .tg-home-news-conversation-list,
body.tg-homepage .tg-home-empty {
    border-top-color: #d9dddf;
}

body.tg-homepage .tg-home-news-feature {
    border-right-color: #d9dddf;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    border-top-color: #dadddf;
}

/* Keep section separators subtle against the warm off-white canvas. */
body.tg-homepage .tg-home-community,
body.tg-homepage .tg-home-gallery {
    border-top-color: #e8e8e5;
}

body.tg-homepage .tg-home-conversation-list,
body.tg-homepage .tg-home-resource-list {
    border-top-color: #daddde;
}

body.tg-homepage .tg-home-conversation-row,
body.tg-homepage .tg-home-resource-row,
body.tg-homepage .tg-home-resource-heading {
    border-color: #e5e5e2;
}

body.tg-homepage .tg-home-resources {
    border-left-color: #e2e3e1;
}

/* Screenshots: homepage PHP now loads the full original image instead of /tn/.
   Preserve each image, show it sharply, and never stretch/crop it into a fake
   uniform photograph. The frame is consistent; the actual screenshot remains intact. */
body.tg-homepage .tg-home-gallery-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
}

body.tg-homepage .tg-home-gallery-item {
    display: block;
    min-width: 0;
    overflow: visible;
    color: inherit;
    text-decoration: none;
    background: transparent;
}

body.tg-homepage .tg-home-gallery-item img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    object-position: center top;
    border: 1px solid #d7dbdc;
    border-radius: 3px;
    background: #e9ecee;
    image-rendering: auto;
}

body.tg-homepage .tg-home-gallery-caption {
    display: block;
    position: static;
    padding: .5rem .05rem 0;
    color: #202a30;
    background: transparent;
}

body.tg-homepage .tg-home-gallery-caption strong {
    display: -webkit-box;
    overflow: hidden;
    color: #202a30;
    font-size: .76rem;
    line-height: 1.28;
    text-shadow: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-home-gallery-caption small {
    display: block;
    margin-top: .18rem;
    color: #727c82;
    font-size: .6rem;
}

body.tg-homepage .tg-home-gallery-item:hover img {
    opacity: 1;
    border-color: #94aebe;
    box-shadow: 0 7px 20px rgba(30, 45, 55, .08);
}

@media (max-width: 980px) {
    .tg-site-shell {
        width: min(calc(100% - 20px), 1440px);
    }

    body.tg-homepage .tg-home-masthead::after {
        right: -150px;
        opacity: .75;
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tg-site-shell {
        width: 100%;
        box-shadow: none;
    }

    body.tg-homepage .tg-home-masthead::before {
        right: -35%;
        width: 90vw;
        opacity: .035;
    }

    body.tg-homepage .tg-home-masthead::after {
        right: -190px;
        opacity: .55;
    }

    body.tg-homepage .tg-home-gallery-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    body.tg-homepage .tg-home-gallery-item img {
        aspect-ratio: 16 / 9;
    }
}

/* Build 0069 — viewport-edge, masthead continuity and News-canvas correction.
 * Force the modern shell to the physical top/bottom viewport edges, extend the
 * hero copy surface/texture cleanly to the archive-summary boundary, and return
 * News to the same warm off-white reading canvas while allowing the lead story
 * to carry enough copy to use its editorial column naturally.
 */
html {
    margin: 0;
    padding: 0;
    min-height: 100%;
}





.tg-site-shell > main {
    flex: 1 0 auto;
}



/* Keep the stronger two-column 0067/0068 masthead, but make the copy surface
   read as one continuous field that reaches the archive-summary divider. */
body.tg-homepage .tg-home-masthead {
    background:
        linear-gradient(90deg,
            #f8f7f3 0%,
            #f8f7f3 72%,
            #faf9f6 72%,
            #f5f7f8 100%);
}

body.tg-homepage .tg-home-masthead::before {
    display: block;
    top: 0;
    right: auto;
    bottom: 0;
    left: 0;
    width: 72%;
    height: auto;
    opacity: .048;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / 590px auto no-repeat;
    filter: grayscale(1) saturate(.25) contrast(1.04);
}

body.tg-homepage .tg-home-masthead::after {
    opacity: .72;
}

/* News belongs to the same warm reading canvas as Community/Resources. Its
   hierarchy comes from typography, icons and spacing rather than a gray slab. */
body.tg-homepage .tg-home-editorial {
    background: var(--tg007-surface);
    border-top-color: #ebeae6;
    border-bottom-color: #e7e7e3;
}

body.tg-homepage .tg-home-news-editorial,
body.tg-homepage .tg-home-news-conversation-list,
body.tg-homepage .tg-home-empty {
    border-top-color: #dfe1df;
}

body.tg-homepage .tg-home-news-feature {
    border-right-color: #e2e3e0;
}

body.tg-homepage .tg-home-news-feature p {
    max-width: 820px;
    line-height: 1.52;
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-masthead {
        background: #f8f7f3;
    }

    body.tg-homepage .tg-home-masthead::before {
        width: 100%;
        opacity: .035;
        background-position: right center;
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-masthead::before {
        width: 100%;
        right: auto;
        left: 0;
    }
}


/* Build 0070 — homepage identity/detail enrichment.
 * Match the long-standing TG007 logo-header texture more closely, give the
 * brand a little breathing room at the viewport edge, lock the hero copy side
 * to the requested #F8F8F6, and add meaningful native media cues to forum,
 * file and snippet activity without returning to dashboard-card styling.
 */

/* The legacy /notifications shell shows the original two-layer header treatment
   clearly: headerbar_special on the right over the repeating headerbar_t base.
   Reuse that same artwork directly rather than washing it out through a pseudo
   overlay and blend mode. */


.tg-brand-band::after {
    display: none;
}

.tg-brand-row {
    min-height: 86px;
    box-sizing: border-box;
    padding-top: .55rem;
    padding-bottom: .18rem;
}

/* The requested hero reading surface is an exact neutral #F8F8F6 on the copy
   side. The archive side keeps the quiet steel/circle atmosphere. */
body.tg-homepage .tg-home-masthead {
    background:
        linear-gradient(90deg,
            #F8F8F6 0%,
            #F8F8F6 72%,
            #f7f8f8 72%,
            #f4f6f7 100%);
}

body.tg-homepage .tg-home-masthead::before {
    opacity: .052;
}

/* Native identity/media cues. These are intentionally small editorial
   thumbnails, not cards: last-poster avatars in Forum activity, submitter
   avatars for Snippets, and the stored File screenshot where one exists. */
body.tg-homepage .tg-home-conversation-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: .62rem;
}

body.tg-homepage .tg-home-resource-row {
    min-height: 50px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: .58rem;
}

body.tg-homepage .tg-home-row-avatar {
    display: block;
    width: 30px;
    height: 30px;
    object-fit: cover;
    border: 1px solid #d4d9dc;
    border-radius: 50%;
    background: #eef1f2;
}

body.tg-homepage .tg-home-row-avatar-snippet {
    width: 32px;
    height: 32px;
}

body.tg-homepage .tg-home-resource-media {
    width: 34px;
    height: 32px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid #d8dcde;
    border-radius: 3px;
    background: #edf0f1;
}

body.tg-homepage .tg-home-resource-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

body.tg-homepage .tg-home-resource-media .tg-home-resource-type {
    padding: .17rem .25rem;
    font-size: .48rem;
}

/* The longer lead-News excerpt is allowed to use the available editorial
   column rather than being visually choked after only a few lines. */
body.tg-homepage .tg-home-news-feature p {
    max-width: 900px;
    line-height: 1.54;
}

@media (max-width: 980px) {
    .tg-brand-row {
        min-height: 82px;
        padding-top: .45rem;
    }

    body.tg-homepage .tg-home-masthead {
        background: #F8F8F6;
    }
}

@media (max-width: 720px) {
    .tg-brand-row {
        min-height: 76px;
        padding-top: .36rem;
        padding-bottom: .12rem;
    }
}

/* Build 0071 — footer/header identity alignment, activity depth and News transition refinement.
 * Carry the established TG007 header texture/color into the footer, show six
 * forum topics, restore the legacy Latest Files screenshot/no-image behavior,
 * and give the News-to-community transition a clearer but restrained boundary.
 */

/* The footer should feel like the same site chrome as the header rather than a
   separate flat-black block. Reuse the original TG007 header artwork over the
   same charcoal base while keeping footer copy readable. */


.tg-footer::before {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, rgba(12, 17, 21, .12), rgba(12, 17, 21, .34));
}

.tg-footer > * {
    position: relative;
    z-index: 1;
}

.tg-footer-brand p,
.tg-footer-grid > div:not(.tg-footer-brand) a {
    color: #aab4ba;
}

.tg-footer-grid > div:not(.tg-footer-brand) a:hover,
.tg-footer-grid > div:not(.tg-footer-brand) a:focus-visible {
    color: #ffffff;
}

.tg-footer-bottom {
    border-top-color: rgba(255, 255, 255, .09);
    color: #87939a;
}

/* A deliberate section transition beneath News. This remains neutral first,
   with only a short steel-blue accent so it separates sections without turning
   the homepage back into stacked colored bands/cards. */
body.tg-homepage .tg-home-editorial {
    position: relative;
    border-bottom: 0;
}

body.tg-homepage .tg-home-editorial::after {
    display: block;
    width: 100%;
    height: 7px;
    content: "";
    background:
        linear-gradient(90deg, #3b82ad 0 170px, transparent 170px) top left / 100% 2px no-repeat,
        #e9eceb;
    border-top: 1px solid #d2d8da;
}

/* Latest Files follows the old TG007 behavior exactly: use the stored 30px
   screenshot thumbnail where available and noimage30.gif where it is not. Make
   that actual image cue slightly more visible than the temporary FILE badge. */
body.tg-homepage .tg-home-resource-media {
    width: 40px;
    height: 36px;
    background: #eef0f0;
}

body.tg-homepage .tg-home-resource-media img {
    object-fit: cover;
    object-position: center;
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-editorial::after {
        background:
            linear-gradient(90deg, #3b82ad 0 92px, transparent 92px) top left / 100% 2px no-repeat,
            #e9eceb;
    }
}

body.tg-homepage .tg-home-resource-list:first-child .tg-home-resource-row {
    grid-template-columns: 42px minmax(0, 1fr) auto;
}

/* Build 0072 — homepage finish refinement: footer, gallery, typography and News icon treatment.
 * Keep the confirmed 0071 editorial structure while simplifying the footer texture,
 * repeating the restrained section transition above Screenshots, increasing small-copy
 * readability, and making News/gallery imagery feel intentionally designed rather than raw.
 */

/* Footer: use one deliberate TG007 artwork accent on the right. The repeating base
   texture made the footer visually noisy and split it into multiple competing bands. */


.tg-footer::before {
    background:
        linear-gradient(90deg, rgba(18, 24, 29, .98) 0%, rgba(18, 24, 29, .96) 54%, rgba(18, 24, 29, .79) 78%, rgba(18, 24, 29, .53) 100%);
}

/* Give Screenshots the same quiet transition language used below News so the
   lower visual archive feels like a deliberate new chapter of the homepage. */
body.tg-homepage .tg-home-gallery {
    position: relative;
    border-top: 0;
    padding-top: 1.65rem;
}

body.tg-homepage .tg-home-gallery::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 7px;
    content: "";
    background:
        linear-gradient(90deg, #3b82ad 0 170px, transparent 170px) top left / 100% 2px no-repeat,
        #e9eceb;
    border-top: 1px solid #d2d8da;
}

/* News category artwork is historical TG007 content; modernize its presentation
   rather than replacing the files. A restrained steel frame makes the old icons
   read as intentional badges inside the new editorial system. */
body.tg-homepage .tg-home-news-icon,
body.tg-homepage .tg-home-news-brief-icon {
    position: relative;
    border: 1px solid #cbd7de;
    background:
        linear-gradient(145deg, #ffffff 0%, #f3f7f9 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .9) inset,
        0 5px 14px rgba(32, 58, 74, .08);
}

body.tg-homepage .tg-home-news-icon {
    border-radius: 9px;
}

body.tg-homepage .tg-home-news-brief-icon {
    border-radius: 7px;
}

body.tg-homepage .tg-home-news-icon::after,
body.tg-homepage .tg-home-news-brief-icon::after {
    position: absolute;
    right: -1px;
    bottom: -1px;
    left: -1px;
    height: 3px;
    content: "";
    border-radius: 0 0 7px 7px;
    background: linear-gradient(90deg, #2f78a5, #68a2c1);
    pointer-events: none;
}

body.tg-homepage .tg-home-news-icon img,
body.tg-homepage .tg-home-news-brief-icon img {
    filter: saturate(.92) contrast(1.03);
}

/* Improve the smallest homepage copy. Density is retained, but metadata should
   remain comfortably legible on a modern desktop instead of looking micro-sized. */
body.tg-homepage .tg-home-news-meta {
    font-size: .69rem;
}

body.tg-homepage .tg-home-news-byline {
    font-size: .68rem;
}

body.tg-homepage .tg-home-news-brief p {
    font-size: .77rem;
    line-height: 1.45;
}

body.tg-homepage .tg-home-online,
body.tg-homepage .tg-home-section-heading a,
body.tg-homepage .tg-home-heading-actions > a,
body.tg-homepage .tg-home-resource-heading a {
    font-size: .74rem;
}

body.tg-homepage .tg-home-row-copy strong {
    font-size: .84rem;
}

body.tg-homepage .tg-home-row-copy small {
    font-size: .68rem;
}

body.tg-homepage .tg-home-row-count strong {
    font-size: .86rem;
}

body.tg-homepage .tg-home-row-count small,
body.tg-homepage .tg-home-resource-extra {
    font-size: .64rem;
}

body.tg-homepage .tg-home-resource-heading h3 {
    font-size: .82rem;
}

/* Screenshots: keep the full-resolution originals and equal four-column rhythm,
   but present them inside a thin editorial "screen" frame with an accent rail,
   subtle depth and clearer captions. This is intentionally not a rounded card. */
body.tg-homepage .tg-home-gallery-grid {
    gap: 1rem;
}

body.tg-homepage .tg-home-gallery-item {
    position: relative;
    display: grid;
    grid-template-rows: auto 1fr;
    padding-top: 4px;
    background: transparent;
    transition: transform .18s ease;
}

body.tg-homepage .tg-home-gallery-item::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    content: "";
    background: linear-gradient(90deg, #347da9, #7ba9c0 58%, #d4dadd 58%);
}

body.tg-homepage .tg-home-gallery-item img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    object-position: center;
    border: 1px solid #cfd5d8;
    border-top: 0;
    border-radius: 0;
    background: #e7eaeb;
    box-shadow: 0 8px 18px rgba(28, 39, 47, .075);
}

body.tg-homepage .tg-home-gallery-caption {
    padding: .58rem .1rem 0;
}

body.tg-homepage .tg-home-gallery-caption strong {
    font-size: .82rem;
    line-height: 1.3;
}

body.tg-homepage .tg-home-gallery-caption small {
    margin-top: .24rem;
    font-size: .66rem;
}

body.tg-homepage .tg-home-gallery-item:hover {
    transform: translateY(-2px);
}

body.tg-homepage .tg-home-gallery-item:hover img {
    opacity: 1;
    border-color: #8daabc;
    box-shadow: 0 11px 24px rgba(28, 49, 62, .12);
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-gallery::before {
        background:
            linear-gradient(90deg, #3b82ad 0 92px, transparent 92px) top left / 100% 2px no-repeat,
            #e9eceb;
    }

    body.tg-homepage .tg-home-row-copy strong {
        font-size: .82rem;
    }

    body.tg-homepage .tg-home-row-copy small,
    body.tg-homepage .tg-home-gallery-caption small {
        font-size: .67rem;
    }
}

/* Build 0073 — homepage gallery, footer and file-placeholder refinement.
 * Preserve the confirmed 0072 editorial structure while making the screenshot
 * gallery feel intentionally framed, balancing the footer artwork, increasing
 * small-copy readability, and replacing the legacy crossed-out no-image file
 * thumbnail with a native TG007 placeholder treatment.
 */

/* Footer artwork: keep the same charcoal identity as the header, but make the
   right-side honeycomb artwork a quiet accent rather than a competing block. */


.tg-footer::before {
    z-index: 0;
    background: linear-gradient(180deg, rgba(17, 23, 28, .18), rgba(12, 17, 21, .34));
}

.tg-footer::after {
    position: absolute;
    z-index: 0;
    right: -28px;
    bottom: -18px;
    width: 330px;
    height: 205px;
    content: "";
    pointer-events: none;
    opacity: .17;
    background: url('../../../cms/imgs/main/headerbar_special.png') no-repeat right bottom / contain;
    filter: grayscale(1) saturate(0) contrast(1.08);
}

.tg-footer > * {
    position: relative;
    z-index: 1;
}

/* Modern no-preview treatment for Latest Files. The old noimage30.gif was a
   useful legacy fallback, but its crossed-out graphic clashes with the modern
   homepage. This CSS-only TG007 tile stays sharp on every display. */
body.tg-homepage .tg-home-file-placeholder {
    position: relative;
    overflow: hidden;
    border-color: #c9d4da;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(226, 234, 238, .96));
    box-shadow: inset 3px 0 0 #3a7fa8;
}

body.tg-homepage .tg-home-file-placeholder::before {
    position: absolute;
    top: 7px;
    left: 9px;
    color: #2a4758;
    content: "TG";
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1;
}

body.tg-homepage .tg-home-file-placeholder::after {
    position: absolute;
    right: 5px;
    bottom: 5px;
    color: #5d7c8f;
    content: "FILE";
    font-family: "Space Grotesk", "Inter", sans-serif;
    font-size: .38rem;
    font-weight: 750;
    letter-spacing: .08em;
    line-height: 1;
}

/* Screenshot gallery: give each full-resolution screenshot a restrained
   desktop/window frame instead of leaving it as a bare thumbnail. The actual
   image remains fully visible and uncropped. */
body.tg-homepage .tg-home-gallery-grid {
    gap: 1.1rem;
}

body.tg-homepage .tg-home-gallery-item {
    position: relative;
    display: block;
    min-width: 0;
    padding-top: 21px;
    overflow: visible;
    color: inherit;
    text-decoration: none;
    background: transparent;
    transition: transform .18s ease;
}

body.tg-homepage .tg-home-gallery-item::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 21px;
    content: "";
    border: 1px solid #cbd3d7;
    border-bottom: 0;
    background: linear-gradient(180deg, #f8f9f8 0%, #e9edee 100%);
    box-shadow: 0 5px 12px rgba(32, 45, 53, .045);
}

body.tg-homepage .tg-home-gallery-item::after {
    position: absolute;
    top: 8px;
    left: 10px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    content: "";
    background: #3d82aa;
    box-shadow: 10px 0 0 #9fadb5, 20px 0 0 #c7cfd3;
}

body.tg-homepage .tg-home-gallery-item img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    object-position: center;
    border: 1px solid #cbd3d7;
    border-radius: 0;
    background: #e5e9ea;
    box-shadow: 0 9px 20px rgba(27, 39, 47, .08);
}

body.tg-homepage .tg-home-gallery-caption {
    padding: .62rem .08rem 0;
}

body.tg-homepage .tg-home-gallery-caption strong {
    font-size: .85rem;
    font-weight: 650;
    line-height: 1.32;
}

body.tg-homepage .tg-home-gallery-caption small {
    margin-top: .26rem;
    color: #6e787f;
    font-size: .7rem;
}

body.tg-homepage .tg-home-gallery-item:hover {
    transform: translateY(-2px);
}

body.tg-homepage .tg-home-gallery-item:hover::before,
body.tg-homepage .tg-home-gallery-item:hover img {
    border-color: #8ca9ba;
}

body.tg-homepage .tg-home-gallery-item:hover img {
    opacity: 1;
    box-shadow: 0 12px 25px rgba(28, 49, 62, .12);
}

/* Remaining micro-copy gets a small legibility lift without changing density. */
body.tg-homepage .tg-home-news-brief h3 {
    font-size: .98rem;
}

body.tg-homepage .tg-home-news-brief p {
    font-size: .8rem;
}

body.tg-homepage .tg-home-news-meta,
body.tg-homepage .tg-home-news-byline {
    font-size: .7rem;
}

body.tg-homepage .tg-home-row-copy strong,
body.tg-homepage .tg-home-resource-heading h3 {
    font-size: .86rem;
}

body.tg-homepage .tg-home-row-copy small,
body.tg-homepage .tg-home-row-count small,
body.tg-homepage .tg-home-resource-extra {
    font-size: .7rem;
}

body.tg-homepage .tg-footer-brand p,
body.tg-homepage .tg-footer-grid > div:not(.tg-footer-brand) a,
body.tg-homepage .tg-footer-bottom {
    font-size: .72rem;
}

@media (max-width: 720px) {
    .tg-footer::after {
        right: -42px;
        bottom: -12px;
        width: 230px;
        height: 145px;
        opacity: .11;
    }

    body.tg-homepage .tg-home-gallery-grid {
        gap: 1.2rem;
    }
}

/* Build 0074 — modern inner-page document foundation + /tos conversion.
 * Establish a reusable flat editorial/legal page language that follows the
 * confirmed 0073 homepage system without importing the old Bootstrap 3 sidebar,
 * AddThis block, dashed wells, or page-specific inline styling.
 */

body.tg-inner-page main {
    color: #222b30;
    background: #f8f8f6;
}

body.tg-inner-page .tg-inner-masthead {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-bottom: 1px solid #dfe3e2;
    background: #f8f8f6;
}

body.tg-inner-page .tg-inner-masthead::before {
    position: absolute;
    z-index: 0;
    top: -46%;
    right: -3%;
    width: min(50vw, 690px);
    height: 190%;
    content: "";
    pointer-events: none;
    opacity: .052;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 135% no-repeat;
    filter: grayscale(1) saturate(.2) contrast(1.08);
}

body.tg-inner-page .tg-inner-masthead::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    right: clamp(-120px, -6vw, -44px);
    width: clamp(260px, 28vw, 410px);
    aspect-ratio: 1;
    border: 1px solid rgba(51, 119, 160, .13);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, rgba(61, 126, 173, .035) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 48px rgba(61, 126, 173, .022),
        0 0 0 96px rgba(61, 126, 173, .012);
}

body.tg-inner-page .tg-inner-masthead-grid {
    position: relative;
    z-index: 1;
    min-height: 215px;
    padding-block: 2.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr);
    align-items: center;
    gap: 3rem;
}

body.tg-inner-page .tg-inner-masthead-copy {
    max-width: 790px;
}

body.tg-inner-page .tg-inner-eyebrow {
    display: block;
    margin-bottom: .45rem;
    color: #3b7fa8;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.tg-inner-page .tg-inner-masthead h1 {
    margin: 0 0 .65rem;
    color: #20292e;
    font-family: "Space Grotesk", Inter, sans-serif;
    font-size: clamp(2.55rem, 4.6vw, 4.45rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98;
}

body.tg-inner-page .tg-inner-masthead p {
    max-width: 730px;
    margin: 0;
    color: #59656c;
    font-size: 1rem;
    line-height: 1.6;
}

body.tg-inner-page .tg-inner-masthead-mark {
    align-self: stretch;
    padding-left: 2rem;
    border-left: 1px solid #d9dddc;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

body.tg-inner-page .tg-inner-masthead-mark span,
body.tg-inner-page .tg-inner-masthead-mark strong,
body.tg-inner-page .tg-inner-masthead-mark small {
    display: block;
}

body.tg-inner-page .tg-inner-masthead-mark span {
    margin-bottom: .3rem;
    color: #70818b;
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

body.tg-inner-page .tg-inner-masthead-mark strong {
    color: #25343d;
    font-family: "Space Grotesk", Inter, sans-serif;
    font-size: 1.55rem;
    line-height: 1.05;
}

body.tg-inner-page .tg-inner-masthead-mark small {
    margin-top: .35rem;
    color: #718087;
    font-size: .7rem;
}

body.tg-inner-page .tg-document-section {
    padding-block: 2.8rem 3.4rem;
    background: #f8f8f6;
}

body.tg-inner-page .tg-document-layout {
    display: grid;
    grid-template-columns: 210px minmax(0, 820px);
    justify-content: center;
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}

body.tg-inner-page .tg-document-toc {
    min-width: 0;
}

body.tg-inner-page .tg-document-toc-inner {
    position: sticky;
    top: 1.5rem;
    padding-left: 1rem;
    border-left: 2px solid #d8dcda;
}

body.tg-inner-page .tg-document-toc-label {
    display: block;
    margin-bottom: .65rem;
    color: #68767e;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.tg-inner-page .tg-document-toc a {
    display: block;
    padding: .3rem 0;
    color: #52616a;
    font-size: .79rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
}

body.tg-inner-page .tg-document-toc a:hover,
body.tg-inner-page .tg-document-toc a:focus-visible {
    color: #246d99;
}

body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
    margin-top: .55rem;
    padding-top: .75rem;
    border-top: 1px solid #e0e3e1;
    color: #2e7198;
}

body.tg-inner-page .tg-document-article {
    min-width: 0;
}

body.tg-inner-page .tg-document-intro,
body.tg-inner-page .tg-document-block {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 1rem;
    scroll-margin-top: 1.5rem;
}

body.tg-inner-page .tg-document-intro {
    padding-bottom: 2rem;
}

body.tg-inner-page .tg-document-block {
    padding-block: 1.75rem;
    border-top: 1px solid #e0e2e0;
}

body.tg-inner-page .tg-document-section-number {
    padding-top: .12rem;
    color: #4382a8;
    font-family: "Space Grotesk", Inter, sans-serif;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .06em;
}

body.tg-inner-page .tg-document-article h2,
body.tg-inner-page .tg-community-guidelines h2 {
    margin: 0 0 .7rem;
    color: #20292e;
    font-family: "Space Grotesk", Inter, sans-serif;
    font-size: clamp(1.32rem, 2vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.15;
}

body.tg-inner-page .tg-document-article p,
body.tg-inner-page .tg-document-article li {
    color: #4c585f;
    font-size: .96rem;
    line-height: 1.72;
}

body.tg-inner-page .tg-document-article p {
    margin: 0 0 .9rem;
}

body.tg-inner-page .tg-document-article p:last-child {
    margin-bottom: 0;
}

body.tg-inner-page .tg-document-article ul {
    margin: .65rem 0 1rem;
    padding-left: 1.25rem;
}

body.tg-inner-page .tg-document-article li + li {
    margin-top: .35rem;
}

body.tg-inner-page .tg-document-article a {
    color: #276f9b;
    font-weight: 600;
    text-underline-offset: 2px;
}

body.tg-inner-page .tg-document-article a:hover {
    color: #174f73;
}

body.tg-inner-page .tg-community-guidelines {
    margin-top: 2rem;
    padding-top: 2.15rem;
    border-top: 3px solid #2f78a5;
    scroll-margin-top: 1.5rem;
}

body.tg-inner-page .tg-community-guidelines-heading {
    max-width: 720px;
    margin-bottom: 1.45rem;
}

body.tg-inner-page .tg-community-guidelines-heading > span {
    display: block;
    margin-bottom: .35rem;
    color: #3b7fa8;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.tg-inner-page .tg-community-guidelines-heading h2 {
    font-size: clamp(1.8rem, 3vw, 2.45rem);
}

body.tg-inner-page .tg-community-guidelines-heading p {
    color: #667279;
    font-size: .95rem;
}

body.tg-inner-page .tg-community-guidelines-copy {
    padding-bottom: 1.2rem;
    border-bottom: 1px solid #e0e2e0;
}

body.tg-inner-page .tg-guideline-list {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: tg-guideline;
}

body.tg-inner-page .tg-guideline-list > li {
    position: relative;
    padding: 1.1rem 0 1.1rem 3.25rem;
    border-bottom: 1px solid #e3e5e3;
    counter-increment: tg-guideline;
}

body.tg-inner-page .tg-guideline-list > li::before {
    position: absolute;
    top: 1.1rem;
    left: 0;
    width: 2.1rem;
    color: #3d7fa7;
    content: counter(tg-guideline, decimal-leading-zero);
    font-family: "Space Grotesk", Inter, sans-serif;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
}

body.tg-inner-page .tg-guideline-list strong {
    display: block;
    margin-bottom: .18rem;
    color: #273238;
    font-size: .98rem;
}

body.tg-inner-page .tg-guideline-list p {
    margin: 0;
}

body.tg-inner-page .tg-guideline-list ul {
    margin: .5rem 0 0;
    padding-left: 1.1rem;
}

body.tg-inner-page .tg-community-guidelines-note {
    margin-top: 1.35rem !important;
    padding: .85rem 0 .85rem 1rem;
    border-left: 3px solid #3b7fa8;
    color: #3f4e56 !important;
}

body.tg-inner-page .tg-document-ad {
    padding-top: 0;
    padding-bottom: 2rem;
}

body.tg-inner-page .tg-document-ad:has(.adsbygoogle[data-ad-status="unfilled"]) {
    display: none;
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-grid {
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 1.25rem;
        padding-block: 2rem;
    }

    body.tg-inner-page .tg-inner-masthead-mark {
        align-self: auto;
        padding: .9rem 0 0;
        border-top: 1px solid #dde0df;
        border-left: 0;
    }

    body.tg-inner-page .tg-document-layout {
        grid-template-columns: 1fr;
        gap: 1.4rem;
    }

    body.tg-inner-page .tg-document-toc-inner {
        position: static;
        display: flex;
        flex-wrap: wrap;
        gap: .35rem .85rem;
        padding: 0 0 1.15rem;
        border-bottom: 1px solid #dfe2e0;
        border-left: 0;
    }

    body.tg-inner-page .tg-document-toc-label {
        width: 100%;
        margin-bottom: .2rem;
    }

    body.tg-inner-page .tg-document-toc a {
        padding: .15rem 0;
    }

    body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
        margin: 0;
        padding: .15rem 0;
        border: 0;
    }
}

@media (max-width: 640px) {
    body.tg-inner-page .tg-inner-masthead h1 {
        font-size: clamp(2.35rem, 12vw, 3.2rem);
    }

    body.tg-inner-page .tg-document-section {
        padding-block: 2rem 2.6rem;
    }

    body.tg-inner-page .tg-document-intro,
    body.tg-inner-page .tg-document-block {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    body.tg-inner-page .tg-document-section-number {
        padding: 0;
    }

    body.tg-inner-page .tg-document-article p,
    body.tg-inner-page .tg-document-article li {
        font-size: .94rem;
    }
}

/* Build 0075 — shared inner-page chrome + /tos density refinement.
 * Restore the stronger right-side TG007 footer artwork globally, make modern
 * inner-page mastheads use the same split-surface language as the homepage,
 * and turn document navigation into a compact full-width index instead of a
 * narrow sidebar that wastes the left side of the page.
 */

/* One global modern footer treatment. This restores the clear right-side
   headerbar_special artwork from the homepage treatment the user approved. */


.tg-footer::before {
    position: absolute;
    inset: 0;
    z-index: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, rgba(18, 24, 29, .98) 0%, rgba(18, 24, 29, .96) 54%, rgba(18, 24, 29, .79) 78%, rgba(18, 24, 29, .53) 100%);
}

/* Build 0073 used a second pseudo-image to quiet the footer. Disable it so
   there is only the single clear right-side artwork treatment. */
.tg-footer::after {
    display: none;
}

.tg-footer > * {
    position: relative;
    z-index: 1;
}

.tg-footer-grid {
    padding-block: 1.15rem;
}

.tg-footer-brand p,
.tg-footer-grid > div:not(.tg-footer-brand) a,
.tg-footer-bottom {
    font-size: .72rem;
}

.tg-footer-bottom {
    padding-block: .72rem;
    border-top-color: rgba(255, 255, 255, .09);
    color: #87939a;
}

.tg-footer-grid > div:not(.tg-footer-brand) a {
    color: #aab4ba;
}

.tg-footer-grid > div:not(.tg-footer-brand) a:hover,
.tg-footer-grid > div:not(.tg-footer-brand) a:focus-visible {
    color: #ffffff;
}

/* Inner masthead: explicit light-left / cool-right split like the homepage.
   The right panel owns the tech artwork and circular accent instead of washing
   the entire hero with a texture. */
body.tg-inner-page .tg-inner-masthead {
    overflow: hidden;
    border-bottom-color: #e1e3e1;
    background: #f8f8f6;
}

body.tg-inner-page .tg-inner-masthead::before,
body.tg-inner-page .tg-inner-masthead::after {
    display: none;
}

body.tg-inner-page .tg-inner-masthead-grid {
    min-height: 190px;
    padding-block: 1.45rem;
    grid-template-columns: minmax(0, 1.62fr) minmax(285px, .62fr);
    gap: clamp(1.8rem, 4vw, 3.7rem);
}

body.tg-inner-page .tg-inner-masthead-copy {
    max-width: 760px;
}

body.tg-inner-page .tg-inner-masthead h1 {
    margin-bottom: .48rem;
    font-size: clamp(2.45rem, 4.1vw, 3.75rem);
}

body.tg-inner-page .tg-inner-masthead p {
    max-width: 700px;
    font-size: .96rem;
    line-height: 1.52;
}

body.tg-inner-page .tg-inner-masthead-mark {
    position: relative;
    isolation: isolate;
    align-self: stretch;
    margin-block: -1.45rem;
    padding: 1.45rem 0 1.45rem clamp(1.35rem, 2.5vw, 2rem);
    overflow: visible;
    border-left: 1px solid #d8dddf;
    background: #f1f5f7;
    box-shadow: 100vw 0 0 #f1f5f7;
}

body.tg-inner-page .tg-inner-masthead-mark::before {
    position: absolute;
    z-index: -1;
    inset: 0 -80px 0 0;
    content: "";
    pointer-events: none;
    opacity: .075;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 128% no-repeat;
    filter: grayscale(1) saturate(.12) contrast(1.06);
}

body.tg-inner-page .tg-inner-masthead-mark::after {
    position: absolute;
    z-index: -1;
    top: 50%;
    right: -88px;
    width: 260px;
    aspect-ratio: 1;
    border: 1px solid rgba(51, 119, 160, .13);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, rgba(61, 126, 173, .035) 0 41%, transparent 42% 100%);
    box-shadow: 0 0 0 42px rgba(61, 126, 173, .022), 0 0 0 84px rgba(61, 126, 173, .012);
}

/* Document layout: the contents index becomes a deliberate horizontal utility
   band. This gives the actual legal copy the width of the page instead of
   reserving a mostly-empty 210px rail down the entire document. */
body.tg-inner-page .tg-document-section {
    padding-block: 1.8rem 3rem;
}

body.tg-inner-page .tg-document-layout {
    display: block;
    max-width: 1180px;
    margin-inline: auto;
}

body.tg-inner-page .tg-document-toc {
    margin-bottom: 2rem;
}

body.tg-inner-page .tg-document-toc-inner {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .15rem .35rem;
    padding: .72rem .85rem;
    border: 0;
    border-top: 1px solid #d4dadd;
    border-bottom: 1px solid #d4dadd;
    background:
        linear-gradient(90deg, #3b82ad 0 120px, transparent 120px) top left / 100% 2px no-repeat,
        #f0f3f3;
}

body.tg-inner-page .tg-document-toc-label {
    flex: 0 0 auto;
    margin: 0 .55rem 0 0;
    color: #496473;
    font-size: .7rem;
}

body.tg-inner-page .tg-document-toc a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .28rem .52rem;
    color: #42545e;
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.2;
    text-decoration: none;
}

body.tg-inner-page .tg-document-toc a::after {
    margin-left: .7rem;
    color: #a8b2b7;
    content: "·";
}

body.tg-inner-page .tg-document-toc a:last-child::after {
    display: none;
}

body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
    margin: 0;
    padding: .28rem .52rem;
    border: 0;
    color: #246d99;
}

body.tg-inner-page .tg-document-article {
    width: min(100%, 1020px);
    margin-inline: auto;
}

body.tg-inner-page .tg-document-intro,
body.tg-inner-page .tg-document-block {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 1.2rem;
}

body.tg-inner-page .tg-document-intro {
    padding: 1rem 0 1.85rem;
}

body.tg-inner-page .tg-document-block {
    padding-block: 1.45rem;
    border-top-color: #e0e3e1;
}

body.tg-inner-page .tg-document-section-number {
    position: relative;
    padding-top: .18rem;
    font-size: .78rem;
}

body.tg-inner-page .tg-document-section-number::after {
    position: absolute;
    top: 1.35rem;
    left: 3px;
    width: 18px;
    height: 2px;
    content: "";
    background: #7fa8bf;
}

body.tg-inner-page .tg-document-article h2,
body.tg-inner-page .tg-community-guidelines h2 {
    font-size: clamp(1.38rem, 2vw, 1.8rem);
}

body.tg-inner-page .tg-document-article p,
body.tg-inner-page .tg-document-article li {
    color: #46535a;
    font-size: .98rem;
    line-height: 1.68;
}

/* Community Guidelines gets a subtle section surface so a long legal page has
   one strong visual chapter without reverting to a pile of cards. */
body.tg-inner-page .tg-community-guidelines {
    margin: 2.2rem -1.25rem 0;
    padding: 2rem 1.25rem .3rem;
    border-top: 3px solid #2f78a5;
    background: linear-gradient(180deg, #f2f5f5 0%, rgba(242, 245, 245, 0) 340px);
}

body.tg-inner-page .tg-community-guidelines-heading {
    max-width: 820px;
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-grid {
        min-height: 0;
        grid-template-columns: 1fr;
        gap: 0;
        padding-bottom: 0;
    }

    body.tg-inner-page .tg-inner-masthead-copy {
        padding-bottom: 1.35rem;
    }

    body.tg-inner-page .tg-inner-masthead-mark {
        margin: 0 calc(50% - 50vw);
        padding: 1rem max(1rem, calc((100vw - 100%) / 2 + 1rem));
        border-top: 1px solid #d8dddf;
        border-left: 0;
        box-shadow: none;
    }

    body.tg-inner-page .tg-document-toc-inner {
        align-items: flex-start;
    }

    body.tg-inner-page .tg-document-toc-label {
        flex: 1 0 100%;
        margin-bottom: .2rem;
    }
}

@media (max-width: 720px) {
    .tg-footer {
        background-size: auto 145px;
    }

    .tg-footer::before {
        background: linear-gradient(90deg, rgba(18, 24, 29, .985) 0%, rgba(18, 24, 29, .94) 68%, rgba(18, 24, 29, .66) 100%);
    }

    body.tg-inner-page .tg-document-toc-inner {
        display: block;
        padding: .7rem .85rem;
    }

    body.tg-inner-page .tg-document-toc a {
        display: inline-flex;
    }

    body.tg-inner-page .tg-document-intro,
    body.tg-inner-page .tg-document-block {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: .75rem;
    }

    body.tg-inner-page .tg-community-guidelines {
        margin-inline: -.5rem;
        padding-inline: .5rem;
    }
}

/* Build 0076 — shared inner masthead parity + sticky document navigation.
 * Match the accepted homepage split more literally: the TG007 texture belongs
 * to the left reading surface and runs to the identity divider, while the right
 * panel carries the restrained steel-blue concentric-circle accent. Long-form
 * documents regain a compact left rail, but it now sticks with the reader and
 * uses active-section feedback instead of consuming space as a static sidebar. */
body.tg-inner-page .tg-inner-masthead-grid {
    position: relative;
    min-height: 190px;
    grid-template-columns: minmax(0, 1.68fr) minmax(285px, .62fr);
    gap: 0;
    padding-block: 1.45rem;
}

body.tg-inner-page .tg-inner-masthead-copy {
    position: relative;
    isolation: isolate;
    align-self: stretch;
    max-width: none;
    margin-block: -1.45rem;
    padding: 1.45rem clamp(2rem, 4vw, 4.25rem) 1.45rem 0;
    overflow: hidden;
    background: #f8f8f6;
}

body.tg-inner-page .tg-inner-masthead-copy::before {
    position: absolute;
    z-index: -1;
    inset: -14% 0 -14% 42%;
    content: "";
    pointer-events: none;
    opacity: .07;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 150% no-repeat;
    filter: grayscale(1) saturate(.15) contrast(1.05);
}

body.tg-inner-page .tg-inner-masthead-mark {
    position: relative;
    isolation: isolate;
    align-self: stretch;
    margin-block: -1.45rem;
    padding: 1.45rem 0 1.45rem clamp(1.5rem, 2.8vw, 2.25rem);
    overflow: hidden;
    border-left: 1px solid #d8dddf;
    background: #f2f5f6;
    box-shadow: 100vw 0 0 #f2f5f6;
}

body.tg-inner-page .tg-inner-masthead-mark::before {
    display: none;
}

body.tg-inner-page .tg-inner-masthead-mark::after {
    z-index: -1;
    top: 50%;
    right: -92px;
    width: 270px;
    border-color: rgba(55, 119, 160, .15);
    background: radial-gradient(circle at center, rgba(61, 126, 173, .045) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 46px rgba(61, 126, 173, .027),
        0 0 0 92px rgba(61, 126, 173, .014);
}

/* Sticky desktop document rail. */
body.tg-inner-page .tg-document-section {
    padding-block: 2rem 3rem;
}

body.tg-inner-page .tg-document-layout {
    display: grid;
    grid-template-columns: minmax(190px, 220px) minmax(0, 1fr);
    align-items: start;
    gap: clamp(2rem, 4vw, 4rem);
    max-width: 1180px;
    margin-inline: auto;
}

body.tg-inner-page .tg-document-toc {
    position: relative;
    margin: 0;
    min-width: 0;
}

body.tg-inner-page .tg-document-toc-inner {
    position: sticky;
    top: 1.25rem;
    display: block;
    max-height: calc(100vh - 2.5rem);
    overflow-y: auto;
    padding: .35rem 0 .6rem 1rem;
    border: 0;
    border-left: 1px solid #d6dcde;
    background: transparent;
    scrollbar-width: thin;
}

body.tg-inner-page .tg-document-toc-label {
    display: block;
    margin: 0 0 .7rem .7rem;
    color: #60747f;
    font-family: 'Space Grotesk', Inter, system-ui, sans-serif;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .095em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.tg-inner-page .tg-document-toc-links {
    display: grid;
    gap: .08rem;
}

body.tg-inner-page .tg-document-toc a,
body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: baseline;
    gap: .45rem;
    min-height: 0;
    margin: 0 0 0 -1px;
    padding: .42rem .55rem .42rem .72rem;
    border: 0;
    border-left: 2px solid transparent;
    border-radius: 0 4px 4px 0;
    color: #55646c;
    font-size: .83rem;
    font-weight: 620;
    line-height: 1.3;
    text-decoration: none;
    transition: color .16s ease, border-color .16s ease, background-color .16s ease;
}

body.tg-inner-page .tg-document-toc a::after {
    display: none;
}

body.tg-inner-page .tg-document-toc a span {
    color: #8ba0ab;
    font-family: 'Space Grotesk', Inter, system-ui, sans-serif;
    font-size: .66rem;
    font-weight: 750;
    letter-spacing: .04em;
}

body.tg-inner-page .tg-document-toc a:hover,
body.tg-inner-page .tg-document-toc a:focus-visible {
    border-left-color: #7fa8bf;
    color: #23343d;
    background: linear-gradient(90deg, rgba(55, 124, 168, .08), rgba(55, 124, 168, 0));
    outline: none;
}

body.tg-inner-page .tg-document-toc a.is-active,
body.tg-inner-page .tg-document-toc a[aria-current="location"] {
    border-left-color: #2f7da9;
    color: #17394d;
    background: linear-gradient(90deg, rgba(47, 125, 169, .12), rgba(47, 125, 169, 0));
}

body.tg-inner-page .tg-document-toc a.is-active span,
body.tg-inner-page .tg-document-toc a[aria-current="location"] span {
    color: #2f7da9;
}

body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
    margin-top: .45rem;
    padding-top: .65rem;
    border-top: 1px solid #e2e5e4;
}

body.tg-inner-page .tg-document-article {
    width: 100%;
    max-width: 900px;
    margin: 0;
}

body.tg-inner-page .tg-document-intro,
body.tg-inner-page .tg-document-block,
body.tg-inner-page .tg-community-guidelines {
    scroll-margin-top: 1.5rem;
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-grid {
        grid-template-columns: 1fr;
        padding-bottom: 0;
    }

    body.tg-inner-page .tg-inner-masthead-copy {
        margin: -1.45rem calc(50% - 50vw) 0;
        padding: 1.45rem max(1rem, calc((100vw - 100%) / 2 + 1rem)) 1.35rem;
    }

    body.tg-inner-page .tg-inner-masthead-copy::before {
        left: 48%;
        right: 0;
    }

    body.tg-inner-page .tg-inner-masthead-mark {
        margin: 0 calc(50% - 50vw);
        padding: 1rem max(1rem, calc((100vw - 100%) / 2 + 1rem));
        border-top: 1px solid #d8dddf;
        border-left: 0;
        box-shadow: none;
    }

    body.tg-inner-page .tg-document-layout {
        display: block;
        max-width: 900px;
    }

    body.tg-inner-page .tg-document-toc {
        margin-bottom: 1.7rem;
    }

    body.tg-inner-page .tg-document-toc-inner {
        position: static;
        max-height: none;
        overflow: visible;
        padding: .75rem 0;
        border-top: 1px solid #d8dddf;
        border-bottom: 1px solid #d8dddf;
        border-left: 0;
    }

    body.tg-inner-page .tg-document-toc-label {
        margin: 0 0 .5rem;
    }

    body.tg-inner-page .tg-document-toc-links {
        display: flex;
        gap: .35rem;
        overflow-x: auto;
        padding-bottom: .15rem;
        scrollbar-width: thin;
    }

    body.tg-inner-page .tg-document-toc a,
    body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
        flex: 0 0 auto;
        display: inline-flex;
        gap: .4rem;
        margin: 0;
        padding: .42rem .6rem;
        border: 1px solid #d9dede;
        border-radius: 3px;
        white-space: nowrap;
        background: #fafaf8;
    }

    body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
        margin: 0;
        border-top: 1px solid #d9dede;
    }

    body.tg-inner-page .tg-document-toc a.is-active,
    body.tg-inner-page .tg-document-toc a[aria-current="location"] {
        border-color: #7fa8bf;
        background: #eef5f8;
    }

    body.tg-inner-page .tg-document-article {
        max-width: none;
    }
}

@media (max-width: 720px) {
    body.tg-inner-page .tg-document-section {
        padding-block: 1.4rem 2.4rem;
    }

    body.tg-inner-page .tg-document-toc a,
    body.tg-inner-page .tg-document-toc .tg-document-toc-featured {
        font-size: .78rem;
    }
}


/* Build 0077 — inner masthead circle coverage + true sticky document rail.
 * Make the steel-blue accent fill the complete right identity panel rather than
 * reading as a small circle at the far edge, and put sticky positioning on the
 * actual document rail container so it can travel through the full article.
 */
body.tg-inner-page .tg-inner-masthead-mark::after {
    inset: 0;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    transform: none;
    background:
        radial-gradient(circle at 88% 50%, rgba(61, 126, 173, .038) 0 18%, transparent 18.5% 100%),
        radial-gradient(circle at 88% 50%, transparent 0 28%, rgba(55, 119, 160, .13) 28.25% 28.7%, transparent 29% 100%),
        radial-gradient(circle at 88% 50%, transparent 0 47%, rgba(55, 119, 160, .09) 47.25% 47.65%, transparent 48% 100%),
        radial-gradient(circle at 88% 50%, transparent 0 67%, rgba(55, 119, 160, .055) 67.2% 67.55%, transparent 68% 100%);
    box-shadow: none;
    pointer-events: none;
}

@media (min-width: 901px) {
    /* Sticky belongs on the whole aside. Keeping it on the inner menu trapped
       it inside an aside that was only as tall as the menu itself. */
    body.tg-inner-page .tg-document-toc {
        position: sticky;
        top: 1.25rem;
        align-self: start;
        max-height: calc(100vh - 2.5rem);
        max-height: calc(100dvh - 2.5rem);
        overflow-y: auto;
        scrollbar-width: thin;
    }

    body.tg-inner-page .tg-document-toc-inner {
        position: static;
        top: auto;
        max-height: none;
        overflow: visible;
    }
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-document-toc {
        position: static;
        max-height: none;
        overflow: visible;
    }
}

/* Build 0078 — unified global hero geometry + world-map identity.
 * Homepage and modern inner pages now share one hero construction: identical
 * 72/28 content split, identical warm/cool surfaces, the same faded flat-world
 * watermark on the left, and the same panel-wide steel-blue ring geometry on
 * the right. Only the right-panel content changes by route.
 */
body.tg-homepage .tg-home-masthead,
body.tg-inner-page .tg-inner-masthead {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: #f8f8f6;
}

/* Retire the page-specific masthead artwork/rings. The shared visual layers now
   live on the actual left/right content panels so the divider always matches. */
body.tg-homepage .tg-home-masthead::before,
body.tg-homepage .tg-home-masthead::after,
body.tg-inner-page .tg-inner-masthead::before,
body.tg-inner-page .tg-inner-masthead::after {
    display: none !important;
}

body.tg-homepage .tg-home-masthead-grid,
body.tg-inner-page .tg-inner-masthead-grid {
    min-height: 205px;
    grid-template-columns: minmax(0, 18fr) minmax(300px, 7fr);
    align-items: stretch;
    gap: 0;
    padding-block: 1.45rem;
}

body.tg-homepage .tg-home-masthead-copy,
body.tg-inner-page .tg-inner-masthead-copy {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    max-width: none;
    margin-block: -1.45rem;
    padding-top: 1.45rem;
    padding-right: clamp(2rem, 4vw, 4.25rem);
    padding-bottom: 1.45rem;
    overflow: hidden;
    background: #f8f8f6;
    box-shadow: -100vw 0 0 #f8f8f6;
}

/* One shared flat-world watermark. It lives toward the divider so text remains
   clean, and fades in gradually rather than reading as a literal map graphic. */
body.tg-homepage .tg-home-masthead-copy::before,
body.tg-inner-page .tg-inner-masthead-copy::before {
    display: block !important;
    position: absolute;
    z-index: -1;
    inset: 0 -1px 0 28%;
    content: "";
    pointer-events: none;
    opacity: .115;
    background: url('../img/tg007-world-map.svg') right center / min(760px, 94%) auto no-repeat;
    filter: saturate(.72) contrast(.94);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .22) 18%, #000 58%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .22) 18%, #000 58%, #000 100%);
}

body.tg-homepage .tg-home-archive-summary,
body.tg-inner-page .tg-inner-masthead-mark {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    margin-block: -1.45rem;
    padding-top: 1.45rem;
    padding-right: 0;
    padding-bottom: 1.45rem;
    padding-left: clamp(1.5rem, 2.8vw, 2.35rem);
    overflow: hidden;
    border-top: 0;
    border-left: 1px solid #d8dddf;
    background: #f2f5f6;
    box-shadow: 100vw 0 0 #f2f5f6;
}

body.tg-inner-page .tg-inner-masthead-mark::before {
    display: none !important;
}

/* Identical steel-blue geometry on the right panel for every modern hero. */
body.tg-homepage .tg-home-archive-summary::after,
body.tg-inner-page .tg-inner-masthead-mark::after {
    display: block !important;
    position: absolute;
    z-index: -1;
    inset: 0;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    border: 0;
    border-radius: 0;
    content: "";
    pointer-events: none;
    transform: none;
    background:
        radial-gradient(circle at 82% 50%, rgba(61, 126, 173, .045) 0 18%, transparent 18.5% 100%),
        radial-gradient(circle at 82% 50%, transparent 0 29%, rgba(55, 119, 160, .14) 29.2% 29.65%, transparent 30% 100%),
        radial-gradient(circle at 82% 50%, transparent 0 49%, rgba(55, 119, 160, .09) 49.2% 49.65%, transparent 50% 100%),
        radial-gradient(circle at 82% 50%, transparent 0 69%, rgba(55, 119, 160, .052) 69.2% 69.55%, transparent 70% 100%),
        linear-gradient(90deg, rgba(242, 245, 246, 0) 0%, rgba(229, 237, 242, .22) 100%);
    box-shadow: none;
}

/* Homepage archive content keeps its existing information hierarchy inside the
   now-shared right panel. */
body.tg-homepage .tg-home-archive-summary {
    padding-left: clamp(1.5rem, 2.8vw, 2.35rem);
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-masthead-grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding-block: 1.25rem;
    }

    body.tg-homepage .tg-home-masthead-copy {
        margin-block: -1.25rem 0;
        padding-block: 1.25rem;
        padding-right: 0;
        box-shadow: none;
    }

    body.tg-homepage .tg-home-masthead-copy::before {
        inset: 0 -6% 0 34%;
        opacity: .085;
        background-size: min(660px, 92%) auto;
    }

    body.tg-homepage .tg-home-archive-summary {
        margin-block: 0 -1.25rem;
        padding: 1rem 0 1.25rem;
        border-top: 1px solid #d8dddf;
        border-left: 0;
        box-shadow: none;
    }

    body.tg-homepage .tg-home-archive-summary::after {
        opacity: .7;
    }
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-grid {
        grid-template-columns: 1fr;
        gap: 0;
        padding-block: 1.25rem;
    }

    body.tg-inner-page .tg-inner-masthead-copy {
        margin-block: -1.25rem 0;
        padding-block: 1.25rem;
        padding-right: 0;
        box-shadow: none;
    }

    body.tg-inner-page .tg-inner-masthead-copy::before {
        inset: 0 -6% 0 34%;
        opacity: .085;
        background-size: min(660px, 92%) auto;
    }

    body.tg-inner-page .tg-inner-masthead-mark {
        margin-block: 0 -1.25rem;
        padding: 1rem 0 1.25rem;
        border-top: 1px solid #d8dddf;
        border-left: 0;
        box-shadow: none;
    }

    body.tg-inner-page .tg-inner-masthead-mark::after {
        opacity: .7;
    }
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-masthead-copy::before,
    body.tg-inner-page .tg-inner-masthead-copy::before {
        left: 24%;
        opacity: .065;
    }
}

/* Build 0079 — global hero right-panel geometry correction.
 * Build 0078 correctly unified the world-map/chassis, but it moved the ring
 * artwork inside the inset right content panel. That left the outer content
 * gutter visually blank. Restore the accepted pre-0078 homepage behavior:
 * the concentric accent belongs to the full hero surface and deliberately
 * runs off the physical right edge. The right panel stays translucent so the
 * shared accent remains behind its content while its cool surface/divider are
 * preserved. */
body.tg-homepage .tg-home-masthead::after,
body.tg-inner-page .tg-inner-masthead::after {
    display: block !important;
    position: absolute;
    z-index: 0;
    top: 50%;
    right: clamp(-120px, -7vw, -46px);
    width: clamp(280px, 29vw, 430px);
    height: auto;
    aspect-ratio: 1;
    border: 1px solid rgba(55, 119, 160, .14);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, rgba(61, 126, 173, .045) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 52px rgba(61, 126, 173, .027),
        0 0 0 104px rgba(61, 126, 173, .014);
}

body.tg-homepage .tg-home-masthead-grid,
body.tg-inner-page .tg-inner-masthead-grid {
    position: relative;
    z-index: 1;
}

body.tg-homepage .tg-home-archive-summary,
body.tg-inner-page .tg-inner-masthead-mark {
    background: rgba(242, 245, 246, .82);
    box-shadow: 100vw 0 0 rgba(242, 245, 246, .82);
}

/* The panel-local 0078 rings are retired. Keeping both layers was what made
 * the two hero implementations drift visually. */
body.tg-homepage .tg-home-archive-summary::after,
body.tg-inner-page .tg-inner-masthead-mark::after {
    display: none !important;
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-masthead::after {
        top: auto;
        right: -88px;
        bottom: -118px;
        width: 330px;
        transform: none;
        opacity: .72;
    }
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead::after {
        top: auto;
        right: -88px;
        bottom: -118px;
        width: 330px;
        transform: none;
        opacity: .72;
    }
}


/* Build 0082 — production hero color identity.
 * Keep the approved off-white/world-map reading side while giving the shared
 * identity panel a deeper TG007 steel/navy presence. Public copy uses finished
 * site language; implementation terminology stays in engineering documentation.
 */
body.tg-homepage .tg-home-archive-summary,
body.tg-inner-page .tg-inner-masthead-mark {
    border-left-color: rgba(230, 241, 247, .18);
    background: linear-gradient(135deg, rgba(35, 78, 104, .94) 0%, rgba(24, 57, 77, .96) 52%, rgba(15, 40, 56, .975) 100%);
    box-shadow: 100vw 0 0 rgba(15, 40, 56, .975);
}

body.tg-homepage .tg-home-masthead::after,
body.tg-inner-page .tg-inner-masthead::after {
    border-color: rgba(202, 226, 239, .22);
    background: radial-gradient(circle at center, rgba(220, 237, 246, .09) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 52px rgba(188, 216, 232, .075),
        0 0 0 104px rgba(188, 216, 232, .035);
}

body.tg-homepage .tg-home-archive-heading,
body.tg-inner-page .tg-inner-masthead-mark span {
    color: #c8dce8;
}

body.tg-homepage .tg-home-archive-stats a:link,
body.tg-homepage .tg-home-archive-stats a:visited,
body.tg-homepage .tg-home-archive-stats strong,
body.tg-inner-page .tg-inner-masthead-mark strong {
    color: #f8f8f6;
}

body.tg-homepage .tg-home-archive-stats span,
body.tg-homepage .tg-home-archive-note,
body.tg-inner-page .tg-inner-masthead-mark small {
    color: #d1dee5;
}

body.tg-homepage .tg-home-archive-stats a:hover strong,
body.tg-homepage .tg-home-archive-stats a:focus-visible strong {
    color: #ffffff;
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-archive-summary {
        border-top-color: rgba(230, 241, 247, .18);
        background: linear-gradient(135deg, #234e68 0%, #18394d 52%, #0f2838 100%);
    }
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-mark {
        border-top-color: rgba(230, 241, 247, .18);
        background: linear-gradient(135deg, #234e68 0%, #18394d 52%, #0f2838 100%);
    }
}


/* Build 0083 — full-bleed blue hero identity + TG007 artwork integration.
 * Make the shared identity panel physically reach the site-shell edge, move
 * the palette away from teal into a clearer navy/royal-steel blue, reuse the
 * established TG007 header/footer artwork as a blue-tinted watermark, and
 * give the archive/inner-page identity information a stronger hierarchy.
 */
body.tg-homepage .tg-home-masthead,
body.tg-inner-page .tg-inner-masthead {
    --tg-hero-edge-gutter: max(24px, calc((100% - var(--tg007-content-width)) / 2));
}

/* The hero grid itself now owns the full site-shell width. Content is aligned
   back to the normal 1320px reading grid with internal padding. This removes
   the visible blank strip that remained to the right of the identity panel. */
body.tg-homepage .tg-home-masthead-grid,
body.tg-inner-page .tg-inner-masthead-grid {
    width: 100%;
    max-width: none;
    min-height: 205px;
    margin-inline: 0;
    padding-block: 0;
    grid-template-columns: minmax(0, 72fr) minmax(330px, 28fr);
}

body.tg-homepage .tg-home-masthead-copy,
body.tg-inner-page .tg-inner-masthead-copy {
    margin-block: 0;
    padding-top: 1.45rem;
    padding-right: clamp(2rem, 4vw, 4.25rem);
    padding-bottom: 1.45rem;
    padding-left: var(--tg-hero-edge-gutter);
    box-shadow: none;
}

body.tg-homepage .tg-home-archive-summary,
body.tg-inner-page .tg-inner-masthead-mark {
    margin-block: 0;
    padding-top: 1.45rem;
    padding-right: var(--tg-hero-edge-gutter);
    padding-bottom: 1.45rem;
    padding-left: clamp(1.65rem, 2.9vw, 2.55rem);
    overflow: hidden;
    border-left-color: rgba(220, 235, 248, .2);
    background: linear-gradient(135deg, #2b68a0 0%, #1d528b 48%, #103767 100%);
    box-shadow: none;
}

/* Reuse the original TG007 header/footer artwork as the hero watermark. The
   source image remains untouched; blend/filter treatment makes it belong to
   the blue panel rather than looking pasted on top of it. */
body.tg-homepage .tg-home-archive-summary::before,
body.tg-inner-page .tg-inner-masthead-mark::before {
    display: block !important;
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;
    opacity: .2;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 138% no-repeat;
    filter: grayscale(1) sepia(.28) saturate(2.5) hue-rotate(164deg) brightness(1.72) contrast(.92);
    mix-blend-mode: screen;
}

body.tg-homepage .tg-home-archive-summary > *,
body.tg-inner-page .tg-inner-masthead-mark > * {
    position: relative;
    z-index: 2;
}

/* Keep the accepted full-surface ring geometry, but tune it to the clearer
   blue identity panel. */
body.tg-homepage .tg-home-masthead::after,
body.tg-inner-page .tg-inner-masthead::after {
    right: clamp(-118px, -6.5vw, -42px);
    border-color: rgba(211, 232, 249, .24);
    background: radial-gradient(circle at center, rgba(226, 240, 251, .1) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 52px rgba(196, 220, 240, .075),
        0 0 0 104px rgba(196, 220, 240, .035);
}

/* Archive information: a compact data panel with rhythm and separators rather
   than four loose values floating in the blue field. */
body.tg-homepage .tg-home-archive-heading {
    margin: 0 0 .72rem;
    color: #dbeaf6;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .105em;
}

body.tg-homepage .tg-home-archive-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(233, 244, 252, .2);
    border-bottom: 1px solid rgba(233, 244, 252, .16);
}

body.tg-homepage .tg-home-archive-stats a {
    min-width: 0;
    padding: .72rem .75rem .72rem 0;
    border-left: 0;
    text-decoration: none;
}

body.tg-homepage .tg-home-archive-stats a:nth-child(even) {
    padding-left: .9rem;
    border-left: 1px solid rgba(233, 244, 252, .14);
}

body.tg-homepage .tg-home-archive-stats a:nth-child(n + 3) {
    border-top: 1px solid rgba(233, 244, 252, .12);
}

body.tg-homepage .tg-home-archive-stats strong {
    color: #ffffff;
    font-size: 1.55rem;
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: .95;
}

body.tg-homepage .tg-home-archive-stats span {
    margin-top: .24rem;
    color: #d9e7f1;
    font-size: .72rem;
    line-height: 1.2;
}

body.tg-homepage .tg-home-archive-note {
    margin-top: .78rem;
    color: #e1ebf3;
    font-size: .68rem;
    line-height: 1.35;
}

/* Inner-page identity uses the same blue field, with a more deliberate content
   hierarchy so Terms/Privacy/etc. feel like a designed masthead rather than a
   label dropped into the corner. */
body.tg-inner-page .tg-inner-masthead-mark span {
    color: #cfe3f2;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}

body.tg-inner-page .tg-inner-masthead-mark strong {
    margin-top: .35rem;
    color: #ffffff;
    font-size: 2rem;
    letter-spacing: -.04em;
}

body.tg-inner-page .tg-inner-masthead-mark small {
    margin-top: .48rem;
    max-width: 18rem;
    color: #d7e5ef;
    font-size: .82rem;
    line-height: 1.4;
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-masthead-grid {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-masthead-copy {
        padding-right: var(--tg-hero-edge-gutter);
    }

    body.tg-homepage .tg-home-archive-summary {
        padding: 1.15rem var(--tg-hero-edge-gutter) 1.25rem;
        border-top: 1px solid rgba(220, 235, 248, .2);
        border-left: 0;
        background: linear-gradient(135deg, #2b68a0 0%, #1d528b 48%, #103767 100%);
    }

    body.tg-homepage .tg-home-archive-summary::before {
        background-size: auto 170%;
        opacity: .14;
    }
}

@media (max-width: 900px) {
    body.tg-inner-page .tg-inner-masthead-grid {
        grid-template-columns: 1fr;
    }

    body.tg-inner-page .tg-inner-masthead-copy {
        padding-right: var(--tg-hero-edge-gutter);
    }

    body.tg-inner-page .tg-inner-masthead-mark {
        padding: 1.15rem var(--tg-hero-edge-gutter) 1.25rem;
        border-top: 1px solid rgba(220, 235, 248, .2);
        border-left: 0;
        background: linear-gradient(135deg, #2b68a0 0%, #1d528b 48%, #103767 100%);
    }

    body.tg-inner-page .tg-inner-masthead-mark::before {
        background-size: auto 170%;
        opacity: .14;
    }
}

@media (max-width: 620px) {
    body.tg-homepage .tg-home-masthead,
    body.tg-inner-page .tg-inner-masthead {
        --tg-hero-edge-gutter: 18px;
    }

    body.tg-homepage .tg-home-archive-stats strong {
        font-size: 1.4rem;
    }
}


/* Build 0084 — hero identity, at-a-glance stats, resource readability and
 * gallery refinement. Preserve the 0083 composition while making the TG007
 * artwork quieter/smaller-scaled, strengthening the stats hierarchy, and
 * improving the two dense content areas below the editorial News section. */

/* The original header artwork stays part of the blue hero identity, but at a
   much calmer opacity and closer to native scale. This makes the individual
   honeycomb cells materially smaller than the oversized 0083 treatment. */
body.tg-homepage .tg-home-archive-summary::before,
body.tg-inner-page .tg-inner-masthead-mark::before {
    opacity: .105;
    background-position: right center;
    background-size: auto 96%;
    filter: grayscale(1) sepia(.12) saturate(2.1) hue-rotate(168deg) brightness(1.82) contrast(.9);
}

/* At-a-glance statistics should read as a designed information block rather
   than a generic archive count. */
body.tg-homepage .tg-home-archive-heading {
    margin-bottom: .82rem;
    color: #e4f0f8;
    font-size: .76rem;
    letter-spacing: .13em;
}

body.tg-homepage .tg-home-archive-stats {
    border-top-color: rgba(239, 247, 253, .22);
    border-bottom-color: rgba(239, 247, 253, .18);
}

body.tg-homepage .tg-home-archive-stats a {
    padding-top: .82rem;
    padding-bottom: .82rem;
}

body.tg-homepage .tg-home-archive-stats a:nth-child(even) {
    border-left-color: rgba(239, 247, 253, .17);
}

body.tg-homepage .tg-home-archive-stats a:nth-child(n + 3) {
    border-top-color: rgba(239, 247, 253, .15);
}

body.tg-homepage .tg-home-archive-stats strong {
    font-size: 1.72rem;
    font-weight: 780;
    letter-spacing: -.045em;
}

body.tg-homepage .tg-home-archive-stats span {
    margin-top: .3rem;
    color: #e0ebf4;
    font-size: .77rem;
    font-weight: 550;
}

body.tg-homepage .tg-home-archive-note {
    margin-top: .85rem;
    color: #e9f1f7;
    font-size: .72rem;
}

/* Recently Added: keep density, but stop secondary content from feeling like
   micro-copy. Media gets a touch more presence and titles/meta become easier
   to scan at normal desktop distance. */
body.tg-homepage .tg-home-resource-columns {
    gap: 1.05rem;
}

body.tg-homepage .tg-home-resource-row {
    min-height: 47px;
    padding-block: .48rem;
    gap: .62rem;
}

body.tg-homepage .tg-home-resource-media,
body.tg-homepage .tg-home-row-avatar-snippet {
    width: 36px;
    min-width: 36px;
    height: 36px;
}

body.tg-homepage .tg-home-row-copy strong {
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.22;
}

body.tg-homepage .tg-home-row-copy small {
    margin-top: .16rem;
    color: #69747b;
    font-size: .74rem;
    line-height: 1.28;
}

body.tg-homepage .tg-home-resource-extra {
    color: #738087;
    font-size: .72rem;
}

body.tg-homepage .tg-home-resource-heading h3 {
    font-size: .9rem;
}

body.tg-homepage .tg-home-resource-heading a {
    font-size: .72rem;
}

/* Screenshot gallery: make the presentation intentionally feel like a bank of
   screens. The image remains uncropped/full-resolution, but the chrome is now
   clearly visible instead of being so faint that it looks accidental. */
body.tg-homepage .tg-home-gallery-grid {
    gap: 1.15rem;
}

body.tg-homepage .tg-home-gallery-item {
    padding-top: 23px;
}

body.tg-homepage .tg-home-gallery-item::before {
    height: 23px;
    border-color: #9eafb9;
    background: linear-gradient(90deg, #17364a 0%, #1f4b68 52%, #173a54 100%);
    box-shadow: 0 6px 14px rgba(24, 40, 51, .085);
}

body.tg-homepage .tg-home-gallery-item::after {
    top: 9px;
    left: 11px;
    width: 5px;
    height: 5px;
    background: #8ec3e2;
    box-shadow: 10px 0 0 #d2dde4, 20px 0 0 #8398a5;
}

body.tg-homepage .tg-home-gallery-item img {
    aspect-ratio: 16 / 9;
    border-color: #adbcc5;
    background: #e8ecee;
    box-shadow: 0 10px 22px rgba(25, 40, 50, .105);
}

body.tg-homepage .tg-home-gallery-caption {
    padding-top: .68rem;
}

body.tg-homepage .tg-home-gallery-caption strong {
    font-size: .9rem;
    line-height: 1.3;
}

body.tg-homepage .tg-home-gallery-caption small {
    font-size: .73rem;
}

body.tg-homepage .tg-home-gallery-item:hover::before,
body.tg-homepage .tg-home-gallery-item:focus-visible::before,
body.tg-homepage .tg-home-gallery-item:hover img,
body.tg-homepage .tg-home-gallery-item:focus-visible img {
    border-color: #4f8fb6;
}

body.tg-homepage .tg-home-gallery-item:focus-visible {
    outline: 2px solid rgba(47, 125, 174, .38);
    outline-offset: 4px;
}

@media (max-width: 900px) {
    body.tg-homepage .tg-home-archive-summary::before,
    body.tg-inner-page .tg-inner-masthead-mark::before {
        background-size: auto 112%;
        opacity: .09;
    }
}


/* Build 0085 — homepage micro-polish and visual balance.
 * Preserve the approved 0084 composition while quieting hero texture,
 * improving at-a-glance rhythm, opening the supporting News rail, making
 * no-preview File tiles feel intentional, and simplifying screenshot chrome. */

/* Hero artwork should register as texture after the content, not before it. */
body.tg-homepage .tg-home-archive-summary::before,
body.tg-inner-page .tg-inner-masthead-mark::before {
    opacity: .072;
    background-size: auto 90%;
}

/* Give the number and its label a clearer visual beat. */
body.tg-homepage .tg-home-archive-heading {
    margin-bottom: .9rem;
}

body.tg-homepage .tg-home-archive-stats a {
    padding-top: .9rem;
    padding-bottom: .92rem;
}

body.tg-homepage .tg-home-archive-stats strong {
    display: block;
    font-size: 1.78rem;
    line-height: .92;
}

body.tg-homepage .tg-home-archive-stats span {
    display: block;
    margin-top: .42rem;
    font-size: .78rem;
    line-height: 1.16;
}

body.tg-homepage .tg-home-archive-note {
    margin-top: .92rem;
}

/* The two supporting stories need enough width to read as editorial content,
   not a squeezed sidebar. */
body.tg-homepage .tg-home-news-editorial {
    grid-template-columns: minmax(0, 1.58fr) minmax(320px, .82fr);
    gap: clamp(1.55rem, 2.7vw, 2.5rem);
}

body.tg-homepage .tg-home-news-brief h3 {
    font-size: 1rem;
    line-height: 1.2;
}

body.tg-homepage .tg-home-news-brief p {
    font-size: .81rem;
    line-height: 1.46;
}

/* A missing File screenshot should look like a deliberate TG007 asset type,
   not a pale substitute for an absent image. */
body.tg-homepage .tg-home-file-placeholder {
    border-color: #315e78;
    background: linear-gradient(145deg, #245c7f 0%, #183f5b 55%, #102f45 100%);
    box-shadow: inset 3px 0 0 #6aa8cc, 0 2px 7px rgba(26, 57, 76, .12);
}

body.tg-homepage .tg-home-file-placeholder::before {
    top: 8px;
    left: 8px;
    color: #ffffff;
    font-size: .64rem;
    letter-spacing: -.02em;
}

body.tg-homepage .tg-home-file-placeholder::after {
    right: 6px;
    bottom: 6px;
    color: #c9e0ed;
    font-size: .4rem;
}

/* Let the screenshots themselves be the visual. A narrow steel accent replaces
   the heavier faux-browser bar and the decorative traffic-light dots. */
body.tg-homepage .tg-home-gallery-grid {
    gap: 1rem;
}

body.tg-homepage .tg-home-gallery-item {
    padding-top: 6px;
}

body.tg-homepage .tg-home-gallery-item::before {
    height: 5px;
    border: 0;
    background: linear-gradient(90deg, #2f78a5 0%, #5f9fbe 55%, #315f7a 100%);
    box-shadow: none;
}

body.tg-homepage .tg-home-gallery-item::after {
    display: none;
}

body.tg-homepage .tg-home-gallery-item img {
    border-color: #b7c7d0;
    background: #edf1f2;
    box-shadow: 0 8px 18px rgba(27, 45, 57, .09);
}

body.tg-homepage .tg-home-gallery-caption strong {
    font-size: .92rem;
}

body.tg-homepage .tg-home-gallery-caption small {
    font-size: .74rem;
}

body.tg-homepage .tg-home-gallery-item:hover img,
body.tg-homepage .tg-home-gallery-item:focus-visible img {
    border-color: #729ab2;
    box-shadow: 0 10px 22px rgba(27, 49, 62, .11);
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-news-editorial {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-archive-summary::before,
    body.tg-inner-page .tg-inner-masthead-mark::before {
        opacity: .065;
        background-size: auto 104%;
    }
}

/* Build 0086 — modern About TG007 page.
 * Reuse the established shared inner masthead, then give /about an editorial
 * history/exploration layout rather than forcing it into the legal-document
 * navigation pattern used by Terms and Privacy. */
body.tg-about-page .tg-about-story,
body.tg-about-page .tg-about-timeline,
body.tg-about-page .tg-about-explore {
    background: #f8f8f6;
}

body.tg-about-page .tg-about-story {
    padding: clamp(2.8rem, 5vw, 4.8rem) 0 clamp(2.5rem, 4vw, 4rem);
}

body.tg-about-page .tg-about-story-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(260px, .55fr);
    gap: clamp(3rem, 6vw, 6.5rem);
    align-items: start;
}

body.tg-about-page .tg-about-kicker,
body.tg-about-page .tg-about-section-heading > span,
body.tg-about-page .tg-about-mission span {
    display: block;
    margin-bottom: .7rem;
    color: #2e7dab;
    font-family: "Space Grotesk", sans-serif;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

body.tg-about-page .tg-about-story-copy h2,
body.tg-about-page .tg-about-section-heading h2,
body.tg-about-page .tg-about-explore-copy h2,
body.tg-about-page .tg-about-mission h2 {
    margin: 0;
    color: #172129;
    font-family: "Space Grotesk", sans-serif;
    font-weight: 650;
    letter-spacing: -.04em;
}

body.tg-about-page .tg-about-story-copy h2 {
    max-width: 760px;
    font-size: clamp(2rem, 3.4vw, 3.15rem);
    line-height: 1.02;
}

body.tg-about-page .tg-about-story-copy p {
    max-width: 850px;
    margin: 1.15rem 0 0;
    color: #52606a;
    font-size: 1rem;
    line-height: 1.72;
}

body.tg-about-page .tg-about-since {
    position: relative;
    padding: .2rem 0 .2rem 1.8rem;
    border-left: 2px solid #2f7da9;
}

body.tg-about-page .tg-about-since > span {
    display: block;
    color: #66737d;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

body.tg-about-page .tg-about-since strong {
    display: block;
    margin: .3rem 0 .45rem;
    color: #184d70;
    font-family: "Space Grotesk", sans-serif;
    font-size: clamp(3.8rem, 6vw, 6.4rem);
    font-weight: 700;
    line-height: .9;
    letter-spacing: -.065em;
}

body.tg-about-page .tg-about-since p {
    max-width: 280px;
    margin: 0;
    color: #68747d;
    font-size: .88rem;
    line-height: 1.55;
}

body.tg-about-page .tg-about-timeline {
    padding: clamp(2.7rem, 4vw, 4rem) 0;
    border-top: 1px solid #dce1e2;
    border-bottom: 1px solid #dce1e2;
}

body.tg-about-page .tg-about-section-heading {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 1.5rem;
    align-items: end;
    margin-bottom: 2.3rem;
}

body.tg-about-page .tg-about-section-heading > span {
    margin: 0 0 .2rem;
}

body.tg-about-page .tg-about-section-heading h2 {
    font-size: clamp(1.8rem, 2.8vw, 2.55rem);
    line-height: 1.05;
}

body.tg-about-page .tg-about-timeline-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 2px solid #214f6c;
}

body.tg-about-page .tg-about-timeline-grid article {
    position: relative;
    padding: 1.5rem clamp(1.2rem, 2.4vw, 2.2rem) .4rem 0;
}

body.tg-about-page .tg-about-timeline-grid article + article {
    padding-left: clamp(1.2rem, 2.4vw, 2.2rem);
    border-left: 1px solid #d9dfe1;
}

body.tg-about-page .tg-about-timeline-grid article::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #2d81b2;
    box-shadow: 0 0 0 4px #f8f8f6;
}

body.tg-about-page .tg-about-timeline-grid article + article::before {
    left: clamp(1.2rem, 2.4vw, 2.2rem);
}

body.tg-about-page .tg-about-year {
    display: block;
    margin-bottom: .48rem;
    color: #2b7fac;
    font-family: "Space Grotesk", sans-serif;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.tg-about-page .tg-about-timeline-grid h3 {
    margin: 0 0 .62rem;
    color: #18232b;
    font-family: "Space Grotesk", sans-serif;
    font-size: 1.17rem;
    font-weight: 650;
    letter-spacing: -.025em;
}

body.tg-about-page .tg-about-timeline-grid p {
    margin: 0;
    color: #5e6a73;
    font-size: .9rem;
    line-height: 1.6;
}

body.tg-about-page .tg-about-explore {
    padding: clamp(3rem, 5vw, 4.8rem) 0;
}

body.tg-about-page .tg-about-explore-grid {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
    gap: clamp(3rem, 6vw, 6rem);
    align-items: start;
}

body.tg-about-page .tg-about-explore-copy h2 {
    font-size: clamp(1.85rem, 2.8vw, 2.55rem);
    line-height: 1.06;
}

body.tg-about-page .tg-about-explore-copy p {
    margin: 1rem 0 0;
    color: #5a6770;
    font-size: .96rem;
    line-height: 1.68;
}

body.tg-about-page .tg-about-links {
    border-top: 2px solid #244e68;
}

body.tg-about-page .tg-about-links a {
    display: grid;
    grid-template-columns: minmax(100px, .38fr) minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem .15rem;
    border-bottom: 1px solid #d9dfe1;
    color: #18232b;
    text-decoration: none;
    transition: color .16s ease, padding-left .16s ease, border-color .16s ease;
}

body.tg-about-page .tg-about-links a:hover,
body.tg-about-page .tg-about-links a:focus-visible {
    padding-left: .45rem;
    border-bottom-color: #9bbdcc;
    color: #17658f;
}

body.tg-about-page .tg-about-links a:focus-visible {
    outline: 2px solid rgba(46, 125, 171, .35);
    outline-offset: 3px;
}

body.tg-about-page .tg-about-links span {
    font-family: "Space Grotesk", sans-serif;
    font-size: 1rem;
    font-weight: 650;
}

body.tg-about-page .tg-about-links small {
    color: #68747d;
    font-size: .83rem;
    line-height: 1.4;
}

body.tg-about-page .tg-about-links strong {
    color: #2d7fad;
    font-size: 1.25rem;
    font-weight: 500;
}

body.tg-about-page .tg-about-mission {
    position: relative;
    overflow: hidden;
    padding: clamp(2.6rem, 4vw, 3.8rem) 0;
    background: linear-gradient(115deg, #1f6290 0%, #164c73 48%, #102f4c 100%);
    color: #f8f8f6;
}

body.tg-about-page .tg-about-mission::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("../../../cms/imgs/main/headerbar_special.png");
    background-repeat: no-repeat;
    background-position: right 1.5rem center;
    /* Keep the original TG007 honeycomb identity, but render it below native size
       so the cells read tighter and more technical rather than oversized. */
    background-size: 390px auto;
    opacity: .05;
    filter: grayscale(1) brightness(2.45) contrast(.78);
    pointer-events: none;
}

body.tg-about-page .tg-about-mission-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2.5rem;
    align-items: center;
}

body.tg-about-page .tg-about-mission span {
    color: #c9e5f3;
}

body.tg-about-page .tg-about-mission h2 {
    max-width: 780px;
    color: #ffffff;
    font-size: clamp(1.85rem, 3vw, 2.75rem);
    line-height: 1.04;
}

body.tg-about-page .tg-about-mission p {
    max-width: 780px;
    margin: 1rem 0 0;
    color: #dce9f0;
    font-size: .95rem;
    line-height: 1.65;
}

body.tg-about-page .tg-about-mission-actions {
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
}

/* About-page mission calls to action deliberately define their complete button
   presentation here instead of depending on legacy/global anchor defaults. */
body.tg-about-page .tg-about-mission-actions .tg-button,
body.tg-about-page .tg-about-mission-actions .tg-button:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .72rem 1.05rem;
    border: 1px solid transparent;
    border-radius: 4px;
    text-decoration: none;
    font-family: "Space Grotesk", "Segoe UI", sans-serif;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 8px 22px rgba(6, 28, 45, .14);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.tg-about-page .tg-about-mission .tg-button-primary,
body.tg-about-page .tg-about-mission .tg-button-primary:visited {
    background: #f8f8f6;
    border-color: #f8f8f6;
    color: #154b70;
}

body.tg-about-page .tg-about-mission .tg-button-primary:hover,
body.tg-about-page .tg-about-mission .tg-button-primary:focus-visible {
    background: #ffffff;
    border-color: #ffffff;
    color: #103d5d;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(6, 28, 45, .2);
}

body.tg-about-page .tg-about-mission .tg-button-secondary,
body.tg-about-page .tg-about-mission .tg-button-secondary:visited {
    border-color: rgba(255, 255, 255, .52);
    background: rgba(9, 36, 57, .18);
    color: #ffffff;
}

body.tg-about-page .tg-about-mission .tg-button-secondary:hover,
body.tg-about-page .tg-about-mission .tg-button-secondary:focus-visible {
    border-color: rgba(255, 255, 255, .9);
    background: rgba(255, 255, 255, .12);
    color: #ffffff;
    transform: translateY(-1px);
}

body.tg-about-page .tg-about-mission-actions .tg-button:focus-visible {
    outline: 3px solid rgba(201, 229, 243, .75);
    outline-offset: 3px;
}

body.tg-about-page .tg-about-ad {
    padding-top: 1.2rem;
    padding-bottom: 1.2rem;
}

body.tg-about-page .tg-about-ad:has(.adsbygoogle[data-ad-status="unfilled"]) {
    display: none;
}

@media (max-width: 980px) {
    body.tg-about-page .tg-about-story-grid,
    body.tg-about-page .tg-about-explore-grid {
        grid-template-columns: 1fr;
        gap: 2.2rem;
    }

    body.tg-about-page .tg-about-since {
        max-width: 520px;
    }

    body.tg-about-page .tg-about-section-heading {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    body.tg-about-page .tg-about-timeline-grid {
        grid-template-columns: 1fr;
        border-top: 0;
        border-left: 2px solid #214f6c;
    }

    body.tg-about-page .tg-about-timeline-grid article,
    body.tg-about-page .tg-about-timeline-grid article + article {
        padding: .2rem 0 1.8rem 1.7rem;
        border-left: 0;
    }

    body.tg-about-page .tg-about-timeline-grid article::before,
    body.tg-about-page .tg-about-timeline-grid article + article::before {
        top: .25rem;
        left: -6px;
    }

    body.tg-about-page .tg-about-mission-grid {
        grid-template-columns: 1fr;
        gap: 1.8rem;
    }

    body.tg-about-page .tg-about-mission-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    body.tg-about-page .tg-about-story,
    body.tg-about-page .tg-about-timeline,
    body.tg-about-page .tg-about-explore {
        padding-block: 2.4rem;
    }

    body.tg-about-page .tg-about-links a {
        grid-template-columns: 1fr auto;
        gap: .25rem .8rem;
    }

    body.tg-about-page .tg-about-links small {
        grid-column: 1 / -1;
        padding-right: 1.5rem;
    }

    body.tg-about-page .tg-about-mission-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    body.tg-about-page .tg-about-mission-actions .tg-button {
        width: 100%;
        justify-content: center;
    }
}

/* Build 0087 — restore Files/Snippets subnavigation and finish the main nav band.
 * Preserve the current production-facing modern chrome while restoring useful
 * section actions from the legacy navigation. */


body.tg-modern-body .tg-nav-section > summary.is-active {
    color: #ffffff;
}

body.tg-modern-body .tg-nav-section > summary.is-active::before {
    opacity: 1;
    transform: scaleX(1);
}

.tg-nav-dropdown-separator {
    display: block;
    height: 1px;
    margin: .38rem .55rem;
    background: rgba(255, 255, 255, .09);
}

@media (max-width: 980px) {
    .tg-nav-toggle {
        border-color: #353535;
        background: #1e1e1e;
    }

    .tg-nav-toggle > span:not(.visually-hidden) {
        background: #e4e8eb;
    }

    .tg-primary-nav {
        border-color: #303030;
        background: #1a1a1a;
        box-shadow: 0 20px 42px rgba(0, 0, 0, .34);
    }

    body.tg-modern-body .tg-primary-nav > a:link,
    body.tg-modern-body .tg-primary-nav > a:visited,
    body.tg-modern-body .tg-nav-more > summary {
        color: #d8dde1;
    }

    body.tg-modern-body .tg-primary-nav > a:hover,
    body.tg-modern-body .tg-primary-nav > a.is-active,
    body.tg-modern-body .tg-nav-more > summary:hover,
    body.tg-modern-body .tg-nav-more > summary.is-active,
    body.tg-modern-body .tg-nav-more[open] > summary {
        color: #ffffff;
        background: #242424;
    }

    .tg-nav-dropdown {
        background: #1a1a1a;
        border-left-color: #3d4c56;
    }
}

/* Build 0091 — canonical modern hero architecture.
 * All converted public routes now share one structural hero component. Page
 * families provide only route-specific content; global geometry, map artwork,
 * identity panel, responsive behavior and typography live here. Historical
 * page-specific hero selectors above are retained only for rollback/history
 * and no longer have live markup ownership. */
.tg-modern-hero {
    --tg-hero-edge-gutter: max(24px, calc((100% - var(--tg007-content-width)) / 2));
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-bottom: 1px solid #e2e5e4;
    background: #f8f8f6;
}

.tg-modern-hero::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    right: clamp(-118px, -6.5vw, -42px);
    width: clamp(280px, 29vw, 430px);
    aspect-ratio: 1;
    border: 1px solid rgba(211, 232, 249, .24);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    transform: translateY(-50%);
    background: radial-gradient(circle at center, rgba(226, 240, 251, .1) 0 41%, transparent 42% 100%);
    box-shadow:
        0 0 0 52px rgba(196, 220, 240, .075),
        0 0 0 104px rgba(196, 220, 240, .035);
}

.tg-modern-hero-grid {
    position: relative;
    z-index: 1;
    width: 100%;
    min-height: 205px;
    display: grid;
    grid-template-columns: minmax(0, 72fr) minmax(330px, 28fr);
    align-items: stretch;
}

.tg-modern-hero-copy,
.tg-modern-hero-identity {
    position: relative;
    isolation: isolate;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tg-modern-hero-copy {
    padding: 1.45rem clamp(2rem, 4vw, 4.25rem) 1.45rem var(--tg-hero-edge-gutter);
    overflow: hidden;
    background: #f8f8f6;
}

.tg-modern-hero-copy::before {
    position: absolute;
    z-index: -1;
    inset: 0 -1px 0 28%;
    content: "";
    pointer-events: none;
    opacity: .115;
    background: url('../img/tg007-world-map.svg') right center / min(760px, 94%) auto no-repeat;
    filter: saturate(.72) contrast(.94);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .22) 18%, #000 58%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .22) 18%, #000 58%, #000 100%);
}

.tg-modern-hero-identity {
    padding: 1.45rem var(--tg-hero-edge-gutter) 1.45rem clamp(1.65rem, 2.9vw, 2.55rem);
    overflow: hidden;
    border-left: 1px solid rgba(220, 235, 248, .2);
    color: #f8f8f6;
    background: linear-gradient(135deg, #2b68a0 0%, #1d528b 48%, #103767 100%);
}

.tg-modern-hero-identity::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    pointer-events: none;
    opacity: .072;
    background: url('../../../cms/imgs/main/headerbar_special.png') right center / auto 90% no-repeat;
    filter: grayscale(1) sepia(.12) saturate(2.1) hue-rotate(168deg) brightness(1.82) contrast(.9);
    mix-blend-mode: screen;
}

.tg-modern-hero-identity > * {
    position: relative;
    z-index: 2;
}

.tg-modern-hero-eyebrow,
.tg-modern-hero-identity-label {
    display: block;
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .105em;
    line-height: 1.2;
    text-transform: uppercase;
}

.tg-modern-hero-eyebrow {
    margin-bottom: .42rem;
    color: #347ca6;
}

.tg-modern-hero-copy h1 {
    max-width: 900px;
    margin: 0 0 .62rem;
    color: #172129;
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    font-size: clamp(2.45rem, 4.5vw, 4.35rem);
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98;
}

.tg-modern-hero-copy > p,
.tg-modern-hero-copy > .tg-file-detail-tagline {
    max-width: 760px;
    margin: 0;
    color: #59666e;
    font-size: 1rem;
    line-height: 1.55;
}

.tg-modern-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: .9rem;
}

.tg-modern-hero-identity-label {
    color: #cfe3f2;
    font-weight: 800;
    letter-spacing: .12em;
}

.tg-modern-hero-identity-title {
    display: block;
    margin-top: .35rem;
    color: #ffffff;
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1;
}

.tg-modern-hero-identity-meta {
    display: block;
    max-width: 18rem;
    margin-top: .48rem;
    color: #d7e5ef;
    font-size: .82rem;
    line-height: 1.4;
}

.tg-modern-hero-identity-note {
    margin-top: .72rem;
    padding-top: .7rem;
    border-top: 1px solid rgba(233, 244, 252, .16);
    color: #d7e5ef;
    font-size: .72rem;
    line-height: 1.4;
}

.tg-modern-hero-stat strong,
.tg-modern-hero-stat span {
    display: block;
}

.tg-modern-hero-stat strong {
    color: #ffffff;
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    font-size: clamp(2.2rem, 4vw, 3.2rem);
    font-weight: 700;
    letter-spacing: -.045em;
    line-height: .92;
}

.tg-modern-hero-stat span {
    margin-top: .48rem;
    color: #d7e5ef;
    font-size: .74rem;
    font-weight: 650;
    letter-spacing: .055em;
    line-height: 1.35;
    text-transform: uppercase;
}

/* Homepage content keeps the approved compact hierarchy inside the canonical
   chassis. */
body.tg-homepage .tg-modern-hero-copy h1 {
    max-width: 620px;
    margin: .28rem 0 .4rem;
    font-size: clamp(2.55rem, 3.55vw, 3.35rem);
    line-height: .95;
}

body.tg-homepage .tg-modern-hero-copy h1 span {
    color: #2f7dad;
}

body.tg-homepage .tg-modern-hero-copy > p {
    max-width: 620px;
    font-size: .9rem;
    line-height: 1.42;
}

body.tg-homepage .tg-modern-hero-eyebrow {
    margin-bottom: 0;
    color: #4b7390;
    font-size: .64rem;
    letter-spacing: .09em;
}

body.tg-homepage .tg-modern-hero-actions {
    margin-top: .72rem;
}

/* Route-specific content inside the hero can vary without owning geometry. */
.tg-file-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .55rem;
    margin-bottom: .55rem;
    color: #68757d;
    font-size: .78rem;
    font-weight: 650;
}

.tg-file-crumbs a {
    color: #356f94 !important;
    text-decoration: none;
}

.tg-file-crumbs a:hover,
.tg-file-crumbs a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.tg-file-hero-search {
    width: min(720px, 100%);
    margin-top: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    border: 1px solid #cfd8dd;
    background: rgba(255, 255, 255, .82);
}

.tg-file-hero-search input,
.tg-file-hero-search button {
    min-height: 42px;
    border: 0;
    font: inherit;
}

.tg-file-hero-search input {
    min-width: 0;
    padding: .62rem .75rem;
    outline: 0;
    color: #1d2a32;
    background: transparent;
}

.tg-file-hero-search:focus-within {
    border-color: #5d93b2;
    box-shadow: 0 0 0 3px rgba(47, 125, 174, .13);
}

.tg-file-hero-search button {
    padding: .62rem .9rem;
    color: #fff;
    background: #245f88;
    font-size: .78rem;
    font-weight: 750;
}

.tg-file-hero-search button:hover,
.tg-file-hero-search button:focus-visible {
    background: #1d5278;
}

.tg-file-detail-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1rem;
    margin-top: .8rem;
    color: #65727a;
    font-size: .78rem;
}

.tg-file-detail-meta strong {
    color: #26343d;
}

.tg-modern-hero-category {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    color: #f8f8f6 !important;
    text-decoration: none;
}

.tg-modern-hero-category img {
    width: 58px;
    height: 58px;
    margin: .8rem 0 .65rem;
    object-fit: contain;
}

.tg-modern-hero-category strong {
    color: #ffffff;
    font-family: "Space Grotesk", Inter, system-ui, sans-serif;
    font-size: 1.45rem;
    line-height: 1.05;
}

.tg-modern-hero-category small {
    margin-top: .45rem;
    color: #d7e5ef;
    font-size: .76rem;
}

.tg-modern-hero-file-visual {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tg-modern-hero-file-visual img {
    display: block;
    width: auto;
    max-width: min(100%, 280px);
    max-height: 155px;
    object-fit: contain;
    border: 1px solid rgba(232, 243, 250, .28);
    background: rgba(8, 33, 54, .22);
    box-shadow: 0 14px 28px rgba(7, 25, 40, .18);
}

.tg-modern-hero--article .tg-back-link {
    margin-bottom: .75rem;
}

.tg-modern-hero--article .tg-article-meta,
.tg-modern-hero--article .tg-article-byline {
    color: #65727a;
}

.tg-modern-hero--article .tg-article-actions {
    margin-top: 1rem;
}

.tg-modern-hero--article .tg-share-status,
.tg-modern-hero--file-detail .tg-share-status {
    min-height: 1rem;
}

body.tg-modern-body .tg-search-link.is-active {
    border-color: #5d7b8e;
    color: #ffffff !important;
    background: #22313a;
}

@media (max-width: 980px) {
    .tg-modern-hero-grid {
        grid-template-columns: 1fr;
    }

    .tg-modern-hero-copy {
        padding-right: var(--tg-hero-edge-gutter);
    }

    .tg-modern-hero-copy::before {
        inset: 0 -6% 0 34%;
        opacity: .085;
        background-size: min(660px, 92%) auto;
    }

    .tg-modern-hero-identity {
        padding: 1.15rem var(--tg-hero-edge-gutter) 1.25rem;
        border-top: 1px solid rgba(220, 235, 248, .2);
        border-left: 0;
    }

    .tg-modern-hero-identity::before {
        opacity: .065;
        background-size: auto 104%;
    }

    .tg-modern-hero::after {
        top: auto;
        right: -88px;
        bottom: -118px;
        width: 330px;
        transform: none;
        opacity: .72;
    }

    .tg-modern-hero--file-detail .tg-modern-hero-file-visual {
        justify-content: flex-start;
    }
}

@media (max-width: 620px) {
    .tg-modern-hero {
        --tg-hero-edge-gutter: 18px;
    }

    .tg-modern-hero-copy h1 {
        font-size: clamp(2rem, 11vw, 2.75rem);
    }

    .tg-file-hero-search {
        grid-template-columns: 1fr;
    }

    .tg-file-hero-search button {
        width: 100%;
    }

    .tg-modern-hero-actions .tg-btn,
    body.tg-homepage .tg-modern-hero-actions > a {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}
/* Build 0120 — safe legacy community image rendering. */
.tg-legacy-inline-image {
    display: block;
    max-width: min(100%, 760px);
    height: auto;
    margin: 1rem 0;
    border: 1px solid rgba(49, 95, 136, 0.22);
    background: #fff;
}

/* Build 0138 — public footer attribution and build marker. */
.tg-footer-bottom a {
    color: inherit;
    font-weight: 700;
    text-decoration: none;
}

.tg-footer-bottom a:hover,
.tg-footer-bottom a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Build 0140 — managed homepage image-banner hero.
 * The shared hero chassis remains authoritative; only the homepage copy pane
 * becomes an image-driven banner viewport while the live stats pane stays
 * unchanged. */
body.tg-homepage .tg-modern-hero--home .tg-modern-hero-copy {
    min-height: 205px;
    padding: 0;
    overflow: hidden;
    background: #111a22;
}

body.tg-homepage .tg-modern-hero--home .tg-modern-hero-copy::before {
    display: none;
}

body.tg-homepage .tg-home-banner-slider,
body.tg-homepage .tg-home-banner-track {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

body.tg-homepage .tg-home-banner-slider {
    overflow: hidden;
    isolation: isolate;
    background: #111a22;
}

body.tg-homepage .tg-home-banner-slide {
    position: absolute;
    z-index: 1;
    inset: 0;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity .52s ease, visibility .52s ease;
    pointer-events: none;
}

body.tg-homepage .tg-home-banner-slide.is-active {
    z-index: 2;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.tg-homepage .tg-home-banner-link,
body.tg-homepage .tg-home-banner-slide > img,
body.tg-homepage .tg-home-banner-link > img {
    display: block;
    width: 100%;
    height: 100%;
}

body.tg-homepage .tg-home-banner-link {
    position: absolute;
    inset: 0;
    color: inherit;
    text-decoration: none;
}

body.tg-homepage .tg-home-banner-slide > img,
body.tg-homepage .tg-home-banner-link > img {
    object-fit: cover;
    object-position: center center;
}

body.tg-homepage .tg-home-banner-link:focus-visible {
    z-index: 5;
    outline: 3px solid rgba(255, 255, 255, .92);
    outline-offset: -5px;
}

body.tg-homepage .tg-home-banner-arrow {
    position: absolute;
    z-index: 8;
    top: 50%;
    width: 34px;
    height: 44px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 4px;
    color: #fff;
    background: rgba(9, 20, 29, .58);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .16);
    transform: translateY(-50%);
    transition: background-color .16s ease, border-color .16s ease, opacity .16s ease;
}

body.tg-homepage .tg-home-banner-arrow span {
    margin-top: -3px;
    font-family: Arial, sans-serif;
    font-size: 30px;
    font-weight: 400;
    line-height: 1;
}

body.tg-homepage .tg-home-banner-arrow.is-prev {
    left: 12px;
}

body.tg-homepage .tg-home-banner-arrow.is-next {
    right: 12px;
}

body.tg-homepage .tg-home-banner-arrow:hover,
body.tg-homepage .tg-home-banner-arrow:focus-visible {
    border-color: rgba(255, 255, 255, .55);
    background: rgba(9, 20, 29, .86);
}

body.tg-homepage .tg-home-banner-dots {
    position: absolute;
    z-index: 8;
    left: 50%;
    bottom: 11px;
    display: flex;
    gap: 7px;
    padding: 6px 8px;
    border-radius: 999px;
    background: rgba(9, 20, 29, .42);
    transform: translateX(-50%);
}

body.tg-homepage .tg-home-banner-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .78);
    border-radius: 50%;
    background: transparent;
    transition: width .16s ease, background-color .16s ease;
}

body.tg-homepage .tg-home-banner-dots button.is-active {
    width: 22px;
    border-radius: 999px;
    background: #fff;
}

body.tg-homepage .tg-home-banner-dots button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

@media (hover: hover) {
    body.tg-homepage .tg-home-banner-slider.has-multiple .tg-home-banner-arrow,
    body.tg-homepage .tg-home-banner-slider.has-multiple .tg-home-banner-dots {
        opacity: .72;
    }

    body.tg-homepage .tg-home-banner-slider.has-multiple:hover .tg-home-banner-arrow,
    body.tg-homepage .tg-home-banner-slider.has-multiple:hover .tg-home-banner-dots,
    body.tg-homepage .tg-home-banner-slider.has-multiple:focus-within .tg-home-banner-arrow,
    body.tg-homepage .tg-home-banner-slider.has-multiple:focus-within .tg-home-banner-dots {
        opacity: 1;
    }
}

@media (max-width: 980px) {
    body.tg-homepage .tg-modern-hero--home .tg-modern-hero-copy {
        min-height: clamp(205px, 34vw, 300px);
    }
}

@media (max-width: 620px) {
    body.tg-homepage .tg-modern-hero--home .tg-modern-hero-copy {
        min-height: clamp(185px, 48vw, 235px);
    }

    body.tg-homepage .tg-home-banner-arrow {
        width: 32px;
        height: 40px;
    }

    body.tg-homepage .tg-home-banner-arrow.is-prev {
        left: 8px;
    }

    body.tg-homepage .tg-home-banner-arrow.is-next {
        right: 8px;
    }

    body.tg-homepage .tg-home-banner-dots {
        bottom: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tg-homepage .tg-home-banner-slide,
    body.tg-homepage .tg-home-banner-arrow,
    body.tg-homepage .tg-home-banner-dots button {
        transition: none;
    }
}


/* Build 0146 Completion Fix 1 — compact extensible administrator attention UI. */
.tg-account-menu > summary {
    position: relative;
}

.tg-admin-attention-badge,
.tg-account-task-badge {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: #fff;
    background: #b94343;
    font-size: .61rem;
    font-weight: 800;
    line-height: 1;
}

.tg-admin-attention-badge {
    margin-left: -.12rem;
}

body.tg-modern-body .tg-account-dropdown a.tg-account-attention-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
}

.tg-account-task-badge {
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    font-size: .63rem;
}

@media (max-width: 720px) {
    .tg-account-menu > summary .tg-admin-attention-badge {
        position: absolute;
        top: -4px;
        right: -4px;
        min-width: 17px;
        height: 17px;
        padding: 0 4px;
        display: inline-flex !important;
        border-color: #172027;
        font-size: .57rem;
    }
}


@media (max-width: 720px) {
    .tg-maintenance-bypass-wrap {
        padding-top: .5rem;
        padding-bottom: .5rem;
    }

    .tg-maintenance-bypass-alert {
        grid-template-columns: auto minmax(0, 1fr);
        gap: .6rem;
        padding: .6rem;
    }

    .tg-maintenance-bypass-copy {
        display: block;
    }

    .tg-maintenance-bypass-kicker {
        display: block;
        margin-bottom: .16rem;
    }

    .tg-maintenance-bypass-message {
        display: block;
    }

    .tg-maintenance-bypass-action {
        grid-column: 2;
        width: max-content;
        margin-top: .1rem;
    }
}


/* Build 0193 Completion Fix 1 — Public Slate Chrome Palette.
 * Replace the near-black public header/navigation/footer chrome with a
 * coordinated blue-charcoal palette that better bridges the managed page
 * background, TG007 blue accents and the light editorial canvas.
 *
 * Build 0193 Completion Fix 2 — TG007 Artwork Restoration & Textured Slate.
 * Keep the slate palette, but do not flatten the long-standing TG007 chrome.
 * The right-side honeycomb artwork is now the top background layer so it is
 * never muted by the slate wash; the original header texture remains visible
 * beneath a translucent blue-charcoal tint. The footer receives the same
 * restrained texture treatment while retaining its right-side identity art.
 */
:root {
    --tg007-chrome-brand: #18212a;
    --tg007-chrome-nav: #111820;
    --tg007-chrome-footer: #151e26;
    --tg007-chrome-line: #2a3a46;
}

.tg-brand-band {
    background-color: var(--tg007-chrome-brand);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        linear-gradient(180deg,
            rgba(46, 64, 78, .34) 0%,
            rgba(24, 33, 42, .22) 46%,
            rgba(10, 15, 20, .34) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, repeat-x;
    background-position: right center, center, left top;
    background-size: auto 112%, 100% 100%, auto 100%;
    box-shadow: inset 0 -1px 0 rgba(104, 151, 181, .10);
}

.tg-nav-band {
    border-bottom-color: var(--tg007-chrome-line);
    background: linear-gradient(180deg, #131d26 0%, var(--tg007-chrome-nav) 100%);
}

.tg-search-link {
    border-color: #344754;
    background: #18232c;
}

.tg-search-link:hover,
.tg-search-link:focus-visible {
    border-color: #4b697c;
    background: #1d2a34;
}

.tg-nav-dropdown {
    border-color: #31424f;
    background: #16212a;
}

.tg-nav-dropdown a:hover,
.tg-nav-dropdown a:focus-visible {
    background: #20303b;
}

.tg-footer {
    border-top-color: var(--tg007-chrome-line);
    background-color: var(--tg007-chrome-footer);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        linear-gradient(180deg,
            rgba(42, 58, 70, .24) 0%,
            rgba(21, 30, 38, .18) 52%,
            rgba(9, 14, 18, .26) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, repeat;
    background-position: right bottom, center, left top;
    background-size: auto 205px, 100% 100%, auto;
}

.tg-footer::before {
    background: linear-gradient(90deg,
        rgba(21, 30, 38, .88) 0%,
        rgba(21, 30, 38, .83) 54%,
        rgba(21, 30, 38, .62) 78%,
        rgba(21, 30, 38, .34) 100%);
}

.tg-footer-bottom {
    border-top-color: rgba(146, 174, 193, .13);
}

@media (max-width: 720px) {
    .tg-footer::before {
        background: linear-gradient(90deg,
            rgba(21, 30, 38, .94) 0%,
            rgba(21, 30, 38, .86) 68%,
            rgba(21, 30, 38, .48) 100%);
    }
}

/* Build 0193 Completion Fix 3 — Unified Blue Header / Navigation Gradient.
 * Production review showed that preserving the TG007 honeycomb artwork while
 * retaining the older dark chrome still made the brand band and navigation
 * read as two separate black strips. This completion fix keeps all restored
 * identity artwork, but gives the brand band a visibly blue-charcoal vertical
 * gradient whose bottom color exactly meets the navigation's top color. The
 * navigation then continues darker in the same hue family, removing the hard
 * visual seam without turning the site chrome bright blue. The footer receives
 * a related blue-charcoal depth treatment so the page is framed consistently.
 */
:root {
    --tg007-chrome-header-top: #20394b;
    --tg007-chrome-header-mid: #172e3d;
    --tg007-chrome-join: #112633;
    --tg007-chrome-nav-bottom: #0d1c26;
    --tg007-chrome-footer-top: #173141;
    --tg007-chrome-footer-mid: #132a38;
    --tg007-chrome-footer-bottom: #0d1d27;
    --tg007-chrome-line: #294555;
}

.tg-brand-band {
    background-color: var(--tg007-chrome-header-mid);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        linear-gradient(180deg,
            rgba(32, 57, 75, .95) 0%,
            rgba(23, 46, 61, .93) 50%,
            rgba(17, 38, 51, .97) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, repeat-x;
    background-position: right center, center, left top;
    background-size: auto 112%, 100% 100%, auto 100%;
    box-shadow: none;
}

/* Keep the long-standing TG007 right-side artwork present, but avoid the
 * doubled highlight becoming stronger than the newly connected gradient. */
.tg-brand-band::after {
    opacity: .24;
}

.tg-nav-band {
    border-top: 0 !important;
    border-bottom-color: var(--tg007-chrome-line);
    background: linear-gradient(180deg,
        var(--tg007-chrome-join) 0%,
        #102330 48%,
        var(--tg007-chrome-nav-bottom) 100%);
    box-shadow:
        inset 0 1px 0 rgba(118, 177, 207, .07),
        inset 0 -1px 0 rgba(0, 0, 0, .18);
}

.tg-search-link {
    border-color: #36586a;
    background: rgba(22, 47, 62, .88);
}

.tg-search-link:hover,
.tg-search-link:focus-visible {
    border-color: #53809a;
    background: rgba(29, 61, 79, .94);
}

.tg-nav-dropdown {
    border-color: #365464;
    background: #122632;
}

.tg-nav-dropdown a:hover,
.tg-nav-dropdown a:focus-visible {
    background: #1b394a;
}

.tg-footer {
    border-top-color: var(--tg007-chrome-line);
    background-color: var(--tg007-chrome-footer-mid);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        linear-gradient(180deg,
            rgba(23, 49, 65, .96) 0%,
            rgba(19, 42, 56, .94) 48%,
            rgba(13, 29, 39, .98) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, repeat;
    background-position: right bottom, center, left top;
    background-size: auto 205px, 100% 100%, auto;
}

.tg-footer::before {
    background: linear-gradient(90deg,
        rgba(16, 36, 48, .56) 0%,
        rgba(15, 34, 46, .50) 54%,
        rgba(13, 30, 41, .32) 78%,
        rgba(10, 24, 33, .16) 100%);
}

.tg-footer::after {
    opacity: .14;
}

.tg-footer-bottom {
    border-top-color: rgba(146, 193, 218, .14);
}

@media (max-width: 980px) {
    .tg-nav-toggle {
        border-color: #355568;
        background: #132b39;
    }

    .tg-primary-nav {
        border-color: #294758;
        background: #102430;
        box-shadow: 0 20px 42px rgba(0, 0, 0, .34);
    }

    body.tg-modern-body .tg-primary-nav > a:hover,
    body.tg-modern-body .tg-primary-nav > a.is-active,
    body.tg-modern-body .tg-nav-more > summary:hover,
    body.tg-modern-body .tg-nav-more > summary.is-active,
    body.tg-modern-body .tg-nav-more[open] > summary {
        background: #183747;
    }

    .tg-nav-dropdown {
        border-left-color: #3b6073;
        background: #102430;
    }
}

@media (max-width: 720px) {
    .tg-footer::before {
        background: linear-gradient(90deg,
            rgba(15, 34, 46, .72) 0%,
            rgba(14, 32, 43, .60) 68%,
            rgba(10, 25, 34, .28) 100%);
    }
}



/* Build 0193 Completion Fix 4 — Deep Blue Textured Chrome.
 * Production review found the CF3 palette too blue-green and too smooth next
 * to TG007's stronger cobalt/steel-blue homepage identity. Keep the connected
 * header/navigation composition and the right-side TG007 honeycomb artwork,
 * but move the chrome into a truer navy-blue family and deliberately expose
 * the legacy headerbar_t texture through translucent color layers. The same
 * subtle texture continues into the navigation and footer so the shell feels
 * designed as one TG007 surface rather than stacked flat color bands.
 */
:root {
    --tg007-chrome-header-top-cf4: #173b63;
    --tg007-chrome-header-mid-cf4: #123354;
    --tg007-chrome-join-cf4: #0d2948;
    --tg007-chrome-nav-bottom-cf4: #091c32;
    --tg007-chrome-footer-top-cf4: #143956;
    --tg007-chrome-footer-mid-cf4: #102e49;
    --tg007-chrome-footer-bottom-cf4: #0a2036;
    --tg007-chrome-line-cf4: #2d5f86;
}

.tg-brand-band {
    background-color: var(--tg007-chrome-header-mid-cf4);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        radial-gradient(ellipse at 72% -35%, rgba(54, 126, 190, .24) 0%, rgba(31, 85, 135, .10) 34%, transparent 62%),
        linear-gradient(180deg,
            rgba(23, 59, 99, .74) 0%,
            rgba(18, 51, 84, .78) 48%,
            rgba(13, 41, 72, .86) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, no-repeat, repeat-x;
    background-position: right center, center top, center, left top;
    background-size: auto 112%, 100% 100%, 100% 100%, auto 100%;
}

.tg-brand-band::after {
    opacity: .26;
}

.tg-nav-band {
    border-top: 0 !important;
    border-bottom-color: var(--tg007-chrome-line-cf4);
    background-color: var(--tg007-chrome-join-cf4);
    background-image:
        linear-gradient(180deg,
            rgba(13, 41, 72, .86) 0%,
            rgba(11, 35, 61, .91) 48%,
            rgba(9, 28, 50, .96) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, repeat-x;
    background-position: center, left top;
    background-size: 100% 100%, auto 100%;
    box-shadow:
        inset 0 1px 0 rgba(93, 160, 213, .09),
        inset 0 -1px 0 rgba(0, 0, 0, .18);
}

.tg-search-link {
    border-color: #35688e;
    background: rgba(14, 43, 72, .84);
}

.tg-search-link:hover,
.tg-search-link:focus-visible {
    border-color: #4d83ad;
    background: rgba(19, 57, 94, .94);
}

.tg-nav-dropdown {
    border-color: #315f80;
    background: #0d2945;
    background-image:
        linear-gradient(rgba(13, 41, 69, .90), rgba(9, 29, 50, .95)),
        url('../../../cms/imgs/main/headerbar_t.png');
}

.tg-nav-dropdown a:hover,
.tg-nav-dropdown a:focus-visible {
    background: #173f66;
}

.tg-footer {
    border-top-color: var(--tg007-chrome-line-cf4);
    background-color: var(--tg007-chrome-footer-mid-cf4);
    background-image:
        url('../../../cms/imgs/main/headerbar_special.png'),
        radial-gradient(ellipse at 82% 118%, rgba(43, 104, 159, .18) 0%, transparent 52%),
        linear-gradient(180deg,
            rgba(20, 57, 86, .78) 0%,
            rgba(16, 46, 73, .83) 48%,
            rgba(10, 32, 54, .91) 100%),
        url('../../../cms/imgs/main/headerbar_t.png');
    background-repeat: no-repeat, no-repeat, no-repeat, repeat;
    background-position: right bottom, center, center, left top;
    background-size: auto 205px, 100% 100%, 100% 100%, auto;
}

.tg-footer::before {
    background: linear-gradient(90deg,
        rgba(10, 33, 57, .38) 0%,
        rgba(10, 32, 55, .34) 54%,
        rgba(8, 28, 49, .22) 78%,
        rgba(6, 23, 41, .10) 100%);
}

.tg-footer::after {
    opacity: .16;
}

.tg-footer-bottom {
    border-top-color: rgba(121, 177, 218, .16);
}

@media (max-width: 980px) {
    .tg-nav-toggle {
        border-color: #315f82;
        background: #0f3150;
    }

    .tg-primary-nav {
        border-color: #2b5879;
        background-color: #0d2945;
        background-image:
            linear-gradient(rgba(13, 41, 69, .92), rgba(8, 28, 49, .96)),
            url('../../../cms/imgs/main/headerbar_t.png');
        box-shadow: 0 20px 42px rgba(0, 0, 0, .34);
    }

    body.tg-modern-body .tg-primary-nav > a:hover,
    body.tg-modern-body .tg-primary-nav > a.is-active,
    body.tg-modern-body .tg-nav-more > summary:hover,
    body.tg-modern-body .tg-nav-more > summary.is-active,
    body.tg-modern-body .tg-nav-more[open] > summary {
        background: #16446f;
    }

    .tg-nav-dropdown {
        border-left-color: #3a7199;
        background-color: #0c2843;
    }
}

@media (max-width: 720px) {
    .tg-footer::before {
        background: linear-gradient(90deg,
            rgba(10, 33, 57, .52) 0%,
            rgba(9, 31, 53, .42) 68%,
            rgba(7, 25, 44, .20) 100%);
    }
}


/* Build 0193 Completion Fix 5 — Smaller Footer Honeycomb Artwork.
 * Production review confirmed the CF4 blue/textured palette, but the footer's
 * right-side headerbar_special artwork was scaled too large and lost detail.
 * Keep the same artwork, color, texture and bottom-right placement while
 * reducing only its rendered footprint so it reads as an accent again.
 */
.tg-footer {
    background-size: auto 145px, 100% 100%, 100% 100%, auto;
}

@media (max-width: 720px) {
    .tg-footer {
        background-size: auto 115px, 100% 100%, 100% 100%, auto;
    }
}


/* Build 0193 Completion Fix 7 — Footer Navigation Polish.
 * Give the Explore / TG007 / Account groups the same deliberate finish as the
 * deep-blue textured chrome without turning the public footer into CP-style cards.
 */
.tg-footer-grid > div:not(.tg-footer-brand) {
    position: relative;
    z-index: 2;
    align-self: start;
    min-width: 0;
}

.tg-footer h2 {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0 0 1rem;
    padding-bottom: .62rem;
    color: #eef8ff;
    font-size: .79rem;
    font-weight: 850;
    letter-spacing: .095em;
    text-shadow: 0 1px 0 rgba(0, 0, 0, .28);
}

.tg-footer h2::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 34px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #46a8e2 0%, #2d80bd 72%, rgba(45, 128, 189, 0) 100%);
    box-shadow: 0 0 12px rgba(61, 153, 211, .22);
}

.tg-footer-grid > div:not(.tg-footer-brand) a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 29px;
    margin: .12rem -.55rem;
    padding: .3rem .55rem .3rem .72rem;
    overflow: hidden;
    border-radius: 6px;
    color: #b8cad8;
    line-height: 1.25;
    transition:
        color .16s ease,
        background-color .16s ease,
        box-shadow .16s ease,
        padding-left .16s ease;
}

.tg-footer-grid > div:not(.tg-footer-brand) a::before {
    content: '\203A';
    position: absolute;
    left: .36rem;
    top: 50%;
    color: #58b4ea;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
    opacity: 0;
    transform: translate(-4px, -52%);
    transition: opacity .16s ease, transform .16s ease;
}

.tg-footer-grid > div:not(.tg-footer-brand) a:hover,
.tg-footer-grid > div:not(.tg-footer-brand) a:focus-visible {
    padding-left: 1.05rem;
    color: #ffffff;
    background: linear-gradient(90deg, rgba(50, 133, 192, .17) 0%, rgba(30, 92, 139, .08) 62%, rgba(14, 54, 87, 0) 100%);
    box-shadow: inset 2px 0 0 rgba(76, 169, 224, .78);
    outline: none;
}

.tg-footer-grid > div:not(.tg-footer-brand) a:hover::before,
.tg-footer-grid > div:not(.tg-footer-brand) a:focus-visible::before {
    opacity: 1;
    transform: translate(0, -52%);
}

@media (max-width: 720px) {
    .tg-footer h2 {
        margin-bottom: .78rem;
    }

    .tg-footer-grid > div:not(.tg-footer-brand) a {
        margin-inline: -.35rem;
        padding-inline: .55rem;
    }

    .tg-footer-grid > div:not(.tg-footer-brand) a:hover,
    .tg-footer-grid > div:not(.tg-footer-brand) a:focus-visible {
        padding-left: .95rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tg-footer-grid > div:not(.tg-footer-brand) a,
    .tg-footer-grid > div:not(.tg-footer-brand) a::before {
        transition: none;
    }
}


/* Build 0193 Completion Fix 8 — Header Notification / Message Icons.
 * Replace the two text-heavy member utility links with compact, accessible
 * bell and envelope controls that match the confirmed deep-blue TG007 chrome.
 * Count badges remain live and the compact controls stay available on mobile.
 */
.tg-account-icon-link {
    position: relative;
    display: inline-flex;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(119, 180, 225, .24);
    border-radius: 999px;
    color: #dbeaf5 !important;
    background: rgba(8, 30, 53, .42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
    transition:
        color .16s ease,
        border-color .16s ease,
        background-color .16s ease,
        box-shadow .16s ease,
        transform .16s ease;
}

.tg-account-icon-link .tg-account-icon {
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

body.tg-modern-body .tg-account-area > .tg-account-icon-link:hover,
body.tg-modern-body .tg-account-area > .tg-account-icon-link:focus-visible {
    color: #ffffff !important;
    border-color: rgba(91, 177, 232, .72);
    background: rgba(24, 73, 116, .76);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .07),
        0 0 0 3px rgba(50, 137, 195, .12),
        0 4px 14px rgba(0, 0, 0, .18);
    outline: none;
    transform: translateY(-1px);
}

.tg-account-icon-link .tg-count-badge {
    position: absolute;
    top: -5px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    margin: 0;
    padding: 0 4px;
    border: 2px solid #123354;
    font-size: .58rem;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .32);
}

@media (max-width: 980px) {
    .tg-account-area > .tg-account-utility.tg-account-icon-link {
        display: inline-flex;
    }
}

@media (max-width: 720px) {
    .tg-account-area {
        gap: .4rem;
    }

    .tg-account-icon-link {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }

    .tg-account-icon-link .tg-account-icon {
        width: 17px;
        height: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tg-account-icon-link {
        transition: none;
    }
}


/* Build 0193 Completion Fix 9 — Search / Header Utility Palette Match.
 * Keep Search as the wider text+icon navigation action, but make its resting
 * and interaction colors exactly match the compact notification/message
 * controls introduced by Completion Fix 8. This removes the last near-black
 * pill from the unified deep-blue header/nav chrome without changing Search
 * routing, text, responsive layout or accessibility.
 */
body.tg-modern-body .tg-search-link:link,
body.tg-modern-body .tg-search-link:visited {
    border-color: rgba(119, 180, 225, .24);
    color: #dbeaf5 !important;
    background: rgba(8, 30, 53, .42);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .035);
}

body.tg-modern-body .tg-search-link:hover,
body.tg-modern-body .tg-search-link:focus-visible {
    border-color: rgba(91, 177, 232, .72);
    color: #ffffff !important;
    background: rgba(24, 73, 116, .76);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .07),
        0 0 0 3px rgba(50, 137, 195, .12),
        0 4px 14px rgba(0, 0, 0, .18);
    outline: none;
}

body.tg-modern-body .tg-search-link.is-active {
    border-color: rgba(91, 177, 232, .78);
    color: #ffffff !important;
    background: rgba(24, 73, 116, .82);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .07),
        0 0 0 2px rgba(50, 137, 195, .10);
}


/* Build 0193 Completion Fix 10 — Translucent Username Control.
 * Pull the signed-in username/account control into the same deep-blue utility
 * palette as Notifications, Messages and Search while retaining enough
 * transparency for the right-side TG007 honeycomb artwork to remain visible.
 */
body.tg-modern-body .tg-account-menu > summary {
    border-color: rgba(119, 180, 225, .27);
    color: #eef7fc;
    background: linear-gradient(
        180deg,
        rgba(18, 58, 94, .46) 0%,
        rgba(8, 30, 53, .56) 100%
    );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .045),
        0 2px 8px rgba(0, 0, 0, .08);
    transition:
        color .16s ease,
        border-color .16s ease,
        background .16s ease,
        box-shadow .16s ease,
        transform .16s ease;
}

body.tg-modern-body .tg-account-menu[open] > summary,
body.tg-modern-body .tg-account-menu > summary:hover,
body.tg-modern-body .tg-account-menu > summary:focus-visible {
    border-color: rgba(91, 177, 232, .68);
    color: #ffffff;
    background: linear-gradient(
        180deg,
        rgba(30, 83, 126, .68) 0%,
        rgba(18, 58, 94, .76) 100%
    );
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .07),
        0 0 0 3px rgba(50, 137, 195, .10),
        0 4px 14px rgba(0, 0, 0, .16);
    outline: none;
    transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
    body.tg-modern-body .tg-account-menu > summary {
        transition: none;
    }
}

/* Build 0194 — News Editorial Covers & Homepage Thumbnail Modernization. */
body.tg-homepage .tg-home-news-feature {
    grid-template-columns: minmax(170px, 210px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

body.tg-homepage .tg-home-news-media,
body.tg-homepage .tg-home-news-brief-media {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid #cbd8e0;
    border-radius: 6px;
    background: #0d2a45;
    box-shadow: 0 7px 18px rgba(24, 48, 65, .09);
    text-decoration: none;
}

body.tg-homepage .tg-home-news-media {
    aspect-ratio: 16 / 9;
}

body.tg-homepage .tg-home-news-media img,
body.tg-homepage .tg-home-news-brief-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

body.tg-homepage .tg-home-news-media:hover img,
body.tg-homepage .tg-home-news-media:focus-visible img,
body.tg-homepage .tg-home-news-brief-media:hover img,
body.tg-homepage .tg-home-news-brief-media:focus-visible img {
    transform: scale(1.025);
}

body.tg-homepage .tg-home-news-placeholder {
    position: relative;
    display: grid;
    align-content: center;
    width: 100%;
    height: 100%;
    min-height: 100%;
    padding: .85rem;
    color: #eaf6ff;
    background:
        linear-gradient(rgba(100, 173, 220, .055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(100, 173, 220, .055) 1px, transparent 1px),
        radial-gradient(circle at 82% 18%, rgba(72, 164, 224, .34), transparent 38%),
        linear-gradient(145deg, #17496f 0%, #0f3454 50%, #091f36 100%);
    background-size: 18px 18px, 18px 18px, auto, auto;
}

body.tg-homepage .tg-home-news-placeholder::after {
    position: absolute;
    right: -18px;
    bottom: -24px;
    width: 110px;
    height: 110px;
    border: 1px solid rgba(139, 207, 246, .16);
    border-radius: 50%;
    content: '';
    box-shadow: 0 0 0 16px rgba(139, 207, 246, .045), 0 0 0 34px rgba(139, 207, 246, .025);
}

body.tg-homepage .tg-home-news-placeholder small,
body.tg-homepage .tg-home-news-placeholder > span {
    position: relative;
    z-index: 1;
    color: #9fcbe6;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
}

body.tg-homepage .tg-home-news-placeholder strong {
    position: relative;
    z-index: 1;
    margin: .25rem 0 .18rem;
    color: #fff;
    font-family: "Space Grotesk", sans-serif;
    font-size: clamp(1rem, 2vw, 1.45rem);
    letter-spacing: -.03em;
    line-height: 1;
}

body.tg-homepage .tg-home-news-brief {
    grid-template-columns: 104px minmax(0, 1fr);
    gap: .72rem;
}

body.tg-homepage .tg-home-news-brief-media {
    aspect-ratio: 16 / 9;
    align-self: start;
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder {
    padding: .48rem .55rem;
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder small {
    font-size: .48rem;
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder strong {
    margin-top: .18rem;
    font-size: .86rem;
}

body.tg-homepage .tg-home-news-feature h3 {
    margin-top: .18rem;
}

@media (max-width: 720px) {
    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: 1fr;
        padding-right: 0;
    }

    body.tg-homepage .tg-home-news-media {
        width: min(100%, 420px);
    }

    body.tg-homepage .tg-home-news-brief {
        grid-template-columns: 92px minmax(0, 1fr);
    }
}

@media (max-width: 480px) {
    body.tg-homepage .tg-home-news-brief {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-brief-media {
        width: min(100%, 300px);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tg-homepage .tg-home-news-media img,
    body.tg-homepage .tg-home-news-brief-media img {
        transition: none;
    }
}

/* Build 0194 Completion Fix 1 — Homepage News Editorial Cards.
 * Promote News cover artwork from thumbnail decoration into the visual anchor of
 * the homepage: one large featured editorial card and two stacked supporting
 * cards. The News archive remains unchanged.
 */
body.tg-homepage .tg-home-editorial {
    padding-block: 1.55rem 1.7rem;
}

body.tg-homepage .tg-home-editorial .tg-home-section-heading {
    margin-bottom: .9rem;
}

body.tg-homepage .tg-home-news-editorial {
    grid-template-columns: minmax(0, 1.62fr) minmax(330px, .88fr);
    gap: clamp(1rem, 1.8vw, 1.35rem);
    align-items: start;
    padding-top: 0;
    border-top: 0;
}

body.tg-homepage .tg-home-news-feature,
body.tg-homepage .tg-home-news-brief {
    position: relative;
    overflow: hidden;
    border: 1px solid #d6e0e6;
    border-radius: 10px;
    background: #fffefd;
    box-shadow:
        0 1px 1px rgba(17, 44, 64, .025),
        0 8px 22px rgba(17, 44, 64, .065);
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

body.tg-homepage .tg-home-news-feature {
    display: block;
    padding: 0;
    border-right: 1px solid #d6e0e6;
}

body.tg-homepage .tg-home-news-feature:hover,
body.tg-homepage .tg-home-news-feature:focus-within,
body.tg-homepage .tg-home-news-brief:hover,
body.tg-homepage .tg-home-news-brief:focus-within {
    border-color: #adc8da;
    box-shadow:
        0 1px 1px rgba(17, 44, 64, .03),
        0 12px 28px rgba(17, 44, 64, .105);
    transform: translateY(-1px);
}

body.tg-homepage .tg-home-news-feature::before,
body.tg-homepage .tg-home-news-brief::before {
    position: absolute;
    z-index: 3;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    content: '';
    pointer-events: none;
    background: linear-gradient(90deg, #2b8fc8 0%, #176ba1 52%, rgba(23, 107, 161, .12) 100%);
    opacity: .84;
}

body.tg-homepage .tg-home-news-media,
body.tg-homepage .tg-home-news-brief-media {
    width: 100%;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: #0d2a45;
    box-shadow: none;
}

body.tg-homepage .tg-home-news-media {
    aspect-ratio: 16 / 9;
}

body.tg-homepage .tg-home-news-feature-copy {
    padding: 1rem 1.15rem 1.08rem;
}

body.tg-homepage .tg-home-news-feature h3 {
    max-width: none;
    margin: .32rem 0 .48rem;
    font-size: clamp(1.45rem, 1.75vw, 1.82rem);
    line-height: 1.06;
    letter-spacing: -.025em;
}

body.tg-homepage .tg-home-news-feature p {
    display: -webkit-box;
    max-width: none;
    margin: 0;
    overflow: hidden;
    color: #566874;
    font-size: .78rem;
    line-height: 1.48;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-home-news-byline {
    margin-top: .62rem;
    color: #84919a;
    font-size: .6rem;
}

body.tg-homepage .tg-home-news-rail {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-content: start;
}

body.tg-homepage .tg-home-news-brief,
body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    display: block;
    padding: 0;
    border-top: 1px solid #d6e0e6;
}

body.tg-homepage .tg-home-news-brief-media {
    aspect-ratio: 16 / 9;
}

body.tg-homepage .tg-home-news-brief-copy {
    padding: .78rem .9rem .86rem;
}

body.tg-homepage .tg-home-news-brief h3 {
    display: -webkit-box;
    margin: .28rem 0 0;
    overflow: hidden;
    font-size: .94rem;
    line-height: 1.18;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.tg-homepage .tg-home-news-brief .tg-home-news-byline {
    margin-top: .46rem;
}

body.tg-homepage .tg-home-news-meta {
    gap: .45rem;
}

body.tg-homepage .tg-home-news-meta span:first-child {
    color: #1f739f;
    font-weight: 800;
}

body.tg-homepage .tg-home-news-media:focus-visible,
body.tg-homepage .tg-home-news-brief-media:focus-visible,
body.tg-homepage .tg-home-news-feature h3 a:focus-visible,
body.tg-homepage .tg-home-news-brief h3 a:focus-visible {
    outline: 2px solid #3c98ce;
    outline-offset: -2px;
}

@media (max-width: 1100px) {
    body.tg-homepage .tg-home-news-editorial {
        grid-template-columns: minmax(0, 1.5fr) minmax(300px, .9fr);
    }
}

@media (max-width: 980px) {
    body.tg-homepage .tg-home-news-editorial {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    body.tg-homepage .tg-home-news-feature {
        padding-bottom: 0;
        border-right: 1px solid #d6e0e6;
        border-bottom: 1px solid #d6e0e6;
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    body.tg-homepage .tg-home-news-feature-copy {
        padding: .88rem .9rem .95rem;
    }

    body.tg-homepage .tg-home-news-feature h3 {
        font-size: clamp(1.24rem, 6vw, 1.55rem);
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: 1fr;
    }

    body.tg-homepage .tg-home-news-brief-copy {
        padding: .72rem .78rem .8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.tg-homepage .tg-home-news-feature,
    body.tg-homepage .tg-home-news-brief {
        transition: none;
    }
}



/* Build 0194 Completion Fix 2 — Homepage News Compact Editorial Layout.
 * Replaces the oversized CF1 card treatment with a layout that belongs to the
 * TG007 homepage: substantial but restrained 16:9 artwork, horizontal editorial
 * rows, simple dividers, no floating card chrome and no giant fallback panels.
 * The News archive and article-cover system remain unchanged.
 */
body.tg-homepage .tg-home-editorial {
    padding-block: 1.35rem 1.45rem;
}

body.tg-homepage .tg-home-editorial .tg-home-section-heading {
    margin-bottom: .75rem;
}

body.tg-homepage .tg-home-news-editorial {
    display: grid;
    grid-template-columns: minmax(0, 1.82fr) minmax(315px, .88fr);
    gap: 1.45rem;
    align-items: stretch;
    padding-top: 0;
    border-top: 0;
}

body.tg-homepage .tg-home-news-feature,
body.tg-homepage .tg-home-news-brief,
body.tg-homepage .tg-home-news-feature:hover,
body.tg-homepage .tg-home-news-feature:focus-within,
body.tg-homepage .tg-home-news-brief:hover,
body.tg-homepage .tg-home-news-brief:focus-within {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
}

body.tg-homepage .tg-home-news-feature::before,
body.tg-homepage .tg-home-news-brief::before {
    display: none;
}

body.tg-homepage .tg-home-news-feature {
    display: grid;
    grid-template-columns: clamp(230px, 23vw, 285px) minmax(0, 1fr);
    gap: 1.05rem;
    align-items: start;
    min-width: 0;
    padding: .15rem 1.4rem .15rem 0;
    border-right: 1px solid #d8e0e5;
}

body.tg-homepage .tg-home-news-media,
body.tg-homepage .tg-home-news-brief-media {
    position: relative;
    display: block;
    width: 100%;
    overflow: hidden;
    border: 1px solid #c6d4de;
    border-radius: 4px;
    background: #0d2a45;
    box-shadow: 0 3px 10px rgba(20, 48, 68, .08);
}

body.tg-homepage .tg-home-news-media {
    aspect-ratio: 16 / 9;
}

body.tg-homepage .tg-home-news-feature-copy,
body.tg-homepage .tg-home-news-brief-copy {
    padding: 0;
}

body.tg-homepage .tg-home-news-feature h3 {
    max-width: 720px;
    margin: .25rem 0 .42rem;
    font-size: clamp(1.48rem, 1.65vw, 1.82rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}

body.tg-homepage .tg-home-news-feature p {
    display: -webkit-box;
    max-width: 760px;
    margin: 0;
    overflow: hidden;
    color: #566874;
    font-size: .79rem;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.tg-homepage .tg-home-news-byline {
    margin-top: .5rem;
    color: #87939b;
    font-size: .6rem;
}

body.tg-homepage .tg-home-news-rail {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    align-content: start;
    min-width: 0;
}

body.tg-homepage .tg-home-news-brief,
body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    display: grid;
    grid-template-columns: 136px minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
    min-width: 0;
    padding: .1rem 0 .9rem;
    border-top: 0;
    border-bottom: 1px solid #d8e0e5;
}

body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
    padding-top: .9rem;
}

body.tg-homepage .tg-home-news-brief:last-child {
    border-bottom: 0;
}

body.tg-homepage .tg-home-news-brief-media {
    aspect-ratio: 16 / 9;
    align-self: start;
}

body.tg-homepage .tg-home-news-brief h3 {
    display: -webkit-box;
    margin: .22rem 0 0;
    overflow: hidden;
    font-size: .92rem;
    line-height: 1.2;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.tg-homepage .tg-home-news-meta {
    gap: .42rem;
}

body.tg-homepage .tg-home-news-meta span:first-child {
    color: #1f739f;
    font-weight: 800;
}

body.tg-homepage .tg-home-news-media:hover img,
body.tg-homepage .tg-home-news-media:focus-visible img,
body.tg-homepage .tg-home-news-brief-media:hover img,
body.tg-homepage .tg-home-news-brief-media:focus-visible img {
    transform: scale(1.018);
}

body.tg-homepage .tg-home-news-media:focus-visible,
body.tg-homepage .tg-home-news-brief-media:focus-visible,
body.tg-homepage .tg-home-news-feature h3 a:focus-visible,
body.tg-homepage .tg-home-news-brief h3 a:focus-visible {
    outline: 2px solid #3c98ce;
    outline-offset: 2px;
}

/* Keep fallback artwork useful but visually quiet on the homepage. */
body.tg-homepage .tg-home-news-placeholder {
    padding: .62rem .7rem;
}

body.tg-homepage .tg-home-news-placeholder strong {
    font-size: clamp(.9rem, 1.35vw, 1.15rem);
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder {
    padding: .42rem .5rem;
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder small {
    font-size: .46rem;
}

body.tg-homepage .tg-home-news-brief-media .tg-home-news-placeholder strong {
    margin-top: .14rem;
    font-size: .76rem;
}

@media (max-width: 1080px) {
    body.tg-homepage .tg-home-news-editorial {
        grid-template-columns: minmax(0, 1.65fr) minmax(290px, .9fr);
        gap: 1.15rem;
    }

    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: minmax(210px, 245px) minmax(0, 1fr);
        padding-right: 1.1rem;
    }

    body.tg-homepage .tg-home-news-brief {
        grid-template-columns: 118px minmax(0, 1fr);
    }
}

@media (max-width: 900px) {
    body.tg-homepage .tg-home-news-editorial {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
        padding: 0 0 1rem;
        border-right: 0;
        border-bottom: 1px solid #d8e0e5;
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1rem;
    }

    body.tg-homepage .tg-home-news-brief,
    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        grid-template-columns: 120px minmax(0, 1fr);
        padding: 0;
        border-bottom: 0;
    }
}

@media (max-width: 680px) {
    body.tg-homepage .tg-home-news-feature {
        grid-template-columns: 1fr;
        gap: .72rem;
    }

    body.tg-homepage .tg-home-news-media {
        width: min(100%, 440px);
    }

    body.tg-homepage .tg-home-news-rail {
        grid-template-columns: 1fr;
        gap: 0;
    }

    body.tg-homepage .tg-home-news-brief,
    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        grid-template-columns: 118px minmax(0, 1fr);
        padding: .72rem 0;
        border-bottom: 1px solid #d8e0e5;
    }

    body.tg-homepage .tg-home-news-brief:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 430px) {
    body.tg-homepage .tg-home-news-brief,
    body.tg-homepage .tg-home-news-brief + .tg-home-news-brief {
        grid-template-columns: 102px minmax(0, 1fr);
    }
}

/* Build 0194 Completion Fix 3 — Homepage News Transition Spacing.
 * Give the compact Latest News rows enough breathing room before the established
 * TG007 section-transition rail without changing the News layout itself.
 */
body.tg-homepage .tg-home-editorial::after {
    margin-top: 1.15rem;
}

@media (max-width: 680px) {
    body.tg-homepage .tg-home-editorial::after {
        margin-top: .9rem;
    }
}
