/**
 * GLiBz Frontier — Building Themes
 * ─────────────────────────────────
 * Each page/section of GLiBz maps to a building in the western town.
 * Themes override CSS custom properties and add building-specific decorators.
 *
 * IMPORTANT: body::before and body::after are used by glibz-western-theme.css
 * for the western pattern overlay and CRT scanlines. Building signs use
 * injected .gf-building-sign elements instead to avoid z-index conflicts.
 *
 * Buildings:
 *   saloon        — The Feed / Home / Timeline (warm amber, piano bar)
 *   general-store — Schwag'n Depot / Market (wooden plank, mercantile)
 *   telegraph     — The Wire / Convos (copper wire, spark tones)
 *   town-hall     — Soapbox / Forum / About / Terms (official, courthouse)
 *   schoolhouse   — Skoolin' Trails / Courses (chalkboard green)
 *   photo-studio  — Troves / Albums / Photos (sepia, daguerreotype)
 *   picture-show  — Movin' Pictures / Videos (theater, velvet curtain)
 *   quick-draw    — Flix / TikTak / Channels (fast, neon, arcade)
 *   bunkhouse     — Cahoots / Groups / Spaces (rustic, campfire)
 *   sheriffs-board— Wanted / Ads (aged paper, badge brass)
 *   post-office   — Dispatches / Notifications (telegram, stamps)
 *   bank          — Nuggets / Payment / Exchange (vault steel, ledger)
 *   vault         — Escrow (reinforced, dark, secure)
 *   homestead     — Profile / Persons (warm hearth, home)
 *   town-square   — Events (open air, bunting)
 *   land-office   — Registration / Auth (deeds, survey maps)
 */

/* ═══════════════════════════════════════════════════════════════════
   § BUILDING HEADER SIGNAGE
   Injected .gf-building-sign element — avoids body::before/::after conflicts
   ═══════════════════════════════════════════════════════════════════ */

.gf-building-sign {
    display: block;
    width: calc(100% - 40px);
    max-width: 1200px;
    margin: 8px auto 4px;
    padding: 8px 24px 6px;
    text-align: center;
    font-family: var(--gw-font-display);
    font-size: 0.85rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gw-gold-dim, #c4a060);
    pointer-events: none;
    position: relative;
    z-index: 2;
    background: linear-gradient(180deg,
        rgba(42, 34, 24, 0.85) 0%,
        rgba(30, 24, 16, 0.6) 100%);
    border: 1px solid rgba(212, 168, 67, 0.1);
    border-radius: 3px;
    box-shadow:
        0 2px 6px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

/* Nail-head rail under sign */
.gf-building-sign-rail {
    display: block;
    width: calc(100% - 40px);
    max-width: 1200px;
    height: 2px;
    margin: 0 auto 8px;
    background: repeating-linear-gradient(
        90deg,
        transparent,
        transparent 20px,
        rgba(212, 168, 67, 0.08) 20px,
        rgba(212, 168, 67, 0.08) 22px
    );
    pointer-events: none;
    position: relative;
    z-index: 2;
}


/* ═══════════════════════════════════════════════════════════════════
   § SALOON (Feed / Home / Timeline)
   Warm amber glow, oil lamp atmosphere, piano bar feel
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="saloon"] {
    --gw-bg-page: #1E1610;
    --gw-bg-block: #2C2216;
    --gw-bg-card: #3D3020;
    --gw-border: #5C4830;
    --gw-accent-glow: rgba(212, 168, 67, 0.08);
}

body[data-gf-building="saloon"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(50, 38, 22, 0.95) 0%,
        rgba(35, 26, 16, 0.8) 100%);
    border-bottom: 2px solid rgba(212, 168, 67, 0.2);
    border-top: 1px solid rgba(212, 168, 67, 0.15);
    text-shadow: 0 0 12px rgba(212, 168, 67, 0.3);
}

body[data-gf-building="saloon"] .gf-building-sign::after {
    content: '\2606  T H E   S A L O O N  \2606';
}

/* Oil lamp warm glow on panels */
body[data-gf-building="saloon"] .bx-db-container {
    box-shadow:
        inset 0 0 40px rgba(212, 168, 67, 0.04),
        0 1px 3px rgba(0, 0, 0, 0.3);
    border-bottom: 1px solid rgba(212, 168, 67, 0.06);
}

body[data-gf-building="saloon"] .bx-db-container:first-of-type {
    border-top: 2px solid rgba(212, 168, 67, 0.18);
}


/* ═══════════════════════════════════════════════════════════════════
   § GENERAL STORE (Schwag'n Depot / Market)
   Wooden plank shelving, copper fixtures, mercantile warmth
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="general-store"] {
    --gw-bg-page: #1A150E;
    --gw-bg-block: #28201A;
    --gw-bg-card: #3A2E22;
    --gw-border: #5A4A35;
    --gw-accent-glow: rgba(184, 115, 51, 0.1);
}

body[data-gf-building="general-store"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(50, 35, 18, 0.95) 0%,
        rgba(30, 22, 12, 0.8) 100%);
    border-bottom: 2px solid rgba(184, 115, 51, 0.25);
    color: var(--gw-copper);
    text-shadow: 0 0 8px rgba(184, 115, 51, 0.25);
}

body[data-gf-building="general-store"] .gf-building-sign::after {
    content: '\2302  S C H W A G \2019 N   D E P O T  \2302';
}

/* Wooden shelf plank texture */
body[data-gf-building="general-store"] .bx-db-container {
    background:
        repeating-linear-gradient(
            180deg,
            transparent,
            transparent 46px,
            rgba(184, 115, 51, 0.04) 46px,
            rgba(184, 115, 51, 0.04) 48px
        ),
        var(--gw-bg-block);
    border-left: 3px solid rgba(184, 115, 51, 0.15);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}


/* ═══════════════════════════════════════════════════════════════════
   § TELEGRAPH OFFICE (The Wire / Convos)
   Copper wire tones, dashed morse code accents, dim amber
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="telegraph"] {
    --gw-bg-page: #141210;
    --gw-bg-block: #221E1A;
    --gw-bg-card: #302A24;
    --gw-border: #4A4035;
}

body[data-gf-building="telegraph"] .gf-building-sign {
    border-bottom: 1px dashed rgba(184, 115, 51, 0.35);
    color: var(--gw-copper);
    text-shadow: 0 0 6px rgba(184, 115, 51, 0.2);
    background: linear-gradient(180deg,
        rgba(34, 28, 22, 0.95) 0%,
        rgba(20, 18, 16, 0.7) 100%);
}

body[data-gf-building="telegraph"] .gf-building-sign::after {
    content: '\26A1  T E L E G R A P H   O F F I C E  \26A1';
}

/* Morse code dot-dash borders on message containers */
body[data-gf-building="telegraph"] .bx-db-container {
    border-top: 1px dashed rgba(184, 115, 51, 0.15);
    border-left: 2px solid transparent;
    border-image: repeating-linear-gradient(
        180deg,
        rgba(184, 115, 51, 0.2) 0px,
        rgba(184, 115, 51, 0.2) 3px,
        transparent 3px,
        transparent 6px,
        rgba(184, 115, 51, 0.2) 6px,
        rgba(184, 115, 51, 0.2) 12px,
        transparent 12px,
        transparent 18px
    ) 1;
}


/* ═══════════════════════════════════════════════════════════════════
   § TOWN HALL (Soapbox / Forum / About / Terms)
   Official courthouse, dark wood paneling, gold trim
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="town-hall"] {
    --gw-bg-page: #161412;
    --gw-bg-block: #242018;
    --gw-bg-card: #342E24;
    --gw-border: #4D4438;
}

body[data-gf-building="town-hall"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(36, 32, 24, 0.95) 0%,
        rgba(22, 20, 18, 0.8) 100%);
    border: 1px solid rgba(212, 168, 67, 0.12);
    border-bottom: 2px double rgba(212, 168, 67, 0.25);
    color: var(--gw-gold);
    text-shadow: 0 0 8px rgba(212, 168, 67, 0.2);
}

body[data-gf-building="town-hall"] .gf-building-sign::after {
    content: '\2696  T O W N   H A L L  \2696';
}

/* Official document feel */
body[data-gf-building="town-hall"] .bx-db-container {
    border: 1px solid rgba(212, 168, 67, 0.08);
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.35),
        inset 0 0 20px rgba(0, 0, 0, 0.15);
    background: linear-gradient(180deg,
        var(--gw-bg-block) 0%,
        rgba(30, 26, 20, 0.95) 100%);
}

body[data-gf-building="town-hall"] .bx-db-header {
    border-bottom: 1px solid rgba(212, 168, 67, 0.1);
    padding-bottom: 8px;
}


/* ═══════════════════════════════════════════════════════════════════
   § SCHOOLHOUSE (Skoolin' Trails / Courses)
   Chalkboard green, chalk dust, wooden desk warmth
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="schoolhouse"] {
    --gw-bg-page: #0E1A14;
    --gw-bg-block: #162218;
    --gw-bg-card: #1E2E20;
    --gw-border: #2D4030;
}

body[data-gf-building="schoolhouse"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(18, 34, 22, 0.95) 0%,
        rgba(14, 26, 20, 0.7) 100%);
    border-bottom: 2px solid rgba(0, 255, 65, 0.12);
    border-top: 1px solid rgba(26, 60, 42, 0.4);
    color: var(--gw-terminal);
    opacity: 0.7;
    text-shadow: 0 0 8px rgba(0, 255, 65, 0.25);
}

body[data-gf-building="schoolhouse"] .gf-building-sign::after {
    content: '\270E  T H E   S C H O O L H O U S E  \270E';
}

/* Chalkboard-style panels */
body[data-gf-building="schoolhouse"] .bx-db-container {
    background: linear-gradient(135deg, #162218, #1A2A1C);
    border: 1px solid rgba(0, 255, 65, 0.06);
    box-shadow:
        inset 0 0 30px rgba(0, 255, 65, 0.015),
        0 1px 4px rgba(0, 0, 0, 0.3);
}


/* ═══════════════════════════════════════════════════════════════════
   § PHOTOGRAPHY STUDIO (Troves / Albums / Photos)
   Sepia tones, daguerreotype frames, dark room warmth
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="photo-studio"] {
    --gw-bg-page: #181510;
    --gw-bg-block: #262016;
    --gw-bg-card: #352C20;
    --gw-border: #4A4030;
}

body[data-gf-building="photo-studio"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(38, 32, 22, 0.95) 0%,
        rgba(24, 21, 16, 0.7) 100%);
    border-bottom: 1px solid rgba(196, 168, 120, 0.2);
    color: #C4A878;
    text-shadow: 0 0 6px rgba(196, 168, 120, 0.15);
}

body[data-gf-building="photo-studio"] .gf-building-sign::after {
    content: 'P H O T O G R A P H Y   S T U D I O';
}

/* Sepia tint + ornate frame on images */
body[data-gf-building="photo-studio"] .bx-base-unit-images,
body[data-gf-building="photo-studio"] .bx-albums-unit-images {
    filter: sepia(0.1) contrast(1.05);
    border-radius: 2px;
    box-shadow:
        0 0 0 2px rgba(196, 168, 120, 0.12),
        0 0 0 4px rgba(42, 34, 24, 0.8),
        0 0 0 5px rgba(196, 168, 120, 0.08),
        0 4px 12px rgba(0, 0, 0, 0.5);
}

body[data-gf-building="photo-studio"] .bx-db-container {
    border-left: 2px solid rgba(139, 58, 58, 0.12);
}


/* ═══════════════════════════════════════════════════════════════════
   § PICTURE SHOW (Movin' Pictures / Videos)
   Velvet theater curtain, warm stage lights, ticket stub gold
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="picture-show"] {
    --gw-bg-page: #120E0E;
    --gw-bg-block: #1E1818;
    --gw-bg-card: #2A2222;
    --gw-border: #3D3333;
}

body[data-gf-building="picture-show"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(40, 18, 18, 0.95) 0%,
        rgba(18, 14, 14, 0.8) 100%);
    border-bottom: 2px solid rgba(139, 58, 58, 0.2);
    border-top: 1px solid rgba(139, 58, 58, 0.15);
    color: #CC8844;
    text-shadow: 0 0 8px rgba(204, 136, 68, 0.2);
}

body[data-gf-building="picture-show"] .gf-building-sign::after {
    content: '\1F3AC  T H E   P I C T U R E   S H O W  \1F3AC';
}

/* Theater curtain drape effect */
body[data-gf-building="picture-show"] .bx-db-container {
    border-left: 4px solid rgba(139, 40, 40, 0.12);
    border-right: 4px solid rgba(139, 40, 40, 0.12);
    box-shadow:
        inset 4px 0 12px rgba(139, 40, 40, 0.04),
        inset -4px 0 12px rgba(139, 40, 40, 0.04);
}

body[data-gf-building="picture-show"] .bx-base-unit-images,
body[data-gf-building="picture-show"] video,
body[data-gf-building="picture-show"] iframe {
    box-shadow: 0 0 30px rgba(204, 136, 68, 0.08), 0 4px 16px rgba(0, 0, 0, 0.5);
}


/* ═══════════════════════════════════════════════════════════════════
   § QUICK DRAW PARLOR (Flix / TikTak / Channels)
   Neon-arcade frontier, terminal green flickers, fast energy
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="quick-draw"] {
    --gw-bg-page: #14100E;
    --gw-bg-block: #221C18;
    --gw-bg-card: #302822;
    --gw-border: #4A3E33;
}

body[data-gf-building="quick-draw"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(30, 24, 18, 0.95) 0%,
        rgba(20, 16, 14, 0.8) 100%);
    border-bottom: 1px solid rgba(0, 255, 65, 0.15);
    color: var(--gw-terminal);
    opacity: 0.7;
    text-shadow: 0 0 8px rgba(0, 255, 65, 0.4);
    animation: gf-neon-flicker 4s infinite;
}

body[data-gf-building="quick-draw"] .gf-building-sign::after {
    content: '\26A1  Q U I C K   D R A W   P A R L O R  \26A1';
}

@keyframes gf-neon-flicker {
    0%, 95%, 100% { opacity: 0.7; }
    96% { opacity: 0.5; }
    97% { opacity: 0.7; }
    98% { opacity: 0.4; }
    99% { opacity: 0.7; }
}

body[data-gf-building="quick-draw"] .bx-db-container {
    box-shadow:
        inset 0 0 20px rgba(0, 255, 65, 0.015),
        0 1px 4px rgba(0, 0, 0, 0.3);
    border-top: 1px solid rgba(0, 255, 65, 0.05);
}


/* ═══════════════════════════════════════════════════════════════════
   § BUNKHOUSE (Cahoots / Groups / Spaces)
   Rustic log cabin, campfire warmth, rough timber
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="bunkhouse"] {
    --gw-bg-page: #1A1510;
    --gw-bg-block: #28201A;
    --gw-bg-card: #352A20;
    --gw-border: #504030;
}

body[data-gf-building="bunkhouse"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(40, 32, 26, 0.95) 0%,
        rgba(26, 21, 16, 0.7) 100%);
    border-bottom: 2px solid rgba(184, 115, 51, 0.18);
    color: var(--gw-copper);
    text-shadow: 0 0 6px rgba(184, 115, 51, 0.15);
}

body[data-gf-building="bunkhouse"] .gf-building-sign::after {
    content: '\2302  T H E   B U N K H O U S E  \2302';
}

/* Rough-hewn log cabin panels */
body[data-gf-building="bunkhouse"] .bx-db-container {
    border: 1px solid rgba(80, 64, 48, 0.35);
    background:
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 52px,
            rgba(80, 64, 48, 0.06) 52px,
            rgba(80, 64, 48, 0.06) 54px
        ),
        linear-gradient(180deg, var(--gw-bg-block), rgba(40, 32, 26, 0.9));
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}


/* ═══════════════════════════════════════════════════════════════════
   § SHERIFF'S BOARD (Wanted / Ads)
   Aged parchment, brass badge, wanted poster nails
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="sheriffs-board"] {
    --gw-bg-page: #1C1610;
    --gw-bg-block: #2A2218;
    --gw-bg-card: #3A3024;
    --gw-border: #5A4A38;
}

body[data-gf-building="sheriffs-board"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(42, 34, 24, 0.95) 0%,
        rgba(28, 22, 16, 0.8) 100%);
    border-bottom: 2px solid rgba(212, 168, 67, 0.25);
    color: #C4A040;
    text-shadow: 0 0 6px rgba(196, 160, 64, 0.2);
}

body[data-gf-building="sheriffs-board"] .gf-building-sign::after {
    content: '\2605  S H E R I F F \2019 S   B O A R D  \2605';
}

/* Wanted poster — nailed to cork board, slight tilt */
body[data-gf-building="sheriffs-board"] .bx-base-unit {
    border: 1px solid rgba(212, 168, 67, 0.12);
    box-shadow:
        2px 3px 8px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(184, 115, 51, 0.06);
    transform: rotate(-0.4deg);
    position: relative;
}

body[data-gf-building="sheriffs-board"] .bx-base-unit:nth-child(even) {
    transform: rotate(0.4deg);
}

body[data-gf-building="sheriffs-board"] .bx-base-unit:nth-child(3n) {
    transform: rotate(-0.2deg);
}


/* ═══════════════════════════════════════════════════════════════════
   § POST OFFICE (Dispatches / Notifications)
   Telegram paper, postmark stamps, sorting cubbies
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="post-office"] {
    --gw-bg-page: #161210;
    --gw-bg-block: #241E18;
    --gw-bg-card: #322A22;
    --gw-border: #4A4035;
}

body[data-gf-building="post-office"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(36, 30, 24, 0.95) 0%,
        rgba(22, 18, 16, 0.7) 100%);
    border-bottom: 1px solid rgba(184, 140, 90, 0.2);
    color: #B8A070;
    text-shadow: 0 0 6px rgba(184, 160, 112, 0.15);
}

body[data-gf-building="post-office"] .gf-building-sign::after {
    content: '\2709  P O S T   O F F I C E  \2709';
}

body[data-gf-building="post-office"] .bx-menu-item-notification,
body[data-gf-building="post-office"] .bx-informer-msg {
    border-left: 3px solid rgba(212, 168, 67, 0.15);
    padding-left: 14px;
}

body[data-gf-building="post-office"] .bx-db-container {
    background:
        linear-gradient(90deg,
            rgba(184, 140, 90, 0.03) 0%,
            transparent 2px,
            transparent 100%),
        var(--gw-bg-block);
    border: 1px solid rgba(184, 140, 90, 0.06);
}


/* ═══════════════════════════════════════════════════════════════════
   § BANK / ASSAYER'S OFFICE (Nuggets / Payment / Exchange)
   Vault steel, green ledger lines, gold accents, security
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="bank"] {
    --gw-bg-page: #14120E;
    --gw-bg-block: #201C16;
    --gw-bg-card: #2C2820;
    --gw-border: #3D3830;
}

body[data-gf-building="bank"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(32, 28, 22, 0.95) 0%,
        rgba(20, 18, 14, 0.8) 100%);
    border: 1px solid rgba(212, 168, 67, 0.15);
    border-bottom: 2px solid rgba(212, 168, 67, 0.3);
    color: var(--gw-gold);
    font-weight: 400;
    text-shadow: 0 0 10px rgba(212, 168, 67, 0.25);
}

body[data-gf-building="bank"] .gf-building-sign::after {
    content: '\2B21  T H E   B A N K  \2B21';
}

body[data-gf-building="bank"] table tr {
    border-bottom: 1px solid rgba(0, 160, 80, 0.08);
}

body[data-gf-building="bank"] table tr:nth-child(even) {
    background: rgba(0, 160, 80, 0.02);
}

body[data-gf-building="bank"] .bx-db-container {
    border: 1px solid rgba(212, 168, 67, 0.1);
    box-shadow:
        inset 0 0 15px rgba(0, 0, 0, 0.2),
        0 1px 4px rgba(0, 0, 0, 0.4);
    background: linear-gradient(180deg,
        var(--gw-bg-block),
        rgba(28, 24, 18, 0.95));
}


/* ═══════════════════════════════════════════════════════════════════
   § VAULT (Escrow)
   Reinforced steel, dark, heavy, secure
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="vault"] {
    --gw-bg-page: #0D0D0B;
    --gw-bg-block: #181614;
    --gw-bg-card: #222018;
    --gw-border: #3A3530;
}

body[data-gf-building="vault"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(24, 22, 20, 0.95) 0%,
        rgba(13, 13, 11, 0.8) 100%);
    border: 1px solid rgba(139, 139, 139, 0.15);
    border-bottom: 2px solid rgba(139, 139, 139, 0.25);
    color: #8B8B8B;
    text-shadow: 0 0 4px rgba(139, 139, 139, 0.15);
}

body[data-gf-building="vault"] .gf-building-sign::after {
    content: '\1F512  T H E   V A U L T  \1F512';
}

body[data-gf-building="vault"] .bx-db-container {
    border: 1px solid rgba(139, 139, 139, 0.12);
    box-shadow:
        inset 0 0 20px rgba(0, 0, 0, 0.3),
        0 2px 6px rgba(0, 0, 0, 0.5);
    background: linear-gradient(135deg,
        var(--gw-bg-block),
        rgba(18, 16, 14, 0.95));
}


/* ═══════════════════════════════════════════════════════════════════
   § HOMESTEAD (Profile / Persons)
   Warm hearth, porch railing, domestic comfort
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="homestead"] {
    --gw-bg-page: #1A1610;
    --gw-bg-block: #282018;
    --gw-bg-card: #362C22;
    --gw-border: #504830;
}

body[data-gf-building="homestead"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(40, 32, 24, 0.95) 0%,
        rgba(26, 22, 16, 0.7) 100%);
    border-bottom: 1px solid rgba(184, 115, 51, 0.18);
    color: var(--gw-copper);
    text-shadow: 0 0 6px rgba(184, 115, 51, 0.15);
}

body[data-gf-building="homestead"] .gf-building-sign::after {
    content: '\2302  T H E   H O M E S T E A D  \2302';
}

body[data-gf-building="homestead"] .bx-db-container {
    box-shadow:
        inset 0 0 30px rgba(184, 115, 51, 0.03),
        0 1px 4px rgba(0, 0, 0, 0.3);
}

body[data-gf-building="homestead"] .bx-db-container:first-of-type {
    border-top: 2px solid rgba(184, 115, 51, 0.12);
}


/* ═══════════════════════════════════════════════════════════════════
   § TOWN SQUARE (Events)
   Open air, bunting banners, festive glow
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="town-square"] {
    --gw-bg-page: #181510;
    --gw-bg-block: #262016;
    --gw-bg-card: #342C20;
    --gw-border: #4A4030;
}

body[data-gf-building="town-square"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(38, 32, 22, 0.95) 0%,
        rgba(24, 21, 16, 0.7) 100%);
    border-bottom: 1px solid rgba(212, 168, 67, 0.18);
    color: var(--gw-gold-dim);
    text-shadow: 0 0 6px rgba(212, 168, 67, 0.15);
}

body[data-gf-building="town-square"] .gf-building-sign::after {
    content: '\2691  T O W N   S Q U A R E  \2691';
}

body[data-gf-building="town-square"] .gf-building-sign-rail {
    background: repeating-linear-gradient(
        90deg,
        transparent 0px,
        transparent 12px,
        rgba(212, 168, 67, 0.06) 12px,
        rgba(184, 115, 51, 0.06) 24px,
        transparent 24px,
        transparent 36px,
        rgba(139, 58, 58, 0.04) 36px,
        rgba(139, 58, 58, 0.04) 48px
    );
    height: 4px;
}

body[data-gf-building="town-square"] .bx-db-container {
    border: 1px solid rgba(212, 168, 67, 0.06);
    border-radius: 4px;
}


/* ═══════════════════════════════════════════════════════════════════
   § LAND OFFICE (Registration / Auth)
   Deed paper, survey maps, official stamps, parchment
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="land-office"] {
    --gw-bg-page: #161410;
    --gw-bg-block: #221E18;
    --gw-bg-card: #302A22;
    --gw-border: #4A4035;
}

body[data-gf-building="land-office"] .gf-building-sign {
    background: linear-gradient(180deg,
        rgba(34, 30, 24, 0.95) 0%,
        rgba(22, 20, 16, 0.7) 100%);
    border-bottom: 1px solid rgba(160, 144, 112, 0.2);
    color: #A09070;
    text-shadow: 0 0 4px rgba(160, 144, 112, 0.1);
}

body[data-gf-building="land-office"] .gf-building-sign::after {
    content: '\270E  L A N D   O F F I C E  \270E';
}

body[data-gf-building="land-office"] .bx-db-container {
    background: linear-gradient(180deg,
        rgba(34, 30, 24, 0.9),
        rgba(30, 26, 20, 0.95));
    border: 1px solid rgba(160, 144, 112, 0.08);
}


/* ═══════════════════════════════════════════════════════════════════
   § HEADING GLOW ACCENTS
   ═══════════════════════════════════════════════════════════════════ */

body[data-gf-building="saloon"] .bx-db-header .bx-db-title {
    text-shadow: 0 0 8px rgba(212, 168, 67, 0.15);
}

body[data-gf-building="schoolhouse"] .bx-db-header .bx-db-title {
    text-shadow: 0 0 6px rgba(0, 255, 65, 0.1);
}

body[data-gf-building="quick-draw"] .bx-db-header .bx-db-title {
    text-shadow: 0 0 6px rgba(0, 255, 65, 0.08);
}

body[data-gf-building="vault"] .bx-db-header .bx-db-title {
    letter-spacing: 0.05em;
}

body[data-gf-building="bank"] .bx-db-header .bx-db-title {
    text-shadow: 0 0 8px rgba(212, 168, 67, 0.1);
}


/* ═══════════════════════════════════════════════════════════════════
   § MOBILE ADJUSTMENTS
   ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 768px) {
    .gf-building-sign {
        font-size: 0.65rem;
        letter-spacing: 0.1em;
        padding: 6px 14px 4px;
        margin: 6px 10px 4px;
        width: calc(100% - 20px);
    }

    .gf-building-sign-rail {
        width: calc(100% - 20px);
        margin: 0 10px 6px;
    }

    body[data-gf-building="sheriffs-board"] .bx-base-unit {
        transform: none !important;
    }

    body[data-gf-building="picture-show"] .bx-db-container {
        border-left-width: 2px;
        border-right-width: 2px;
    }
}

@media (max-width: 480px) {
    .gf-building-sign {
        font-size: 0.55rem;
        padding: 5px 10px 3px;
        letter-spacing: 0.08em;
    }

    .gf-building-sign-rail {
        display: none;
    }
}

@media (max-width: 360px) {
    .gf-building-sign {
        display: none;
    }
}


/* ═══════════════════════════════════════════════════════════════════
   § REDUCED MOTION
   ═══════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    body[data-gf-building="sheriffs-board"] .bx-base-unit {
        transform: none !important;
    }

    body[data-gf-building="quick-draw"] .gf-building-sign {
        animation: none !important;
    }
}
