@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/Inter-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* =========================================================
   VIBE ENERGY 106 LOCAL FONTS — START
   ========================================================= */

@font-face {
    font-family: 'Rubik';
    src: url('/fonts/rubik/Rubik-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Rubik';
    src: url('/fonts/rubik/Rubik-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Rubik';
    src: url('/fonts/rubik/Rubik-Black.woff2') format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('/fonts/outfit/outfit-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('/fonts/outfit/outfit-700.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Outfit';
    src: url('/fonts/outfit/outfit-800.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* =========================================================
   VIBE ENERGY 106 LOCAL FONTS — END
   ========================================================= */

:root {
    /* VIBE ENERGY 106 FONT VARIABLES — START */
    --vibe-font-heading: "Rubik", sans-serif;
    --vibe-font-subheading: "Outfit", sans-serif;
    --vibe-font-body: "Inter", sans-serif;
    --vibe-font-button: "Rubik", sans-serif;
    /* VIBE ENERGY 106 FONT VARIABLES — END */

    /* VIBE SEMANTIC COLOUR SYSTEM — PASS 1 */

    /* Brand */
    --vibe-brand-primary: #ec0e86;
    --vibe-brand-primary-hover: #ff1493;
    --vibe-brand-secondary: #78369b;
    --vibe-brand-primary-strong: var(--vibe-brand-primary);
    --vibe-brand-primary-bright: var(--vibe-brand-primary-hover);
    --vibe-brand-primary-soft: var(--vibe-brand-primary);
    --vibe-brand-primary-active: rgba(236, 14, 134, 1);
    --vibe-brand-primary-dark: var(--vibe-brand-primary);
    --vibe-brand-gradient-start: var(--vibe-brand-secondary);
    --vibe-brand-gradient-end: var(--vibe-brand-primary-hover);

    /* Main backgrounds / surfaces */
    --vibe-bg-page: #100017;
    --vibe-bg-header: #170621;
    --vibe-bg-shell: #1d062d;
    --vibe-bg-frame: var(--vibe-bg-shell);
    --vibe-bg-frame-alt: var(--vibe-bg-card-alt);
    --vibe-bg-card: #250638;
    --vibe-bg-card-alt: #2a073e;
    --vibe-bg-card-deep: #170621;
    --vibe-bg-card-raised: #35104c;
    --vibe-bg-card-hover: #3f135b;
    --vibe-bg-panel: #250638;
    --vibe-bg-panel-alt: #35104c;
    --vibe-bg-panel-raised: var(--vibe-bg-panel-alt);
    --vibe-bg-panel-media: var(--vibe-bg-card-alt);
    --vibe-bg-deepest: var(--vibe-bg-card-deep);
    --vibe-bg-footer: #12001c;
    --vibe-bg-white: var(--vibe-bg-card);
    --vibe-bg-light-page: var(--vibe-bg-page);
    --vibe-bg-light-soft: var(--vibe-bg-card-alt);

    /* Text */
    --vibe-text-primary: #ffffff;
    --vibe-text-secondary: #f7f1ff;
    --vibe-text-muted: #bca8ca;
    --vibe-text-faint: #9f86b5;
    --vibe-text-dark: var(--vibe-text-primary);
    --vibe-text-dark-secondary: var(--vibe-text-secondary);
    --vibe-text-dark-muted: var(--vibe-text-muted);

    /* Borders */
    --vibe-border-subtle: rgba(255, 255, 255, 0.08);
    --vibe-border-soft: var(--vibe-border-subtle);
    --vibe-border-medium: rgba(255, 255, 255, 0.10);
    --vibe-border-medium-strong: var(--vibe-border-strong);
    --vibe-border-strong: rgba(255, 255, 255, 0.16);
    --vibe-border-accent: rgba(236, 14, 134, 0.45);
    --vibe-border-white: var(--vibe-border-strong);
    --vibe-border-light: var(--vibe-border-medium);
    --vibe-border-light-alt: var(--vibe-border-medium);

    /* Buttons / actions */
    --vibe-button-bg: #ec0e86;
    --vibe-button-bg-hover: #ff1493;
    --vibe-button-text: #ffffff;

    /* Shared neutrals / legacy colours */
    --vibe-legacy-redline-accent: #ed0000;
    --vibe-legacy-redline-dark: #b40000;
    --vibe-legacy-redline-light: #ff2d2d;
    --vibe-white: #ffffff;
    --vibe-black: #000000;

    /* Exact reusable alpha / overlay values */
    --vibe-border-white-a035: var(--vibe-border-subtle);
    --vibe-border-white-a04: var(--vibe-border-subtle);
    --vibe-border-white-a05: var(--vibe-border-subtle);
    --vibe-border-white-a07: var(--vibe-border-subtle);
    --vibe-border-white-a11: var(--vibe-border-medium);
    --vibe-border-white-a13: var(--vibe-border-medium);
    --vibe-border-white-a14: var(--vibe-border-strong);
    --vibe-border-white-a15: var(--vibe-border-strong);
    --vibe-border-white-a17: var(--vibe-border-strong);
    --vibe-border-white-a18: var(--vibe-border-strong);
    --vibe-border-white-a20: var(--vibe-border-strong);
    --vibe-border-white-a22: var(--vibe-border-strong);
    --vibe-border-white-a34: rgba(255, 255, 255, .34);
    --vibe-border-white-a42: rgba(255,255,255,.42);
    --vibe-border-white-a45: rgba(255, 255, 255, .45);
    --vibe-border-white-a75: rgba(255, 255, 255, .75);
    --vibe-border-white-a80: rgba(255, 255, 255, .8);
    --vibe-border-white-a90: rgba(255,255,255,.9);
    --vibe-brand-primary-a0: rgba(236, 14, 134, 0);
    --vibe-brand-primary-a08: rgba(236, 14, 134, 0.08);
    --vibe-brand-primary-a10: rgba(236, 14, 134, 0.1);
    --vibe-brand-primary-a12: rgba(236, 14, 134, 0.12);
    --vibe-brand-primary-a13: rgba(236, 14, 134, 0.13);
    --vibe-brand-primary-a14: rgba(236, 14, 134, 0.14);
    --vibe-brand-primary-a15: rgba(236, 14, 134, 0.15);
    --vibe-brand-primary-a16: rgba(236, 14, 134, 0.16);
    --vibe-brand-primary-a20: rgba(236, 14, 134, 0.2);
    --vibe-brand-primary-a32: rgba(236, 14, 134, 0.32);
    --vibe-brand-primary-a38: rgba(236, 14, 134, 0.38);
    --vibe-brand-primary-hover-a025: rgba(255, 20, 147, 0.025);
    --vibe-brand-primary-hover-a12: rgba(255, 20, 147, 0.12);
    --vibe-brand-primary-hover-a34: rgba(255, 20, 147, 0.34);
    --vibe-brand-primary-hover-a36: rgba(255, 20, 147, 0.36);
    --vibe-brand-primary-hover-a42: rgba(255, 20, 147, 0.42);
    --vibe-brand-primary-hover-a72: rgba(255, 20, 147, 0.72);
    --vibe-overlay-black-a02: rgba(0, 0, 0, .02);
    --vibe-overlay-black-a08: rgba(0, 0, 0, .08);
    --vibe-overlay-black-a12: rgba(0, 0, 0, .12);
    --vibe-overlay-black-a16: rgba(0, 0, 0, .16);
    --vibe-overlay-black-a18: rgba(0, 0, 0, .18);
    --vibe-overlay-black-a20: rgba(0, 0, 0, .2);
    --vibe-overlay-black-a22: rgba(0, 0, 0, .22);
    --vibe-overlay-black-a28: rgba(0, 0, 0, 0.28);
    --vibe-overlay-black-a43: rgba(0, 0, 0, .43);
    --vibe-overlay-black-a55: rgba(0, 0, 0, .55);
    --vibe-overlay-black-a58: rgba(0, 0, 0, 0.58);
    --vibe-overlay-black-a72: rgba(0, 0, 0, 0.72);
    --vibe-overlay-black-a73: rgba(0, 0, 0, .73);
    --vibe-overlay-black-a78: rgba(0, 0, 0, .78);
    --vibe-overlay-black-a82: rgba(0, 0, 0, .82);
    --vibe-overlay-black-a92: rgba(0, 0, 0, .92);
    --vibe-overlay-white-a025: rgba(255, 255, 255, .025);
    --vibe-overlay-white-a03: rgba(255, 255, 255, .03);
    --vibe-overlay-white-a035: rgba(255, 255, 255, .035);
    --vibe-overlay-white-a04: rgba(255, 255, 255, .04);
    --vibe-overlay-white-a06: rgba(255, 255, 255, .06);
    --vibe-overlay-white-a09: rgba(255, 255, 255, .09);
    --vibe-overlay-white-a10: rgba(255, 255, 255, .1);
    --vibe-overlay-white-a11: rgba(255, 255, 255, .11);
    --vibe-overlay-white-a18: rgba(255, 255, 255, .18);
    --vibe-overlay-white-a56: rgba(255, 255, 255, .56);
    --vibe-overlay-white-a58: rgba(255, 255, 255, .58);
    --vibe-overlay-white-a62: rgba(255, 255, 255, .62);
    --vibe-shadow-black-a16: rgba(0, 0, 0, .16);
    --vibe-shadow-black-a40: rgba(0,0,0,.4);
    --vibe-shadow-black-a45: rgba(0, 0, 0, 0.45);
    --vibe-shadow-black-a50: rgba(0,0,0,.5);
    --vibe-text-white-a15: var(--vibe-text-faint);
    --vibe-text-white-a20: var(--vibe-text-faint);
    --vibe-text-white-a22: var(--vibe-text-faint);
    --vibe-text-white-a26: var(--vibe-text-faint);
    --vibe-text-white-a28: var(--vibe-text-faint);
    --vibe-text-white-a30: var(--vibe-text-faint);
    --vibe-text-white-a32: var(--vibe-text-faint);
    --vibe-text-white-a34: var(--vibe-text-faint);
    --vibe-text-white-a35: var(--vibe-text-faint);
    --vibe-text-white-a36: var(--vibe-text-faint);
    --vibe-text-white-a38: var(--vibe-text-faint);
    --vibe-text-white-a40: var(--vibe-text-faint);
    --vibe-text-white-a42: var(--vibe-text-faint);
    --vibe-text-white-a43: var(--vibe-text-faint);
    --vibe-text-white-a44: var(--vibe-text-faint);
    --vibe-text-white-a46: var(--vibe-text-faint);
    --vibe-text-white-a48: var(--vibe-text-faint);
    --vibe-text-white-a50: var(--vibe-text-muted);
    --vibe-text-white-a52: var(--vibe-text-muted);
    --vibe-text-white-a54: var(--vibe-text-muted);
    --vibe-text-white-a55: var(--vibe-text-muted);
    --vibe-text-white-a56: var(--vibe-text-muted);
    --vibe-text-white-a57: var(--vibe-text-muted);
    --vibe-text-white-a58: var(--vibe-text-muted);
    --vibe-text-white-a59: var(--vibe-text-muted);
    --vibe-text-white-a60: var(--vibe-text-muted);
    --vibe-text-white-a61: var(--vibe-text-muted);
    --vibe-text-white-a62: var(--vibe-text-muted);
    --vibe-text-white-a63: var(--vibe-text-muted);
    --vibe-text-white-a64: var(--vibe-text-muted);
    --vibe-text-white-a66: var(--vibe-text-muted);
    --vibe-text-white-a67: var(--vibe-text-muted);
    --vibe-text-white-a68: var(--vibe-text-muted);
    --vibe-text-white-a70: var(--vibe-text-muted);
    --vibe-text-white-a72: var(--vibe-text-muted);
    --vibe-text-white-a74: var(--vibe-text-muted);
    --vibe-text-white-a76: var(--vibe-text-muted);
    --vibe-text-white-a78: var(--vibe-text-muted);
    --vibe-text-white-a80: var(--vibe-text-muted);
    --vibe-text-white-a84: var(--vibe-text-secondary);
    --vibe-text-white-a85: var(--vibe-text-secondary);
    --vibe-text-white-a86: var(--vibe-text-secondary);
    --vibe-text-white-a88: var(--vibe-text-secondary);
    --vibe-text-white-a90: var(--vibe-text-secondary);
    --vibe-text-white-a92: var(--vibe-text-secondary);

    /*
     * Exact-value preservation tokens.
     * These retain rare current Vibe shades so this
     * conversion produces no visual colour change.
     */

    /* =============================================== */
    /* VIBE SEMANTIC CONSOLIDATION — PASS 2 */
    /*
     * Vibe-owned colours migrated from opaque
     * --vibe-preserve-* names into semantic families.
     *
     * Values remain exactly identical in this pass.
     */
    /* =============================================== */

    /* --vibe-brand- family */
    --vibe-brand-accent-e10b82: var(--vibe-brand-primary);
    --vibe-brand-accent-ff008c-a08: var(--vibe-brand-primary);
    --vibe-brand-accent-ff008c-a55: var(--vibe-brand-primary);
    --vibe-brand-accent-ff008c-a96: var(--vibe-brand-primary);
    --vibe-brand-accent-ff1493: var(--vibe-brand-primary);
    --vibe-brand-accent-ff1493-a24: var(--vibe-brand-primary);
    --vibe-brand-accent-ff1493-a7: var(--vibe-brand-primary);
    --vibe-brand-action-ff008c-a45: var(--vibe-brand-primary-hover);
    --vibe-brand-action-ff1493-a28: var(--vibe-brand-primary-hover);
    --vibe-brand-action-ff1493-a35: var(--vibe-brand-primary-hover);
    --vibe-brand-action-ff1493-a45: var(--vibe-brand-primary-hover);
    --vibe-brand-action-ff1493-a5: var(--vibe-brand-primary-hover);
    --vibe-brand-action-ff1493-a55: var(--vibe-brand-primary-hover);
    --vibe-brand-action-gradient-end: var(--vibe-brand-primary-hover);
    --vibe-brand-action-gradient-start: var(--vibe-brand-primary-hover);
    --vibe-brand-component-12041a: var(--vibe-brand-primary);
    --vibe-brand-component-14051f: var(--vibe-brand-primary);
    --vibe-brand-component-160621-a32: var(--vibe-brand-primary);
    --vibe-brand-component-200534-a88: var(--vibe-brand-primary);
    --vibe-brand-component-21072f: var(--vibe-brand-primary);
    --vibe-brand-component-211035: var(--vibe-brand-primary);
    --vibe-brand-component-220936: var(--vibe-brand-primary);
    --vibe-brand-component-250d37: var(--vibe-brand-primary);
    --vibe-brand-component-260b3e: var(--vibe-brand-primary);
    --vibe-brand-component-672b9d-a96: var(--vibe-brand-primary);
    --vibe-brand-component-722cb0-a94: var(--vibe-brand-primary);
    --vibe-brand-primary-active-deep: rgba(236, 14, 134, 1);
    --vibe-brand-primary-bright-hover: var(--vibe-brand-primary-hover);
    --vibe-brand-primary-deep: var(--vibe-brand-primary);
    --vibe-brand-primary-deeper: var(--vibe-brand-primary);
    --vibe-brand-primary-hover-deep: var(--vibe-brand-primary-hover);
    --vibe-brand-secondary-bright: var(--vibe-brand-secondary);
    --vibe-brand-secondary-hover: var(--vibe-brand-secondary);

    /* --vibe-bg-page- family */
    --vibe-bg-page-tone-1b052d: var(--vibe-bg-page);
    --vibe-bg-page-tone-25063e: var(--vibe-bg-page);
    --vibe-bg-page-tone-25073e: var(--vibe-bg-page);
    --vibe-bg-page-tone-26083f: var(--vibe-bg-page);
    --vibe-bg-page-tone-2b0748: var(--vibe-bg-page);
    --vibe-bg-page-tone-31084f: var(--vibe-bg-page);
    --vibe-bg-page-tone-3d0a62: var(--vibe-bg-page);
    --vibe-bg-page-tone-ee1089-a18: var(--vibe-bg-page);

    /* --vibe-bg-header- family */
    --vibe-bg-header-tone-13051f: var(--vibe-bg-header);
    --vibe-bg-header-tone-16041e: var(--vibe-bg-header);
    --vibe-bg-header-tone-170326: var(--vibe-bg-shell);
    --vibe-bg-header-tone-250341: var(--vibe-bg-shell);
    --vibe-bg-header-tone-270833: var(--vibe-bg-shell);
    --vibe-bg-header-tone-2b0750: var(--vibe-bg-shell);
    --vibe-bg-header-tone-f8edf4: var(--vibe-bg-card-hover);

    /* --vibe-bg-card- family */
    --vibe-bg-card-light-e8e8e8: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-e9e9e9: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-ececef: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-ededed: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-f0f0f0: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-f1f1f1: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-f2f2f2: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-f7f7f7: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-f8f8f8: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-faf9fb: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-fde6f2: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-fde7f3: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-fff0f0: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-fff0f8: var(--vibe-bg-card-raised);
    --vibe-bg-card-light-fffafa: var(--vibe-bg-card-raised);
    --vibe-bg-card-raised-light-f3f3f3: var(--vibe-bg-card-raised);
    --vibe-bg-card-tone-13031e: var(--vibe-bg-card-deep);
    --vibe-bg-card-tone-19042d: var(--vibe-bg-card);
    --vibe-bg-card-tone-210735: var(--vibe-bg-card);
    --vibe-bg-card-tone-210833: var(--vibe-bg-card);
    --vibe-bg-card-tone-280743: var(--vibe-bg-card-alt);
    --vibe-bg-card-tone-2b0c45: var(--vibe-bg-card-alt);
    --vibe-bg-card-tone-2c0d49: var(--vibe-bg-card-alt);
    --vibe-bg-card-tone-351053: var(--vibe-bg-card-raised);
    --vibe-bg-card-tone-361058: var(--vibe-bg-card-raised);

    /* --vibe-bg-sidebar family */
    --vibe-bg-sidebar: #250638;
    --vibe-bg-sidebar-tone-210932: var(--vibe-bg-sidebar);
    --vibe-bg-sidebar-tone-270c39: var(--vibe-bg-card-alt);
    --vibe-bg-sidebar-tone-290a40: var(--vibe-bg-card-alt);
    --vibe-bg-sidebar-tone-2a0d46: var(--vibe-bg-card-alt);
    --vibe-bg-sidebar-tone-3b1a5a: var(--vibe-bg-card-hover);
    --vibe-bg-sidebar-tone-472066: var(--vibe-bg-card-hover);
    --vibe-bg-sidebar-tone-b184e0-a46: var(--vibe-bg-card-hover);

    /* --vibe-sidebar- family */
    --vibe-sidebar-secondary: var(--vibe-bg-card-alt);
    --vibe-sidebar-secondary-hover: var(--vibe-bg-card-hover);

    /* --vibe-bg-footer- family */
    --vibe-bg-footer-tone-050506: var(--vibe-bg-card-deep);
    --vibe-bg-footer-tone-160521: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-190625: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-1c072c: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-23083a: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-25093d: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-260a3c: var(--vibe-bg-footer);
    --vibe-bg-footer-tone-321052: var(--vibe-bg-footer);

    /* --vibe-border- family */
    --vibe-border-light-cccccc: var(--vibe-border-medium);
    --vibe-border-light-d2d2d2: var(--vibe-border-medium);
    --vibe-border-light-d3d3d3: var(--vibe-border-medium);
    --vibe-border-light-d4d4d4: var(--vibe-border-medium);
    --vibe-border-light-d7d7d7: var(--vibe-border-medium);
    --vibe-border-light-d7d7dc: var(--vibe-border-medium);
    --vibe-border-light-d8d8d8: var(--vibe-border-medium);
    --vibe-border-light-d8d8de: var(--vibe-border-medium);
    --vibe-border-light-d9d9d9: var(--vibe-border-medium);
    --vibe-border-light-dcdcdc: var(--vibe-border-medium);
    --vibe-border-light-ddd8df: var(--vibe-border-medium);
    --vibe-border-light-dedede: var(--vibe-border-medium);
    --vibe-border-light-e0e0e0: var(--vibe-border-medium);
    --vibe-border-light-e1e1e1: var(--vibe-border-medium);
    --vibe-border-light-e2dde4: var(--vibe-border-medium);
    --vibe-border-light-e2e2e2: var(--vibe-border-medium);
    --vibe-border-light-e3e3e3: var(--vibe-border-medium);
    --vibe-border-light-e4e4e4: var(--vibe-border-medium);
    --vibe-border-light-e5dce9: var(--vibe-border-medium);
    --vibe-border-light-e8e8e8: var(--vibe-border-medium);
    --vibe-border-light-e9e5eb: var(--vibe-border-medium);
    --vibe-border-light-ece8ee: var(--vibe-border-medium);
    --vibe-border-light-ececec: var(--vibe-border-medium);
    --vibe-border-light-ededed: var(--vibe-border-medium);
    --vibe-border-light-eeeeee: var(--vibe-border-medium);
    --vibe-border-light-f4eff6: var(--vibe-border-medium);

    /* --vibe-text- family */
    --vibe-text-accent: var(--vibe-brand-primary);
    --vibe-text-accent-1f1922: var(--vibe-brand-primary);
    --vibe-text-accent-210735: var(--vibe-brand-primary);
    --vibe-text-accent-75458d: var(--vibe-brand-primary);
    --vibe-text-accent-754b8b: var(--vibe-brand-primary);
    --vibe-text-accent-bright: var(--vibe-brand-primary);
    --vibe-text-accent-d39fef: var(--vibe-brand-primary);
    --vibe-text-accent-soft: var(--vibe-brand-primary);
    --vibe-text-dark-111111: var(--vibe-text-primary);
    --vibe-text-dark-151515: var(--vibe-text-primary);
    --vibe-text-dark-18151a: var(--vibe-text-primary);
    --vibe-text-dark-18151b: var(--vibe-text-primary);
    --vibe-text-dark-181818: var(--vibe-text-primary);
    --vibe-text-dark-191919: var(--vibe-text-primary);
    --vibe-text-dark-1b1b1b: var(--vibe-text-primary);
    --vibe-text-dark-1d1d1d: var(--vibe-text-primary);
    --vibe-text-dark-202020: var(--vibe-text-secondary);
    --vibe-text-dark-20202d: var(--vibe-text-secondary);
    --vibe-text-dark-232126: var(--vibe-text-primary);
    --vibe-text-dark-242424: var(--vibe-text-primary);
    --vibe-text-dark-252525: var(--vibe-text-primary);
    --vibe-text-dark-282828: var(--vibe-text-primary);
    --vibe-text-dark-29292d: var(--vibe-text-secondary);
    --vibe-text-dark-2a2a2a: var(--vibe-text-primary);
    --vibe-text-dark-302a33: var(--vibe-text-muted);
    --vibe-text-dark-30343f: var(--vibe-icon);
    --vibe-text-dark-332c36: var(--vibe-link);
    --vibe-text-dark-333333: var(--vibe-text-secondary);
    --vibe-text-dark-3d3d3d: var(--vibe-text-muted);
    --vibe-text-light-bcaec7: var(--vibe-text-secondary);
    --vibe-text-light-bdaec7: var(--vibe-text-secondary);
    --vibe-text-light-c7b1d2: var(--vibe-text-secondary);
    --vibe-text-light-e4dde8: var(--vibe-text-secondary);
    --vibe-text-muted-404040: var(--vibe-text-muted);
    --vibe-text-muted-484848: var(--vibe-text-muted);
    --vibe-text-muted-4a4650: var(--vibe-text-muted);
    --vibe-text-muted-4d4d4d: var(--vibe-text-muted);
    --vibe-text-muted-4e4e4e: var(--vibe-text-muted);
    --vibe-text-muted-4f4f4f: var(--vibe-text-muted);
    --vibe-text-muted-555555: var(--vibe-text-muted);
    --vibe-text-muted-59595f: var(--vibe-text-muted);
    --vibe-text-muted-5f5864: var(--vibe-text-muted);
    --vibe-text-muted-5f5962: var(--vibe-text-muted);
    --vibe-text-muted-5f5f5f: var(--vibe-text-muted);
    --vibe-text-muted-606060: var(--vibe-text-muted);
    --vibe-text-muted-626262: var(--vibe-text-muted);
    --vibe-text-muted-666666: var(--vibe-text-muted);
    --vibe-text-muted-686868: var(--vibe-text-muted);
    --vibe-text-muted-696969: var(--vibe-text-muted);
    --vibe-text-muted-69696e: var(--vibe-text-muted);
    --vibe-text-muted-6c6670: var(--vibe-text-muted);
    --vibe-text-muted-6f6873: var(--vibe-text-muted);
    --vibe-text-muted-6f6f6f: var(--vibe-text-muted);
    --vibe-text-muted-707070: var(--vibe-text-muted);
    --vibe-text-muted-716b74: var(--vibe-text-muted);
    --vibe-text-muted-737373: var(--vibe-text-muted);
    --vibe-text-muted-77717c: var(--vibe-text-muted);
    --vibe-text-muted-777777: var(--vibe-text-muted);
    --vibe-text-muted-77777d: var(--vibe-text-muted);
    --vibe-text-muted-888888: var(--vibe-text-muted);
    --vibe-text-muted-8c8c8c: var(--vibe-text-muted);
    --vibe-text-muted-8d8d8d: var(--vibe-text-muted);
    --vibe-text-muted-918b94: var(--vibe-text-muted);
    --vibe-text-muted-999999: var(--vibe-text-muted);
    --vibe-text-muted-aa99b6: var(--vibe-text-muted);
    --vibe-text-muted-aaaaaa: var(--vibe-text-muted);
    --vibe-text-muted-bda9c7: var(--vibe-text-muted);

    /* --vibe-bg-component- family */
    --vibe-bg-component-08080a: var(--vibe-bg-card-deep);
    --vibe-bg-component-0f0f12-a32: var(--vibe-bg-card-deep);
    --vibe-bg-component-111111: var(--vibe-bg-card-deep);
    --vibe-bg-component-181818: var(--vibe-bg-card-deep);
    --vibe-bg-component-242424: var(--vibe-bg-card);
    --vibe-bg-component-e7e7e7: var(--vibe-bg-card-raised);
    --vibe-bg-component-ececf0: var(--vibe-bg-card-raised);
    --vibe-bg-component-eeeeee: var(--vibe-bg-card-raised);
    --vibe-bg-component-efedf0: var(--vibe-bg-card-raised);
    --vibe-bg-component-efefef: var(--vibe-bg-card-raised);
    --vibe-bg-component-f4eff6: var(--vibe-bg-card-raised);
    --vibe-bg-component-f4f4f4: var(--vibe-bg-card-raised);
    --vibe-bg-component-f5f3f6: var(--vibe-bg-card-raised);
    --vibe-bg-component-fff2f2: var(--vibe-bg-card-raised);

    --vibe-icon: #ec0e86;
    --vibe-link: #ec0e86;
    --vibe-preserve-background-490ead2ffe: rgba(7, 7, 12, .58);
    --vibe-preserve-background-6c39bb89fb: rgba(10, 2, 18, .60);
    --vibe-preserve-background-be7e0a605f: rgba(9, 4, 14, .38);
    --vibe-preserve-background-f6a7c360d9: rgba(7, 7, 12, .48);
    --vibe-preserve-border-9f0266f1c1: rgba(237, 0, 0, .28);
    --vibe-preserve-border-daf0ff241b: rgba(255, 20, 147, .08);
    --vibe-preserve-colour-00e794b83e: rgba(18, 3, 30, .16);
    --vibe-preserve-colour-0c67b6b47f: rgba(10, 2, 17, .02);
    --vibe-preserve-colour-17a53f1c71: rgba(237, 0, 132, .03);
    --vibe-preserve-colour-1e84ebed3d: rgba(10, 2, 17, .04);
    --vibe-preserve-colour-2168c18ae4: rgba(10, 2, 17, .92);
    --vibe-preserve-colour-29351cd481: rgba(20, 5, 30, .78);
    --vibe-preserve-colour-447cbec87c: rgba(18, 3, 30, 0);
    --vibe-preserve-colour-45c14ca5b2: rgba(18, 3, 30, .90);
    --vibe-preserve-colour-4c66692c4c: #170621;
    --vibe-preserve-colour-524c42ecfc: rgba(20, 5, 30, .18);
    --vibe-preserve-colour-5bf0095163: rgba(7, 3, 12, .58);
    --vibe-preserve-colour-7064ba5fd4: #350a43;
    --vibe-preserve-colour-8308361067: rgba(10, 2, 17, .34);
    --vibe-preserve-colour-882fd83cce: rgba(8, 3, 14, .36);
    --vibe-preserve-colour-8d3cae3af1: #190521;
    --vibe-preserve-colour-8e753eefb4: rgba(20, 4, 31, 0.90);
    --vibe-preserve-colour-8f72a4c5ed: rgba(8, 3, 14, .18);
    --vibe-preserve-colour-9ed486a130: rgba(10, 2, 17, .96);
    --vibe-preserve-colour-a06f528ac0: rgba(237, 0, 132, .12);
    --vibe-preserve-colour-ac27be9a6b: rgba(7, 3, 12, .14);
    --vibe-preserve-colour-b1d0e91e6f: rgba(10, 2, 17, .28);
    --vibe-preserve-colour-b22b2fc714: rgba(7, 3, 12, .18);
    --vibe-preserve-colour-b54b039a5b: rgba(7, 3, 12, .62);
    --vibe-preserve-colour-c5f39afb46: rgba(18, 3, 30, .58);
    --vibe-preserve-colour-d035fd6282: rgba(18, 3, 30, .34);
    --vibe-preserve-colour-e57b998800: rgba(20, 4, 31, 0.68);
    --vibe-preserve-colour-e64782accb: rgba(20, 5, 30, .48);
    --vibe-preserve-colour-e8b4b5b097: #39105b;
    --vibe-preserve-colour-e9341f1838: rgba(237, 0, 132, .07);
    --vibe-preserve-colour-e9e20a3d10: rgba(120, 0, 0, .22);
    --vibe-preserve-colour-ea010cc0f4: rgba(20, 4, 31, 0.32);
    --vibe-preserve-colour-f36e42464c: rgba(70, 0, 0, .72);
    --vibe-preserve-shadow-041d4b8e91: rgba(255, 47, 145, .12);
    --vibe-preserve-shadow-4078c375c2: rgba(255, 20, 147, .12);
    --vibe-preserve-shadow-558967dc32: rgba(255, 0, 140, .16);
    --vibe-preserve-shadow-66397c3914: rgba(237, 0, 0, .08);
    --vibe-preserve-shadow-fc6490e46f: rgba(255, 0, 140, .24);

    /* Compatibility with older Vibe CSS */
    --vibe-primary: var(--vibe-brand-primary);
    --vibe-secondary: var(--vibe-brand-secondary);
    --vibe-text: var(--vibe-text-primary);
    --vibe-muted: var(--vibe-text-muted);
    --vibe-border: var(--vibe-border-medium);
    --vibe-surface: var(--vibe-bg-card);
    --vibe-page: var(--vibe-bg-page);

    --vibe-shell: 1285px;

    /* =============================================== */
    /* ENERGY 106 FINAL VIBE PALETTE — 2026 */
    /* =============================================== */
    --vibe-link-hover: #ff1493;
    --vibe-glow-primary: rgba(236, 14, 134, 0.22);
    --vibe-glow-secondary: rgba(120, 54, 155, 0.22);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.vibe-site {
    margin: 0;
    background: var(--vibe-page);
    color: var(--vibe-text);
    font-family: Inter, Arial, Helvetica, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.vibe-site h1,
body.vibe-site h2,
body.vibe-site h3,
body.vibe-site h4,
body.vibe-site h5,
body.vibe-site h6 {
    font-family: var(--rl-heading-font, Inter, Arial, Helvetica, sans-serif);
}

body.vibe-site img {
    max-width: 100%;
}

.vibe-shell {
    width: min(calc(100% - 40px), var(--vibe-shell));
    margin: 0 auto;
}

.vibe-skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 10000;
    padding: 10px 14px;
    background: var(--vibe-bg-component-111111);
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transform: translateY(-180%);
}

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

/* =========================================================
   HEADER
   ========================================================= */

.vibe-header {
    position: relative;
    z-index: 100;
    width: 100%;
    background: var(--vibe-bg-header);
    color: var(--vibe-text-primary);
}

.vibe-header__top {
    position: relative;
    z-index: 20;
    width: 100%;
    background:
        linear-gradient(
            105deg,
            var(--vibe-brand-gradient-start) 0%,
            var(--vibe-primary) 50%,
            var(--vibe-brand-gradient-end) 100%
        );
}

.vibe-header__top-inner {
    width: min(calc(100% - 48px), 1285px);
    min-height: 78px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) auto;
    align-items: center;
    gap: 28px;
}

.vibe-logo {
    min-width: 0;
    display: flex;
    align-items: center;
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-logo__image {
    width: auto;
    max-width: 210px;
    max-height: 64px;
    display: block;
    object-fit: contain;
    object-position: left center;
}

.vibe-logo__fallback {
    display: block;
    max-width: 150px;
    color: var(--vibe-text-primary);
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.04em;
    line-height: 1;
}

.vibe-navigation {
    min-width: 0;
    align-self: stretch;
}

.vibe-navigation__list {
    height: 100%;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    list-style: none;
}

.vibe-navigation__item {
    position: relative;
    display: flex;
    align-items: stretch;
}

.vibe-navigation__link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 0 14px;
    color: var(--vibe-text-primary);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-navigation__link::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 15px;
    left: 14px;
    height: 2px;
    background: var(--vibe-bg-white);
    opacity: 0;
}

.vibe-navigation__link:hover::after,
.vibe-navigation__link:focus-visible::after {
    opacity: 1;
}

.vibe-navigation__chevron {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
}

.vibe-navigation__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 50;
    min-width: 220px;
    margin: 0;
    padding: 7px 0;
    list-style: none;
    visibility: hidden;
    opacity: 0;
    transform: translateY(5px);
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border);
    box-shadow: 0 14px 32px var(--vibe-shadow-black-a16);
    transition:
        opacity 140ms ease,
        transform 140ms ease,
        visibility 140ms ease;
}

.vibe-navigation__item:hover > .vibe-navigation__dropdown,
.vibe-navigation__item:focus-within > .vibe-navigation__dropdown {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.vibe-navigation__dropdown a {
    display: block;
    padding: 11px 16px;
    color: var(--vibe-text-dark-secondary);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
}

.vibe-navigation__dropdown a:hover,
.vibe-navigation__dropdown a:focus-visible {
    background: var(--vibe-bg-light-soft);
    color: var(--vibe-primary);
}

.vibe-header__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.vibe-menu-toggle {
    width: 44px;
    height: 44px;
    display: none;
    place-items: center;
    padding: 0;
    border: 1px solid var(--vibe-border-white-a45);
    border-radius: 4px;
    background: transparent;
    color: var(--vibe-text-primary);
    cursor: pointer;
}

.vibe-menu-toggle svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.vibe-listen-live {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--vibe-button-text);
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-listen-live--top {
    min-height: 40px;
    padding: 0 19px;
    border: 1px solid var(--vibe-border-white-a75);
    border-radius: 4px;
    font-size: 12px;
}

.vibe-listen-live--top:hover,
.vibe-listen-live--top:focus-visible {
    background: var(--vibe-overlay-white-a10);
}

.vibe-listen-live__icon {
    width: 17px;
    height: 17px;
    display: grid;
    place-items: center;
}

.vibe-listen-live__icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

.vibe-header__broadcast {
    position: relative;
    width: 100%;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 73% 50%,
            var(--vibe-brand-primary-a15) 0 2px,
            transparent 3px
        ) 0 0 / 18px 18px,
        linear-gradient(
            110deg,
            var(--vibe-bg-header-tone-13051f) 0%,
            var(--vibe-bg-header-tone-270833) 52%,
            var(--vibe-bg-header-tone-16041e) 100%
        );
}

.vibe-header__broadcast::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            var(--vibe-overlay-black-a08),
            transparent 28%,
            transparent 72%,
            var(--vibe-overlay-black-a16)
        );
}

.vibe-header__broadcast-inner {
    position: relative;
    z-index: 1;
    width: min(calc(100% - 48px), 1285px);
    height: 232px;
    margin: 0 auto;
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(280px, 360px)
        minmax(0, 1fr);
    align-items: stretch;
}

.vibe-header__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-on-air {
    min-width: 0;
    align-self: center;
    padding: 20px 22px 20px 16px;
}

.vibe-on-air__show {
    max-width: 420px;
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(25px, 2.3vw, 36px);
    font-weight: 900;
    letter-spacing: -.035em;
    line-height: .98;
    text-transform: uppercase;
}

.vibe-on-air__presenter {
    margin: 9px 0 0;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}


/* VIBE OFF AIR PRESENTATION */

.vibe-header__eyebrow[hidden] {
    display: none !important;
}

.vibe-on-air__off-air-copy {
    margin: 9px 0 0;
    color: var(--vibe-text-secondary);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.3;
}

.vibe-on-air__sponsor {
    margin-top: 11px;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.vibe-on-air__sponsor-label {
    flex: 0 0 auto;
    color: var(--vibe-text-white-a52);
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-on-air__sponsor-brand {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--vibe-text-white-a90);
    text-decoration: none;
}

.vibe-on-air__sponsor-brand:hover,
.vibe-on-air__sponsor-brand:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-on-air__sponsor-logo {
    width: auto;
    max-width: 82px;
    height: 24px;
    display: block;
    object-fit: contain;
    object-position: left center;
}

.vibe-on-air__sponsor-name {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-on-air__time {
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--vibe-text-secondary);
    font-size: 12px;
    font-weight: 650;
}

.vibe-on-air__time svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-header__presenter {
    position: relative;
    align-self: stretch;
    min-width: 0;
    pointer-events: none;
}

.vibe-header__presenter::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 50%;
    bottom: 18px;
    width: 330px;
    height: 190px;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at center,
            var(--vibe-preserve-colour-a06f528ac0) 0%,
            var(--vibe-preserve-colour-e9341f1838) 34%,
            var(--vibe-preserve-colour-17a53f1c71) 56%,
            transparent 76%
        );
    filter: blur(18px);
    transform: translateX(-50%);
}

.vibe-header__presenter::after {
    content: "";
    position: absolute;
    z-index: 0;
    right: -70px;
    bottom: 0;
    left: -70px;
    height: 72px;
    pointer-events: none;
    background:
        radial-gradient(
            ellipse at center bottom,
            var(--vibe-preserve-colour-29351cd481) 0%,
            var(--vibe-preserve-colour-e64782accb) 38%,
            var(--vibe-preserve-colour-524c42ecfc) 62%,
            transparent 82%
        );
}

.vibe-header__presenter img {
    position: absolute;
    z-index: 1;
    right: 50%;
    bottom: 0;
    width: auto;
    max-width: 360px;
    height: 225px;
    display: block;
    object-fit: contain;
    object-position: center bottom;
    transform: translateX(50%);
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            var(--vibe-black) 0%,
            var(--vibe-black) 78%,
            var(--vibe-overlay-black-a92) 84%,
            var(--vibe-overlay-black-a55) 92%,
            transparent 100%
        );
    mask-image:
        linear-gradient(
            to bottom,
            var(--vibe-black) 0%,
            var(--vibe-black) 78%,
            var(--vibe-overlay-black-a92) 84%,
            var(--vibe-overlay-black-a55) 92%,
            transparent 100%
        );
}

.vibe-now-playing {
    min-width: 0;
    align-self: center;
    padding: 20px 0 20px 28px;
    transform: translateY(10px);
}

.vibe-now-playing__copy {
    min-height: 54px;
}

.vibe-now-playing__artist {
    max-width: 430px;
    display: block;
    overflow: hidden;
    color: var(--vibe-text-primary);
    font-size: clamp(19px, 1.8vw, 27px);
    font-weight: 900;
    letter-spacing: -.025em;
    line-height: 1.02;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-now-playing__title {
    max-width: 430px;
    display: block;
    overflow: hidden;
    margin-top: 5px;
    color: var(--vibe-text-secondary);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.2;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-now-playing__actions {
    margin-top: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.vibe-now-playing__artwork {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--vibe-overlay-white-a10);
    border: 1px solid var(--vibe-border-white-a18);
}

.vibe-now-playing__artwork img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vibe-now-playing__artwork svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: var(--vibe-text-white-a80);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-song-vote {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid var(--vibe-border-white-a80);
    border-radius: 50%;
    background: var(--vibe-bg-component-08080a);
    color: var(--vibe-text-primary);
    cursor: pointer;
    transition:
        transform 120ms ease,
        background-color 120ms ease,
        border-color 120ms ease;
}

.vibe-song-vote:hover,
.vibe-song-vote:focus-visible {
    transform: translateY(-1px);
    border-color: var(--vibe-primary);
}

.vibe-song-vote.is-selected {
    background: var(--vibe-primary);
    border-color: var(--vibe-primary);
}

.vibe-song-vote.is-error {
    border-color: #ff5a5a;
}

.vibe-song-vote:disabled {
    cursor: wait;
    opacity: .55;
}

.vibe-song-vote svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-listen-live--broadcast {
    min-height: 38px;
    margin-left: 5px;
    padding: 0 16px;
    border-radius: 3px;
    background: var(--vibe-primary);
    font-size: 12px;
}

.vibe-listen-live--broadcast:hover,
.vibe-listen-live--broadcast:focus-visible {
    filter: brightness(1.08);
}

.vibe-listen-live--broadcast svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-now-playing__recent {
    margin-top: 13px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--vibe-text-white-a88);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-now-playing__recent:hover,
.vibe-now-playing__recent:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-now-playing__recent svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 1120px) {
    .vibe-header__top-inner,
    .vibe-header__broadcast-inner {
        width: min(calc(100% - 36px), 1285px);
    }

    .vibe-header__top-inner {
        grid-template-columns: 180px minmax(0, 1fr) auto;
        gap: 14px;
    }

    .vibe-logo__image {
        max-width: 170px;
    }

    .vibe-navigation__link {
        padding: 0 9px;
        font-size: 12px;
    }

    .vibe-navigation__link::after {
        right: 9px;
        left: 9px;
    }

    .vibe-header__broadcast-inner {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(230px, 300px)
            minmax(0, 1fr);
    }

    .vibe-header__presenter img {
        max-width: 300px;
    }
}

@media (max-width: 1050px) {
    .vibe-header__top-inner {
        min-height: 70px;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .vibe-menu-toggle {
        display: grid;
    }

    .vibe-header__actions {
        grid-column: 2;
    }

    .vibe-navigation {
        position: absolute;
        top: 70px;
        right: 0;
        left: 0;
        z-index: 60;
        display: none;
        background: var(--vibe-bg-white);
        box-shadow: 0 16px 28px var(--vibe-shadow-black-a16);
    }

    .vibe-navigation.is-open {
        display: block;
    }

    .vibe-navigation__list {
        height: auto;
        display: block;
        padding: 8px 18px 14px;
    }

    .vibe-navigation__item {
        display: block;
        border-bottom: 1px solid var(--vibe-border-light-alt);
    }

    .vibe-navigation__link {
        min-height: 46px;
        justify-content: space-between;
        padding: 0;
        color: var(--vibe-text-dark-232126);
        font-size: 12px;
    }

    .vibe-navigation__link::after {
        display: none;
    }

    .vibe-navigation__dropdown {
        position: static;
        min-width: 0;
        display: block;
        padding: 0 0 8px 14px;
        visibility: visible;
        opacity: 1;
        transform: none;
        border: 0;
        box-shadow: none;
    }

    .vibe-navigation__dropdown a {
        padding: 8px 0;
    }

    .vibe-header__broadcast-inner {
        height: 214px;
        grid-template-columns:
            minmax(0, 1fr)
            210px
            minmax(0, 1fr);
    }

    .vibe-header__presenter img {
        max-width: 230px;
        height: 205px;
    }

    .vibe-on-air__show {
        font-size: 24px;
    }

    .vibe-now-playing__artist {
        font-size: 20px;
    }

    .vibe-listen-live--broadcast {
        display: none;
    }
}

@media (max-width: 700px) {
    .vibe-header__top-inner,
    .vibe-header__broadcast-inner {
        width: min(calc(100% - 28px), 1285px);
    }

    .vibe-listen-live--top {
        width: 42px;
        min-height: 42px;
        padding: 0;
    }

    .vibe-listen-live--top > span:last-child {
        display: none;
    }

    .vibe-header__broadcast-inner {
        height: auto;
        min-height: 0;
        grid-template-columns: 1fr;
        padding: 21px 0;
    }

    .vibe-on-air {
        position: relative;
        min-height: 165px;
        padding: 0 112px 19px 0;
        border-bottom: 1px solid var(--vibe-border-medium-strong);
    }

    .vibe-on-air__show {
        max-width: none;
        font-size: 22px;
        line-height: 1.02;
    }

    .vibe-on-air__sponsor-label {
        display: none;
    }

    .vibe-on-air__sponsor {
        margin-top: 10px;
        gap: 7px;
    }

    .vibe-on-air__sponsor-logo {
        max-width: 64px;
        height: 22px;
    }

    .vibe-on-air__sponsor-name {
        font-size: 11px;
    }

    .vibe-header__presenter {
        position: absolute;
        top: -40px;
        right: 0;
        z-index: 2;
        width: 140px;
        height: 205px;
        display: block;
        overflow: hidden;
    }

    .vibe-header__presenter img {
        top: 15px;
        bottom: auto;
        max-width: 150px;
        height: 225px;
    }

    .vibe-header__presenter::before {
        bottom: 8px;
        width: 145px;
        height: 135px;
        filter: blur(14px);
    }

    .vibe-header__presenter::after {
        right: -18px;
        left: -18px;
        height: 48px;
    }

    .vibe-now-playing {
        padding: 19px 0 0;
        transform: none;
    }

    .vibe-now-playing__artist,
    .vibe-now-playing__title {
        max-width: none;
    }

    .vibe-now-playing__actions {
        flex-wrap: wrap;
    }

    .vibe-listen-live--broadcast {
        display: inline-flex;
    }
}


/* =========================================================
   VIBE HOMEPAGE
   ========================================================= */

.vibe-homepage {
    width: 100%;
    background: var(--vibe-bg-frame);
    color: var(--vibe-text-primary);
}

.vibe-homepage__frame {
    width: min(calc(100% - 48px), 1285px);
    min-height: 620px;
    margin: 0 auto;
    padding: 20px 16px 24px;
    box-sizing: border-box;
    background: var(--vibe-bg-frame-alt);
}

.vibe-homepage__frame::after,
.vibe-homepage__clear {
    content: "";
    display: block;
    clear: both;
}

/* Sidebar 1 occupies only the opening part of the homepage.
   Content below the bottom of the sidebar returns to full width. */

.vibe-homepage__sidebar {
    float: right;
    width: 31.5%;
    margin: 0 0 30px 22px;
}

.vibe-homepage__sidebar-content {
    width: 100%;
    min-width: 0;
}

/* =========================================================
   VIBE SLIDESHOW
   ========================================================= */

/* =========================================================
   VIBE SLIDESHOW
   ========================================================= */

.vibe-homepage__slideshow {
    position: relative;
    height: 489px;
    margin: 0 0 26px;
    overflow: hidden;
    border-radius: 2px;
    background: var(--vibe-bg-sidebar);
}

.vibe-slideshow__viewport,
.vibe-slide,
.vibe-slide__picture,
.vibe-slide__picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.vibe-slide {
    z-index: 0;
    visibility: hidden;
    opacity: 0;
    transition: opacity .38s ease;
}

.vibe-slide.is-active {
    z-index: 1;
    visibility: visible;
    opacity: 1;
}

.vibe-slide__picture {
    display: block;
    overflow: hidden;
}

.vibe-slide__picture img {
    display: block;
    object-fit: cover;
}

.vibe-slide__overlay {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(
            0deg,
            var(--vibe-preserve-colour-45c14ca5b2) 0%,
            var(--vibe-preserve-colour-c5f39afb46) 28%,
            var(--vibe-preserve-colour-00e794b83e) 58%,
            var(--vibe-preserve-colour-447cbec87c) 78%
        ),
        linear-gradient(
            90deg,
            var(--vibe-preserve-colour-d035fd6282) 0%,
            var(--vibe-preserve-colour-447cbec87c) 56%
        );
}

.vibe-slide__content {
    position: absolute;
    z-index: 3;
    left: 28px;
    right: 88px;
    bottom: 27px;
    width: auto;
    max-width: 610px;
}

.vibe-slide__content h1 {
    max-width: 590px;
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(31px, 3.05vw, 45px);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.035em;
    text-wrap: balance;
}

.vibe-slide__content p {
    max-width: 520px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a84);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}

.vibe-slide__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    margin-top: 17px;
    padding: 0 17px;
    border: 0;
    border-radius: 2px;
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .065em;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background .18s ease,
        color .18s ease;
}

.vibe-slide__button:hover,
.vibe-slide__button:focus-visible {
    background: var(--vibe-bg-white);
    color: var(--vibe-bg-frame);
}

.vibe-slideshow__arrow {
    position: absolute;
    z-index: 5;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 2px;
    background: var(--vibe-brand-component-200534-a88);
    color: var(--vibe-text-primary);
    opacity: 0;
    pointer-events: none;
    cursor: pointer;
    font: inherit;
    font-size: 27px;
    font-weight: 400;
    line-height: 1;
    transform: translateY(-50%) scale(.94);
    transition:
        opacity .18s ease,
        transform .18s ease,
        background .18s ease,
        border-color .18s ease;
}

.vibe-homepage__slideshow:hover .vibe-slideshow__arrow,
.vibe-slideshow__arrow:focus-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(-50%) scale(1);
}

.vibe-slideshow__arrow:hover,
.vibe-slideshow__arrow:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-slideshow__arrow--prev {
    left: 14px;
}

.vibe-slideshow__arrow--next {
    right: 14px;
}

.vibe-slideshow__dots {
    position: absolute;
    z-index: 6;
    right: 16px;
    bottom: 14px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.vibe-slideshow__dots button {
    width: 18px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--vibe-brand-secondary-bright);
    cursor: pointer;
    transition:
        width .25s ease,
        background .25s ease;
}

.vibe-slideshow__dots button.is-active {
    width: 34px;
    background: var(--vibe-primary);
}

/* =========================================================
   VIBE HOMEPAGE SECTIONS
   ========================================================= */

.vibe-homepage__sections {
    display: contents;
}

.vibe-section {
    min-width: 0;
    margin: 0 0 34px;
}

.vibe-section__header {
    display: flex;
    align-items: center;
    min-height: 38px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--vibe-border-white-a14);
}

.vibe-section__header h2 {
    position: relative;
    margin: 0;
    padding: 0 0 11px;
    color: var(--vibe-text-primary);
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.025em;
}

.vibe-section__header h2::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    background: var(--vibe-brand-primary-strong);
}

.vibe-section__items {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.vibe-section-card {
    min-width: 0;
}

.vibe-section-card__image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 3px;
    background: var(--vibe-bg-frame);
}

.vibe-section-card__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .22s ease;
}

a.vibe-section-card__image:hover img {
    transform: scale(1.025);
}

.vibe-section-card__copy {
    padding: 12px 1px 0;
}

.vibe-section-card__meta {
    display: block;
    margin-bottom: 6px;
    color: var(--vibe-brand-primary-soft);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.vibe-section-card__copy h3 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 17px;
    font-weight: 850;
    line-height: 1.12;
    letter-spacing: -.025em;
}

.vibe-section-card__copy h3 a {
    color: inherit;
    text-decoration: none;
}

.vibe-section-card__copy h3 a:hover,
.vibe-section-card__copy h3 a:focus-visible {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.vibe-section-card__copy p {
    display: -webkit-box;
    margin: 7px 0 0;
    overflow: hidden;
    color: var(--vibe-text-muted);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vibe-section-card__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    color: var(--vibe-text-primary);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-section-card__link span {
    color: var(--vibe-brand-primary-strong);
    font-size: 15px;
}

/* Recently Played + Now Playing */

.vibe-section--recently-played .vibe-section__items,
.vibe-section--now-playing .vibe-section__items {
    grid-template-columns: 1fr;
    gap: 0;
}

.vibe-section--recently-played .vibe-section-card,
.vibe-section--now-playing .vibe-section-card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-section--recently-played .vibe-section-card:first-child,
.vibe-section--now-playing .vibe-section-card:first-child {
    padding-top: 0;
}

.vibe-section--recently-played .vibe-section-card__image,
.vibe-section--now-playing .vibe-section-card__image {
    aspect-ratio: 1;
}

.vibe-section--recently-played .vibe-section-card__copy,
.vibe-section--now-playing .vibe-section-card__copy {
    padding: 0;
}

.vibe-section--recently-played .vibe-section-card__copy h3,
.vibe-section--now-playing .vibe-section-card__copy h3 {
    font-size: 14px;
}

.vibe-section--recently-played .vibe-section-card__copy p,
.vibe-section--now-playing .vibe-section-card__copy p {
    display: block;
    margin-top: 3px;
    font-size: 13px;
}

/* Control Chart */

.vibe-section__chart {
    width: 100%;
}

.vibe-chart-entry {
    display: grid;
    grid-template-columns: 42px 58px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 7px 0;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-chart-entry:first-child {
    padding-top: 0;
}

.vibe-chart-entry__rank {
    color: var(--vibe-brand-primary-strong);
    font-size: 25px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
}

.vibe-chart-entry__artwork {
    width: 58px;
    height: 58px;
    overflow: hidden;
    border-radius: 2px;
    background: var(--vibe-bg-frame);
}

.vibe-chart-entry__artwork img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vibe-chart-entry__copy {
    min-width: 0;
}

.vibe-chart-entry__copy strong,
.vibe-chart-entry__copy span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-chart-entry__copy strong {
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 850;
}

.vibe-chart-entry__copy span {
    margin-top: 3px;
    color: var(--vibe-text-white-a58);
    font-size: 12px;
}

/* Locked Now Playing + Recently Played */

.vibe-sidebar-tracks {
    width: 100%;
    margin: 0 0 28px;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
}

.vibe-sidebar-now {
    position: relative;
    padding: 21px 18px 22px;
    background:
        radial-gradient(
            circle,
            var(--vibe-brand-primary-a14) 1.2px,
            transparent 1.3px
        );
    background-size: 18px 18px;
}

.vibe-sidebar-now__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-sidebar-now__live-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--vibe-primary);
    box-shadow: 0 0 0 4px var(--vibe-brand-primary-a13);
}

.vibe-sidebar-now__body {
    display: grid;
    grid-template-columns: 102px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
}

.vibe-sidebar-now__artwork {
    width: 102px;
    height: 102px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-sidebar-now__artwork img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vibe-sidebar-now__artwork svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: var(--vibe-text-white-a46);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-now__copy {
    min-width: 0;
}

.vibe-sidebar-now__copy strong,
.vibe-sidebar-now__copy span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vibe-sidebar-now__copy strong {
    color: var(--vibe-text-primary);
    font-size: 20px;
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: -.035em;
}

.vibe-sidebar-now__copy span {
    margin-top: 8px;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.vibe-sidebar-recent {
    padding: 0 18px 8px;
    background: var(--vibe-bg-frame);
}

.vibe-sidebar-recent__header {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid var(--vibe-border-medium-strong);
}

.vibe-sidebar-recent__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.vibe-sidebar-recent__header a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--vibe-text-white-a62);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-sidebar-recent__header a:hover,
.vibe-sidebar-recent__header a:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-sidebar-recent__header a span {
    color: var(--vibe-primary);
    font-size: 13px;
}

.vibe-sidebar-recent__list {
    width: 100%;
}

.vibe-sidebar-recent__track {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    min-height: 71px;
    padding: 8px 0;
    border-bottom: 1px solid var(--vibe-border-soft);
}

.vibe-sidebar-recent__track:last-child {
    border-bottom: 0;
}

.vibe-sidebar-recent__artwork {
    width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
}

.vibe-sidebar-recent__artwork img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vibe-sidebar-recent__artwork svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: var(--vibe-text-white-a38);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-recent__copy {
    min-width: 0;
}

.vibe-sidebar-recent__copy strong,
.vibe-sidebar-recent__copy span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-recent__copy strong {
    color: var(--vibe-text-primary);
    font-size: 12px;
    font-weight: 850;
    line-height: 1.2;
}

.vibe-sidebar-recent__copy span {
    margin-top: 4px;
    color: var(--vibe-text-white-a55);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
}

.vibe-sidebar-recent__time {
    align-self: center;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .03em;
}

.vibe-sidebar-recent__empty {
    margin: 0;
    padding: 18px 0;
    color: var(--vibe-text-white-a50);
    font-size: 12px;
    line-height: 1.4;
}

@media (max-width: 980px) {
    .vibe-sidebar-now {
        padding-right: 14px;
        padding-left: 14px;
    }

    .vibe-sidebar-now__body {
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 12px;
    }

    .vibe-sidebar-now__artwork {
        width: 78px;
        height: 78px;
    }

    .vibe-sidebar-now__copy strong {
        font-size: 16px;
    }

    .vibe-sidebar-recent {
        padding-right: 14px;
        padding-left: 14px;
    }

    .vibe-sidebar-recent__track {
        grid-template-columns: 48px minmax(0, 1fr) auto;
    }

    .vibe-sidebar-recent__artwork {
        width: 48px;
        height: 48px;
    }
}

@media (max-width: 767px) {
    .vibe-sidebar-tracks {
        margin-bottom: 24px;
    }

    .vibe-sidebar-now__body {
        grid-template-columns: 88px minmax(0, 1fr);
    }

    .vibe-sidebar-now__artwork {
        width: 88px;
        height: 88px;
    }

    .vibe-sidebar-recent__track {
        grid-template-columns: 52px minmax(0, 1fr) auto;
    }

    .vibe-sidebar-recent__artwork {
        width: 52px;
        height: 52px;
    }
}

/* Homepage Sidebar 1 */

.vibe-homepage__sidebar .vibe-section {
    margin-bottom: 25px;
}

.vibe-homepage__sidebar .vibe-section__header {
    min-height: 34px;
    margin-bottom: 11px;
}

.vibe-homepage__sidebar .vibe-section__header h2 {
    padding-bottom: 9px;
    font-size: 16px;
}

.vibe-homepage__sidebar .vibe-section__items {
    grid-template-columns: 1fr;
    gap: 13px;
}

.vibe-homepage__sidebar .vibe-section-card {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
}

.vibe-homepage__sidebar .vibe-section-card__image {
    aspect-ratio: 1;
}

.vibe-homepage__sidebar .vibe-section-card__copy {
    padding: 1px 0 0;
}

.vibe-homepage__sidebar .vibe-section-card__copy h3 {
    font-size: 13px;
    line-height: 1.18;
}

.vibe-homepage__sidebar .vibe-section-card__copy p {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.35;
    -webkit-line-clamp: 2;
}

.vibe-homepage__sidebar .vibe-section-card__link {
    margin-top: 7px;
    font-size: 11px;
}

.vibe-homepage__sidebar
.vibe-section--recently-played
.vibe-section-card,
.vibe-homepage__sidebar
.vibe-section--now-playing
.vibe-section-card {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 11px;
}

.vibe-homepage__sidebar
.vibe-section--recently-played
.vibe-section-card__image,
.vibe-homepage__sidebar
.vibe-section--now-playing
.vibe-section-card__image {
    width: 64px;
}

/* =========================================================
   VIBE HOMEPAGE RESPONSIVE
   ========================================================= */

@media (max-width: 1120px) {
    .vibe-homepage__frame {
        width: min(calc(100% - 36px), 1285px);
    }
}

@media (max-width: 1050px) {

    .vibe-homepage__sidebar {
        width: 34%;
        margin-left: 18px;
    }

    .vibe-homepage__slideshow {
        height: 410px;
    }

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

    .vibe-homepage__sidebar .vibe-section-card {
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 10px;
    }
}

@media (max-width: 768px) {
    .vibe-homepage__frame {
        width: min(calc(100% - 28px), 1285px);
        padding: 14px 10px 34px;
    }

    .vibe-homepage__sidebar {
        float: none;
        width: 100%;
        margin: 0;
    }

    .vibe-homepage__slideshow {
        width: 100%;
        height: clamp(230px, 42vw, 320px);
        margin-bottom: 24px;
    }

    .vibe-slide__content {
        left: 19px;
        bottom: 20px;
        width: calc(100% - 38px);
    }

    .vibe-slide__content h1 {
        font-size: 28px;
    }

    .vibe-slide__content p {
        max-width: 88%;
        margin-top: 8px;
        font-size: 12px;
    }

    .vibe-slide__button {
        min-height: 38px;
        margin-top: 14px;
        padding: 0 15px;
        font-size: 12px;
    }

    .vibe-slideshow__arrow {
        width: 31px;
        height: 42px;
        font-size: 28px;
    }

    .vibe-section {
        margin-bottom: 28px;
    }

    .vibe-section__header {
        margin-bottom: 12px;
    }

    .vibe-section__header h2 {
        font-size: 18px;
    }

    .vibe-section__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 10px;
    }

    .vibe-section-card__copy {
        padding-top: 9px;
    }

    .vibe-section-card__copy h3 {
        font-size: 14px;
    }

    .vibe-section-card__copy p {
        font-size: 12px;
    }

    .vibe-homepage__sidebar .vibe-section {
        margin-bottom: 26px;
    }

    .vibe-homepage__sidebar .vibe-section__items {
        grid-template-columns: 1fr;
    }

    .vibe-homepage__sidebar .vibe-section-card {
        grid-template-columns: 86px minmax(0, 1fr);
    }
}

@media (max-width: 440px) {
    .vibe-section__items {
        grid-template-columns: 1fr;
    }

    .vibe-section:not(.vibe-section--recently-played):not(.vibe-section--now-playing)
    .vibe-section-card__image {
        aspect-ratio: 16 / 9;
    }

    .vibe-homepage__sidebar .vibe-section-card {
        grid-template-columns: 82px minmax(0, 1fr);
    }
}

/* =========================================================
   Homepage Events
   ========================================================= */

.vibe-home-builder__content {
    margin: 0 0 28px;
    color: var(--vibe-text-primary);
    line-height: 1.65;
}

.vibe-events {
    overflow: hidden;
    margin: 8px 0 36px;
}

.vibe-events__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
}

.vibe-events__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-events__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
}

.vibe-events__view-all {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding-bottom: 3px;
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.vibe-events__view-all:hover,
.vibe-events__view-all:focus-visible {
    color: var(--vibe-primary);
}

.vibe-events__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.vibe-event {
    min-width: 0;
}

.vibe-event__image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
    text-decoration: none;
}

.vibe-event__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.vibe-event:hover .vibe-event__image img {
    transform: scale(1.025);
}

.vibe-event__image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-muted);
    font-family: var(--rl-heading-font);
    font-size: 18px;
    font-weight: 800;
    text-align: center;
}

.vibe-event__date {
    position: absolute;
    left: 12px;
    bottom: 12px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    line-height: 1;
}

.vibe-event__date strong {
    font-size: 22px;
    font-weight: 900;
}

.vibe-event__date span {
    margin-top: 3px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.vibe-event__content {
    padding: 13px 1px 0;
}

.vibe-event__venue {
    display: block;
    margin-bottom: 5px;
    overflow: hidden;
    color: var(--vibe-text-accent-d39fef);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    line-height: 1.35;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-event__content h3 {
    margin: 0;
    font-family: var(--rl-heading-font);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.15;
}

.vibe-event__content h3 a {
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-event__content h3 a:hover,
.vibe-event__content h3 a:focus-visible {
    color: var(--vibe-primary);
}

.vibe-event__details {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 9px;
    margin-top: 8px;
    color: var(--vibe-text-light-bcaec7);
    font-size: 12px;
    line-height: 1.4;
}

.vibe-event__details span + span::before {
    content: "•";
    margin-right: 9px;
    color: var(--vibe-text-accent-754b8b);
}

.vibe-event__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.vibe-event__link:hover,
.vibe-event__link:focus-visible {
    color: var(--vibe-text-primary);
}

@media (max-width: 980px) {
    .vibe-events__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .vibe-events {
        margin-bottom: 32px;
    }

    .vibe-events__header h2 {
        font-size: 29px;
    }

    .vibe-events__grid {
        gap: 25px;
    }

    .vibe-event__image {
        aspect-ratio: 16 / 9;
    }

    .vibe-event__content h3 {
        font-size: 21px;
    }
}

/* Keep Page Manager homepage blocks aligned with the slideshow column. */
.vibe-home-builder {
    overflow: hidden;
}

/* Vibe homepage Events: three across on desktop. */
@media (min-width: 981px) {
    .vibe-events__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px;
    }
}

/* =========================================================
   Vibe Homepage — Upcoming Events commercial layout
   ========================================================= */

.vibe-events {
    margin: 10px 0 38px;
}

.vibe-events__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 18px;
}

.vibe-events__header h2 {
    margin: 0;
    color: var(--vibe-primary);
    font-family: var(--rl-heading-font);
    font-size: 29px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.vibe-events__view-all {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    color: var(--vibe-primary);
    font-family: var(--rl-heading-font);
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .025em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-events__view-all span {
    font-size: 22px;
    line-height: .8;
    transition: transform .2s ease;
}

.vibe-events__view-all:hover,
.vibe-events__view-all:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-events__view-all:hover span,
.vibe-events__view-all:focus-visible span {
    transform: translateX(3px);
}

.vibe-events__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.vibe-event {
    display: flex;
    min-width: 0;
    flex-direction: column;
    background: var(--vibe-bg-card-tone-210735);
}

.vibe-event__image {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--vibe-bg-card-tone-13031e);
    text-decoration: none;
}

.vibe-event__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform .35s ease,
        opacity .35s ease;
}

.vibe-event:hover .vibe-event__image img {
    transform: scale(1.025);
    opacity: .94;
}

.vibe-event__image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-white-a70);
    font-family: var(--rl-heading-font);
    font-size: 16px;
    font-weight: 800;
    text-align: center;
}

.vibe-event__content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 14px 14px 15px;
}

.vibe-event__content h3 {
    margin: 0;
    font-family: var(--rl-heading-font);
    font-size: 19px;
    font-weight: 900;
    line-height: 1.15;
}

.vibe-event__content h3 a {
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-event__content h3 a:hover,
.vibe-event__content h3 a:focus-visible {
    color: var(--vibe-primary);
}

.vibe-event__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 8px;
    margin-top: 9px;
    color: var(--vibe-text-light-bdaec7);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}

.vibe-event__meta span + span::before {
    content: "•";
    margin-right: 8px;
    color: var(--vibe-text-accent-75458d);
}

.vibe-event__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 48px;
    padding: 0 12px;
    box-sizing: border-box;
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    font-family: var(--rl-heading-font);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .025em;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background .2s ease,
        color .2s ease;
}

.vibe-event__cta span {
    font-size: 22px;
    line-height: .8;
    transition: transform .2s ease;
}

.vibe-event__cta:hover,
.vibe-event__cta:focus-visible {
    background: var(--vibe-bg-white);
    color: var(--vibe-text-accent-210735);
}

.vibe-event__cta:hover span,
.vibe-event__cta:focus-visible span {
    transform: translateX(3px);
}

@media (max-width: 980px) {
    .vibe-events__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .vibe-events__header {
        margin-bottom: 15px;
    }

    .vibe-events__header h2 {
        font-size: 24px;
    }

    .vibe-events__view-all {
        font-size: 12px;
    }

    .vibe-events__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .vibe-event__content h3 {
        font-size: 20px;
    }
}

/* Vibe homepage Events — reduced desktop scale. */
@media (min-width: 981px) {
    .vibe-events {
        margin-top: 4px;
        margin-bottom: 30px;
    }

    .vibe-events__header {
        margin-bottom: 14px;
    }

    .vibe-events__header h2 {
        font-size: 24px;
    }

    .vibe-events__view-all {
        font-size: 12px;
    }

    .vibe-events__view-all span {
        font-size: 18px;
    }

    .vibe-events__grid {
        gap: 12px;
    }

    .vibe-event__image {
        aspect-ratio: 2 / 1;
    }

    .vibe-event__content {
        padding: 10px 11px 11px;
    }

    .vibe-event__content h3 {
        font-size: 16px;
    }

    .vibe-event__meta {
        margin-top: 6px;
        gap: 4px 7px;
        font-size: 11px;
    }

    .vibe-event__meta span + span::before {
        margin-right: 7px;
    }

    .vibe-event__cta {
        min-height: 40px;
        padding: 0 10px;
        font-size: 12px;
    }

    .vibe-event__cta span {
        font-size: 18px;
    }
}

/* Vibe homepage Events — lightweight final treatment. */
@media (min-width: 981px) {
    .vibe-events {
        margin-top: 2px;
        margin-bottom: 26px;
    }

    .vibe-events__header {
        margin-bottom: 12px;
    }

    .vibe-events__header h2 {
        font-size: 19px;
        font-weight: 800;
        letter-spacing: .015em;
    }

    .vibe-events__view-all {
        font-size: 12px;
        letter-spacing: .04em;
    }

    .vibe-events__view-all span {
        font-size: 15px;
    }

    .vibe-events__grid {
        gap: 14px;
    }

    .vibe-event {
        background: transparent;
    }

    .vibe-event__image {
        aspect-ratio: 2.15 / 1;
    }

    .vibe-event__content {
        flex: 0 0 auto;
        padding: 8px 3px 0;
    }

    .vibe-event__content h3 {
        font-size: 14px;
        font-weight: 800;
        line-height: 1.15;
    }

    .vibe-event__meta {
        margin-top: 5px;
        gap: 3px 6px;
        color: var(--vibe-text-muted-aa99b6);
        font-size: 11px;
        font-weight: 700;
    }

    .vibe-event__meta span + span::before {
        margin-right: 6px;
    }

    .vibe-event__cta {
        align-self: flex-start;
        justify-content: flex-start;
        min-height: 0;
        margin: 8px 3px 0;
        padding: 0 0 3px;
        background: transparent;
        border-bottom: 2px solid var(--vibe-primary);
        color: var(--vibe-primary);
        font-size: 12px;
        font-weight: 900;
        letter-spacing: .035em;
    }

    .vibe-event__cta:hover,
    .vibe-event__cta:focus-visible {
        background: transparent;
        color: var(--vibe-button-text);
        border-bottom-color: var(--vibe-border-white);
    }
}

/* Match the locked sidebar tracks unit to the desktop slideshow height. */
@media (min-width: 981px) {
    .vibe-sidebar-tracks {
        height: 489px;
        display: flex;
        flex-direction: column;
    }

    .vibe-sidebar-now {
        flex: 0 0 auto;
    }

    .vibe-sidebar-recent {
        flex: 1 1 auto;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .vibe-sidebar-recent__list {
        flex: 1 1 auto;
        min-height: 0;
        display: grid;
        grid-template-rows: repeat(4, minmax(0, 1fr));
    }

    .vibe-sidebar-recent__track {
        min-height: 0;
        height: auto;
        padding-top: 6px;
        padding-bottom: 6px;
    }
}

/* Vibe homepage News / Blogs module. */
.vibe-news-blogs {
    width: 100%;
    margin: 8px 0 34px;
}

.vibe-news-blogs__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 13px;
}

.vibe-news-blogs__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 19px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: .015em;
}

.vibe-news-blogs__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.vibe-news-card {
    min-width: 0;
}

.vibe-news-card__image {
    display: block;
    width: 100%;
    aspect-ratio: 1.7 / 1;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
    text-decoration: none;
}

.vibe-news-card__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .25s ease;
}

.vibe-news-card__image:hover img,
.vibe-news-card__image:focus-visible img {
    transform: scale(1.025);
}

.vibe-news-card__content {
    padding: 9px 3px 0;
}

.vibe-news-card__category {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.vibe-news-card__content h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.18;
    letter-spacing: -.015em;
}

.vibe-news-card__content h3 a {
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-news-card__content h3 a:hover,
.vibe-news-card__content h3 a:focus-visible {
    color: var(--vibe-primary);
}

.vibe-news-card__content p {
    display: -webkit-box;
    margin: 7px 0 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--vibe-text-muted-aa99b6);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
}

.vibe-news-card__link {
    display: inline-block;
    margin-top: 8px;
    padding-bottom: 3px;
    border-bottom: 2px solid var(--vibe-primary);
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .035em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-news-card__link:hover,
.vibe-news-card__link:focus-visible {
    border-bottom-color: var(--vibe-border-white);
    color: var(--vibe-text-primary);
}

@media (max-width: 980px) {
    .vibe-news-blogs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .vibe-news-blogs {
        margin-bottom: 28px;
    }

    .vibe-news-blogs__grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .vibe-news-card__image {
        aspect-ratio: 1.9 / 1;
    }

    .vibe-news-card__content h3 {
        font-size: 17px;
    }

    .vibe-news-card__content p {
        font-size: 13px;
    }
}

/* Vibe News / Blogs — match desktop columns to story count. */
@media (min-width: 981px) {
    .vibe-news-blogs--3 .vibe-news-blogs__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .vibe-news-blogs--4 .vibe-news-blogs__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .vibe-news-blogs--5 .vibe-news-blogs__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

/* Vibe homepage Events — commercial card treatment. */
.vibe-events {
    margin: 4px 0 30px;
}

.vibe-events__header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding-left: 12px;
}

.vibe-events__header::before {
    content: "";
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 0;
    width: 3px;
    background: var(--vibe-primary);
}

.vibe-events__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .01em;
}

.vibe-events__view-all {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--vibe-text-white-a66);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-events__view-all:hover,
.vibe-events__view-all:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-events__view-all-icon {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    color: var(--vibe-primary);
}

.vibe-events__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.vibe-event {
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 2px;
    background: var(--vibe-bg-sidebar);
}

.vibe-event__image {
    width: 100%;
    aspect-ratio: 1.62 / 1;
    display: block;
    overflow: hidden;
    background: var(--vibe-bg-card-tone-210833);
}

.vibe-event__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .25s ease;
}

.vibe-event__image:hover img,
.vibe-event__image:focus-visible img {
    transform: scale(1.025);
}

.vibe-event__image-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    padding: 18px;
    box-sizing: border-box;
    color: var(--vibe-text-faint);
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.vibe-event__content {
    flex: 1 1 auto;
    padding: 12px 13px 13px;
}

.vibe-event__badge {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.vibe-event__content h3 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 850;
    line-height: 1.16;
    letter-spacing: -.012em;
}

.vibe-event__content h3 a {
    color: inherit;
    text-decoration: none;
}

.vibe-event__content h3 a:hover,
.vibe-event__content h3 a:focus-visible {
    color: var(--vibe-primary);
}

.vibe-event__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 10px;
    color: var(--vibe-text-muted-aa99b6);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.25;
}

.vibe-event__meta-item {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.vibe-event__meta-item::before,
.vibe-event__meta span + span::before {
    content: none !important;
}

.vibe-event__meta-icon {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    color: var(--vibe-primary);
}

.vibe-event__meta-item > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-event__cta {
    width: 100%;
    min-height: 39px;
    margin: 0;
    padding: 0 12px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-bottom: 0;
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .055em;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-event__cta:hover,
.vibe-event__cta:focus-visible {
    border-bottom: 0;
    background: var(--vibe-brand-primary-deep);
    color: var(--vibe-button-text);
}

@media (max-width: 980px) {
    .vibe-events__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .vibe-events {
        margin-bottom: 28px;
    }

    .vibe-events__grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .vibe-event__image {
        aspect-ratio: 1.9 / 1;
    }

    .vibe-event__content h3 {
        font-size: 16px;
    }
}

/* Vibe homepage News / Blogs — image overlay editorial design. */
.vibe-news-blogs {
    width: 100%;
    margin: 10px 0 36px;
}

.vibe-news-blogs__header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
    padding-left: 12px;
}

.vibe-news-blogs__header::before {
    content: "";
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 0;
    width: 3px;
    background: var(--vibe-primary);
}

.vibe-news-blogs__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .01em;
}

.vibe-news-blogs__view-all {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--vibe-text-white-a66);
    font-size: 12px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-news-blogs__view-all:hover,
.vibe-news-blogs__view-all:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-news-blogs__view-all-icon {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    color: var(--vibe-primary);
}

.vibe-news-blogs__grid {
    display: grid;
    gap: 12px;
}

.vibe-news-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
}

.vibe-news-card__link {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    display: block;
    overflow: hidden;
    border: 0;
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-news-card__image,
.vibe-news-card__image-placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vibe-news-card__image {
    transition: transform .3s ease;
}

.vibe-news-card__image-placeholder {
    display: grid;
    place-items: center;
    padding: 20px;
    box-sizing: border-box;
    background:
        linear-gradient(
            135deg,
            var(--vibe-preserve-colour-e8b4b5b097),
            var(--vibe-preserve-colour-4c66692c4c)
        );
    color: var(--vibe-text-faint);
    font-size: 12px;
    font-weight: 800;
    text-align: center;
}

.vibe-news-card__shade {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(
            to bottom,
            var(--vibe-preserve-colour-1e84ebed3d) 22%,
            var(--vibe-preserve-colour-8308361067) 48%,
            var(--vibe-preserve-colour-2168c18ae4) 100%
        );
    transition: background .25s ease;
}

.vibe-news-card__category {
    position: absolute;
    z-index: 3;
    top: 11px;
    left: 11px;
    margin: 0;
    padding: 5px 7px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-news-card__content {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    padding: 16px 14px 13px;
}

.vibe-news-card__title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--vibe-text-primary);
    font-size: 16px;
    font-weight: 850;
    line-height: 1.14;
    letter-spacing: -.018em;
}

.vibe-news-card__summary {
    display: -webkit-box;
    margin-top: 6px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    color: var(--vibe-text-white-a76);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
}

.vibe-news-card__meta {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 9px;
    color: var(--vibe-text-white-a62);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}

.vibe-news-card__meta-icon {
    width: 11px;
    height: 11px;
    flex: 0 0 auto;
    color: var(--vibe-primary);
}

.vibe-news-card__link:hover .vibe-news-card__image,
.vibe-news-card__link:focus-visible .vibe-news-card__image {
    transform: scale(1.035);
}

.vibe-news-card__link:hover .vibe-news-card__shade,
.vibe-news-card__link:focus-visible .vibe-news-card__shade {
    background:
        linear-gradient(
            to bottom,
            var(--vibe-preserve-colour-0c67b6b47f) 18%,
            var(--vibe-preserve-colour-b1d0e91e6f) 44%,
            var(--vibe-preserve-colour-9ed486a130) 100%
        );
}

@media (min-width: 981px) {
    .vibe-news-blogs--2 .vibe-news-blogs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-news-blogs--2 .vibe-news-card {
        height: 300px;
    }

    .vibe-news-blogs--2 .vibe-news-card__title {
        font-size: 20px;
    }

    .vibe-news-blogs--3 .vibe-news-blogs__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .vibe-news-blogs--3 .vibe-news-card {
        height: 260px;
    }

    .vibe-news-blogs--4 .vibe-news-blogs__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .vibe-news-blogs--4 .vibe-news-card {
        height: 225px;
    }

    .vibe-news-blogs--4 .vibe-news-card__title {
        font-size: 14px;
    }

    .vibe-news-blogs--4 .vibe-news-card__summary {
        -webkit-line-clamp: 1;
        font-size: 11px;
    }

    .vibe-news-blogs--5 .vibe-news-blogs__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .vibe-news-blogs--5 .vibe-news-card {
        height: 210px;
    }

    .vibe-news-blogs--5 .vibe-news-card__content {
        padding: 13px 10px 11px;
    }

    .vibe-news-blogs--5 .vibe-news-card__category {
        top: 9px;
        left: 9px;
        padding: 4px 6px;
        font-size: 10px;
    }

    .vibe-news-blogs--5 .vibe-news-card__title {
        font-size: 13px;
    }

    .vibe-news-blogs--5 .vibe-news-card__summary {
        display: none;
    }

    .vibe-news-blogs--5 .vibe-news-card__meta {
        margin-top: 7px;
        font-size: 10px;
    }
}

@media (max-width: 980px) {
    .vibe-news-blogs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-news-card {
        height: 250px;
    }
}

@media (max-width: 767px) {
    .vibe-news-blogs {
        margin-bottom: 30px;
    }

    .vibe-news-blogs__grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .vibe-news-card {
        height: 260px;
    }

    .vibe-news-card__title {
        font-size: 18px;
    }

    .vibe-news-card__summary {
        font-size: 12px;
    }
}

/* VIBE HOMEPAGE LISTEN AGAIN */

.vibe-listen-again {
    width: 100%;
    margin: 0 0 34px;
    padding: 0;
    box-sizing: border-box;
    background: transparent;
    color: var(--vibe-text-primary);
}

.vibe-listen-again__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    min-height: 42px;
    margin: 0 0 14px;
    padding: 0;
    border: 0;
    background: transparent;
}

.vibe-listen-again__heading {
    min-width: 0;
}

.vibe-listen-again__heading--inline {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: row;
    gap: 12px;
    padding-left: 12px;
}

.vibe-listen-again__heading--inline::before {
    content: "";
    position: absolute;
    top: 50%;
    bottom: auto;
    left: 0;
    width: 3px;
    height: 28px;
    background: var(--vibe-primary);
    transform: translateY(-50%);
}

.vibe-listen-again__eyebrow {
    display: inline-flex;
    min-height: 22px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 0 8px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-listen-again__live-dot {
    width: 5px;
    height: 5px;
    flex: 0 0 5px;
    border-radius: 50%;
    background: var(--vibe-bg-white);
}

.vibe-listen-again__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
}

.vibe-listen-again__view-all {
    display: inline-flex;
    min-height: 28px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--vibe-text-white-a68);
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .045em;
    text-decoration: none;
    text-transform: uppercase;
    transition: color .18s ease;
}

.vibe-listen-again__view-all:hover {
    background: transparent;
    color: var(--vibe-text-primary);
}

.vibe-listen-again__view-all svg {
    width: 11px;
    height: 11px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-listen-again__grid {
    display: grid;
    gap: 14px;
    padding: 0;
    background: transparent;
}

.vibe-listen-again--2 .vibe-listen-again__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vibe-listen-again--3 .vibe-listen-again__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vibe-listen-again--4 .vibe-listen-again__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vibe-listen-again--5 .vibe-listen-again__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.vibe-listen-again__card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--vibe-border-white-a07);
    background: var(--vibe-bg-sidebar);
}

.vibe-listen-again__artwork {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 1.45 / 1;
    overflow: hidden;
    background: var(--vibe-brand-component-12041a);
    text-decoration: none;
}

.vibe-listen-again__artwork img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .22s ease;
}

.vibe-listen-again__card:hover
.vibe-listen-again__artwork img {
    transform: scale(1.02);
}

.vibe-listen-again__latest {
    position: absolute;
    z-index: 2;
    top: 9px;
    left: 9px;
    display: inline-flex;
    min-height: 22px;
    align-items: center;
    padding: 0 7px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.vibe-listen-again__artwork-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background:
        linear-gradient(
            135deg,
            var(--vibe-preserve-colour-8d3cae3af1) 0%,
            var(--vibe-preserve-colour-7064ba5fd4) 100%
        );
    color: var(--vibe-primary);
}

.vibe-listen-again__artwork-placeholder svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-listen-again__content {
    display: flex;
    min-height: 108px;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 12px 12px 11px;
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-primary);
}

.vibe-listen-again__content h3 {
    display: -webkit-box;
    margin: 0 0 5px;
    overflow: hidden;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 15px;
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.015em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vibe-listen-again__show {
    display: -webkit-box;
    margin: 0 0 11px;
    overflow: hidden;
    color: var(--vibe-text-white-a63);
    font-size: 12px;
    font-weight: 650;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.vibe-listen-again__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    color: var(--vibe-text-white-a57);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;
}

.vibe-listen-again__meta span {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 4px;
}

.vibe-listen-again__meta svg {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-listen-again__listen {
    display: flex;
    min-height: 39px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 0 10px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
    transition: filter .18s ease;
}

.vibe-listen-again__listen:hover {
    filter: brightness(.93);
}

.vibe-listen-again__listen svg {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-listen-again--5
.vibe-listen-again__content {
    min-height: 102px;
    padding-right: 10px;
    padding-left: 10px;
}

.vibe-listen-again--5
.vibe-listen-again__content h3 {
    font-size: 13px;
}

.vibe-listen-again--5
.vibe-listen-again__show {
    font-size: 12px;
}

.vibe-listen-again--5
.vibe-listen-again__meta {
    gap: 5px;
    font-size: 10px;
}

.vibe-listen-again--5
.vibe-listen-again__listen {
    font-size: 11px;
}

@media (max-width: 980px) {
    .vibe-listen-again--3 .vibe-listen-again__grid,
    .vibe-listen-again--4 .vibe-listen-again__grid,
    .vibe-listen-again--5 .vibe-listen-again__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-listen-again--5
    .vibe-listen-again__content h3 {
        font-size: 15px;
    }

    .vibe-listen-again--5
    .vibe-listen-again__show {
        font-size: 12px;
    }

    .vibe-listen-again--5
    .vibe-listen-again__meta {
        gap: 8px;
        font-size: 10px;
    }
}

@media (max-width: 767px) {
    .vibe-listen-again {
        margin-bottom: 28px;
    }

    .vibe-listen-again__header {
        align-items: flex-start;
        gap: 12px;
    }

    .vibe-listen-again__heading--inline {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .vibe-listen-again__heading h2 {
        font-size: 20px;
    }

    .vibe-listen-again__grid,
    .vibe-listen-again--2 .vibe-listen-again__grid,
    .vibe-listen-again--3 .vibe-listen-again__grid,
    .vibe-listen-again--4 .vibe-listen-again__grid,
    .vibe-listen-again--5 .vibe-listen-again__grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .vibe-listen-again__artwork {
        aspect-ratio: 16 / 9;
    }

    .vibe-listen-again__content,
    .vibe-listen-again--5
    .vibe-listen-again__content {
        min-height: 0;
        padding: 13px;
    }

    .vibe-listen-again__content h3,
    .vibe-listen-again--5
    .vibe-listen-again__content h3 {
        font-size: 16px;
    }
}

@media (max-width: 480px) {
    .vibe-listen-again__header {
        flex-direction: column;
    }

    .vibe-listen-again__view-all {
        align-self: flex-start;
    }
}

/* VIBE HOMEPAGE MODULE GAP TIGHTENING */

.vibe-events {
    margin-bottom: 16px;
}

.vibe-news-blogs {
    margin-top: 0;
    margin-bottom: 16px;
}

.vibe-listen-again {
    margin-top: 0;
}


/* VIBE HOMEPAGE CONTROL CHART */

.vibe-homepage__full-width-break {
    clear: both;
    width: 100%;
    margin: 0 0 16px;
}

.vibe-control-chart {
    width: 100%;
    margin: 0 0 16px;
    overflow: hidden;
    background: var(--vibe-bg-sidebar);
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 2px;
    color: var(--vibe-text-primary);
    box-sizing: border-box;
}

.vibe-control-chart--full {
    display: grid;
    grid-template-columns:
        minmax(270px, 0.82fr)
        minmax(0, 2.18fr);
    min-height: 330px;
}

.vibe-control-chart__intro {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: var(--vibe-brand-component-211035);
}

.vibe-control-chart__intro-image {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(
            90deg,
            var(--vibe-preserve-colour-8e753eefb4) 0%,
            var(--vibe-preserve-colour-e57b998800) 54%,
            var(--vibe-preserve-colour-ea010cc0f4) 100%
        ),
        var(--vibe-control-chart-image);
    background-size: cover;
    background-position: center;
}

.vibe-control-chart__intro-content {
    position: relative;
    z-index: 1;
    display: flex;
    min-height: 100%;
    padding: 36px 32px 34px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    box-sizing: border-box;
}

.vibe-control-chart__eyebrow {
    display: block;
    margin: 0 0 17px;
    color: var(--vibe-primary);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.17em;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-control-chart__eyebrow svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-control-chart__intro h2 {
    max-width: 245px;
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 52px;
    font-weight: 950;
    letter-spacing: -0.035em;
    line-height: 0.88;
    text-transform: uppercase;
}

.vibe-control-chart__intro p {
    max-width: 300px;
    margin: 24px 0 29px;
    color: var(--vibe-text-white-a76);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.42;
}

.vibe-control-chart__view-all {
    display: inline-flex;
    width: 100%;
    max-width: 210px;
    min-height: 44px;
    padding: 0 13px 0 16px;
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--vibe-brand-primary-a08);
    border: 2px solid var(--vibe-primary);
    border-radius: 5px;
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.015em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background 160ms ease,
        border-color 160ms ease;
}

.vibe-control-chart__view-all:hover,
.vibe-control-chart__view-all:focus-visible {
    background: var(--vibe-primary);
    border-color: var(--vibe-primary);
    color: var(--vibe-text-primary);
    transform: none;
}

.vibe-control-chart__view-all svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-control-chart__view-all:hover svg,
.vibe-control-chart__view-all:focus-visible svg {
    stroke: var(--vibe-text-primary);
}

.vibe-control-chart__entries {
    min-width: 0;
}

.vibe-control-chart--full .vibe-control-chart__entries {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.vibe-control-chart--full .vibe-control-chart__entry {
    position: relative;
    display: flex;
    min-width: 0;
    padding: 20px 13px 17px;
    flex-direction: column;
    border-left: 1px solid var(--vibe-border-white-a07);
    box-sizing: border-box;
}

.vibe-control-chart--full
.vibe-control-chart__entry.is-number-one {
    background:
        linear-gradient(
            180deg,
            var(--vibe-brand-primary-a10),
            var(--vibe-brand-primary-a0) 65%
        );
}

.vibe-control-chart__rank {
    display: flex;
    height: 37px;
    align-items: center;
    color: var(--vibe-text-white-a34);
}

.vibe-control-chart__rank span {
    font-family: var(--rl-heading-font);
    font-size: 31px;
    font-weight: 950;
    letter-spacing: -0.06em;
    line-height: 1;
}

.vibe-control-chart__entry.is-number-one
.vibe-control-chart__rank {
    color: var(--vibe-brand-primary);
}

.vibe-control-chart__artwork {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    margin: 5px 0 14px;
    overflow: hidden;
    background: var(--vibe-brand-component-250d37);
}

.vibe-control-chart__artwork > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-control-chart__artwork-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--vibe-text-white-a30);
}

.vibe-control-chart__artwork-placeholder svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-control-chart__number-one {
    position: absolute;
    left: 7px;
    bottom: 7px;
    display: inline-flex;
    min-height: 25px;
    padding: 0 8px;
    align-items: center;
    gap: 5px;
    background: var(--vibe-brand-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.07em;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-control-chart__number-one svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
    stroke: none;
}

.vibe-control-chart__track {
    min-width: 0;
}

.vibe-control-chart__track strong,
.vibe-control-chart__track span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vibe-control-chart__track strong {
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}

.vibe-control-chart__track span {
    margin-top: 4px;
    color: var(--vibe-text-white-a55);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
}

.vibe-control-chart__score {
    display: flex;
    margin-top: auto;
    padding-top: 14px;
    align-items: center;
    gap: 5px;
    color: var(--vibe-brand-primary);
    font-size: 16px;
    font-weight: 800;
}

.vibe-control-chart__score svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* CONTENT-WIDTH CONTROL CHART */

.vibe-control-chart--content {
    display: grid;
    grid-template-columns:
        minmax(220px, 0.82fr)
        minmax(0, 2.18fr);
    min-height: 330px;
}

.vibe-control-chart--content
.vibe-control-chart__intro {
    min-width: 0;
}

.vibe-control-chart--content
.vibe-control-chart__intro-content {
    min-height: 100%;
    padding: 36px 32px 34px;
}

.vibe-control-chart--content
.vibe-control-chart__intro h2 {
    font-size: 52px;
}

.vibe-control-chart--content
.vibe-control-chart__intro p {
    margin: 24px 0 29px;
}

.vibe-control-chart--content
.vibe-control-chart__entries {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vibe-control-chart--content
.vibe-control-chart__entry {
    position: relative;
    display: flex;
    min-width: 0;
    padding: 20px 13px 17px;
    flex-direction: column;
    border-left: 1px solid var(--vibe-border-white-a07);
    box-sizing: border-box;
}

.vibe-control-chart--content
.vibe-control-chart__entry.is-number-one {
    background:
        linear-gradient(
            180deg,
            var(--vibe-brand-primary-a10),
            var(--vibe-brand-primary-a0) 65%
        );
}

.vibe-control-chart--content
.vibe-control-chart__rank {
    height: 37px;
    justify-content: flex-start;
}

.vibe-control-chart--content
.vibe-control-chart__rank span {
    font-size: 31px;
}

.vibe-control-chart--content
.vibe-control-chart__artwork {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    margin: 5px 0 14px;
}

.vibe-control-chart--content
.vibe-control-chart__number-one {
    left: 7px;
    bottom: 7px;
    min-height: 25px;
    padding: 0 8px;
    font-size: 10px;
}

.vibe-control-chart--content
.vibe-control-chart__track strong {
    font-size: 13px;
    line-height: 1.25;
}

.vibe-control-chart--content
.vibe-control-chart__track span {
    margin-top: 4px;
    font-size: 11px;
}

.vibe-control-chart--content
.vibe-control-chart__score {
    margin-top: auto;
    padding-top: 14px;
}


/* RESUMED HOMEPAGE SIDEBAR */

.vibe-homepage__sidebar--resumed {
    margin-top: 0;
}


/* CONTROL CHART RESPONSIVE */

@media (max-width: 1100px) {
    .vibe-control-chart--full {
        grid-template-columns:
            minmax(240px, 0.7fr)
            minmax(0, 1.8fr);
    }

    .vibe-control-chart--full
    .vibe-control-chart__entry {
        padding-left: 9px;
        padding-right: 9px;
    }

    .vibe-control-chart--full
    .vibe-control-chart__track strong {
        font-size: 12px;
    }
}

@media (max-width: 980px) {
    .vibe-homepage__full-width-break {
        clear: none;
    }

    .vibe-control-chart--full {
        display: block;
    }

    .vibe-control-chart--full
    .vibe-control-chart__intro {
        min-height: 230px;
    }

    .vibe-control-chart--full
    .vibe-control-chart__intro-content {
        min-height: 230px;
    }

    .vibe-control-chart--full
    .vibe-control-chart__entries {
        grid-template-columns:
            repeat(5, minmax(0, 1fr));
    }

    .vibe-control-chart--full
    .vibe-control-chart__entry {
        border-top: 1px solid var(--vibe-border-white-a07);
    }
}

@media (max-width: 768px) {
    .vibe-control-chart--full
    .vibe-control-chart__entries {
        display: block;
    }

    .vibe-control-chart--full
    .vibe-control-chart__entry {
        display: grid;
        min-height: 82px;
        padding: 10px 12px;
        grid-template-columns:
            34px
            62px
            minmax(0, 1fr)
            auto;
        align-items: center;
        gap: 11px;
    }

    .vibe-control-chart--full
    .vibe-control-chart__rank {
        height: auto;
        justify-content: center;
    }

    .vibe-control-chart--full
    .vibe-control-chart__rank span {
        font-size: 24px;
    }

    .vibe-control-chart--full
    .vibe-control-chart__artwork {
        width: 62px;
        height: 62px;
        aspect-ratio: auto;
        margin: 0;
    }

    .vibe-control-chart--full
    .vibe-control-chart__score {
        margin: 0;
        padding: 0;
    }

    .vibe-control-chart__intro-content {
        padding: 25px 20px;
    }

    .vibe-control-chart__intro h2 {
        font-size: 30px;
    }
}

@media (max-width: 480px) {
    .vibe-control-chart--content
    .vibe-control-chart__entry,
    .vibe-control-chart--full
    .vibe-control-chart__entry {
        grid-template-columns:
            27px
            54px
            minmax(0, 1fr);
        gap: 9px;
    }

    .vibe-control-chart--content
    .vibe-control-chart__artwork,
    .vibe-control-chart--full
    .vibe-control-chart__artwork {
        width: 54px;
        height: 54px;
    }

    .vibe-control-chart__score {
        display: none;
    }

    .vibe-control-chart__track strong {
        font-size: 12px;
    }
}


/* =========================================================
   VIBE WAYS TO LISTEN
   ========================================================= */

.vibe-ways-to-listen {
    clear: both;
    width: 100%;
    margin: 0;
    overflow: hidden;
    background: var(--vibe-brand-component-21072f);
    color: var(--vibe-text-primary);
}

.vibe-ways-to-listen__items {
    width: 100%;
    min-height: 132px;
    display: grid;
    grid-template-columns:
        repeat(var(--vibe-ways-count), minmax(0, 1fr));
    align-items: stretch;
}

.vibe-ways-to-listen__item {
    position: relative;
    min-width: 0;
    padding: 22px 32px;
    display: flex;
    align-items: center;
    gap: 21px;
}

.vibe-ways-to-listen__item + .vibe-ways-to-listen__item::before {
    content: "";
    position: absolute;
    top: 27px;
    bottom: 27px;
    left: 0;
    width: 1px;
    background: var(--vibe-overlay-white-a11);
}

.vibe-ways-to-listen__icon {
    width: 78px;
    height: 78px;
    flex: 0 0 78px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-ways-to-listen__icon svg {
    width: 41px;
    height: 41px;
    display: block;
}

.vibe-ways-to-listen__copy {
    min-width: 0;
}

.vibe-ways-to-listen__copy h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 17px;
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.vibe-ways-to-listen__copy p {
    margin: 8px 0 0;
    color: var(--vibe-text-muted-bda9c7);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

@media (max-width: 1050px) {
    .vibe-ways-to-listen__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-ways-to-listen__item {
        min-height: 130px;
    }

    .vibe-ways-to-listen__item::before,
    .vibe-ways-to-listen__item + .vibe-ways-to-listen__item::before {
        display: none;
    }

    .vibe-ways-to-listen__item:nth-child(even) {
        border-left: 1px solid var(--vibe-border-white-a11);
    }

    .vibe-ways-to-listen__item:nth-child(n + 3) {
        border-top: 1px solid var(--vibe-border-white-a11);
    }
}

@media (max-width: 620px) {
    .vibe-ways-to-listen {
        margin-top: 24px;
    }

    .vibe-ways-to-listen__items {
        display: block;
    }

    .vibe-ways-to-listen__item {
        min-height: 0;
        padding: 20px 22px;
        gap: 17px;
        border-left: 0 !important;
    }

    .vibe-ways-to-listen__item + .vibe-ways-to-listen__item {
        border-top: 1px solid var(--vibe-border-white-a11);
    }

    .vibe-ways-to-listen__icon {
        width: 60px;
        height: 60px;
        flex-basis: 60px;
    }

    .vibe-ways-to-listen__icon svg {
        width: 31px;
        height: 31px;
    }

    .vibe-ways-to-listen__copy h2 {
        font-size: 15px;
    }

    .vibe-ways-to-listen__copy p {
        margin-top: 5px;
        font-size: 12px;
    }
}

/* =========================================================
   VIBE WAYS TO LISTEN — POLISH
   ========================================================= */

.vibe-ways-to-listen__item {
    gap: 23px;
}

.vibe-ways-to-listen__icon {
    width: 82px;
    height: 82px;
    flex-basis: 82px;
}

.vibe-ways-to-listen__icon svg {
    width: 44px;
    height: 44px;
    overflow: visible;
}

.vibe-ways-to-listen__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
}

.vibe-ways-to-listen__copy h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 16px;
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.vibe-ways-to-listen__copy p {
    display: block;
    margin: 7px 0 0;
    color: var(--vibe-text-light-c7b1d2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.01em;
}

@media (max-width: 620px) {
    .vibe-ways-to-listen__icon {
        width: 62px;
        height: 62px;
        flex-basis: 62px;
    }

    .vibe-ways-to-listen__icon svg {
        width: 34px;
        height: 34px;
    }

    .vibe-ways-to-listen__copy h2 {
        font-size: 15px;
    }

    .vibe-ways-to-listen__copy p {
        margin-top: 5px;
        font-size: 12px;
    }
}

/* =========================================================
   Vibe Homepage — Feature Promos
   ========================================================= */

.vibe-feature-promos {
    width: 100%;
    margin: 8px 0 34px;
}

.vibe-feature-promos__grid {
    display: grid;
    width: 100%;
    gap: 28px;
}

.vibe-feature-promos__grid--count-1 {
    grid-template-columns: minmax(0, 1fr);
}

.vibe-feature-promos__grid--count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vibe-feature-promos__grid--count-3,
.vibe-feature-promos__grid--count-5,
.vibe-feature-promos__grid--count-6 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vibe-feature-promos__grid--count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vibe-homepage__full-width-break
.vibe-feature-promos__grid--count-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vibe-feature-promo {
    position: relative;
    width: 100%;
    height: 220px;
    min-height: 220px;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    border-radius: 5px;
    background: var(--vibe-brand-component-14051f);
    isolation: isolate;
}

.vibe-feature-promo__image {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.vibe-feature-promo__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        90deg,
        var(--vibe-overlay-black-a72) 0%,
        var(--vibe-overlay-black-a58) 34%,
        var(--vibe-overlay-black-a28) 68%,
        var(--vibe-overlay-black-a08) 100%
    );
    pointer-events: none;
}

.vibe-feature-promo__content {
    position: relative;
    z-index: 2;
    display: flex;
    width: 100%;
    height: 100%;
    flex-direction: column;
    align-items: flex-start;
    padding: 32px 36px;
    box-sizing: border-box;
}

.vibe-feature-promo__content h2 {
    margin: 0 0 12px 0;
    color: var(--vibe-text-primary);
    font-size: 27px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    text-shadow: 0 2px 4px var(--vibe-shadow-black-a45);
    white-space: nowrap;
}

.vibe-feature-promo__content p {
    margin: 0;
    max-width: 360px;
    color: var(--vibe-text-primary);
    font-size: 17px;
    line-height: 1.28;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
    text-shadow: 0 2px 4px var(--vibe-shadow-black-a45);
}

.vibe-feature-promo__button {
    display: inline-block;
    margin-top: auto;
    padding: 15px 30px;
    background: linear-gradient(
        135deg,
        var(--vibe-brand-action-gradient-start) 0%,
        var(--vibe-brand-action-gradient-end) 100%
    );
    color: var(--vibe-button-text);
    border: none;
    border-radius: 3px;
    box-shadow: none;
    font-size: 15px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    text-decoration: none;
}

.vibe-feature-promo__button:hover,
.vibe-feature-promo__button:focus-visible {
    background: var(--vibe-brand-secondary-hover);
    color: var(--vibe-button-text);
    text-decoration: none;
}

@media (max-width: 980px) {
    .vibe-feature-promos__grid--count-3,
    .vibe-feature-promos__grid--count-4,
    .vibe-feature-promos__grid--count-5,
    .vibe-feature-promos__grid--count-6,
    .vibe-homepage__full-width-break
    .vibe-feature-promos__grid--count-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-feature-promos__grid {
        gap: 18px;
    }
}

@media (max-width: 767px) {
    .vibe-feature-promos {
        margin-bottom: 28px;
    }

    .vibe-feature-promos__grid,
    .vibe-feature-promos__grid--count-2,
    .vibe-feature-promos__grid--count-3,
    .vibe-feature-promos__grid--count-4,
    .vibe-feature-promos__grid--count-5,
    .vibe-feature-promos__grid--count-6,
    .vibe-homepage__full-width-break
    .vibe-feature-promos__grid--count-4 {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .vibe-feature-promo {
        height: 220px;
        min-height: 220px;
    }

    .vibe-feature-promo__content {
        padding: 28px 26px;
    }

    .vibe-feature-promo__content h2 {
        font-size: 26px;
        white-space: normal;
    }

    .vibe-feature-promo__content p {
        max-width: 320px;
        font-size: 14px;
    }

    .vibe-feature-promo__button {
        margin-top: 22px;
        padding: 14px 24px;
        font-size: 13px;
    }
}


/* =========================================================
   Vibe Back to Top
   ========================================================= */

.vibe-back-to-top {
    display: flex;
    width: 100%;
    min-height: 50px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: var(--vibe-bg-sidebar-tone-3b1a5a);
    color: var(--vibe-text-primary);
    text-decoration: none;
    text-transform: uppercase;
    box-sizing: border-box;
}

.vibe-back-to-top span {
    font-family: var(--rl-heading-font);
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .075em;
}

.vibe-back-to-top:hover,
.vibe-back-to-top:focus-visible {
    background: var(--vibe-bg-sidebar-tone-3b1a5a);
    color: var(--vibe-text-light-e4dde8);
    text-decoration: none;
}

@media (max-width: 767px) {
    .vibe-back-to-top {
        min-height: 48px;
    }

    .vibe-back-to-top span {
        font-size: 16px;
    }
}

/* =========================================================
   Vibe Footer
   ========================================================= */

.vibe-footer {
    background: var(--vibe-bg-footer);
    color: var(--vibe-text-primary);
}

.vibe-footer__also {
    padding: 36px 0 48px;
    background:
        linear-gradient(
            110deg,
            var(--vibe-bg-footer-tone-25093d) 0%,
            var(--vibe-bg-footer-tone-321052) 52%,
            var(--vibe-bg-footer-tone-23083a) 100%
        );
}

.vibe-footer__also-title {
    margin: 0 0 20px;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 18px;
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
}

.vibe-footer__also-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.vibe-footer__also-button {
    display: inline-flex;
    width: auto;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    border: 1px solid var(--vibe-primary);
    border-radius: 999px;
    background: transparent;
    color: var(--vibe-button-text);
    text-decoration: none;
    box-sizing: border-box;
    transition:
        background-color .18s ease,
        border-color .18s ease;
}

a.vibe-footer__also-button:hover,
a.vibe-footer__also-button:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    text-decoration: none;
}

.vibe-footer__also-label {
    min-width: 0;
    font-family: Inter, Arial, Helvetica, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    text-transform: uppercase;
}

@media (min-width: 701px) {
    .vibe-footer .vibe-shell {
        width: min(calc(100% - 48px), 1285px);
    }
}

.vibe-footer__main {
    border-top: 1px solid var(--vibe-border-white-a05);
    background:
        linear-gradient(
            120deg,
            var(--vibe-bg-footer-tone-1c072c) 0%,
            var(--vibe-bg-footer-tone-260a3c) 52%,
            var(--vibe-bg-footer-tone-190625) 100%
        );
}

.vibe-footer__grid {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.25fr)
        minmax(150px, .78fr)
        minmax(150px, .78fr)
        minmax(300px, 1.35fr);
    padding: 50px 0;
}

.vibe-footer__brand,
.vibe-footer__column,
.vibe-footer__connect {
    min-width: 0;
    padding: 0 34px;
}

.vibe-footer__brand {
    padding-left: 0;
}

.vibe-footer__connect {
    padding-right: 0;
}

.vibe-footer__column,
.vibe-footer__connect {
    border-left: 1px solid var(--vibe-border-medium);
}

.vibe-footer__logo {
    display: inline-flex;
    max-width: 260px;
    align-items: center;
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-footer__logo img {
    display: block;
    width: auto;
    max-width: 250px;
    max-height: 74px;
    object-fit: contain;
}

.vibe-footer__logo strong {
    font-family: var(--rl-heading-font);
    font-size: 30px;
    font-weight: 950;
}

.vibe-footer__intro {
    max-width: 310px;
    margin: 20px 0 0;
    color: var(--vibe-text-white-a72);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.6;
}

.vibe-footer__brand-accent {
    display: block;
    width: 54px;
    height: 3px;
    margin-top: 26px;
    background: var(--vibe-primary);
}

.vibe-footer__column h2,
.vibe-footer__apps h2,
.vibe-footer__social h2 {
    margin: 0 0 20px;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 14px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-footer__column nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
}

.vibe-footer__column nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--vibe-text-white-a78);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
}

.vibe-footer__column nav a > span {
    color: var(--vibe-primary);
    font-size: 22px;
    font-weight: 500;
    line-height: .7;
}

.vibe-footer__column nav a:hover,
.vibe-footer__column nav a:focus-visible {
    color: var(--vibe-text-primary);
}

.vibe-footer__app-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.vibe-footer__app-links a {
    display: flex;
    min-width: 142px;
    min-height: 48px;
    align-items: center;
    gap: 9px;
    padding: 7px 11px;
    border: 1px solid var(--vibe-border-white-a42);
    border-radius: 5px;
    background: var(--vibe-bg-footer-tone-050506);
    color: var(--vibe-text-primary);
    text-decoration: none;
    box-sizing: border-box;
}

.vibe-footer__app-links a:hover,
.vibe-footer__app-links a:focus-visible {
    border-color: var(--vibe-border-white);
    color: var(--vibe-text-primary);
}

.vibe-footer__app-brand-icon {
    display: block;
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.vibe-footer__app-links span {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.vibe-footer__app-links small {
    color: var(--vibe-text-white-a80);
    font-size: 8px;
    font-weight: 500;
    line-height: 1;
}

.vibe-footer__app-links strong {
    font-size: 13px;
    font-weight: 800;
    line-height: 1.1;
    white-space: nowrap;
}

.vibe-footer__social {
    margin-top: 30px;
}

.vibe-footer__social-links {
    --vibe-primary: var(--vibe-brand-primary-hover);

    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.vibe-footer__social-links a {
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-footer__social-links a:hover,
.vibe-footer__social-links a:focus-visible {
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-text-primary);
}

.vibe-footer__social-icon {
    display: block;
    width: 19px;
    height: 19px;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.vibe-footer__bottom {
    border-top: 1px solid var(--vibe-border-white-a11);
    background: var(--vibe-bg-footer-tone-160521);
}

.vibe-footer__bottom-inner {
    display: flex;
    min-height: 62px;
    align-items: center;
    gap: 24px;
}

.vibe-footer__copyright {
    margin-right: auto;
    color: var(--vibe-text-white-a84);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.vibe-footer__legal {
    display: flex;
    align-items: center;
    gap: 18px;
}

.vibe-footer__legal a,
.vibe-footer__legal button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--vibe-text-white-a74);
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.vibe-footer__legal a:hover,
.vibe-footer__legal button:hover,
.vibe-footer__legal a:focus-visible,
.vibe-footer__legal button:focus-visible {
    color: var(--vibe-button-text);
}

.vibe-footer__powered {
    display: flex;
    padding-left: 18px;
    border-left: 1px solid var(--vibe-border-strong);
    align-items: center;
    gap: 5px;
    color: var(--vibe-text-white-a58);
    font-size: 13px;
    white-space: nowrap;
}

.vibe-footer__powered strong {
    color: var(--vibe-text-white-a88);
    font-weight: 800;
}

.vibe-footer__powered-icon {
    width: 17px;
    height: 17px;
    margin-left: 2px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 1050px) {
    .vibe-footer__also-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0;
    }

    .vibe-footer__brand,
    .vibe-footer__column,
    .vibe-footer__connect {
        padding: 30px;
        border-left: 0;
        border-bottom: 1px solid var(--vibe-border-medium);
    }
}

@media (max-width: 700px) {
    .vibe-footer__also {
        padding: 30px 0 34px;
    }

    .vibe-footer__also-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vibe-footer__also-button {
        min-height: 54px;
    }

    .vibe-footer__grid {
        grid-template-columns: 1fr;
        padding: 12px 0;
    }

    .vibe-footer__brand,
    .vibe-footer__column,
    .vibe-footer__connect {
        padding: 28px 0;
    }

    .vibe-footer__bottom-inner {
        min-height: 0;
        align-items: flex-start;
        flex-direction: column;
        padding: 22px 0;
    }

    .vibe-footer__legal {
        flex-wrap: wrap;
    }

    .vibe-footer__powered {
        padding-left: 0;
        border-left: 0;
    }
}


/* ---------------------------------------------------------
   Shared Content Area blocks — Vibe sidebar presentation
--------------------------------------------------------- */

.vibe-sidebar-content-block {
    margin-bottom: 20px;
    background: var(--vibe-surface);
    border-top: 1px solid var(--vibe-border);
}

.vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text);
    font-size: 14px;
    line-height: 1.65;
}

.vibe-sidebar-content-block__body > :first-child {
    margin-top: 0;
}

.vibe-sidebar-content-block__body > :last-child {
    margin-bottom: 0;
}

.vibe-sidebar-content-block__body h2,
.vibe-sidebar-content-block__body h3,
.vibe-sidebar-content-block__body h4 {
    margin: 0 0 10px;
    color: var(--vibe-text);
    font-weight: 900;
    line-height: 1.2;
}

.vibe-sidebar-content-block__body h2 {
    font-size: 21px;
}

.vibe-sidebar-content-block__body h3 {
    font-size: 18px;
}

.vibe-sidebar-content-block__body h4 {
    font-size: 16px;
}

.vibe-sidebar-content-block__body p {
    margin: 0 0 12px;
}

.vibe-sidebar-content-block__body ul,
.vibe-sidebar-content-block__body ol {
    margin: 0 0 12px;
    padding-left: 20px;
}

.vibe-sidebar-content-block__body a {
    color: var(--vibe-primary);
    font-weight: 800;
    text-decoration: none;
}

.vibe-sidebar-content-block__body a:hover {
    text-decoration: underline;
}

.vibe-sidebar-content-block__body blockquote {
    margin: 14px 0;
    padding-left: 14px;
    border-left: 3px solid var(--vibe-primary);
    color: var(--vibe-muted);
}

.vibe-sidebar-content-block__body img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* ---------------------------------------------------------
   Vibe Schedule sidebar card
   Shared Weather / Listener Club visual system
   --------------------------------------------------------- */

.vibe-sidebar-content-block--schedule {
    --vibe-primary:
        var(--vibe-brand-primary-hover);

    position: relative;
    overflow: hidden;

    margin: 0 0 18px;
    padding: 0;

    border:
        1px solid
        var(--vibe-border-white-a14);
    border-radius: 4px;

    background:
        var(--vibe-bg-card-raised);

    color:
        var(--vibe-text-primary);

    box-shadow: none;
}

.vibe-sidebar-content-block--schedule
.vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;

    background: transparent;

    color:
        var(--vibe-text-primary);
}


/* Masthead */

.vibe-schedule-module__header {
    display: flex;

    min-width: 0;

    align-items: center;
    justify-content: space-between;

    gap: 14px;

    margin: 0;
    padding: 0 0 12px;

    border-bottom:
        1px solid
        var(--vibe-border-medium);
}

.vibe-schedule-module__brand {
    display: flex;

    min-width: 0;

    align-items: center;

    gap: 9px;

    color:
        var(--vibe-primary);
}

.vibe-schedule-module__brand > svg {
    display: block;

    width: 22px;
    height: 22px;
    flex: 0 0 22px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-schedule-module__brand > strong {
    min-width: 0;
    overflow: hidden;

    color:
        var(--vibe-primary)
        !important;

    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .13em;

    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-schedule-module__full-link {
    display: inline-flex;
    flex: 0 0 auto;

    align-items: center;

    gap: 6px;

    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;

    color:
        var(--vibe-text-white-a64)
        !important;

    font-size: 11px;
    font-weight: 900;
    line-height: 1;

    text-decoration: none
        !important;

    white-space: nowrap;

    box-shadow: none;
    transform: none;
}

.vibe-schedule-module__full-link svg {
    display: block;

    width: 16px;
    height: 16px;
    flex: 0 0 16px;

    fill: none;

    stroke:
        var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover: hover) {
    .vibe-schedule-module__full-link:hover,
    .vibe-schedule-module__full-link:focus-visible {
        color:
            var(--vibe-text-primary)
            !important;

        background: transparent;

        box-shadow: none;
        transform: none;
    }

    .vibe-schedule-module__full-link:hover svg,
    .vibe-schedule-module__full-link:focus-visible svg {
        stroke:
            var(--vibe-primary);

        transform: none;
    }
}


/* Schedule content */

.vibe-schedule-module__rows {
    display: block;

    padding-top: 15px;
}


/* Shared rows */

.vibe-schedule-row {
    display: grid;

    grid-template-columns:
        48px
        minmax(0, 1fr)
        auto;

    min-width: 0;

    align-items: center;

    min-height: 55px;

    border: 0;
    border-bottom:
        1px solid
        var(--vibe-border-medium);

    background: transparent;

    color:
        var(--vibe-text-primary);
}

.vibe-schedule-row:last-child {
    border-bottom: 0;
}

.vibe-schedule-row__label {
    display: flex;

    min-width: 0;

    align-items: center;

    padding-right: 5px;

    color:
        var(--vibe-primary)
        !important;

    font-size: 10px;
    font-weight: 900;
    line-height: 1.1;
}

.vibe-schedule-row:not(.is-current)
.vibe-schedule-row__label {
    font-size: 12px;
    font-weight: 900;
}

.vibe-schedule-row__programme {
    display: flex;

    min-width: 0;

    align-items: center;

    gap: 8px;

    padding: 10px 8px 10px 8px;

    border-left:
        1px solid
        var(--vibe-border-medium);
}

.vibe-schedule-row__details {
    min-width: 0;
}

.vibe-schedule-row__title {
    display: block;

    min-width: 0;
    overflow: hidden;

    color:
        var(--vibe-text-primary)
        !important;

    font-size: 13px;
    font-weight: 900;
    line-height: 1.15;

    text-decoration: none
        !important;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-schedule-row__title:hover,
.vibe-schedule-row__title:focus-visible {
    color:
        var(--vibe-primary)
        !important;
}

.vibe-schedule-row__presenter {
    display: block;

    min-width: 0;
    overflow: hidden;

    margin-top: 4px;

    color:
        var(--vibe-text-white-a56)
        !important;

    font-size: 11px;
    font-weight: 700;
    line-height: 1.15;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-schedule-row__time {
    display: block;

    padding-left: 8px;

    color:
        var(--vibe-text-white-a56)
        !important;

    font-size: 11px;
    font-weight: 800;
    line-height: 1;

    white-space: nowrap;
}


/* ON AIR */

.vibe-schedule-row.is-current {
    min-height: 72px;

    margin-bottom: 2px;

    border:
        1px solid
        var(--vibe-border-white-a14);
    border-left:
        3px solid
        var(--vibe-primary);
    border-radius: 4px;

    background:
        var(--vibe-bg-card);
}

.vibe-schedule-row.is-current
.vibe-schedule-row__label {
    padding-left: 10px;

    color:
        var(--vibe-primary)
        !important;

    text-transform: uppercase;
}

.vibe-schedule-row.is-current
.vibe-schedule-row__programme {
    padding-top: 9px;
    padding-bottom: 9px;
}

.vibe-schedule-row__artwork {
    display: block;

    width: 44px;
    height: 44px;
    flex: 0 0 44px;

    overflow: hidden;

    border:
        1px solid
        var(--vibe-border-white-a18);
    border-radius: 3px;

    background:
        var(--vibe-bg-card-raised);
}

.vibe-schedule-row__artwork img {
    display: block;

    width: 100%;
    height: 100%;

    max-width: none;

    object-fit: cover;
    object-position: center;
}

.vibe-schedule-row.is-current
.vibe-schedule-row__title {
    font-size: 14px;
}

.vibe-schedule-row.is-current
.vibe-schedule-row__time {
    padding-right: 10px;

    color:
        var(--vibe-text-white-a78)
        !important;
}


/* Mobile / narrow sidebar */

@media (max-width: 430px) {
    .vibe-sidebar-content-block--schedule
    .vibe-sidebar-content-block__body {
        padding:
            15px
            16px
            16px;
    }

    .vibe-schedule-module__header {
        gap: 10px;
    }

    .vibe-schedule-module__full-link {
        font-size: 10px;
    }

    .vibe-schedule-row {
        grid-template-columns:
            46px
            minmax(0, 1fr)
            auto;
    }

    .vibe-schedule-row__programme {
        gap: 8px;

        padding-left: 9px;
        padding-right: 7px;
    }

    .vibe-schedule-row__artwork {
        width: 43px;
        height: 43px;
        flex-basis: 43px;
    }

    .vibe-schedule-row__title {
        font-size: 12px;
    }

    .vibe-schedule-row.is-current
    .vibe-schedule-row__title {
        font-size: 13px;
    }

    .vibe-schedule-row__time {
        padding-left: 5px;

        font-size: 10px;
    }
}


/* ---------------------------------------------------------
   Vibe Control Chart sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--chart {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a58);
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--vibe-border-subtle);
    border-top: 4px solid var(--vibe-primary);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

.vibe-sidebar-content-block--chart
.vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text-primary);
}

/* Header */
.vibe-sidebar-chart__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 17px;
}

.vibe-sidebar-chart__heading {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.vibe-sidebar-chart__heading > div {
    min-width: 0;
}

.vibe-sidebar-chart__heading strong {
    display: block;
    margin-top: 3px;
    color: var(--vibe-text-primary) !important;
    font-size: 18px;
    line-height: 1.08;
    font-weight: 900;
}

.vibe-sidebar-chart__icon {
    display: grid;
    place-items: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--vibe-brand-primary-hover-a12);
    color: var(--vibe-primary);
}

.vibe-sidebar-chart__eyebrow {
    display: block;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.vibe-sidebar-chart__top-five {
    flex: 0 0 auto;
    color: var(--vibe-text-white-a44) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

/* Number one */
.vibe-sidebar-chart__number-one {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--vibe-border-white-a07);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel-alt);
}

.vibe-sidebar-chart__number-one-art {
    position: relative;
    width: 96px;
    height: 96px;
    overflow: hidden;
    background: var(--vibe-bg-deepest);
}

.vibe-sidebar-chart__number-one-art > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-sidebar-chart__number-one-badge {
    position: absolute;
    left: 6px;
    bottom: 6px;
    display: inline-flex;
    min-height: 23px;
    padding: 0 7px;
    align-items: center;
    gap: 4px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-sidebar-chart__number-one-badge svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
    stroke: none;
}

.vibe-sidebar-chart__number-one-copy {
    min-width: 0;
}

.vibe-sidebar-chart__position-label {
    display: block;
    margin-bottom: 6px;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.vibe-sidebar-chart__number-one-copy > strong {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-primary) !important;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-chart__artist {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: var(--vibe-muted) !important;
    font-size: 12px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-chart__votes {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 10px;
    color: var(--vibe-primary) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
}

.vibe-sidebar-chart__votes svg,
.vibe-sidebar-chart__row-votes svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Positions 2–5 */
.vibe-sidebar-chart__list {
    margin-top: 10px;
}

.vibe-sidebar-chart__row {
    display: grid;
    grid-template-columns:
        24px
        48px
        minmax(0, 1fr)
        auto;
    gap: 10px;
    align-items: center;
    min-width: 0;
    padding: 10px 0;
    border-bottom: 1px solid var(--vibe-border-white-a07);
}

.vibe-sidebar-chart__row:last-child {
    border-bottom: 0;
}

.vibe-sidebar-chart__rank {
    color: var(--vibe-primary) !important;
    font-size: 17px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
}

.vibe-sidebar-chart__art {
    width: 48px;
    height: 48px;
    overflow: hidden;
    background: var(--vibe-bg-panel-alt);
}

.vibe-sidebar-chart__art > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-sidebar-chart__art-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--vibe-text-white-a26);
}

.vibe-sidebar-chart__art-placeholder svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-chart__track {
    min-width: 0;
}

.vibe-sidebar-chart__track strong,
.vibe-sidebar-chart__track span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-chart__track strong {
    color: var(--vibe-text-primary) !important;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 900;
}

.vibe-sidebar-chart__track span {
    margin-top: 3px;
    color: var(--vibe-muted) !important;
    font-size: 11px;
    line-height: 1.2;
}

.vibe-sidebar-chart__row-votes {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--vibe-text-white-a54) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
}

/* View full chart */
.vibe-sidebar-chart__full-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
    padding: 13px 14px;
    border: 1px solid var(--vibe-border-soft);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-overlay-white-a035);
    color: var(--vibe-text-primary) !important;
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none !important;
}

.vibe-sidebar-chart__full-link svg {
    color: var(--vibe-primary);
}

@media (hover:hover) {
    .vibe-sidebar-chart__full-link {
        transition:
            background-color .18s ease,
            border-color .18s ease;
    }

    .vibe-sidebar-chart__full-link:hover {
        border-color: var(--vibe-border-strong);
        background: var(--vibe-overlay-white-a06);
    }
}

/* ---------------------------------------------------------
   Vibe Latest News sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--news {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a58);
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--vibe-border-subtle);
    border-top: 4px solid var(--vibe-primary);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

.vibe-sidebar-content-block--news
.vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text-primary);
}

/* Header */
.vibe-sidebar-news__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.vibe-sidebar-news__heading {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.vibe-sidebar-news__heading strong {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 18px;
    line-height: 1.1;
    font-weight: 900;
}

.vibe-sidebar-news__icon {
    display: grid;
    place-items: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    color: var(--vibe-primary);
}

.vibe-sidebar-news__header-link {
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    color: var(--vibe-primary) !important;
    text-decoration: none !important;
}

/* Story list */
.vibe-sidebar-news__list {
    display: grid;
    gap: 11px;
}

.vibe-sidebar-news-item {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--vibe-border-white-a07);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel-alt);
}

.vibe-sidebar-news-item__art {
    display: block;
    width: 88px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--vibe-bg-deepest);
    text-decoration: none !important;
}

.vibe-sidebar-news-item__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-sidebar-news-item__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: var(--vibe-text-white-a26);
}

.vibe-sidebar-news-item__placeholder svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-news-item__copy {
    min-width: 0;
}

.vibe-sidebar-news-item__category {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-sidebar-news-item__title {
    display: -webkit-box;
    overflow: hidden;
    color: var(--vibe-text-primary) !important;
    font-size: 14px;
    line-height: 1.25;
    font-weight: 900;
    text-decoration: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.vibe-sidebar-news-item__time {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    color: var(--vibe-muted) !important;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
}

.vibe-sidebar-news-item__time svg {
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover:hover) {
    .vibe-sidebar-news-item {
        transition:
            background-color .18s ease,
            border-color .18s ease;
    }

    .vibe-sidebar-news-item:hover {
        border-color: var(--vibe-border-white-a14);
        background: var(--vibe-bg-card-hover);
    }
}

/* ---------------------------------------------------------
   Vibe Featured News sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--featured-news {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a62);
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--vibe-border-subtle);
    border-top: 4px solid var(--vibe-primary);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

.vibe-sidebar-content-block--featured-news
.vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text-primary);
}

/* Header */
.vibe-sidebar-featured-news__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.vibe-sidebar-featured-news__heading {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.vibe-sidebar-featured-news__heading strong {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 18px;
    line-height: 1.1;
    font-weight: 900;
}

.vibe-sidebar-featured-news__icon {
    display: grid;
    place-items: center;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    color: var(--vibe-primary);
}

.vibe-sidebar-featured-news__header-link {
    display: grid;
    place-items: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    color: var(--vibe-primary) !important;
    text-decoration: none !important;
}

/* Feature card */
.vibe-sidebar-featured-news__article {
    margin: 0;
}

.vibe-sidebar-featured-news__card {
    position: relative;
    display: block;
    min-height: 250px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel-alt);
    color: var(--vibe-text-primary) !important;
    text-decoration: none !important;
}

.vibe-sidebar-featured-news__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-sidebar-featured-news__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    background: var(--vibe-preserve-background-6c39bb89fb);
}

.vibe-sidebar-featured-news__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: block;
    padding: 18px;
}

.vibe-sidebar-featured-news__category {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-sidebar-featured-news__title {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 19px;
    line-height: 1.2;
    font-weight: 900;
}

.vibe-sidebar-featured-news__time {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 9px;
    color: var(--vibe-muted) !important;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
}

.vibe-sidebar-featured-news__time svg {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover:hover) {
    .vibe-sidebar-featured-news__card {
        transition: border-color .18s ease;
    }

    .vibe-sidebar-featured-news__card:hover {
        border-color: var(--vibe-border-white-a15);
    }
}

/* ---------------------------------------------------------
   Vibe Search sidebar
   --------------------------------------------------------- */

.vibe-sidebar-content-block--search {
    margin-bottom: 20px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.vibe-sidebar-content-block--search form {
    position: relative;
}

.vibe-sidebar-content-block--search input[type="search"] {
    display: block !important;
    width: 100% !important;
    height: 58px !important;
    box-sizing: border-box !important;
    padding: 0 64px 0 18px !important;
    border: 1px solid var(--vibe-border-medium) !important;
    border-radius: var(--vibe-card-radius) !important;
    background: var(--vibe-bg-panel) !important;
    color: var(--vibe-text-primary) !important;
    font: inherit !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    outline: none !important;
    appearance: none;
    -webkit-appearance: none;
}

.vibe-sidebar-content-block--search
input[type="search"]::placeholder {
    color: var(--vibe-text-white-a42) !important;
    opacity: 1;
}

.vibe-sidebar-content-block--search
input[type="search"]:focus {
    border-color: var(--vibe-brand-primary-hover-a72) !important;
}

.vibe-sidebar-content-block--search button[type="submit"] {
    position: absolute !important;
    top: 50% !important;
    right: 9px !important;
    transform: translateY(-50%) !important;
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--vibe-card-radius) !important;
    background: var(--vibe-brand-primary-hover) !important;
    color: var(--vibe-button-text) !important;
    cursor: pointer !important;
}

.vibe-sidebar-content-block--search button[type="submit"] svg {
    width: 20px !important;
    height: 20px !important;
}

@media (hover:hover) {
    .vibe-sidebar-content-block--search button[type="submit"] {
        transition: background-color .18s ease;
    }

    .vibe-sidebar-content-block--search button[type="submit"]:hover {
        background: var(--vibe-brand-primary-active) !important;
    }
}

/* ---------------------------------------------------------
   Vibe Events sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--events {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a56);
    --vibe-primary: var(--vibe-brand-primary-hover);

    position: relative;
    overflow: hidden;
    margin: 0 0 18px;
    padding: 0;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-primary);
    box-shadow: none;
}

.vibe-sidebar-content-block--events .vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;
    color: var(--vibe-text-primary);
}


/* Header — matched to live Weather masthead */

.vibe-sidebar-events__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
    margin: 0;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-events__heading {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
}

.vibe-sidebar-events__heading > div {
    min-width: 0;
}

.vibe-sidebar-events__icon {
    min-width: 0;
    display: flex;
    align-items: center;
    color: var(--vibe-primary);
}

.vibe-sidebar-events__icon svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-events__heading strong {
    color: var(--vibe-primary) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.vibe-sidebar-events__eyebrow {
    display: none;
}

.vibe-sidebar-events__header-link {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    color: var(--vibe-text-white-a56) !important;
    text-decoration: none !important;
}

.vibe-sidebar-events__header-link::before {
    content: "View all";
    overflow: hidden;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-sidebar-events__header-link svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    color: var(--vibe-primary);
}


/* Event list */

.vibe-sidebar-events__list {
    display: block;
    padding-top: 12px;
}

.vibe-sidebar-event {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
    min-width: 0;
    padding: 0 0 12px;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.vibe-sidebar-event + .vibe-sidebar-event {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-event:last-child {
    padding-bottom: 0;
}


/* Artwork */

.vibe-sidebar-event__art {
    display: block;
    width: 92px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 3px;
    background: var(--vibe-bg-card);
    text-decoration: none !important;
}

.vibe-sidebar-event__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-sidebar-event__placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--vibe-text-white-a26);
}

.vibe-sidebar-event__placeholder svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Copy */

.vibe-sidebar-event__copy {
    min-width: 0;
}

.vibe-sidebar-event__category {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-sidebar-event__title {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-primary) !important;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
    text-decoration: none !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-event__date,
.vibe-sidebar-event__venue {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    color: var(--vibe-text-white-a64) !important;
    font-size: 11px;
    line-height: 1.25;
    font-weight: 700;
}

.vibe-sidebar-event__date {
    margin-top: 8px;
}

.vibe-sidebar-event__venue {
    margin-top: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-event__date svg,
.vibe-sidebar-event__venue svg {
    flex: 0 0 13px;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Legacy full-link support */

.vibe-sidebar-events__full-link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    margin-top: 12px;
    padding: 13px 14px;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 4px;
    background: var(--vibe-overlay-white-a035);
    color: var(--vibe-text-primary) !important;
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none !important;
}

.vibe-sidebar-events__full-link svg {
    color: var(--vibe-primary);
}


/* Hover */

@media (hover:hover) {
    .vibe-sidebar-events__header-link {
        transition: color .18s ease;
    }

    .vibe-sidebar-events__header-link:hover {
        color: var(--vibe-text-primary) !important;
    }

    .vibe-sidebar-event__title {
        transition: color .18s ease;
    }

    .vibe-sidebar-event__title:hover {
        color: var(--vibe-primary) !important;
    }
}


/* Responsive */

@media (max-width: 520px) {
    .vibe-sidebar-content-block--events .vibe-sidebar-content-block__body {
        padding: 15px 16px 16px;
    }

    .vibe-sidebar-events__header {
        gap: 12px;
        padding-bottom: 12px;
    }

    .vibe-sidebar-event {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 13px;
    }

    .vibe-sidebar-event__art {
        width: 88px;
    }

    .vibe-sidebar-event__title {
        font-size: 15px;
    }
}


/* ---------------------------------------------------------
   Vibe Control Chart page
   Compact chart layout — Vibe theme
   --------------------------------------------------------- */

.vibe-control-chart-page {
    --chart-bg:
        var(--vibe-bg-card-raised);

    --chart-panel:
        var(--vibe-bg-card);

    --chart-deep:
        var(--vibe-bg-deepest);

    --chart-accent:
        var(--vibe-brand-primary-hover);

    --chart-accent-dark:
        var(--vibe-brand-primary-active);

    --chart-text:
        var(--vibe-text-primary);

    --chart-muted:
        var(--vibe-text-white-a58);

    --chart-border:
        var(--vibe-border-medium);

    width: 100%;

    color:
        var(--chart-text);
}


/* Hide old page masthead.
   The #1 feature becomes the visual page header. */

.vibe-control-chart-page__masthead {
    display: none;
}


/* =========================================================
   NUMBER ONE FEATURE
   ========================================================= */

.vibe-control-chart-leader {
    display: grid;

    grid-template-columns:
        260px
        minmax(0, 1fr)
        330px;

    min-width: 0;

    margin: 0 0 22px;

    overflow: hidden;

    border:
        1px solid
        var(--chart-border);

    border-radius: 4px;

    background:
        var(--chart-bg);

    box-shadow: none;
}


/* Artwork */

.vibe-control-chart-leader__art {
    position: relative;

    width: 260px;
    height: 260px;

    overflow: hidden;

    background:
        var(--chart-deep);
}

.vibe-control-chart-leader__art > img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.vibe-control-chart-art-fallback {
    display: grid;

    width: 100%;
    height: 100%;

    place-items: center;

    background:
        var(--chart-deep);

    color:
        var(--vibe-text-white-a22);
}

.vibe-control-chart-art-fallback svg {
    width: 34px;
    height: 34px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* #1 badge */

.vibe-control-chart-leader__badge {
    position: absolute;

    top: 0;
    left: 0;

    display: inline-flex;

    min-height: 40px;

    align-items: center;

    padding: 0 15px;

    background:
        var(--chart-accent);

    color:
        var(--vibe-button-text);

    font-size: 11px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: .025em;

    text-transform: uppercase;
}


/* Main #1 copy */

.vibe-control-chart-leader__content {
    display: flex;

    min-width: 0;

    flex-direction: column;

    justify-content: center;

    padding: 26px 28px;
}

.vibe-control-chart-leader__rank {
    display: block;

    margin: 0 0 5px;

    color:
        var(--chart-accent);

    font-size: 48px;
    font-weight: 950;
    line-height: .85;
    letter-spacing: -.05em;
}

.vibe-control-chart-leader__content h2 {
    max-width: 640px;

    margin: 0;

    color:
        var(--chart-text);

    font-size:
        clamp(
            27px,
            2.4vw,
            36px
        );

    font-weight: 950;
    line-height: .96;
    letter-spacing: -.025em;

    text-transform: uppercase;
}

.vibe-control-chart-leader__artist {
    display: block;

    margin-top: 8px;

    color:
        var(--chart-text);

    font-size: 16px;
    font-weight: 800;
    line-height: 1.15;
}

.vibe-control-chart-leader__summary {
    display: none;
}


/* Listen button */

.vibe-control-chart-leader__listen {
    display: inline-flex;

    align-self: flex-start;

    align-items: center;

    gap: 8px;

    min-height: 42px;

    margin-top: 18px;

    padding: 0 16px;

    border:
        1px solid
        var(--chart-accent);

    border-radius: 2px;

    background:
        var(--chart-accent);

    color:
        var(--vibe-button-text)
        !important;

    font-size: 11px;
    font-weight: 950;
    line-height: 1;

    text-decoration: none
        !important;

    text-transform: uppercase;

    box-shadow: none;
    transform: none;
}

.vibe-control-chart-leader__listen svg {
    width: 19px;
    height: 19px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover: hover) {
    .vibe-control-chart-leader__listen:hover,
    .vibe-control-chart-leader__listen:focus-visible {
        border-color:
            var(--chart-accent-dark);

        background:
            var(--chart-accent-dark);

        color:
            var(--vibe-button-text)
            !important;

        box-shadow: none;
        transform: none;
    }
}


/* Hero statistics */

.vibe-control-chart-leader__stats {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    align-self: center;

    min-height: 120px;

    margin-right: 18px;

    overflow: hidden;

    border:
        1px solid
        var(--chart-border);

    border-radius: 3px;

    background:
        var(--chart-panel);
}

.vibe-control-chart-leader__stat {
    display: flex;

    min-width: 0;

    align-items: center;
    justify-content: center;
    flex-direction: column;

    gap: 10px;

    padding: 16px 9px;

    text-align: center;
}

.vibe-control-chart-leader__stat
+ .vibe-control-chart-leader__stat {
    border-left:
        1px solid
        var(--chart-border);
}

.vibe-control-chart-leader__stat span {
    color:
        var(--chart-muted);

    font-size: 9px;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: .035em;

    text-transform: uppercase;
}

.vibe-control-chart-leader__stat strong {
    color:
        var(--chart-text);

    font-size: 23px;
    font-weight: 950;
    line-height: 1;
}


.vibe-control-chart-page__voting-note {
    margin: 0 0 11px;

    color:
        var(--chart-muted);

    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}


/* =========================================================
   CHART TABLE
   ========================================================= */

.vibe-control-chart-table {
    width: 100%;

    overflow: hidden;

    border:
        1px solid
        var(--chart-border);

    border-radius: 4px;

    background:
        var(--chart-bg);
}


/* Desktop columns */

.vibe-control-chart-table__head,
.vibe-control-chart-row {
    display: grid;

    grid-template-columns:
        58px
        82px
        minmax(280px, 1fr)
        82px
        82px
        56px;

    min-width: 0;

    align-items: center;
}


/* Header */

.vibe-control-chart-table__head {
    min-height: 43px;

    padding: 0 12px;

    background:
        var(--chart-panel);

    color:
        var(--chart-muted);

    font-size: 10px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: .055em;

    text-transform: uppercase;
}


/* Rows */

.vibe-control-chart-table__body {
    width: 100%;
}

.vibe-control-chart-row {
    min-height: 68px;

    padding: 0 12px;

    border-bottom:
        1px solid
        var(--chart-border);

    background:
        var(--chart-bg);
}

.vibe-control-chart-row:last-child {
    border-bottom: 0;
}


/* Rank */

.vibe-control-chart-row__rank {
    display: grid;

    width: 42px;
    height: 42px;

    place-items: center;

    border-radius: 2px;

    background:
        var(--chart-panel);

    color:
        var(--chart-text);

    font-size: 17px;
    font-weight: 950;
    line-height: 1;
}

.vibe-control-chart-row:first-child
.vibe-control-chart-row__rank {
    background:
        var(--chart-accent);

    color:
        var(--vibe-button-text);
}


/* Last-week movement */

.vibe-control-chart-row__movement {
    display: flex;

    align-items: center;

    gap: 4px;

    color:
        var(--vibe-text-white-a48);

    font-size: 11px;
    font-weight: 950;
    line-height: 1;

    text-transform: uppercase;
}

.vibe-control-chart-row__movement svg {
    width: 14px;
    height: 14px;

    fill: currentColor;
    stroke: currentColor;
}

.vibe-control-chart-row__movement.is-up {
    color: #46d778;
}

.vibe-control-chart-row__movement.is-down {
    color:
        var(--chart-accent);
}

.vibe-control-chart-row__movement.is-new span {
    display: inline-flex;

    min-height: 20px;

    align-items: center;

    padding: 0 6px;

    border-radius: 2px;

    background:
        var(--vibe-bg-sidebar-tone-3b1a5a);

    color:
        var(--chart-text);

    font-size: 9px;
    font-weight: 950;
    letter-spacing: .04em;
}

.vibe-control-chart-row__no-change {
    color:
        var(--vibe-text-white-a46);

    font-size: 15px;
    font-weight: 800;
}


/* Track + artwork */

.vibe-control-chart-row__track {
    display: grid;

    grid-template-columns:
        48px
        minmax(0, 1fr);

    min-width: 0;

    align-items: center;

    gap: 11px;

    padding-right: 14px;
}

.vibe-control-chart-row__art {
    width: 48px;
    height: 48px;

    overflow: hidden;

    background:
        var(--chart-deep);
}

.vibe-control-chart-row__art img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.vibe-control-chart-row__art
.vibe-control-chart-art-fallback svg {
    width: 19px;
    height: 19px;
}

.vibe-control-chart-row__track-copy {
    min-width: 0;
}

.vibe-control-chart-row__track-copy strong {
    display: block;

    min-width: 0;
    overflow: hidden;

    color:
        var(--chart-text);

    font-size: 12px;
    font-weight: 900;
    line-height: 1.15;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-control-chart-row__artist {
    display: block;

    min-width: 0;
    overflow: hidden;

    margin-top: 3px;

    color:
        var(--vibe-text-white-a70);

    font-size: 10px;
    font-weight: 700;
    line-height: 1.15;

    text-overflow: ellipsis;
    white-space: nowrap;
}


/* Existing Last Week numerical column is now redundant.
   Movement in the LW column carries that role. */

.vibe-control-chart-row
> .vibe-control-chart-row__stat:nth-child(4) {
    display: none;
}


/* Peak */

.vibe-control-chart-row
> .vibe-control-chart-row__stat:nth-child(5) {
    grid-column: 4;
}


/* Weeks */

.vibe-control-chart-row
> .vibe-control-chart-row__stat:nth-child(6) {
    grid-column: 5;
}

.vibe-control-chart-row__stat {
    color:
        var(--chart-muted);

    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}


/* Controls */

.vibe-control-chart-row__actions {
    grid-column: 6;

    display: flex
        !important;

    align-items: center;

    justify-content: center;

    gap: 4px;
}

.vibe-control-chart-row__action {
    display: grid;

    width: 31px;
    height: 31px;

    flex: 0 0 31px;

    place-items: center;

    border: 0;

    background: transparent;

    color:
        var(--vibe-text-white-a72)
        !important;

    text-decoration: none
        !important;

    box-shadow: none;
    transform: none;
}

.vibe-control-chart-row__action.is-play {
    width: 34px;
    height: 34px;

    flex-basis: 34px;

    border-radius: 50%;

    background:
        var(--chart-accent);

    color:
        var(--vibe-button-text)
        !important;
}

.vibe-control-chart-row__action svg {
    width: 17px;
    height: 17px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover: hover) {
    .vibe-control-chart-row__action:not(.is-play):hover,
    .vibe-control-chart-row__action:not(.is-play):focus-visible {
        color:
            var(--chart-accent)
            !important;
    }

    .vibe-control-chart-row__action.is-play:hover,
    .vibe-control-chart-row__action.is-play:focus-visible {
        background:
            var(--chart-accent-dark);

        color:
            var(--vibe-button-text)
            !important;
    }
}


/* =========================================================
   NEW ENTRIES
   ========================================================= */

.vibe-control-chart-new {
    margin-top: 18px;

    padding: 14px;

    border:
        1px solid
        var(--chart-border);

    border-radius: 4px;

    background:
        var(--chart-bg);
}

.vibe-control-chart-new__header {
    display: flex;

    align-items: center;
    justify-content: space-between;

    margin-bottom: 11px;
}

.vibe-control-chart-new__header h2 {
    margin: 0;

    color:
        var(--chart-text);

    font-size: 15px;
    font-weight: 950;
    line-height: 1;

    text-transform: uppercase;
}

.vibe-control-chart-new__grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 8px;
}

.vibe-control-chart-new__item {
    display: grid;

    grid-template-columns:
        52px
        minmax(0, 1fr)
        16px;

    min-width: 0;

    align-items: center;

    gap: 10px;

    padding: 8px;

    border:
        1px solid
        var(--chart-border);

    border-radius: 3px;

    background:
        var(--chart-panel);

    color:
        var(--chart-text)
        !important;

    text-decoration: none
        !important;
}

.vibe-control-chart-new__art {
    width: 52px;
    height: 52px;

    overflow: hidden;

    background:
        var(--chart-deep);
}

.vibe-control-chart-new__art img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.vibe-control-chart-new__art
.vibe-control-chart-art-fallback svg {
    width: 20px;
    height: 20px;
}

.vibe-control-chart-new__copy {
    min-width: 0;
}

.vibe-control-chart-new__badge {
    display: inline-flex;

    min-height: 17px;

    align-items: center;

    margin-bottom: 4px;

    padding: 0 5px;

    background:
        var(--chart-accent);

    color:
        var(--vibe-button-text);

    font-size: 9px;
    font-weight: 950;
    line-height: 1;

    text-transform: uppercase;
}

.vibe-control-chart-new__copy strong,
.vibe-control-chart-new__copy
> span:not(
    .vibe-control-chart-new__badge
),
.vibe-control-chart-new__copy small {
    display: block;

    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-control-chart-new__copy strong {
    color:
        var(--chart-text);

    font-size: 11px;
    font-weight: 900;
    line-height: 1.15;
}

.vibe-control-chart-new__copy
> span:not(
    .vibe-control-chart-new__badge
) {
    margin-top: 2px;

    color:
        var(--chart-muted);

    font-size: 10px;
    font-weight: 700;
}

.vibe-control-chart-new__copy small {
    margin-top: 3px;

    color:
        var(--chart-text);

    font-size: 9px;
    font-weight: 850;
}

.vibe-control-chart-new__arrow {
    width: 14px;
    height: 14px;

    fill: none;

    stroke:
        var(--chart-accent);

    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Empty */

.vibe-control-chart-page__empty {
    padding: 38px 20px;

    color:
        var(--chart-muted);

    font-size: 12px;
    font-weight: 750;

    text-align: center;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1100px) {
    .vibe-control-chart-leader {
        grid-template-columns:
            210px
            minmax(0, 1fr);
    }

    .vibe-control-chart-leader__art {
        width: 210px;
        height: 210px;
    }

    .vibe-control-chart-leader__stats {
        grid-column:
            1 / -1;

        margin:
            0
            18px
            18px;

        min-height: 86px;
    }

    .vibe-control-chart-table__head,
    .vibe-control-chart-row {
        grid-template-columns:
            54px
            68px
            minmax(220px, 1fr)
            66px
            66px
            56px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 760px) {

    /* ---------------------------------------------
       #1 FEATURE
       Keep the feature compact above the chart.
       --------------------------------------------- */

    .vibe-control-chart-leader {
        grid-template-columns:
            125px
            minmax(0, 1fr);

        margin-bottom: 14px;
    }

    .vibe-control-chart-leader__art {
        width: 125px;
        height: 125px;
    }

    .vibe-control-chart-leader__badge {
        min-height: 26px;

        padding: 0 7px;

        font-size: 9px;
    }

    .vibe-control-chart-leader__content {
        padding: 13px;
    }

    .vibe-control-chart-leader__rank {
        font-size: 29px;
    }

    .vibe-control-chart-leader__content h2 {
        font-size: 17px;
    }

    .vibe-control-chart-leader__artist {
        margin-top: 5px;

        font-size: 11px;
    }

    .vibe-control-chart-leader__listen {
        min-height: 31px;

        margin-top: 9px;

        padding: 0 9px;

        font-size: 9px;
    }

    .vibe-control-chart-leader__listen svg {
        width: 15px;
        height: 15px;
    }

    .vibe-control-chart-leader__stats {
        grid-column: 1 / -1;

        min-height: 70px;

        margin:
            0
            10px
            10px;
    }

    .vibe-control-chart-leader__stat {
        gap: 6px;

        padding: 10px 5px;
    }

    .vibe-control-chart-leader__stat span {
        font-size: 7px;
    }

    .vibe-control-chart-leader__stat strong {
        font-size: 18px;
    }


    /* ---------------------------------------------
       VOTING NOTE
       --------------------------------------------- */

    .vibe-control-chart-page__voting-note {
        margin-bottom: 9px;

        font-size: 10px;
        line-height: 1.3;
    }


    /* ---------------------------------------------
       MOBILE CHART
       Proper compact table — not stacked cards.
       --------------------------------------------- */

    .vibe-control-chart-table {
        width: 100%;

        min-width: 0;

        overflow: hidden;
    }


    /* Column headings stay visible */

    .vibe-control-chart-table__head {
        display: grid;

        grid-template-columns:
            36px
            36px
            minmax(0, 1fr)
            34px
            34px
            38px;

        min-width: 0;
        min-height: 32px;

        align-items: center;

        padding: 0 8px;

        font-size: 7px;
        letter-spacing: .035em;
    }


    /* Hide the unused final blank heading visually
       but retain its grid column. */

    .vibe-control-chart-table__head
    > div:last-child {
        min-width: 0;
    }


    /* Each song is ONE compact row */

    .vibe-control-chart-row {
        display: grid;

        grid-template-columns:
            36px
            36px
            minmax(0, 1fr)
            34px
            34px
            38px;

        grid-template-rows: 1fr;

        width: 100%;
        min-width: 0;
        min-height: 64px;

        align-items: center;

        padding: 6px 8px;

        border-bottom:
            1px solid
            var(--chart-border);

        background:
            var(--chart-bg);
    }

    .vibe-control-chart-row:last-child {
        border-bottom: 0;
    }


    /* Rank */

    .vibe-control-chart-row__rank {
        grid-column: 1;
        grid-row: 1;

        width: 32px;
        height: 40px;

        align-self: center;

        font-size: 16px;
    }


    /* LW movement */

    .vibe-control-chart-row__movement {
        grid-column: 2;
        grid-row: 1;

        width: 100%;

        align-items: center;
        justify-content: center;

        font-size: 9px;
    }

    .vibe-control-chart-row__movement svg {
        width: 11px;
        height: 11px;
    }


    /* Artwork + title / artist */

    .vibe-control-chart-row__track {
        grid-column: 3;
        grid-row: 1;

        display: grid;

        grid-template-columns:
            42px
            minmax(0, 1fr);

        min-width: 0;

        align-items: center;

        gap: 8px;

        padding: 0 6px 0 0;
    }

    .vibe-control-chart-row__art {
        width: 42px;
        height: 42px;

        flex: none;
    }

    .vibe-control-chart-row__track-copy {
        min-width: 0;
    }

    .vibe-control-chart-row__track-copy strong {
        display: block;

        min-width: 0;
        overflow: hidden;

        font-size: 11px;
        line-height: 1.15;

        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .vibe-control-chart-row__artist {
        display: block;

        min-width: 0;
        overflow: hidden;

        margin-top: 3px;
        padding: 0;

        font-size: 9px;
        line-height: 1.1;

        text-overflow: ellipsis;
        white-space: nowrap;
    }


    /* Numerical LW is redundant because movement
       already occupies the LW column. */

    .vibe-control-chart-row
    > .vibe-control-chart-row__stat:nth-child(4) {
        display: none;
    }


    /* Peak */

    .vibe-control-chart-row
    > .vibe-control-chart-row__stat:nth-child(5) {
        grid-column: 4;
        grid-row: 1;

        display: block;

        padding: 0;

        text-align: center;
    }


    /* Weeks */

    .vibe-control-chart-row
    > .vibe-control-chart-row__stat:nth-child(6) {
        grid-column: 5;
        grid-row: 1;

        display: block;

        padding: 0;

        text-align: center;
    }

    .vibe-control-chart-row__stat {
        color:
            var(--chart-muted);

        font-size: 10px;
        font-weight: 800;
        line-height: 1;
    }

    .vibe-control-chart-row__stat::before {
        content: none !important;
    }


    /* Play */

    .vibe-control-chart-row__actions {
        grid-column: 6;
        grid-row: 1;

        display: flex !important;

        align-items: center;
        justify-content: flex-end;

        padding: 0;
    }

    .vibe-control-chart-row__action {
        width: 30px;
        height: 30px;

        flex: 0 0 30px;
    }

    .vibe-control-chart-row__action.is-play {
        width: 32px;
        height: 32px;

        flex: 0 0 32px;
    }

    .vibe-control-chart-row__action svg {
        width: 16px;
        height: 16px;
    }


    /* New entries */

    .vibe-control-chart-new {
        margin-top: 14px;

        padding: 11px;
    }

    .vibe-control-chart-new__grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 390px) {

    .vibe-control-chart-leader {
        grid-template-columns:
            112px
            minmax(0, 1fr);
    }

    .vibe-control-chart-leader__art {
        width: 112px;
        height: 112px;
    }

    .vibe-control-chart-leader__content {
        padding: 11px;
    }

    .vibe-control-chart-leader__content h2 {
        font-size: 15px;
    }


    /* Even tighter chart columns */

    .vibe-control-chart-table__head,
    .vibe-control-chart-row {
        grid-template-columns:
            32px
            30px
            minmax(0, 1fr)
            29px
            31px
            34px;

        padding-left: 6px;
        padding-right: 6px;
    }

    .vibe-control-chart-table__head {
        font-size: 6px;
    }

    .vibe-control-chart-row {
        min-height: 58px;

        padding-top: 5px;
        padding-bottom: 5px;
    }

    .vibe-control-chart-row__rank {
        width: 29px;
        height: 36px;

        font-size: 14px;
    }

    .vibe-control-chart-row__track {
        grid-template-columns:
            38px
            minmax(0, 1fr);

        gap: 7px;

        padding-right: 4px;
    }

    .vibe-control-chart-row__art {
        width: 38px;
        height: 38px;
    }

    .vibe-control-chart-row__track-copy strong {
        font-size: 10px;
    }

    .vibe-control-chart-row__artist {
        font-size: 8px;
    }

    .vibe-control-chart-row__stat {
        font-size: 9px;
    }

    .vibe-control-chart-row__action.is-play {
        width: 29px;
        height: 29px;

        flex-basis: 29px;
    }

    .vibe-control-chart-row__action svg {
        width: 14px;
        height: 14px;
    }
}



/* ---------------------------------------------------------
   Vibe Poll sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--poll {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a58);
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin-bottom: 20px;
    padding: 20px;
    border: 1px solid var(--vibe-border-subtle);
    border-top: 4px solid var(--vibe-primary);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

/* Header */
.vibe-sidebar-poll__header {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
}

.vibe-sidebar-poll__header strong {
    color: var(--vibe-primary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vibe-sidebar-poll__icon {
    display: grid;
    place-items: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    color: var(--vibe-primary);
}

.vibe-sidebar-poll__icon svg {
    width: 21px;
    height: 21px;
}

/* Question */
.vibe-sidebar-poll__question {
    margin: 0 0 18px;
    color: var(--vibe-text-primary) !important;
    font-size: 21px;
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -.015em;
}

/* Feedback */
.vibe-sidebar-poll__message {
    margin-bottom: 14px;
    padding: 11px 12px;
    border: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-overlay-white-a04);
    color: var(--vibe-text-white-a72) !important;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 800;
}

.vibe-sidebar-poll__message--error {
    border-color: rgba(237, 21, 132, .25);
    background: rgba(237, 21, 132, .08);
    color: #ffffff !important;
}

/* Results */
.vibe-sidebar-poll__results {
    display: grid;
    gap: 15px;
}

.vibe-sidebar-poll__result {
    min-width: 0;
}

.vibe-sidebar-poll__result-meta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    color: var(--vibe-text-primary);
    font-size: 13px;
    line-height: 1.25;
    font-weight: 800;
}

.vibe-sidebar-poll__result-meta > span {
    min-width: 0;
}

.vibe-sidebar-poll__result-meta > strong {
    flex: 0 0 auto;
    color: var(--vibe-primary) !important;
    font-size: 12px;
    font-weight: 900;
}

.vibe-sidebar-poll__bar {
    height: 9px;
    overflow: hidden;
    background: var(--vibe-overlay-white-a09);
}

.vibe-sidebar-poll__bar > span {
    display: block;
    height: 100%;
    background: var(--vibe-primary);
}

/* Voting options */
.vibe-sidebar-poll__options {
    display: grid;
    gap: 8px;
}

.vibe-sidebar-poll__options form {
    margin: 0;
}

.vibe-sidebar-poll__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid var(--vibe-border-soft);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel-alt);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 900;
    text-align: left;
    cursor: pointer;
}

.vibe-sidebar-poll__option svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Change vote */
.vibe-sidebar-poll__change {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--vibe-border-subtle);
}

.vibe-sidebar-poll__change-label {
    display: block;
    margin-bottom: 10px;
    color: var(--vibe-muted) !important;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Multiple choice */
.vibe-sidebar-poll__multiple-form {
    margin: 0;
}

.vibe-sidebar-poll__choices {
    display: grid;
    gap: 8px;
}

.vibe-sidebar-poll__choice {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel-alt);
    color: var(--vibe-text-primary) !important;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 800;
    cursor: pointer;
}

.vibe-sidebar-poll__choice input[type="checkbox"] {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    margin: 0;
    accent-color: var(--vibe-primary);
}

.vibe-sidebar-poll__submit {
    width: 100%;
    margin-top: 10px;
    padding: 13px 15px;
    border: 0;
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    cursor: pointer;
}

/* Closed state */
.vibe-sidebar-poll__closed {
    display: flex;
    align-items: center;
    gap: 9px;
    padding-top: 2px;
    color: var(--vibe-muted) !important;
    font-size: 12px;
    line-height: 1.45;
    font-weight: 700;
}

.vibe-sidebar-poll__closed svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover:hover) {
    .vibe-sidebar-poll__option,
    .vibe-sidebar-poll__choice,
    .vibe-sidebar-poll__submit {
        transition:
            background-color .18s ease,
            border-color .18s ease;
    }

    .vibe-sidebar-poll__option:hover,
    .vibe-sidebar-poll__choice:hover {
        border-color: var(--vibe-border-white-a15);
        background: var(--vibe-bg-card-hover);
    }

    .vibe-sidebar-poll__submit:hover {
        background: var(--vibe-brand-primary-active);
    }
}

/* ---------------------------------------------------------
   Vibe Weather sidebar card
   --------------------------------------------------------- */

.vibe-sidebar-content-block--weather {
    --vibe-text: var(--vibe-white);
    --vibe-muted: var(--vibe-overlay-white-a62);
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--vibe-border-soft);
    border-top: 4px solid var(--vibe-primary);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

.vibe-sidebar-content-block--weather
.vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text-primary);
}

.vibe-sidebar-content-block--weather
.vibe-sidebar-content-block__body > a {
    color: var(--vibe-text-primary) !important;
}

.vibe-sidebar-content-block--weather
.vibe-sidebar-content-block__body > a:hover {
    color: var(--vibe-primary) !important;
    text-decoration: none;
}

.vibe-sidebar-content-block--weather svg {
    color: var(--vibe-primary);
}

.vibe-sidebar-content-block--weather strong {
    color: var(--vibe-text-primary) !important;
}

.vibe-sidebar-content-block--weather span {
    color: var(--vibe-muted);
}

/* =========================================================
   VIBE — INTERNAL PAGE SHELL
   ========================================================= */

.vibe-main--inner {
    width: 100%;
    min-width: 0;
    background: var(--vibe-page);
}

.vibe-page-hero {
    width: 100%;
    background: var(--vibe-bg-sidebar-tone-3b1a5a);
    color: var(--vibe-text-primary);
}

.vibe-page-hero__shell {
    width: min(calc(100% - 48px), 1285px);
    margin: 0 auto;
    padding: 42px 0 44px;
}

.vibe-page-hero__eyebrow {
    display: block;
    margin: 0 0 9px;
    color: var(--vibe-text-accent-soft);
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.vibe-page-hero h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -1.7px;
}

.vibe-page-hero p {
    max-width: 700px;
    margin: 13px 0 0;
    color: var(--vibe-text-white-a78);
    font-size: 16px;
    line-height: 1.55;
    font-weight: 600;
}

.vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    margin: 0 auto;
    padding: 34px 0 54px;
}

.vibe-page-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 34px;
    align-items: start;
}

.vibe-page-content {
    min-width: 0;
}

.vibe-page-sidebar {
    min-width: 0;
    min-height: 260px;
}

.vibe-page-sidebar__inner {
    width: 100%;
    min-width: 0;
    background: var(--vibe-surface);
}


/* =========================================================
   VIBE — RECENTLY PLAYED
   Shared RadioLaunch module, Vibe presentation
   ========================================================= */

.vibe-site .rl-recently-played {
    width: 100%;
    min-width: 0;
}

.vibe-site .rl-recently-played__filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin: 0 0 30px;
    padding: 20px;
    background: var(--vibe-bg-white);
    border-top: 4px solid var(--vibe-primary);
}

.vibe-site .rl-recently-played__field {
    min-width: 0;
}

.vibe-site .rl-recently-played__field label {
    display: block;
    margin: 0 0 7px;
    color: var(--vibe-text-muted-59595f);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-site .rl-recently-played__field select {
    width: 100%;
    height: 46px;
    padding: 0 38px 0 13px;
    border: 1px solid var(--vibe-border-light-d7d7dc);
    border-radius: 5px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    outline: none;
}

.vibe-site .rl-recently-played__field select:focus {
    border-color: var(--vibe-primary);
    box-shadow: 0 0 0 2px var(--vibe-brand-primary-a08);
}

.vibe-site .rl-recently-played__submit {
    height: 46px;
    padding: 0 22px;
    border: 0;
    border-radius: 5px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
}

.vibe-site .rl-recently-played__submit:hover {
    filter: brightness(.93);
}

.vibe-site .rl-recently-played__results-header {
    margin: 0 0 18px;
}

.vibe-site .rl-recently-played__results-header h2 {
    max-width: 820px;
    margin: 0;
    color: var(--vibe-text);
    font-size: 25px;
    line-height: 1.16;
    font-weight: 950;
    letter-spacing: -.6px;
}

.vibe-site .rl-recently-played__programme {
    margin: 0 0 18px;
    padding: 14px 16px;
    background: var(--vibe-bg-white);
    border-left: 4px solid var(--vibe-primary);
}

.vibe-site .rl-recently-played__programme > span {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-muted);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vibe-site .rl-recently-played__programme strong {
    display: block;
    color: var(--vibe-text);
    font-size: 16px;
    line-height: 1.25;
    font-weight: 900;
}

.vibe-site .rl-recently-played__programme small {
    display: block;
    margin-top: 3px;
    color: var(--vibe-muted);
    font-size: 12px;
    font-weight: 700;
}

.vibe-site .rl-recently-played__list {
    overflow: hidden;
    background: var(--vibe-bg-white);
    border-top: 1px solid var(--vibe-border);
}

.vibe-site .rl-recently-played-track {
    display: grid;
    grid-template-columns: 60px 74px minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    min-height: 94px;
    padding: 10px 14px 10px 0;
    border-bottom: 1px solid var(--vibe-border);
}

.vibe-site .rl-recently-played-track__time {
    color: var(--vibe-text-muted-69696e);
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
}

.vibe-site .rl-recently-played-track__artwork {
    width: 74px;
    height: 74px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--vibe-bg-card-light-ececef);
}

.vibe-site .rl-recently-played-track__artwork img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-site .rl-recently-played-track__copy {
    min-width: 0;
}

.vibe-site .rl-recently-played-track__copy strong {
    display: block;
    overflow: hidden;
    color: var(--vibe-text);
    font-size: 18px;
    line-height: 1.15;
    font-weight: 950;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.vibe-site .rl-recently-played-track__copy > span {
    display: block;
    overflow: hidden;
    margin-top: 5px;
    color: var(--vibe-primary);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 800;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.vibe-site .rl-recently-played-track__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: 0;
}

.vibe-site .rl-recently-played .rl-vote-bar {
    display: flex;
    align-items: center;
    gap: 10px;
}

.vibe-site .rl-recently-played .rl-song-vote-button {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 5px 3px;
    border: 0;
    background: transparent;
    color: var(--vibe-text-muted-77777d);
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.vibe-site .rl-recently-played .rl-song-vote-button:hover,
.vibe-site .rl-recently-played .rl-song-vote-button.is-active {
    color: var(--vibe-primary);
}

.vibe-site .rl-recently-played .rl-song-vote-button svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.vibe-site .rl-recently-played .rl-song-vote-button--down svg {
    transform: rotate(180deg);
}

.vibe-site .rl-recently-played-track__actions button,
.vibe-site .rl-recently-played-track__actions a {
    font-family: inherit;
}


/* =========================================================
   VIBE — INTERNAL PAGE RESPONSIVE
   ========================================================= */

@media (max-width: 980px) {
    .vibe-page-layout {
        grid-template-columns: minmax(0, 1fr) 285px;
        gap: 24px;
    }

    .vibe-site .rl-recently-played-track {
        grid-template-columns: 52px 66px minmax(0, 1fr);
    }

    .vibe-site .rl-recently-played-track__artwork {
        width: 66px;
        height: 66px;
    }

    .vibe-site .rl-recently-played-track__actions {
        grid-column: 2 / -1;
        justify-content: flex-start;
        padding-bottom: 5px;
    }
}

@media (max-width: 760px) {
    .vibe-page-hero__shell,
    .vibe-page-shell {
        width: min(calc(100% - 32px), 1285px);
    }

    .vibe-page-hero__shell {
        padding: 32px 0 34px;
    }

    .vibe-page-hero h1 {
        font-size: 38px;
    }

    .vibe-page-shell {
        padding-top: 24px;
    }

    .vibe-page-layout {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .vibe-page-sidebar {
        min-height: 0;
    }

    .vibe-site .rl-recently-played__filters {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .vibe-site .rl-recently-played__submit {
        width: 100%;
    }

    .vibe-site .rl-recently-played-track {
        grid-template-columns: 48px 62px minmax(0, 1fr);
        gap: 11px;
        min-height: 82px;
        padding-right: 10px;
    }

    .vibe-site .rl-recently-played-track__artwork {
        width: 62px;
        height: 62px;
    }

    .vibe-site .rl-recently-played-track__copy strong {
        font-size: 16px;
    }

    .vibe-site .rl-recently-played-track__copy > span {
        font-size: 13px;
    }

    .vibe-site .rl-recently-played-track__actions {
        grid-column: 2 / -1;
    }
}

/* =========================================================
   VIBE — INNER PAGE REDESIGN
   Strong Vibe presentation overrides
   ========================================================= */

.vibe-site--inner .vibe-main--inner {
    background: var(--vibe-bg-header-tone-2b0750);
}

/* Full-width branded page hero */
.vibe-site--inner .vibe-page-hero {
    position: relative;
    overflow: hidden;
    border-top: 1px solid var(--vibe-border-white-a04);
    border-bottom: 1px solid var(--vibe-border-subtle);
    background:
        radial-gradient(
            circle at 1px 1px,
            var(--vibe-bg-page-tone-ee1089-a18) 2px,
            transparent 2.5px
        ) 0 0 / 25px 25px,
        linear-gradient(
            100deg,
            var(--vibe-bg-page-tone-1b052d) 0%,
            var(--vibe-bg-page-tone-2b0748) 58%,
            var(--vibe-bg-page-tone-3d0a62) 100%
        );
}

.vibe-site--inner .vibe-page-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: var(--vibe-primary);
}

.vibe-site--inner .vibe-page-hero::after {
    content: "";
    position: absolute;
    top: -120px;
    right: 7%;
    width: 420px;
    height: 420px;
    border: 80px solid var(--vibe-brand-primary-a08);
    transform: rotate(28deg);
    pointer-events: none;
}

.vibe-site--inner .vibe-page-hero__shell {
    position: relative;
    z-index: 1;
    width: min(calc(100% - 48px), 1285px);
    min-height: 210px;
    margin: 0 auto;
    padding: 52px 0 48px;
}

.vibe-site--inner .vibe-page-hero__eyebrow {
    margin-bottom: 11px;
    color: var(--vibe-brand-primary-bright);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: .14em;
}

.vibe-site--inner .vibe-page-hero h1 {
    max-width: 820px;
    color: var(--vibe-text-primary);
    font-size: clamp(44px, 5vw, 68px);
    line-height: .94;
    font-weight: 950;
    letter-spacing: -2.5px;
}

.vibe-site--inner .vibe-page-hero p {
    max-width: 680px;
    margin-top: 17px;
    color: var(--vibe-text-white-a74);
    font-size: 17px;
    line-height: 1.55;
    font-weight: 650;
}

/* Main page / sidebar structure */
.vibe-site--inner .vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    margin: 0 auto;
    padding: 38px 0 58px;
}

.vibe-site--inner .vibe-page-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 30px;
    align-items: start;
}

.vibe-site--inner .vibe-page-content,
.vibe-site--inner .vibe-page-sidebar {
    min-width: 0;
}

.vibe-site--inner .vibe-page-sidebar {
    min-height: 300px;
}

.vibe-site--inner .vibe-page-sidebar__inner {
    background: transparent;
}

/* Vibe sidebar blocks on internal pages */
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block {
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--vibe-border-soft);
    border-top: 4px solid var(--vibe-primary);
    border-radius: 5px;
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body {
    padding: 20px;
    color: var(--vibe-text-primary);
}

.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body h2,
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body h3,
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body h4,
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body p,
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block__body span {
    color: var(--vibe-text-white-a68);
}

/* =========================================================
   VIBE — RECENTLY PLAYED
   ========================================================= */

.vibe-site--inner .rl-recently-played {
    color: var(--vibe-text-primary);
}

/* Date/time finder */
.vibe-site--inner .rl-recently-played__filters {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin: 0 0 34px;
    padding: 22px;
    border: 1px solid var(--vibe-border-soft);
    border-top: 4px solid var(--vibe-primary);
    border-radius: 5px;
    background: var(--vibe-bg-panel);
}

.vibe-site--inner .rl-recently-played__field label {
    margin-bottom: 8px;
    color: var(--vibe-text-white-a64);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .09em;
}

.vibe-site--inner .rl-recently-played__field select {
    height: 48px;
    border: 1px solid var(--vibe-border-white-a15);
    border-radius: 4px;
    background: var(--vibe-bg-page-tone-26083f);
    color: var(--vibe-text-primary);
    font-size: 14px;
    font-weight: 800;
}

.vibe-site--inner .rl-recently-played__field select:focus {
    border-color: var(--vibe-primary);
    box-shadow: 0 0 0 2px var(--vibe-brand-primary-a20);
}

.vibe-site--inner .rl-recently-played__submit {
    height: 48px;
    padding: 0 25px;
    border-radius: 4px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 13px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.vibe-site--inner .rl-recently-played__submit:hover {
    filter: brightness(.9);
}

/* Playlist title */
.vibe-site--inner .rl-recently-played__results-header {
    margin: 0 0 19px;
}

.vibe-site--inner .rl-recently-played__results-header h2 {
    max-width: 900px;
    color: var(--vibe-text-primary);
    font-size: clamp(25px, 2.2vw, 32px);
    line-height: 1.1;
    font-weight: 950;
    letter-spacing: -1px;
}

/* Programme indicator */
.vibe-site--inner .rl-recently-played__programme {
    margin-bottom: 18px;
    padding: 15px 17px;
    border: 1px solid var(--vibe-border-subtle);
    border-left: 4px solid var(--vibe-primary);
    background: var(--vibe-bg-panel);
}

.vibe-site--inner .rl-recently-played__programme > span {
    color: var(--vibe-text-accent-bright);
}

.vibe-site--inner .rl-recently-played__programme strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-recently-played__programme small {
    color: var(--vibe-text-white-a58);
}

/* Track list */
.vibe-site--inner .rl-recently-played__list {
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 5px;
    background: var(--vibe-bg-panel);
}

.vibe-site--inner .rl-recently-played-track {
    display: grid;
    grid-template-columns: 62px 78px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    min-height: 100px;
    padding: 11px 16px 11px 0;
    border-bottom: 1px solid var(--vibe-border-subtle);
    background: transparent;
    transition: background .15s ease;
}

.vibe-site--inner .rl-recently-played-track:last-child {
    border-bottom: 0;
}

.vibe-site--inner .rl-recently-played-track:hover {
    background: transparent;
}

.vibe-site--inner .rl-recently-played-track__time {
    color: var(--vibe-text-white-a50);
    font-size: 13px;
    font-weight: 900;
}

.vibe-site--inner .rl-recently-played-track__artwork {
    width: 78px;
    height: 78px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--vibe-bg-panel-media);
}

.vibe-site--inner .rl-recently-played-track__copy strong {
    color: var(--vibe-text-primary);
    font-size: 18px;
    line-height: 1.15;
    font-weight: 950;
}

.vibe-site--inner .rl-recently-played-track__copy > span {
    margin-top: 5px;
    color: var(--vibe-brand-primary-bright);
    font-size: 14px;
    font-weight: 850;
}

.vibe-site--inner .rl-recently-played-track__actions {
    gap: 14px;
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button {
    color: var(--vibe-text-white-a55);
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button:hover,
.vibe-site--inner .rl-recently-played .rl-song-vote-button.is-active {
    color: var(--vibe-brand-primary-bright);
}

/* Preview / action controls from shared module */
.vibe-site--inner .rl-recently-played-track__actions button:not(.rl-song-vote-button),
.vibe-site--inner .rl-recently-played-track__actions a {
    border-color: var(--vibe-border-white-a14);
    background: var(--vibe-overlay-white-a06);
    color: var(--vibe-button-text);
}

.vibe-site--inner .rl-recently-played-track__actions button:not(.rl-song-vote-button):hover,
.vibe-site--inner .rl-recently-played-track__actions a:hover {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
}

/* Empty state */
.vibe-site--inner .rl-recently-played__empty {
    padding: 28px;
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-white-a64);
}

/* =========================================================
   VIBE — INNER PAGE MOBILE
   ========================================================= */

@media (max-width: 980px) {
    .vibe-site--inner .vibe-page-layout {
        grid-template-columns: minmax(0, 1fr) 285px;
        gap: 22px;
    }

    .vibe-site--inner .rl-recently-played-track {
        grid-template-columns: 54px 68px minmax(0, 1fr);
    }

    .vibe-site--inner .rl-recently-played-track__artwork {
        width: 68px;
        height: 68px;
    }

    .vibe-site--inner .rl-recently-played-track__actions {
        grid-column: 2 / -1;
        justify-content: flex-start;
        padding-bottom: 5px;
    }
}

@media (max-width: 760px) {
    .vibe-site--inner .vibe-page-hero__shell,
    .vibe-site--inner .vibe-page-shell {
        width: min(calc(100% - 32px), 1285px);
    }

    .vibe-site--inner .vibe-page-hero__shell {
        min-height: 0;
        padding: 38px 0 36px;
    }

    .vibe-site--inner .vibe-page-hero h1 {
        font-size: 43px;
    }

    .vibe-site--inner .vibe-page-hero p {
        font-size: 15px;
    }

    .vibe-site--inner .vibe-page-shell {
        padding-top: 25px;
    }

    .vibe-site--inner .vibe-page-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .vibe-site--inner .vibe-page-sidebar {
        min-height: 0;
    }

    .vibe-site--inner .rl-recently-played__filters {
        grid-template-columns: 1fr;
        padding: 17px;
    }

    .vibe-site--inner .rl-recently-played__submit {
        width: 100%;
    }

    .vibe-site--inner .rl-recently-played-track {
        grid-template-columns: 48px 64px minmax(0, 1fr);
        gap: 11px;
        min-height: 86px;
        padding-right: 10px;
    }

    .vibe-site--inner .rl-recently-played-track__artwork {
        width: 64px;
        height: 64px;
    }

    .vibe-site--inner .rl-recently-played-track__copy strong {
        font-size: 16px;
    }

    .vibe-site--inner .rl-recently-played-track__copy > span {
        font-size: 13px;
    }
}

/* =========================================================
   VIBE — COMPACT INTERNAL PAGE HERO
   ========================================================= */

.vibe-site--inner .vibe-page-hero {
    background:
        radial-gradient(
            circle at 1px 1px,
            var(--vibe-brand-primary-a16) 2px,
            transparent 2.5px
        ) 0 0 / 25px 25px,
        linear-gradient(
            90deg,
            var(--vibe-bg-page-tone-1b052d) 0%,
            var(--vibe-bg-page-tone-25063e) 58%,
            var(--vibe-bg-page-tone-31084f) 100%
        );
}

.vibe-site--inner .vibe-page-hero::before {
    height: 4px;
}

.vibe-site--inner .vibe-page-hero::after {
    width: 230px;
    height: 230px;
    top: -115px;
    right: 9%;
    border-width: 42px;
    opacity: .7;
}

.vibe-site--inner .vibe-page-hero__shell {
    display: flex;
    align-items: center;
    gap: 17px;
    min-height: 118px;
    padding: 28px 0;
}

.vibe-site--inner .vibe-page-hero__accent {
    width: 6px;
    height: 49px;
    flex: 0 0 6px;
    border-radius: 3px;
    background: var(--vibe-primary);
}

.vibe-site--inner .vibe-page-hero h1 {
    max-width: none;
    margin: 0;
    font-size: clamp(34px, 3.4vw, 48px);
    line-height: .98;
    letter-spacing: -1.6px;
}


/* =========================================================
   VIBE — RECENTLY PLAYED PREVIEW BUTTON
   ========================================================= */

.vibe-site--inner
.rl-recently-played-track__actions
.rl-recently-played-track__preview {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: auto;
    min-width: 0;
    height: 38px;
    padding: 0 14px;
    border: 1px solid var(--vibe-primary);
    border-radius: 999px;
    background: transparent;
    color: var(--vibe-brand-primary-bright);
    font: inherit;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.vibe-site--inner
.rl-recently-played-track__preview svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
}

.vibe-site--inner
.rl-recently-played-track__actions
.rl-recently-played-track__preview:hover,
.vibe-site--inner
.rl-recently-played-track__actions
.rl-recently-played-track__preview.is-playing {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

@media (max-width: 760px) {
    .vibe-site--inner .vibe-page-hero__shell {
        min-height: 96px;
        padding: 22px 0;
    }

    .vibe-site--inner .vibe-page-hero__accent {
        height: 40px;
    }

    .vibe-site--inner .vibe-page-hero h1 {
        font-size: 36px;
    }
}

/* =========================================================
   VIBE — INTERNAL PAGE SECTION HEADING
   Matches homepage section treatment
   ========================================================= */

.vibe-site--inner .vibe-page-shell {
    padding-top: 42px;
}

.vibe-inner-section-heading {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 30px;
}

.vibe-inner-section-heading__bar {
    width: 6px;
    height: 36px;
    flex: 0 0 6px;
    background: var(--vibe-primary);
}

.vibe-inner-section-heading h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 36px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -1px;
}

@media (max-width: 760px) {
    .vibe-site--inner .vibe-page-shell {
        padding-top: 28px;
    }

    .vibe-inner-section-heading {
        gap: 14px;
        margin-bottom: 22px;
    }

    .vibe-inner-section-heading__bar {
        width: 5px;
        height: 31px;
        flex-basis: 5px;
    }

    .vibe-inner-section-heading h1 {
        font-size: 30px;
    }
}

/* =========================================================
   VIBE — RECENTLY PLAYED TYPOGRAPHY BALANCE
   ========================================================= */

.vibe-site--inner .vibe-inner-section-heading {
    margin-bottom: 26px;
}

.vibe-site--inner .vibe-inner-section-heading__bar {
    height: 30px;
}

.vibe-site--inner .vibe-inner-section-heading h1 {
    font-size: 30px !important;
    line-height: 1 !important;
    font-weight: 900;
    letter-spacing: -.6px;
}

.vibe-site--inner .rl-recently-played__results-header h2 {
    max-width: 760px;
    font-size: 22px !important;
    line-height: 1.18 !important;
    font-weight: 900;
    letter-spacing: -.4px;
}

.vibe-site--inner .rl-recently-played__field label {
    font-size: 10px;
    letter-spacing: .08em;
}

.vibe-site--inner .rl-recently-played__field select {
    font-size: 14px;
    font-weight: 750;
}

.vibe-site--inner .rl-recently-played__submit {
    font-size: 12px;
    font-weight: 900;
}

.vibe-site--inner .rl-recently-played-track__copy strong {
    font-size: 16px;
    font-weight: 900;
}

.vibe-site--inner .rl-recently-played-track__copy > span {
    font-size: 13px;
}

@media (max-width: 760px) {
    .vibe-site--inner .vibe-inner-section-heading h1 {
        font-size: 27px !important;
    }

    .vibe-site--inner .rl-recently-played__results-header h2 {
        font-size: 20px !important;
    }
}

/* =========================================================
   VIBE — RECENTLY PLAYED REFERENCE LAYOUT
   Solid background, no dots, no back link, no overflow menu
   ========================================================= */

.vibe-site--inner .vibe-main--inner {
    background: var(--vibe-bg-header-tone-250341) !important;
    background-image: none !important;
}

.vibe-site--inner .vibe-page-shell {
    padding-top: 34px;
}

/* Page heading */
.vibe-site--inner .vibe-inner-section-heading {
    gap: 15px;
    margin-bottom: 25px;
}

.vibe-site--inner .vibe-inner-section-heading__bar {
    width: 5px;
    height: 34px;
    flex-basis: 5px;
}

.vibe-site--inner .vibe-inner-section-heading h1 {
    font-size: 32px !important;
    font-weight: 900;
}


/* Finder */
.vibe-site--inner .rl-recently-played__filters {
    gap: 20px;
    margin-bottom: 28px;
    padding: 24px 28px;
    border: 1px solid var(--vibe-border-medium);
    border-top: 4px solid var(--vibe-primary);
    border-radius: 9px;
    background: var(--vibe-bg-header-tone-170326);
}

.vibe-site--inner .rl-recently-played__field {
    position: relative;
}

.vibe-site--inner .rl-recently-played__field label {
    margin-bottom: 10px;
    color: var(--vibe-text-white-a60);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;
}

.vibe-site--inner .rl-recently-played__select-icon {
    position: absolute;
    z-index: 2;
    left: 15px;
    bottom: 14px;
    width: 20px;
    height: 20px;
    color: var(--vibe-text-white-a72);
    pointer-events: none;
}

.vibe-site--inner .rl-recently-played__select-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.vibe-site--inner .rl-recently-played__field select {
    height: 50px;
    padding-left: 48px;
    border: 1px solid var(--vibe-border-white-a17);
    border-radius: 6px;
    background: var(--vibe-bg-card-tone-280743);
    color: var(--vibe-text-primary);
    font-size: 14px;
    font-weight: 800;
}

.vibe-site--inner .rl-recently-played__submit {
    height: 50px;
    padding: 0 25px;
    border-radius: 6px;
    font-size: 12px;
    letter-spacing: .02em;
}


/* Playlist summary */
.vibe-site--inner .rl-recently-played__results-header {
    margin: 0 0 20px;
}

.vibe-site--inner .rl-recently-played__playlist-summary {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 260px;
    gap: 18px;
    align-items: center;
}

.vibe-site--inner .rl-recently-played__playlist-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border: 2px solid var(--vibe-primary);
    border-radius: 50%;
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-recently-played__playlist-icon svg {
    width: 27px;
    height: 27px;
}

.vibe-site--inner .rl-recently-played__playlist-copy > span {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-primary);
    font-size: 12px;
    font-weight: 850;
}

.vibe-site--inner .rl-recently-played__playlist-copy h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 21px !important;
    line-height: 1.12 !important;
    font-weight: 900;
    letter-spacing: -.35px;
}

.vibe-site--inner .rl-recently-played__playlist-copy strong {
    display: block;
    margin-top: 5px;
    color: var(--vibe-primary);
    font-size: 13px;
    font-weight: 850;
}

.vibe-site--inner .rl-recently-played__chart-callout {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 18px;
    gap: 11px;
    align-items: center;
    min-height: 62px;
    padding: 11px 14px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 8px;
    background: var(--vibe-bg-card-tone-19042d);
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-site--inner .rl-recently-played__chart-callout:hover {
    border-color: var(--vibe-primary);
}

.vibe-site--inner .rl-recently-played__chart-icon {
    width: 29px;
    height: 29px;
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-recently-played__chart-callout span {
    color: var(--vibe-text-secondary);
    font-size: 11px;
    line-height: 1.35;
    font-weight: 750;
}

.vibe-site--inner .rl-recently-played__chart-arrow {
    width: 17px;
    height: 17px;
    color: var(--vibe-primary);
}


/* Table header */
.vibe-site--inner .rl-recently-played__table-head {
    display: grid;
    grid-template-columns:
        76px
        minmax(0, 1fr)
        118px
        132px;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    border: 1px solid var(--vibe-border-medium);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: var(--vibe-bg-header-tone-170326);
    color: var(--vibe-text-white-a55);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-site--inner .rl-recently-played__table-head span:nth-child(3),
.vibe-site--inner .rl-recently-played__table-head span:nth-child(4) {
    text-align: center;
}


/* Track table */
.vibe-site--inner .rl-recently-played__list {
    border: 1px solid var(--vibe-border-medium);
    border-radius: 0 0 8px 8px;
    background: var(--vibe-bg-card-tone-19042d);
}

.vibe-site--inner .rl-recently-played-track {
    display: grid;
    grid-template-columns:
        76px
        72px
        minmax(0, 1fr)
        118px
        132px;
    gap: 14px;
    align-items: center;
    min-height: 86px;
    padding: 9px 18px;
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-site--inner .rl-recently-played-track__time {
    grid-column: 1;
    color: var(--vibe-text-secondary);
    font-size: 13px;
    font-weight: 850;
    text-align: left;
}

.vibe-site--inner .rl-recently-played-track__artwork {
    grid-column: 2;
    width: 62px;
    height: 62px;
    border-radius: 5px;
}

.vibe-site--inner .rl-recently-played-track__copy {
    grid-column: 3;
}

.vibe-site--inner .rl-recently-played-track__copy strong {
    font-size: 15px;
    font-weight: 900;
}

.vibe-site--inner .rl-recently-played-track__copy > span {
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 12px;
}

.vibe-site--inner .rl-recently-played-track__actions {
    display: contents;
}

.vibe-site--inner .rl-recently-played .rl-vote-bar {
    grid-column: 4;
    justify-content: center;
    gap: 11px;
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button {
    color: var(--vibe-text-white-a58);
    font-size: 11px;
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button:hover,
.vibe-site--inner .rl-recently-played .rl-song-vote-button.is-active {
    color: var(--vibe-primary);
}


/* Preview — no overflow / three-dot menu */
.vibe-site--inner .rl-recently-played-track__preview {
    grid-column: 5;
    justify-self: center;
    height: 38px !important;
    padding: 0 16px !important;
    border: 1px solid var(--vibe-primary) !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--vibe-text-primary) !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .05em;
}

.vibe-site--inner .rl-recently-played-track__preview svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--vibe-primary);
    fill: currentColor;
}

.vibe-site--inner .rl-recently-played-track__preview:hover,
.vibe-site--inner .rl-recently-played-track__preview.is-playing {
    background: var(--vibe-primary) !important;
    color: var(--vibe-text-primary) !important;
}

.vibe-site--inner .rl-recently-played-track__preview:hover svg,
.vibe-site--inner .rl-recently-played-track__preview.is-playing svg {
    color: var(--vibe-text-primary);
}


/* Responsive */
@media (max-width: 980px) {
    .vibe-site--inner .rl-recently-played__playlist-summary {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    .vibe-site--inner .rl-recently-played__chart-callout {
        grid-column: 1 / -1;
    }

    .vibe-site--inner .rl-recently-played__table-head {
        display: none;
    }

    .vibe-site--inner .rl-recently-played__list {
        border-radius: 8px;
    }

    .vibe-site--inner .rl-recently-played-track {
        grid-template-columns: 56px 62px minmax(0, 1fr);
    }

    .vibe-site--inner .rl-recently-played-track__time {
        grid-column: 1;
    }

    .vibe-site--inner .rl-recently-played-track__artwork {
        grid-column: 2;
    }

    .vibe-site--inner .rl-recently-played-track__copy {
        grid-column: 3;
    }

    .vibe-site--inner .rl-recently-played .rl-vote-bar {
        grid-column: 2 / 3;
        justify-content: flex-start;
    }

    .vibe-site--inner .rl-recently-played-track__preview {
        grid-column: 3;
        justify-self: start;
    }
}

@media (max-width: 760px) {
    .vibe-site--inner .rl-recently-played__filters {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 18px;
    }

    .vibe-site--inner .rl-recently-played__playlist-summary {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 13px;
    }

    .vibe-site--inner .rl-recently-played__playlist-icon {
        width: 50px;
        height: 50px;
    }

    .vibe-site--inner .rl-recently-played__playlist-icon svg {
        width: 22px;
        height: 22px;
    }

    .vibe-site--inner .rl-recently-played__playlist-copy h2 {
        font-size: 18px !important;
    }

    .vibe-site--inner .rl-recently-played-track {
        grid-template-columns: 46px 58px minmax(0, 1fr);
        gap: 10px;
        padding: 10px;
    }

    .vibe-site--inner .rl-recently-played-track__artwork {
        width: 56px;
        height: 56px;
    }
}

/* =========================================================
   VIBE — MATCH HOMEPAGE INNER / OUTER COLOURS
   + RECENTLY PLAYED SELECT ICON FIX
   ========================================================= */

/* Same outer colour as the Vibe homepage */
.vibe-site--inner .vibe-main--inner {
    background: var(--vibe-bg-frame) !important;
    background-image: none !important;
}

/* Same inner framed colour as .vibe-homepage__frame */
.vibe-site--inner .vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    margin: 0 auto;
    padding: 34px 27px 58px;
    box-sizing: border-box;
    background: var(--vibe-bg-frame-alt);
}

/* Keep the layout contained inside the inner frame */
.vibe-site--inner .vibe-page-layout {
    width: 100%;
}

/* Correct icon positioning inside date/time fields */
.vibe-site--inner .rl-recently-played__field {
    position: relative;
}

.vibe-site--inner .rl-recently-played__select-icon {
    position: absolute;
    z-index: 3;
    left: 17px;
    bottom: 13px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-white-a72);
    pointer-events: none;
}

.vibe-site--inner .rl-recently-played__select-icon svg {
    display: block;
    width: 20px;
    height: 20px;
}

/* Force enough room between icon and select text */
.vibe-site--inner .rl-recently-played__field select {
    padding-left: 56px !important;
    padding-right: 42px !important;
}

/* Mobile keeps the same two-colour Vibe shell */
@media (max-width: 760px) {
    .vibe-site--inner .vibe-page-shell {
        width: min(calc(100% - 32px), 1285px);
        padding: 28px 18px 42px;
    }
}

/* Vibe Recently Played — date/time icon spacing fix */
.vibe-site--inner .rl-recently-played__field select {
    padding-left: 16px !important;
    text-indent: 36px !important;
}

.vibe-site--inner .rl-recently-played__select-icon {
    left: 17px;
}

/* =========================================================
   VIBE — SHARED REDLINE EVENTS DESIGN
   Structure/layout intentionally identical across themes.
   ========================================================= */

.vibe-site--inner {
    --rl-redline-red: var(--vibe-primary);
}

   REDLINE EVENTS
   ========================================================= */

.rl-redline-events {
    width: 100%;
    min-width: 0;
    font-family: inherit;
}

.rl-redline-events a {
    color: inherit;
    text-decoration: none;
}

/* Featured event */

.rl-redline-events__featured {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(300px, .92fr);
    min-height: 330px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-events__featured-image {
    display: block;
    align-self: start;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-events__featured-image img,
.rl-redline-events__featured-image .rl-redline-events__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    object-position: center;
}

.rl-redline-events__featured-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 30px 32px;
}

.rl-redline-events__eyebrow {
    display: block;
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.rl-redline-events__featured-copy h2 {
    margin: 10px 0 0;
    color: var(--vibe-text-dark);
    font-size: 25px;
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -.025em;
}

.rl-redline-events__featured-summary {
    margin: 12px 0 0;
    color: var(--vibe-text-muted-666666);
    font-size: 12px;
    line-height: 1.55;
    font-weight: 600;
}

.rl-redline-events__featured-meta {
    display: grid;
    gap: 8px;
    margin-top: 17px;
    color: var(--vibe-text-muted-555555);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 700;
}

.rl-redline-events__featured-meta > div,
.rl-redline-events__card-meta > div {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.rl-redline-events__featured-meta svg,
.rl-redline-events__card-meta svg {
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-events__featured-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    gap: 9px;
    min-height: 38px;
    margin-top: 20px;
    padding: 0 17px;
    border-radius: 3px;
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-button-text) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-events__featured-button span {
    font-size: 19px;
    line-height: .7;
}

/* Filters */

.rl-redline-events__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
    padding: 8px;
    border: 1px solid var(--vibe-border-light-e3e3e3);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-events__categories {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.rl-redline-events__categories::-webkit-scrollbar {
    display: none;
}

.rl-redline-events__categories a {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border-radius: 3px;
    color: var(--vibe-text-dark-242424);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
}

.rl-redline-events__categories a:hover {
    background: var(--vibe-bg-card-raised-light-f3f3f3);
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-events__categories a.is-active {
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary);
}

.rl-redline-events__categories a.is-active:hover {
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary);
}

.rl-redline-events__controls {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
}

.rl-redline-events__controls label {
    position: relative;
    display: block;
}

.rl-redline-events__controls select {
    min-width: 122px;
    height: 36px;
    padding: 0 34px 0 12px;
    border: 1px solid var(--vibe-border-light-d7d7d7);
    border-radius: 3px;
    outline: 0;
    appearance: none;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-333333);
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}

.rl-redline-events__controls label svg {
    position: absolute;
    top: 50%;
    right: 10px;
    width: 14px;
    height: 14px;
    pointer-events: none;
    fill: none;
    stroke: var(--vibe-text-muted-555555);
    stroke-width: 2;
    transform: translateY(-50%);
}

.rl-redline-events__clear {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 10px;
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent)) !important;
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

/* Grid */

.rl-redline-events__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 18px;
}

.rl-redline-events__card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-events__card-image {
    display: block;
    width: 100%;
    aspect-ratio: 1.45 / 1;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-events__card-image img,
.rl-redline-events__card-image .rl-redline-events__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-events__placeholder {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: var(--vibe-bg-card-light-e8e8e8);
    color: var(--vibe-text-muted-777777);
    font-size: 11px;
    font-weight: 900;
    text-align: center;
}

.rl-redline-events__card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
    padding: 14px 14px 15px;
}

.rl-redline-events__card-copy h3 {
    margin: 8px 0 0;
    color: var(--vibe-text-dark);
    font-size: 15px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: -.015em;
}

.rl-redline-events__card-copy h3 a:hover {
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-events__card-copy > p {
    margin: 9px 0 0;
    color: var(--vibe-text-muted-707070);
    font-size: 10px;
    line-height: 1.45;
    font-weight: 600;
}

.rl-redline-events__card-meta {
    display: grid;
    gap: 7px;
    margin-top: 13px;
    color: var(--vibe-text-muted-666666);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
}

.rl-redline-events__card-meta svg {
    flex-basis: 13px;
    width: 13px;
    height: 13px;
}

.rl-redline-events__card-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    min-height: 34px;
    margin-top: 15px;
    padding: 0 13px;
    border: 1px solid var(--vibe-border-light-d3d3d3);
    border-radius: 3px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-secondary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-events__card-button:hover {
    border-color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent)) !important;
}

/* Submit event */

.rl-redline-events__submit {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
    padding: 16px 18px;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-events__submit-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--vibe-bg-card-light-fff0f0);
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-events__submit-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-events__submit strong {
    display: block;
    color: var(--vibe-text-dark);
    font-size: 13px;
    line-height: 1.1;
    font-weight: 900;
}

.rl-redline-events__submit p {
    margin: 4px 0 0;
    color: var(--vibe-text-muted-777777);
    font-size: 10px;
    line-height: 1.3;
    font-weight: 600;
}

.rl-redline-events__submit > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 15px;
    border-radius: 3px;
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

/* Load more */

.rl-redline-events__load-more {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.rl-redline-events__load-more a,
.rl-redline-events__load-more > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 156px;
    min-height: 38px;
    padding: 0 17px;
    border: 1px solid var(--vibe-border-light-d4d4d4);
    border-radius: 3px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-252525);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-events__load-more > span {
    opacity: .45;
}

.rl-redline-events__empty {
    margin-top: 18px;
    padding: 48px 24px;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
    text-align: center;
}

.rl-redline-events__empty h2 {
    margin: 0;
    color: var(--vibe-text-dark);
    font-size: 19px;
    font-weight: 900;
}

.rl-redline-events__empty p {
    margin: 7px 0 0;
    color: var(--vibe-text-muted-707070);
    font-size: 11px;
}

/* Responsive */

@media (max-width: 1120px) {
    .rl-redline-events__featured {
        grid-template-columns: 1fr;
    }

    .rl-redline-events__featured-image,
    .rl-redline-events__featured-image img,
    .rl-redline-events__featured-image .rl-redline-events__placeholder {
        min-height: 0;
    }

    .rl-redline-events__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .rl-redline-events__controls {
        justify-content: flex-end;
    }

    .rl-redline-events__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .rl-redline-events__featured-image,
    .rl-redline-events__featured-image img,
    .rl-redline-events__featured-image .rl-redline-events__placeholder {
        min-height: 0;
    }

    .rl-redline-events__featured-copy {
        padding: 22px 18px;
    }

    .rl-redline-events__featured-copy h2 {
        font-size: 21px;
    }

    .rl-redline-events__controls {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .rl-redline-events__controls label,
    .rl-redline-events__controls select {
        width: 100%;
    }

    .rl-redline-events__grid {
        grid-template-columns: 1fr;
    }

    .rl-redline-events__submit {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .rl-redline-events__submit > a {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* Redline single-event hero metadata */

.rl-redline-page-hero__event-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 22px;
    margin-top: 14px;
    color: var(--vibe-text-primary);
}

.rl-redline-page-hero__event-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    white-space: nowrap;
}

.rl-redline-page-hero__event-meta-item svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 700px) {
    .rl-redline-page-hero__event-meta {
        gap: 9px 16px;
        margin-top: 12px;
    }

    .rl-redline-page-hero__event-meta-item {
        font-size: 12px;
    }
}

/* =========================================================
   Redline single event detail
   ========================================================= */

.rl-redline-event-detail {
    width: 100%;
    min-width: 0;
    font-family: inherit;
}

.rl-redline-event-detail a {
    color: inherit;
    text-decoration: none;
}

/* Event image + key details */

.rl-redline-event-detail__overview {
    display: grid;
    grid-template-columns: minmax(0, 1.34fr) minmax(270px, .86fr);
    min-height: 355px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-event-detail__image {
    align-self: start;
    width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-event-detail__image img,
.rl-redline-event-detail__image-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    object-position: center;
}

.rl-redline-event-detail__image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
    color: var(--vibe-text-muted-777777);
    font-size: 14px;
    font-weight: 900;
    text-align: center;
}

.rl-redline-event-detail__overview-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 28px 30px;
}

.rl-redline-event-detail__meta {
    display: grid;
    gap: 12px;
    color: var(--vibe-text-muted-4d4d4d);
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
}

.rl-redline-event-detail__meta > div {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.rl-redline-event-detail__meta svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-event-detail__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.rl-redline-event-detail__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid var(--vibe-border-light-d2d2d2);
    border-radius: 3px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-secondary) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-event-detail__button.is-primary {
    border-color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-button-text) !important;
}

.rl-redline-event-detail__button svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-event-detail__summary {
    margin: 18px 0 0;
    color: var(--vibe-text-muted-696969);
    font-size: 12px;
    line-height: 1.55;
    font-weight: 600;
}

/* Two-column content rows */

.rl-redline-event-detail__split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.rl-redline-event-detail__split.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.rl-redline-event-detail__panel {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-event-detail__panel > h2 {
    margin: 0;
    padding-bottom: 13px;
    border-bottom: 2px solid var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-dark-191919);
    font-size: 16px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: -.015em;
}

.rl-redline-event-detail__body {
    padding-top: 15px;
    color: var(--vibe-text-muted-5f5f5f);
    font-size: 12px;
    line-height: 1.7;
    font-weight: 600;
}

/* Line-up */

.rl-redline-event-detail__lineup {
    display: grid;
    gap: 0;
    margin-top: 5px;
}

.rl-redline-event-detail__lineup-item {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 58px;
    padding: 9px 0;
    border-bottom: 1px solid var(--vibe-border-light-eeeeee);
}

.rl-redline-event-detail__lineup-item:last-child {
    border-bottom: 0;
}

.rl-redline-event-detail__lineup-image {
    display: flex;
    flex: 0 0 40px;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--vibe-bg-card-light-f1f1f1);
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 13px;
    font-weight: 900;
}

.rl-redline-event-detail__lineup-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-event-detail__lineup-item > strong {
    color: var(--vibe-text-dark-242424);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 900;
}

/* Event information */

.rl-redline-event-detail__information-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    padding-top: 16px;
}

.rl-redline-event-detail__information-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-width: 0;
}

.rl-redline-event-detail__information-icon {
    display: flex;
    flex: 0 0 32px;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--vibe-bg-card-light-fff0f0);
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-event-detail__information-icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-event-detail__information-item strong {
    display: block;
    color: var(--vibe-text-dark-252525);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
}

.rl-redline-event-detail__information-item p {
    margin: 3px 0 0;
    color: var(--vibe-text-muted-707070);
    font-size: 10px;
    line-height: 1.45;
    font-weight: 600;
}

/* Location */

.rl-redline-event-detail__location {
    padding-top: 16px;
}

.rl-redline-event-detail__map {
    width: 100%;
    height: 175px;
    overflow: hidden;
    border-radius: 6px;
    background: var(--vibe-bg-card-light-e9e9e9);
}

.rl-redline-event-detail__map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.rl-redline-event-detail__location-copy {
    padding-top: 13px;
    color: var(--vibe-text-muted-666666);
    font-size: 11px;
    line-height: 1.5;
    font-weight: 600;
}

.rl-redline-event-detail__location-copy > strong {
    display: block;
    color: var(--vibe-text-dark-242424);
    font-size: 12px;
    font-weight: 900;
}

.rl-redline-event-detail__location-copy p {
    margin: 4px 0 0;
}

.rl-redline-event-detail__location-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 11px;
}

.rl-redline-event-detail__location-links a {
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 10px;
    font-weight: 900;
}

.rl-redline-event-detail__location-links a:hover {
    text-decoration: underline;
}

/* Related events */

.rl-redline-event-detail__related {
    margin-top: 16px;
}

.rl-redline-event-detail__related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 16px;
}

.rl-redline-event-detail__related-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e3e3e3);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-event-detail__related-media {
    display: block;
    width: 100%;
    aspect-ratio: 1.55 / 1;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-event-detail__related-media img,
.rl-redline-event-detail__related-media > span {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-event-detail__related-media > span {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
    color: var(--vibe-text-muted-777777);
    font-size: 10px;
    font-weight: 900;
    text-align: center;
}

.rl-redline-event-detail__related-copy {
    padding: 12px 13px 14px;
}

.rl-redline-event-detail__related-copy h3 {
    margin: 0;
    color: var(--vibe-text-dark-1d1d1d);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 900;
}

.rl-redline-event-detail__related-copy h3 a:hover {
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-event-detail__related-copy p {
    margin: 5px 0 0;
    color: var(--vibe-text-muted-777777);
    font-size: 10px;
    line-height: 1.3;
    font-weight: 600;
}

.rl-redline-event-detail__related-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 11px;
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent)) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-event-detail__related-link span {
    font-size: 16px;
    line-height: .7;
}

/* Responsive */

@media (max-width: 1120px) {
    .rl-redline-event-detail__overview {
        grid-template-columns: 1fr;
    }

    .rl-redline-event-detail__image,
    .rl-redline-event-detail__image img,
    .rl-redline-event-detail__image-placeholder {
        min-height: 0;
    }

    .rl-redline-event-detail__related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 800px) {
    .rl-redline-event-detail__split {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .rl-redline-event-detail__image,
    .rl-redline-event-detail__image img,
    .rl-redline-event-detail__image-placeholder {
        min-height: 220px;
    }

    .rl-redline-event-detail__overview-copy {
        padding: 22px 18px;
    }

    .rl-redline-event-detail__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .rl-redline-event-detail__button {
        width: 100%;
    }

    .rl-redline-event-detail__panel {
        padding: 17px;
    }

    .rl-redline-event-detail__information-grid {
        grid-template-columns: 1fr;
    }

    .rl-redline-event-detail__related-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   VIBE EVENTS — COLOUR PASS ONLY
   Redline structure remains unchanged.
   ========================================================= */

/* ---------- Events listing ---------- */

.vibe-site--inner .rl-redline-events__featured,
.vibe-site--inner .rl-redline-events__toolbar,
.vibe-site--inner .rl-redline-events__card,
.vibe-site--inner .rl-redline-events__submit {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-events__featured-image,
.vibe-site--inner .rl-redline-events__card-image,
.vibe-site--inner .rl-redline-events__placeholder {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__placeholder {
    color: var(--vibe-text-muted);
}

.vibe-site--inner .rl-redline-events__featured-copy h2,
.vibe-site--inner .rl-redline-events__card-copy h3 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-events__featured-summary,
.vibe-site--inner .rl-redline-events__featured-meta,
.vibe-site--inner .rl-redline-events__card-copy > p,
.vibe-site--inner .rl-redline-events__card-meta {
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner .rl-redline-events__eyebrow {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-events__categories a {
    color: var(--vibe-text-secondary);
}

.vibe-site--inner .rl-redline-events__categories a:hover {
    background: var(--vibe-brand-primary-a12);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-events__categories a.is-active,
.vibe-site--inner .rl-redline-events__categories a.is-active:hover {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-events__controls select {
    border-color: var(--vibe-border-white-a14);
    background: var(--vibe-bg-card-tone-280743);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-events__controls label svg {
    stroke: var(--vibe-text-white-a70);
}

.vibe-site--inner .rl-redline-events__clear {
    color: var(--vibe-primary) !important;
}

.vibe-site--inner .rl-redline-events__featured-button {
    background: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner .rl-redline-events__card-button {
    border-color: var(--vibe-border-white-a18);
    background: transparent;
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner .rl-redline-events__card-button:hover {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary) !important;
}


/* ---------- Single Event ---------- */

.vibe-site--inner .rl-redline-event-detail {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-event-detail__overview,
.vibe-site--inner .rl-redline-event-detail__panel {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-event-detail__image,
.vibe-site--inner .rl-redline-event-detail__image-placeholder {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-event-detail__image-placeholder {
    color: var(--vibe-text-muted);
}

.vibe-site--inner .rl-redline-event-detail__overview-copy,
.vibe-site--inner .rl-redline-event-detail__overview-copy h1,
.vibe-site--inner .rl-redline-event-detail__panel h2,
.vibe-site--inner .rl-redline-event-detail__lineup-item strong,
.vibe-site--inner .rl-redline-event-detail__information-item strong,
.vibe-site--inner .rl-redline-event-detail__location-copy strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-event-detail__meta,
.vibe-site--inner .rl-redline-event-detail__summary,
.vibe-site--inner .rl-redline-event-detail__body,
.vibe-site--inner .rl-redline-event-detail__information-item p,
.vibe-site--inner .rl-redline-event-detail__location-copy p {
    color: var(--vibe-text-white-a70);
}

.vibe-site--inner .rl-redline-event-detail__meta svg,
.vibe-site--inner .rl-redline-event-detail__information-icon svg {
    stroke: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-event-detail__information-item,
.vibe-site--inner .rl-redline-event-detail__lineup-item,
.vibe-site--inner .rl-redline-event-detail__related-card {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-event-detail__lineup-image {
    background: var(--vibe-bg-frame-alt);
}

.vibe-site--inner .rl-redline-event-detail__button {
    border-color: var(--vibe-border-white-a18);
    background: transparent;
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner .rl-redline-event-detail__button:hover {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary) !important;
}

.vibe-site--inner .rl-redline-event-detail__button.is-primary {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner .rl-redline-event-detail__location-links a {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-event-detail__related {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-event-detail__related-card h3,
.vibe-site--inner .rl-redline-event-detail__related-card strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-event-detail__related-card p {
    color: var(--vibe-text-white-a68);
}



/* Events — keep 16:9 overview panels visually balanced */
.vibe-site--inner .rl-redline-events__featured-summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}

.vibe-site--inner .rl-redline-event-detail__summary {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
}


/* Events — keep ticket and calendar actions on one desktop row */
@media (min-width: 701px) {
    .vibe-site--inner .rl-redline-event-detail__actions {
        flex-wrap: nowrap;
    }

    .vibe-site--inner .rl-redline-event-detail__button {
        flex: 1 1 0;
        min-width: 0;
        padding-left: 12px;
        padding-right: 12px;
        white-space: nowrap;
    }
}

/* Events — remove bottom-only empty space from joined overview card */
.vibe-site--inner .rl-redline-event-detail__overview {
    min-height: 0;
    height: fit-content;
    align-self: start;
}


/* Events — joined card height follows the 16:9 event artwork */
@media (min-width: 1121px) {
    .vibe-site--inner .rl-redline-event-detail__overview {
        min-height: 0;
        height: auto;
        aspect-ratio: 2.919 / 1;
        align-items: stretch;
    }

    .vibe-site--inner .rl-redline-event-detail__image {
        align-self: stretch;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
    }

    .vibe-site--inner .rl-redline-event-detail__image img,
    .vibe-site--inner .rl-redline-event-detail__image-placeholder {
        width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: contain;
        object-position: center;
    }

    .vibe-site--inner .rl-redline-event-detail__overview-copy {
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }
}

/* Events — official MDI icons + slight content lift */
.vibe-site--inner .rl-redline-event-detail__meta svg {
    fill: currentColor;
    stroke: none;
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-event-detail__button svg {
    fill: currentColor;
    stroke: none;
}

@media (min-width: 1121px) {
    .vibe-site--inner .rl-redline-event-detail__overview-copy {
        transform: translateY(-8px);
    }
}


/* Events — visually match calendar SVG to ticket SVG */
.vibe-site--inner .rl-redline-event-detail__actions .rl-redline-event-detail__button:nth-child(2) svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
}

/* Events — keep full four-line summary visible */
.vibe-site--inner .rl-redline-event-detail__summary {
    margin-top: 10px;
    line-height: 1.45;
}

/* Events — featured card follows 16:9 artwork height */
@media (min-width: 1121px) {
    .vibe-site--inner .rl-redline-events__featured {
        min-height: 0;
        aspect-ratio: 3.055556 / 1;
        align-items: stretch;
    }

    .vibe-site--inner .rl-redline-events__featured-image {
        align-self: stretch;
        height: 100%;
        min-height: 0;
        aspect-ratio: auto;
    }

    .vibe-site--inner .rl-redline-events__featured-image img,
    .vibe-site--inner .rl-redline-events__featured-image .rl-redline-events__placeholder {
        width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: contain;
        object-position: center;
    }

    .vibe-site--inner .rl-redline-events__featured-copy {
        min-height: 0;
        overflow: hidden;
    }
}

/* Events — wider 3-column listing cards with 16:9 artwork */
@media (min-width: 1121px) {
    .vibe-site--inner .rl-redline-events__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 18px;
    }
}

.vibe-site--inner .rl-redline-events__card-image {
    aspect-ratio: 16 / 9;
}

.vibe-site--inner .rl-redline-events__card-image img {
    object-fit: cover;
    object-position: center;
}

/* Events — accessibility labels + professional typography scale */
.vibe-site--inner .rl-redline-events .sr-only {
    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;
}

.vibe-site--inner .rl-redline-events__categories a,
.vibe-site--inner .rl-redline-events__controls select,
.vibe-site--inner .rl-redline-events__clear {
    font-size: 12px;
}

.vibe-site--inner .rl-redline-events__featured-summary {
    font-size: 14px;
}

.vibe-site--inner .rl-redline-events__featured-meta {
    font-size: 13px;
}

.vibe-site--inner .rl-redline-events__featured-button {
    font-size: 12px;
}

.vibe-site--inner .rl-redline-events__card-copy h3 {
    font-size: 18px;
}

.vibe-site--inner .rl-redline-events__card-copy > p {
    font-size: 14px;
    line-height: 1.5;
}

.vibe-site--inner .rl-redline-events__card-meta {
    font-size: 13px;
}

.vibe-site--inner .rl-redline-events__card-button {
    font-size: 12px;
}


/* Events — submit event block Vibe treatment */
.vibe-site--inner .rl-redline-events__submit {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-events__submit-icon {
    width: 48px;
    height: 48px;
    background: var(--vibe-brand-primary-a14);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-events__submit-icon svg {
    width: 22px;
    height: 22px;
}

.vibe-site--inner .rl-redline-events__submit strong {
    color: var(--vibe-text-primary);
    font-size: 18px;
    line-height: 1.15;
}

.vibe-site--inner .rl-redline-events__submit p {
    margin-top: 5px;
    color: var(--vibe-text-white-a68);
    font-size: 14px;
    line-height: 1.45;
}

.vibe-site--inner .rl-redline-events__submit > a {
    min-height: 42px;
    padding: 0 20px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary) !important;
    font-size: 12px;
}

/* Events — Submit Event block uses Vibe light purple */
.vibe-site--inner .rl-redline-events__submit {
    background: var(--vibe-bg-frame-alt);
}

/* Events — correct Submit Event card/icon colours */
.vibe-site--inner .rl-redline-events__submit {
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-events__submit-icon {
    background: var(--vibe-bg-frame-alt);
}

/* Events — Related Events use the same 16:9 flyer treatment as index cards */
.vibe-site--inner .rl-redline-event-detail__related-media {
    aspect-ratio: 16 / 9;
}

.vibe-site--inner .rl-redline-event-detail__related-media img {
    object-fit: cover;
    object-position: center;
}

/* Events — keep Featured Event summary line fully visible */
.vibe-site--inner .rl-redline-events__featured-summary {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.35;
    -webkit-line-clamp: 2;
}

/* =========================================================
   VIBE — SHARED REDLINE COMPETITIONS DESIGN
   Structure/layout intentionally identical across themes.
   Vibe changes branding colours only.
   ========================================================= */

/* Redline competitions page structure */
.rl-redline-competitions {
    display: grid;
    gap: 16px;
}

.rl-redline-competitions a {
    text-decoration: none;
}

.rl-redline-competitions__featured {
    display: grid;
    grid-template-columns: 40.5% minmax(0, 1fr);
    overflow: hidden;
    min-height: 270px;
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 8px;
}

.rl-redline-competitions__featured-media {
    display: block;
    min-width: 0;
    background: var(--vibe-bg-card-light-f2f2f2);
}

.rl-redline-competitions__featured-media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 270px;
    object-fit: cover;
}

.rl-redline-competitions__featured-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: 22px 28px;
}

.rl-redline-competitions__featured-label {
    display: inline-block;
    min-height: 0;
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.rl-redline-competitions__card-label {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 7px;
    background: var(--vibe-bg-card-light-fde7f3);
    border-radius: 4px;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}

.rl-redline-competitions__featured-copy h2 {
    margin: 13px 0 0;
    color: var(--vibe-text-dark);
    font-size: 25px;
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

.rl-redline-competitions__featured-copy h2 a {
    color: inherit;
}

.rl-redline-competitions__featured-summary {
    max-width: 560px;
    margin: 14px 0 0;
    color: var(--vibe-text-muted-4f4f4f);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}

.rl-redline-competitions__date {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 15px;
    color: var(--vibe-text-muted-555555);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
}

.rl-redline-competitions__date svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: var(--rl-redline-red, var(--vibe-brand-primary));
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competitions__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 174px;
    min-height: 40px;
    margin-top: 17px;
    padding: 0 20px;
    background: var(--rl-redline-red, var(--vibe-button-bg));
    border: 1px solid var(--rl-redline-red, var(--vibe-button-bg));
    border-radius: 4px;
    color: var(--vibe-button-text) !important;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.rl-redline-competitions__button:hover {
    background: var(--vibe-brand-primary-dark);
    border-color: var(--vibe-brand-primary-dark);
}

.rl-redline-competitions__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.rl-redline-competitions__card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 8px;
}

.rl-redline-competitions__card-media {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 1.62 / 1;
    background: var(--vibe-bg-card-light-f1f1f1);
}

.rl-redline-competitions__card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-competitions__card-label {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    background: var(--vibe-bg-white);
}

.rl-redline-competitions__card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: stretch;
    padding: 13px 14px 14px;
}

.rl-redline-competitions__card-copy h3 {
    margin: 0;
    color: var(--vibe-text-dark-242424);
    font-size: 15px;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
}

.rl-redline-competitions__card-copy h3 a {
    color: inherit;
}

.rl-redline-competitions__card-copy > p {
    margin: 8px 0 0;
    color: var(--vibe-text-muted-5f5f5f);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}

.rl-redline-competitions__card-copy .rl-redline-competitions__date {
    margin-top: auto;
    padding-top: 14px;
    font-size: 10px;
}

.rl-redline-competitions__card-copy .rl-redline-competitions__button {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    margin-top: 14px;
}

.rl-redline-competitions__image-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: inherit;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-card-raised-light-f3f3f3);
    color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competitions__image-placeholder svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competitions__how,
.rl-redline-competitions__winners,
.rl-redline-competitions__terms {
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 8px;
}

.rl-redline-competitions__how {
    padding: 14px 16px 16px;
}

.rl-redline-competitions__how > h2,
.rl-redline-competitions__winners > h2,
.rl-redline-competitions__terms h2 {
    margin: 0;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.rl-redline-competitions__steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.rl-redline-competitions__steps li {
    display: grid;
    grid-template-columns: 23px 44px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-width: 0;
}

.rl-redline-competitions__step-number {
    display: inline-flex;
    width: 23px;
    height: 23px;
    align-items: center;
    justify-content: center;
    background: var(--rl-redline-red, var(--vibe-brand-primary));
    border-radius: 50%;
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
}

.rl-redline-competitions__step-icon {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competitions__step-icon svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.45;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competitions__steps strong {
    display: block;
    color: var(--vibe-text-dark-2a2a2a);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.rl-redline-competitions__steps p {
    margin: 4px 0 0;
    color: var(--vibe-text-muted-606060);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.rl-redline-competitions__winners {
    padding: 14px 16px 16px;
}

.rl-redline-competitions__winners-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 12px;
}

.rl-redline-competitions__winner {
    display: flex;
    min-width: 0;
    gap: 12px;
    align-items: center;
    padding: 2px 18px 2px 0;
}

.rl-redline-competitions__winner + .rl-redline-competitions__winner {
    padding-left: 18px;
    border-left: 1px solid var(--vibe-border-light-ececec);
}

.rl-redline-competitions__winner-avatar {
    display: flex;
    flex: 0 0 50px;
    width: 50px;
    height: 50px;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-card-light-f0f0f0);
    border-radius: 50%;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 13px;
    font-weight: 900;
}

.rl-redline-competitions__winner h3 {
    margin: 0;
    color: var(--vibe-text-dark-282828);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
}

.rl-redline-competitions__winner p {
    margin: 4px 0 0;
    color: var(--vibe-text-muted-484848);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
}

.rl-redline-competitions__winner span {
    display: block;
    margin-top: 3px;
    color: var(--vibe-text-muted-777777);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.2;
}

.rl-redline-competitions__winners-empty {
    margin: 12px 0 0;
    color: var(--vibe-text-muted-686868);
    font-size: 12px;
}

.rl-redline-competitions__terms {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 13px 16px;
}

.rl-redline-competitions__terms p {
    margin: 7px 0 0;
    color: var(--vibe-text-muted-555555);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
}

.rl-redline-competitions__terms > a {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 11px;
    font-weight: 900;
    line-height: 1.2;
}

.rl-redline-competitions__terms > a span {
    font-size: 19px;
    line-height: 0.7;
}

.rl-redline-competitions__empty {
    display: flex;
    min-height: 170px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 8px;
    text-align: center;
}

.rl-redline-competitions__empty strong {
    color: var(--vibe-text-dark-secondary);
    font-size: 19px;
    font-weight: 900;
}

.rl-redline-competitions__empty span {
    color: var(--vibe-text-muted-696969);
    font-size: 11px;
}

@media (max-width: 1120px) {
    .rl-redline-competitions__featured {
        grid-template-columns: 42% minmax(0, 1fr);
    }

    .rl-redline-competitions__featured-copy {
        padding: 20px;
    }

    .rl-redline-competitions__featured-copy h2 {
        font-size: 21px;
    }

    .rl-redline-competitions__grid {
        gap: 12px;
    }

    .rl-redline-competitions__steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 20px;
    }
}

@media (max-width: 800px) {
    .rl-redline-competitions__featured {
        grid-template-columns: 1fr;
    }

    .rl-redline-competitions__featured-media {
        aspect-ratio: 16 / 9;
    }

    .rl-redline-competitions__featured-media img {
        min-height: 0;
    }

    .rl-redline-competitions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rl-redline-competitions__winners-grid {
        grid-template-columns: 1fr;
    }

    .rl-redline-competitions__winner,
    .rl-redline-competitions__winner + .rl-redline-competitions__winner {
        padding: 10px 0;
        border-left: 0;
    }

    .rl-redline-competitions__winner + .rl-redline-competitions__winner {
        border-top: 1px solid var(--vibe-border-light-ececec);
    }
}

@media (max-width: 600px) {
    .rl-redline-competitions {
        gap: 12px;
    }

    .rl-redline-competitions__featured-copy {
        padding: 18px;
    }

    .rl-redline-competitions__featured-copy h2 {
        font-size: 19px;
    }

    .rl-redline-competitions__grid {
        grid-template-columns: 1fr;
    }

    .rl-redline-competitions__steps {
        grid-template-columns: 1fr;
    }

    .rl-redline-competitions__terms {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }
}

/* === Redline competition detail page === */

.rl-redline-competition-detail {
    width: 100%;
}

.rl-redline-competition-detail__card {
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 8px;
    background: var(--vibe-bg-white);
}

.rl-redline-competition-detail__prize {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .85fr);
    gap: 24px;
    padding: 24px;
}

.rl-redline-competition-detail__main {
    min-width: 0;
}

.rl-redline-competition-detail__image,
.rl-redline-competition-detail__placeholder {
    width: 100%;
    min-height: 300px;
    display: block;
    border-radius: 6px;
    background: var(--vibe-bg-card-light-f0f0f0);
}

.rl-redline-competition-detail__image {
    height: 300px;
    object-fit: cover;
}

.rl-redline-competition-detail__placeholder {
    display: grid;
    place-items: center;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competition-detail__placeholder svg {
    width: 58px;
    height: 58px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competition-detail__summary {
    margin: 17px 0 0;
    color: var(--vibe-text-dark-333333);
    font-size: 14px;
    line-height: 1.65;
}

.rl-redline-competition-detail__prize-panel {
    align-self: start;
    height: 300px;
    box-sizing: border-box;
    padding: 22px;
    border-radius: 6px;
    background: var(--vibe-bg-card-light-f7f7f7);
}

.rl-redline-competition-detail__prize-panel h2 {
    margin: 0 0 18px;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 16px;
    font-weight: 900;
    letter-spacing: .015em;
    line-height: 1.1;
    text-transform: uppercase;
}

.rl-redline-competition-detail__prize-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 12px;
    padding: 14px 0;
    border-top: 1px solid var(--vibe-border-light-dedede);
}

.rl-redline-competition-detail__prize-item:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.rl-redline-competition-detail__prize-item > span {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-light-fde6f2);
    color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competition-detail__prize-item > span svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competition-detail__prize-item strong {
    display: block;
    color: var(--vibe-text-dark);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
}

.rl-redline-competition-detail__prize-item p {
    margin: 4px 0 0;
    color: var(--vibe-text-muted-555555);
    font-size: 12px;
    line-height: 1.45;
}

.rl-redline-competition-detail__description {
    padding: 0 24px 24px;
    color: var(--vibe-text-dark-333333);
    font-size: 14px;
    line-height: 1.7;
}

.rl-redline-competition-detail__closes {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 24px 24px;
    padding: 15px 18px;
    border-left: 4px solid var(--rl-redline-red, var(--vibe-brand-primary));
    border-radius: 4px;
    background: var(--vibe-bg-card-light-fff0f8);
}

.rl-redline-competition-detail__closes-icon {
    flex: 0 0 auto;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competition-detail__closes-icon svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competition-detail__closes strong {
    display: block;
    color: var(--vibe-text-dark);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-competition-detail__closes p {
    margin: 3px 0 0;
    color: var(--vibe-text-muted-555555);
    font-size: 12px;
}

.rl-redline-competition-entry {
    padding: 26px 24px;
    border-top: 1px solid var(--vibe-border-light-e1e1e1);
}

.rl-redline-competition-entry__heading {
    margin-bottom: 20px;
}

.rl-redline-competition-entry__heading h2 {
    margin: 0;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.02em;
    line-height: 1;
    text-transform: uppercase;
}

.rl-redline-competition-entry__heading p {
    margin: 8px 0 0;
    color: var(--vibe-text-muted-666666);
    font-size: 13px;
    line-height: 1.45;
}

.rl-redline-competition-notice {
    margin-bottom: 18px;
    padding: 14px 16px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.5;
}

.rl-redline-competition-notice ul {
    margin: 8px 0 0;
    padding-left: 20px;
}

.rl-redline-competition-notice--success {
    background: #dcfce7;
    color: #166534;
}

.rl-redline-competition-notice--error {
    background: #fee2e2;
    color: #991b1b;
}

.rl-redline-competition-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px 18px;
}

.rl-redline-competition-field {
    min-width: 0;
}

.rl-redline-competition-field:nth-of-type(n + 4),
.rl-redline-competition-checkbox,
.rl-redline-competition-privacy,
.rl-redline-competition-submit {
    grid-column: 1 / -1;
}

.rl-redline-competition-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--vibe-text-dark);
    font-size: 11px;
    font-weight: 900;
    line-height: 1.3;
}

.rl-redline-competition-field input,
.rl-redline-competition-field textarea {
    width: 100%;
    min-height: 42px;
    padding: 11px 12px;
    border: 1px solid var(--vibe-border-light-cccccc);
    border-radius: 4px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark);
    font: inherit;
    font-size: 13px;
}

.rl-redline-competition-field textarea {
    min-height: 108px;
    resize: vertical;
}

.rl-redline-competition-field input:focus,
.rl-redline-competition-field textarea:focus {
    border-color: var(--rl-redline-red, var(--vibe-brand-primary));
    outline: 2px solid var(--vibe-brand-primary-a12);
    outline-offset: 1px;
}

.rl-redline-competition-checkbox {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
    align-items: start;
    gap: 9px;
}

.rl-redline-competition-checkbox input {
    width: 16px;
    height: 16px;
    margin: 1px 0 0;
    accent-color: var(--rl-redline-red, var(--vibe-brand-primary));
}

.rl-redline-competition-checkbox label {
    color: var(--vibe-text-muted-555555);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.5;
}

.rl-redline-competition-checkbox a {
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-weight: 850;
}

.rl-redline-competition-privacy {
    padding: 12px 14px;
    border-radius: 4px;
    background: var(--vibe-bg-card-light-f7f7f7);
    color: var(--vibe-text-muted-666666);
    font-size: 10px;
    line-height: 1.55;
}

.rl-redline-competition-privacy summary {
    cursor: pointer;
    color: var(--vibe-text-dark-333333);
    font-weight: 850;
}

.rl-redline-competition-privacy p {
    margin: 9px 0 0;
}

.rl-redline-competition-submit {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 22px;
    border: 0;
    border-radius: 4px;
    background: var(--rl-redline-red, var(--vibe-brand-primary));
    color: var(--vibe-text-primary);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .025em;
    cursor: pointer;
    text-transform: uppercase;
}

.rl-redline-competition-submit:hover,
.rl-redline-competition-submit:focus-visible {
    background: var(--vibe-brand-primary-dark);
}

.rl-redline-competition-submit span:last-child {
    font-size: 18px;
    line-height: 1;
}

.rl-redline-competition-closed {
    padding: 18px;
    border-radius: 6px;
    background: var(--vibe-bg-card-light-f1f1f1);
    color: var(--vibe-text-dark-333333);
    font-size: 13px;
    font-weight: 800;
}

.rl-redline-competition-detail__terms {
    padding: 24px;
    border-top: 1px solid var(--vibe-border-light-e1e1e1);
}

.rl-redline-competition-detail__terms h2,
.rl-redline-competition-detail__more-heading h2 {
    margin: 0;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 16px;
    font-weight: 900;
    line-height: 1.1;
    text-transform: uppercase;
}

.rl-redline-competition-detail__terms-copy {
    max-height: 220px;
    overflow-y: auto;
    margin-top: 13px;
    padding: 16px;
    border-radius: 4px;
    background: var(--vibe-bg-card-light-f7f7f7);
    color: var(--vibe-text-muted-555555);
    font-size: 12px;
    line-height: 1.65;
}

.rl-redline-competition-detail__more {
    padding: 24px;
    border-top: 1px solid var(--vibe-border-light-e1e1e1);
}

.rl-redline-competition-detail__more-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 15px;
}

.rl-redline-competition-detail__more-heading > a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 10px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
}

.rl-redline-competition-detail__more-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.rl-redline-competition-detail__more-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 6px;
    background: var(--vibe-bg-white);
}

.rl-redline-competition-detail__more-media {
    height: 112px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: var(--vibe-bg-card-light-f0f0f0);
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    text-decoration: none;
}

.rl-redline-competition-detail__more-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-competition-detail__more-media > span svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-competition-detail__more-copy {
    padding: 12px;
}

.rl-redline-competition-detail__more-card h3 {
    margin: 0;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.rl-redline-competition-detail__more-card h3 a {
    color: var(--vibe-text-dark);
    text-decoration: none;
}

.rl-redline-competition-detail__more-date {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 11px;
    color: var(--rl-redline-red, var(--vibe-brand-primary));
    font-size: 10px;
    font-weight: 850;
    text-decoration: none;
}

.rl-redline-competition-honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 700px) {
    .rl-redline-competition-detail__prize {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 16px;
    }

    .rl-redline-competition-detail__image,
    .rl-redline-competition-detail__placeholder {
        min-height: 0;
        height: auto;
        aspect-ratio: 16 / 10;
    }

    .rl-redline-competition-detail__prize-panel {
        height: auto;
        padding: 18px 16px;
    }

    .rl-redline-competition-detail__prize-panel h2 {
        font-size: 15px;
    }

    .rl-redline-competition-detail__summary {
        margin-top: 14px;
        font-size: 13px;
        line-height: 1.55;
    }

    .rl-redline-competition-detail__description {
        padding: 0 16px 20px;
        font-size: 13px;
        line-height: 1.65;
    }

    .rl-redline-competition-detail__closes {
        margin: 0 16px 20px;
        padding: 14px;
    }

    .rl-redline-competition-entry {
        padding: 22px 16px;
    }

    .rl-redline-competition-entry__heading h2 {
        font-size: 20px;
    }

    .rl-redline-competition-form {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .rl-redline-competition-field,
    .rl-redline-competition-field:nth-of-type(n + 4),
    .rl-redline-competition-checkbox,
    .rl-redline-competition-privacy,
    .rl-redline-competition-submit {
        grid-column: 1;
    }

    .rl-redline-competition-field label {
        font-size: 12px;
    }

    .rl-redline-competition-field input,
    .rl-redline-competition-field textarea {
        min-height: 46px;
        font-size: 16px;
    }

    .rl-redline-competition-checkbox {
        grid-template-columns: 19px minmax(0, 1fr);
    }

    .rl-redline-competition-checkbox input {
        width: 18px;
        height: 18px;
    }

    .rl-redline-competition-checkbox label {
        font-size: 12px;
    }

    .rl-redline-competition-submit {
        width: 100%;
        min-height: 46px;
        font-size: 12px;
    }

    .rl-redline-competition-detail__terms,
    .rl-redline-competition-detail__more {
        padding: 20px 16px;
    }

    .rl-redline-competition-detail__terms h2,
    .rl-redline-competition-detail__more-heading h2 {
        font-size: 15px;
    }

    .rl-redline-competition-detail__terms-copy {
        max-height: 260px;
        font-size: 12px;
    }

    .rl-redline-competition-detail__more-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .rl-redline-competition-detail__more-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .rl-redline-competition-detail__more-card {
        display: grid;
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .rl-redline-competition-detail__more-media {
        width: 120px;
        height: 100%;
        min-height: 112px;
    }

    .rl-redline-competition-detail__more-copy {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}

@media (max-width: 390px) {
    .rl-redline-competition-detail__more-card {
        grid-template-columns: 104px minmax(0, 1fr);
    }

    .rl-redline-competition-detail__more-media {
        width: 104px;
    }
}

/* =========================================================
   VIBE — COMPETITIONS DARK THEME LAYER
   Matches the existing Vibe Events colour treatment.
   Structure/layout remains shared with Redline.
   ========================================================= */

/* Listing — main surfaces */
.vibe-site--inner .rl-redline-competitions__featured,
.vibe-site--inner .rl-redline-competitions__card,
.vibe-site--inner .rl-redline-competitions__how,
.vibe-site--inner .rl-redline-competitions__winners,
.vibe-site--inner .rl-redline-competitions__terms,
.vibe-site--inner .rl-redline-competitions__empty {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

/* Listing — media surfaces */
.vibe-site--inner .rl-redline-competitions__featured-media,
.vibe-site--inner .rl-redline-competitions__card-media,
.vibe-site--inner .rl-redline-competitions__image-placeholder {
    background: var(--vibe-bg-card);
}

/* Listing — labels */
.vibe-site--inner .rl-redline-competitions__featured-label {
    background: transparent;
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-competitions__card-label {
    background: var(--vibe-brand-primary-a14);
    color: var(--vibe-primary);
}

/* Listing — headings */
.vibe-site--inner .rl-redline-competitions__featured-copy h2,
.vibe-site--inner .rl-redline-competitions__card-copy h3,
.vibe-site--inner .rl-redline-competitions__steps strong,
.vibe-site--inner .rl-redline-competitions__winner h3,
.vibe-site--inner .rl-redline-competitions__empty strong {
    color: var(--vibe-text-primary);
}

/* Listing — supporting text */
.vibe-site--inner .rl-redline-competitions__featured-summary,
.vibe-site--inner .rl-redline-competitions__date,
.vibe-site--inner .rl-redline-competitions__card-copy > p,
.vibe-site--inner .rl-redline-competitions__steps p,
.vibe-site--inner .rl-redline-competitions__winner p,
.vibe-site--inner .rl-redline-competitions__winner span,
.vibe-site--inner .rl-redline-competitions__winners-empty,
.vibe-site--inner .rl-redline-competitions__terms p,
.vibe-site--inner .rl-redline-competitions__empty span {
    color: var(--vibe-text-white-a68);
}

/* Listing — section headings and accents */
.vibe-site--inner .rl-redline-competitions__how > h2,
.vibe-site--inner .rl-redline-competitions__winners > h2,
.vibe-site--inner .rl-redline-competitions__terms h2,
.vibe-site--inner .rl-redline-competitions__date svg,
.vibe-site--inner .rl-redline-competitions__step-icon,
.vibe-site--inner .rl-redline-competitions__terms > a,
.vibe-site--inner .rl-redline-competitions__image-placeholder {
    color: var(--vibe-primary);
}

/* Listing — numbered steps */
.vibe-site--inner .rl-redline-competitions__step-number {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

/* Listing — winner avatar */
.vibe-site--inner .rl-redline-competitions__winner-avatar {
    background: var(--vibe-bg-frame-alt);
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competitions__winner
+ .rl-redline-competitions__winner {
    border-color: var(--vibe-border-medium);
}

/* Listing — primary buttons */
.vibe-site--inner .rl-redline-competitions__button {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner .rl-redline-competitions__button:hover,
.vibe-site--inner .rl-redline-competitions__button:focus-visible {
    border-color: var(--vibe-brand-primary-dark);
    background: var(--vibe-brand-primary-dark);
}

/* =========================================================
   SINGLE COMPETITION
   ========================================================= */

.vibe-site--inner .rl-redline-competition-detail__card {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-competition-detail__placeholder,
.vibe-site--inner .rl-redline-competition-detail__more-media {
    background: var(--vibe-bg-card);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-competition-detail__summary,
.vibe-site--inner .rl-redline-competition-detail__description {
    color: var(--vibe-text-white-a70);
}

/* Prize panel */
.vibe-site--inner .rl-redline-competition-detail__prize-panel {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-competition-detail__prize-panel h2 {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-competition-detail__prize-item {
    border-color: var(--vibe-border-medium);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item
> span {
    background: var(--vibe-bg-frame-alt);
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item p {
    color: var(--vibe-text-white-a68);
}

/* Closing information */
.vibe-site--inner .rl-redline-competition-detail__closes {
    border-left-color: var(--vibe-primary);
    background: var(--vibe-bg-frame-alt);
}

.vibe-site--inner
.rl-redline-competition-detail__closes-icon {
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__closes strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__closes p {
    color: var(--vibe-text-white-a68);
}

/* Entry form */
.vibe-site--inner .rl-redline-competition-entry {
    border-top-color: var(--vibe-border-medium);
}

.vibe-site--inner
.rl-redline-competition-entry__heading h2 {
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-entry__heading p {
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner
.rl-redline-competition-field label {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competition-field input,
.vibe-site--inner
.rl-redline-competition-field textarea {
    border-color: var(--vibe-border-white-a18);
    background: var(--vibe-bg-card);
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competition-field input::placeholder,
.vibe-site--inner
.rl-redline-competition-field textarea::placeholder {
    color: var(--vibe-text-white-a48);
}

.vibe-site--inner
.rl-redline-competition-field input:focus,
.vibe-site--inner
.rl-redline-competition-field textarea:focus {
    border-color: var(--vibe-primary);
    outline-color: var(--vibe-brand-primary-a14);
}

.vibe-site--inner
.rl-redline-competition-checkbox input {
    accent-color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-checkbox label {
    color: var(--vibe-text-white-a70);
}

.vibe-site--inner
.rl-redline-competition-checkbox a {
    color: var(--vibe-primary);
}

/* Privacy / closed states */
.vibe-site--inner .rl-redline-competition-privacy,
.vibe-site--inner .rl-redline-competition-closed {
    background: var(--vibe-bg-card);
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner
.rl-redline-competition-privacy summary {
    color: var(--vibe-text-primary);
}

/* Submit */
.vibe-site--inner .rl-redline-competition-submit {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competition-submit:hover,
.vibe-site--inner
.rl-redline-competition-submit:focus-visible {
    background: var(--vibe-brand-primary-dark);
}

/* Terms */
.vibe-site--inner
.rl-redline-competition-detail__terms {
    border-top-color: var(--vibe-border-medium);
}

.vibe-site--inner
.rl-redline-competition-detail__terms h2,
.vibe-site--inner
.rl-redline-competition-detail__more-heading h2 {
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__terms-copy {
    background: var(--vibe-bg-card);
    color: var(--vibe-text-white-a68);
}

/* More competitions */
.vibe-site--inner
.rl-redline-competition-detail__more {
    border-top-color: var(--vibe-border-medium);
}

.vibe-site--inner
.rl-redline-competition-detail__more-heading > a,
.vibe-site--inner
.rl-redline-competition-detail__more-date {
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__more-card {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-competition-detail__more-card h3 a {
    color: var(--vibe-text-primary);
}


/* Vibe Competition featured actions */
.vibe-site--inner
.rl-redline-competitions__featured-summary {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-competitions__featured-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
    margin-top: 17px;
}

.vibe-site--inner
.rl-redline-competitions__featured-actions
.rl-redline-competitions__button {
    margin-top: 0;
}

.vibe-site--inner
.rl-redline-competitions__button--secondary {
    min-width: 92px;
    background: transparent;
    border-color: var(--vibe-border-white-a18);
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner
.rl-redline-competitions__button--secondary:hover,
.vibe-site--inner
.rl-redline-competitions__button--secondary:focus-visible {
    background: var(--vibe-bg-frame-alt);
    border-color: var(--vibe-primary);
    color: var(--vibe-primary) !important;
}



/* Vibe Competition terms block finishing treatment */
.vibe-site--inner .rl-redline-competitions__winners-empty,
.vibe-site--inner .rl-redline-competitions__terms p {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-competitions__terms > a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 17px;
    border: 1px solid var(--vibe-primary);
    border-radius: 4px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary) !important;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
}

.vibe-site--inner .rl-redline-competitions__terms > a:hover,
.vibe-site--inner .rl-redline-competitions__terms > a:focus-visible {
    background: var(--vibe-brand-primary-dark);
    border-color: var(--vibe-brand-primary-dark);
    color: var(--vibe-text-primary) !important;
}

/* =========================================================
   REDLINE — SCHEDULE
   ========================================================= */

.rl-redline-schedule {
    width: 100%;
    min-width: 0;
}

/* Page hero */

.rl-redline-schedule-hero {
    position: relative;
    display: flex;
    min-height: 292px;
    overflow: hidden;
    align-items: flex-end;
    margin: 0 0 18px;
    background:
        linear-gradient(
            135deg,
            var(--vibe-legacy-redline-dark) 0%,
            var(--rl-redline-red, var(--vibe-legacy-redline-accent)) 55%,
            var(--vibe-legacy-redline-light) 100%
        );
}

.rl-redline-schedule-hero__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.rl-redline-schedule-hero__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            var(--vibe-overlay-black-a73) 0%,
            var(--vibe-overlay-black-a43) 48%,
            var(--vibe-overlay-black-a08) 100%
        );
}

.rl-redline-schedule-hero:not(.has-image)
.rl-redline-schedule-hero__shade {
    background:
        linear-gradient(
            90deg,
            var(--vibe-preserve-colour-f36e42464c) 0%,
            var(--vibe-preserve-colour-e9e20a3d10) 100%
        );
}

.rl-redline-schedule-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 650px;
    padding: 32px 34px 30px;
    color: var(--vibe-text-primary);
}

.rl-redline-schedule-hero__eyebrow {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.rl-redline-schedule-hero h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 44px;
    line-height: .98;
    font-weight: 900;
    letter-spacing: -1.4px;
}

.rl-redline-schedule-hero p {
    max-width: 520px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a92);
    font-size: 15px;
    line-height: 1.5;
    font-weight: 600;
}

/* Day navigation */

.rl-redline-schedule__tabs {
    display: flex;
    gap: 0;
    overflow-x: auto;
    margin: 0 0 28px;
    padding: 0;
    border: 1px solid var(--vibe-border-light-d9d9d9);
    background: var(--vibe-bg-white);
    scrollbar-width: none;
}

.rl-redline-schedule__tabs::-webkit-scrollbar {
    display: none;
}

.rl-redline-schedule__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 0 auto;
    min-width: 86px;
    min-height: 48px;
    padding: 0 14px;
    border-right: 1px solid var(--vibe-border-light-e4e4e4);
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-333333);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .035em;
    white-space: nowrap;
}

.rl-redline-schedule__tab:last-child {
    border-right: 0;
}

.rl-redline-schedule__tab:hover {
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-schedule__tab.is-active {
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary);
}

/* Selected date */

.rl-redline-schedule__date {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 16px;
}

.rl-redline-schedule__date > span {
    width: 5px;
    height: 28px;
    flex: 0 0 5px;
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-schedule__date h2 {
    margin: 0;
    color: var(--vibe-text-dark-1b1b1b);
    font-size: 23px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: -.4px;
}

/* Schedule list */

.rl-redline-schedule__list {
    display: grid;
    gap: 14px;
}

.rl-redline-schedule-card {
    display: flex;
    min-width: 0;
    min-height: 188px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-dedede);
    background: var(--vibe-bg-white);
}

.rl-redline-schedule-card.is-live {
    border: 2px solid var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    background: var(--vibe-bg-white);
}

/* Show artwork */

.rl-redline-schedule-card__image {
    position: relative;
    width: 190px;
    min-width: 190px;
    min-height: 188px;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e9e9e9);
}

.rl-redline-schedule-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 188px;
    object-fit: cover;
    object-position: center top;
}

.rl-redline-schedule-card__fallback {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-card-light-ededed);
    color: var(--vibe-text-muted-aaaaaa);
    font-size: 46px;
    font-weight: 900;
}

.rl-redline-schedule-card__listen {
    position: absolute;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 2;
    padding: 10px 8px;
    border-radius: 3px;
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Main show details */

.rl-redline-schedule-card__content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 22px 24px;
}

.rl-redline-schedule-card__on-air {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    width: fit-content;
    margin-bottom: 10px;
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.rl-redline-schedule-card__on-air span {
    width: 8px;
    height: 8px;
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
}

.rl-redline-schedule-card__time {
    margin-bottom: 7px;
    color: var(--vibe-text-muted-6f6f6f);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.rl-redline-schedule-card__content h3 {
    margin: 0;
    color: var(--vibe-text-dark);
    font-size: 25px;
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -.55px;
}

.rl-redline-schedule-card__presenter {
    margin-top: 6px;
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 13px;
    line-height: 1.3;
    font-weight: 900;
}

.rl-redline-schedule-card__description {
    max-width: 650px;
    margin: 10px 0 0;
    overflow: hidden;
    color: var(--vibe-text-muted-626262);
    font-size: 13px;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

/* Show actions */

.rl-redline-schedule-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 13px;
}

.rl-redline-schedule-card__actions a {
    color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
}

.rl-redline-schedule-card__actions a:hover {
    text-decoration: underline;
}

/* Sponsor */

.rl-redline-schedule-card__sponsor {
    display: flex;
    width: 170px;
    min-width: 170px;
    align-items: center;
    justify-content: center;
    padding: 18px;
    border-left: 1px solid var(--vibe-border-light-e3e3e3);
    background: var(--vibe-bg-card-light-f8f8f8);
}

.rl-redline-schedule-card__sponsor > a {
    color: inherit;
    text-decoration: none;
}

.rl-redline-schedule-card__sponsor-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.rl-redline-schedule-card__sponsor-inner > span {
    color: var(--vibe-text-muted-8c8c8c);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.rl-redline-schedule-card__sponsor-inner img {
    display: block;
    width: auto;
    height: auto;
    max-width: 125px;
    max-height: 54px;
    object-fit: contain;
}

.rl-redline-schedule-card__sponsor-inner strong {
    color: var(--vibe-text-muted-4e4e4e);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
}

/* Empty schedule */

.rl-redline-schedule__empty {
    padding: 30px 24px;
    border: 1px solid var(--vibe-border-light-dedede);
    background: var(--vibe-bg-white);
    color: var(--vibe-text-muted-666666);
    font-size: 14px;
    font-weight: 700;
}

/* Tablet */

@media (max-width: 1100px) {
    .rl-redline-schedule-card__image {
        width: 165px;
        min-width: 165px;
    }

    .rl-redline-schedule-card__content {
        padding: 19px 20px;
    }

    .rl-redline-schedule-card__sponsor {
        width: 145px;
        min-width: 145px;
        padding: 14px;
    }

    .rl-redline-schedule-card__sponsor-inner img {
        max-width: 105px;
    }
}

/* Mobile */

@media (max-width: 767px) {
    .rl-redline-schedule-hero {
        min-height: 205px;
        margin-right: -16px;
        margin-left: -16px;
    }

    .rl-redline-schedule-hero__shade {
        background:
            linear-gradient(
                0deg,
                var(--vibe-overlay-black-a78) 0%,
                var(--vibe-overlay-black-a20) 100%
            );
    }

    .rl-redline-schedule-hero__content {
        padding: 24px 20px 22px;
    }

    .rl-redline-schedule-hero h1 {
        font-size: 34px;
        letter-spacing: -.8px;
    }

    .rl-redline-schedule-hero p {
        margin-top: 7px;
        font-size: 13px;
    }

    .rl-redline-schedule__tabs {
        margin-right: -16px;
        margin-bottom: 22px;
        margin-left: -16px;
        border-right: 0;
        border-left: 0;
    }

    .rl-redline-schedule__tab {
        flex: 0 0 auto;
        min-width: 78px;
        min-height: 44px;
        padding: 0 12px;
        font-size: 11px;
    }

    .rl-redline-schedule__date h2 {
        font-size: 20px;
    }

    .rl-redline-schedule-card {
        display: grid;
        grid-template-columns: 120px minmax(0, 1fr);
        min-height: 166px;
    }

    .rl-redline-schedule-card__image {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 120px;
        min-width: 120px;
        min-height: 166px;
    }

    .rl-redline-schedule-card__image img {
        min-height: 166px;
    }

    .rl-redline-schedule-card__content {
        grid-column: 2;
        justify-content: flex-start;
        padding: 15px 14px;
    }

    .rl-redline-schedule-card__on-air {
        margin-bottom: 7px;
        font-size: 10px;
    }

    .rl-redline-schedule-card__time {
        margin-bottom: 5px;
        font-size: 11px;
    }

    .rl-redline-schedule-card__content h3 {
        font-size: 19px;
    }

    .rl-redline-schedule-card__presenter {
        margin-top: 4px;
        font-size: 12px;
    }

    .rl-redline-schedule-card__description {
        margin-top: 7px;
        font-size: 12px;
        line-height: 1.45;
        -webkit-line-clamp: 3;
    }

    .rl-redline-schedule-card__actions {
        gap: 11px;
        margin-top: 9px;
    }

    .rl-redline-schedule-card__actions a {
        font-size: 11px;
    }

    .rl-redline-schedule-card__listen {
        right: 8px;
        bottom: 8px;
        left: 8px;
        padding: 8px 5px;
        font-size: 11px;
    }

    .rl-redline-schedule-card__sponsor {
        grid-column: 2;
        width: 100%;
        min-width: 0;
        padding: 10px 14px;
        justify-content: flex-start;
        border-top: 1px solid var(--vibe-border-light-e3e3e3);
        border-left: 0;
    }

    .rl-redline-schedule-card__sponsor-inner {
        flex-direction: row;
        justify-content: flex-start;
        gap: 8px;
        text-align: left;
    }

    .rl-redline-schedule-card__sponsor-inner > span {
        display: none;
    }

    .rl-redline-schedule-card__sponsor-inner img {
        max-width: 70px;
        max-height: 28px;
    }

    .rl-redline-schedule-card__sponsor-inner strong {
        font-size: 11px;
    }
}

/* Final shared Schedule refinement */
.rl-redline-schedule__tabs {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    margin: 0 0 19px;
    padding: 0;
    border: 0;
    background: transparent;
}

.rl-redline-schedule__tab {
    flex: 0 0 auto;
    min-width: 92px;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid var(--vibe-border-light-d8d8de);
    border-radius: 7px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-20202d);
    font-size: 11px;
    font-weight: 900;
}

.rl-redline-schedule__tab:last-child {
    border-right: 1px solid var(--vibe-border-light-d8d8de);
}

.rl-redline-schedule__tab.is-active {
    border-color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    background: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    color: var(--vibe-text-primary);
}

.rl-redline-schedule__date {
    gap: 11px;
    margin-bottom: 15px;
}

.rl-redline-schedule__date > span {
    width: 5px;
    height: 31px;
    flex-basis: 5px;
    border-radius: 3px;
}

.rl-redline-schedule__date h2 {
    font-size: 23px;
    letter-spacing: -.45px;
}

.rl-redline-schedule__list {
    gap: 14px;
}

.rl-redline-schedule-card {
    min-height: 138px;
    border-radius: 8px;
}

.rl-redline-schedule-card.is-live {
    border-width: 1px;
    border-color: var(--rl-redline-red, var(--vibe-legacy-redline-accent));
    background: var(--vibe-bg-card-light-fffafa);
}

.rl-redline-schedule-card__image {
    width: 185px;
    min-width: 185px;
    min-height: 138px;
}

.rl-redline-schedule-card__image img {
    min-height: 138px;
}

.rl-redline-schedule-card__fallback {
    font-size: 44px;
}

.rl-redline-schedule-card__content {
    justify-content: center;
    padding: 14px 20px;
}

.rl-redline-schedule-card__on-air {
    margin-bottom: 7px;
    font-size: 10px;
}

.rl-redline-schedule-card__time {
    margin-bottom: 5px;
    font-size: 12px;
}

.rl-redline-schedule-card__content h3 {
    font-size: 23px;
    line-height: 1.05;
    letter-spacing: -.45px;
}

.rl-redline-schedule-card__presenter {
    margin-top: 4px;
    font-size: 13px;
}

.rl-redline-schedule-card__description {
    margin-top: 7px;
    font-size: 13px;
    line-height: 1.4;
    -webkit-line-clamp: 2;
}

.rl-redline-schedule-card__actions {
    margin-top: 9px;
}

.rl-redline-schedule-card__sponsor {
    width: 170px;
    min-width: 170px;
    padding: 15px;
}

.rl-redline-schedule-card__on-air span {
    border-radius: 50%;
}

@media (max-width: 767px) {
    .rl-redline-schedule__tabs {
        gap: 8px;
        margin-right: -16px;
        margin-left: 0;
        padding-right: 16px;
    }

    .rl-redline-schedule__tab {
        min-width: 82px;
        min-height: 40px;
        padding: 0 13px;
    }
}


/* =========================================================
   VIBE — SHARED REDLINE SCHEDULE DESIGN
   Structure/layout intentionally identical across themes.
   Vibe changes colour treatment only.
   ========================================================= */

.vibe-site--inner {
    --rl-redline-red: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule__tab {
    border-color: var(--vibe-border-white-a14);
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-secondary);
}

.vibe-site--inner .rl-redline-schedule__tab:last-child {
    border-right-color: var(--vibe-border-white-a14);
}

.vibe-site--inner .rl-redline-schedule__tab:hover {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule__tab.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-schedule__date > span {
    background: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule__date h2 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-schedule-card,
.vibe-site--inner .rl-redline-schedule-card.is-live,
.vibe-site--inner .rl-redline-schedule__empty {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-schedule-card.is-live {
    border-color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule-card__image,
.vibe-site--inner .rl-redline-schedule-card__fallback {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-schedule-card__fallback {
    color: var(--vibe-text-faint);
}

.vibe-site--inner .rl-redline-schedule-card__listen,
.vibe-site--inner .rl-redline-schedule-card__on-air span {
    background: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule-card__on-air,
.vibe-site--inner .rl-redline-schedule-card__presenter,
.vibe-site--inner .rl-redline-schedule-card__actions a {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-schedule-card__time {
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner .rl-redline-schedule-card__content h3 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-schedule-card__description {
    color: var(--vibe-text-white-a70);
}

.vibe-site--inner .rl-redline-schedule-card__sponsor {
    border-left-color: var(--vibe-border-medium);
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-schedule-card__sponsor-inner > span {
    color: var(--vibe-text-white-a48);
}

.vibe-site--inner .rl-redline-schedule-card__sponsor-inner strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-schedule__empty {
    color: var(--vibe-text-white-a68);
}

@media (max-width: 767px) {
    .vibe-site--inner .rl-redline-schedule-card__sponsor {
        border-top-color: var(--vibe-border-medium);
        border-left: 0;
    }
}


/* =========================================================
   VIBE — GLOBAL CARD SHAPE
   Default: rounded.
   Future Theme Settings can change --vibe-card-radius.
   CTA buttons, pills and circular indicators are untouched.
   ========================================================= */

.vibe-site {
    --vibe-card-radius: 4px;
}

/* Generic content cards */
.vibe-site [class*="__card"],
.vibe-site [class*="-card"] {
    border-radius: var(--vibe-card-radius) !important;
}

/* Homepage structural blocks */
.vibe-site .vibe-homepage__slideshow {
    border-radius: var(--vibe-card-radius) !important;
}

/* Internal sidebar/content panels */
.vibe-site--inner .vibe-page-sidebar .vibe-sidebar-content-block {
    border-radius: var(--vibe-card-radius) !important;
}

/* Recently Played */
.vibe-site--inner .rl-recently-played__filters,
.vibe-site--inner .rl-recently-played__table-head,
.vibe-site--inner .rl-recently-played__list,
.vibe-site--inner .rl-recently-played-track__artwork {
    border-radius: var(--vibe-card-radius) !important;
}

/* Events */
.vibe-site--inner .rl-redline-events__featured,
.vibe-site--inner .rl-redline-events__filters,
.vibe-site--inner .rl-redline-events__empty,
.vibe-site--inner .rl-redline-event-detail__panel,
.vibe-site--inner .rl-redline-event-detail__map {
    border-radius: var(--vibe-card-radius) !important;
}

/* Competitions */
.vibe-site--inner .rl-redline-competitions__featured,
.vibe-site--inner .rl-redline-competitions__how,
.vibe-site--inner .rl-redline-competitions__winners,
.vibe-site--inner .rl-redline-competitions__terms,
.vibe-site--inner .rl-redline-competition-detail__image,
.vibe-site--inner .rl-redline-competition-detail__placeholder,
.vibe-site--inner .rl-redline-competition-detail__prize-panel,
.vibe-site--inner .rl-redline-competition-notice,
.vibe-site--inner .rl-redline-competition-privacy,
.vibe-site--inner .rl-redline-competition-closed,
.vibe-site--inner .rl-redline-competition-detail__terms-copy {
    border-radius: var(--vibe-card-radius) !important;
}

/* Schedule day navigation is part of the page structure, not a CTA */
.vibe-site--inner .rl-redline-schedule__tab {
    border-radius: var(--vibe-card-radius) !important;
}

/* =========================================================
   VIBE — SHARED REDLINE CONTROL CHART DESIGN
   ========================================================= */

.rl-redline-chart-reference {
    width: 100%;
    padding: 0 0 58px;
}

/* TOP VOTING STRIP */

.rl-redline-chart-reference__toolbar {
    min-height: 66px;
    padding: 11px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 7px;
}

.rl-redline-chart-reference__toolbar-copy {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 13px;
}

.rl-redline-chart-reference__toolbar-copy strong {
    max-width: 420px;
    color: var(--vibe-text-dark-secondary);
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

.rl-redline-chart-reference__vote-icon {
    flex: 0 0 43px;
    width: 43px;
    height: 43px;
}

.rl-redline-chart-reference__vote-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.rl-redline-chart-reference__vote-icon circle {
    fill: var(--vibe-primary);
}

.rl-redline-chart-reference__vote-icon path {
    fill: var(--vibe-text-primary);
}

.rl-redline-chart-reference__vote-icon .down {
    opacity: .7;
}

.rl-redline-chart-reference__toolbar-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
}

.rl-redline-chart-reference__toolbar-button {
    min-width: 92px;
    min-height: 40px;
    padding: 0 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid var(--vibe-border-light-d8d8d8);
    border-radius: 4px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-secondary);
    font-size: 11px;
    line-height: 1;
    font-weight: 850;
    text-decoration: none;
    white-space: nowrap;
}

.rl-redline-chart-reference__toolbar-button.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
}

.rl-redline-chart-reference__toolbar-button.is-disabled {
    color: var(--vibe-text-muted-8d8d8d);
}

.rl-redline-chart-reference__toolbar-button.is-rules {
    min-width: 145px;
}

.rl-redline-chart-reference__info {
    width: 17px;
    height: 17px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 900;
}

/* FEATURE CARDS */

.rl-redline-chart-reference__features {
    display: grid;
    grid-template-columns: 1.22fr 1fr 1fr;
    gap: 14px;
    margin-top: 15px;
}

.rl-redline-chart-reference__feature {
    min-width: 0;
    min-height: 174px;
    padding: 14px;
    background: var(--vibe-bg-white);
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 6px;
}

.rl-redline-chart-reference__feature.is-number-one {
    border-color: var(--vibe-preserve-border-9f0266f1c1);
    box-shadow: inset 0 0 0 1px var(--vibe-preserve-shadow-66397c3914);
}

.rl-redline-chart-reference__feature-heading {
    min-height: 24px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--vibe-text-dark-151515);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-chart-reference__feature.is-number-one
.rl-redline-chart-reference__feature-heading {
    color: var(--vibe-primary);
}

.rl-redline-chart-reference__feature-star {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--vibe-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-primary);
    font-size: 11px;
}

.rl-redline-chart-reference__new-badge {
    margin-left: auto;
    padding: 3px 6px;
    border: 1px solid var(--vibe-preserve-border-9f0266f1c1);
    border-radius: 4px;
    background: var(--vibe-bg-card-light-fff0f0);
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
}

.rl-redline-chart-reference__number-one-body,
.rl-redline-chart-reference__side-feature {
    margin-top: 13px;
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    gap: 13px;
    align-items: center;
}

.rl-redline-chart-reference__feature-art {
    width: 86px;
    height: 86px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--vibe-bg-component-efefef);
}

.rl-redline-chart-reference__feature-art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-chart-reference__feature-art > span {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-muted-aaaaaa);
    font-size: 24px;
}

.rl-redline-chart-reference__feature-art.is-empty {
    background: var(--vibe-bg-component-f4f4f4);
}

.rl-redline-chart-reference__feature-copy {
    min-width: 0;
}

.rl-redline-chart-reference__feature-copy > strong {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-dark);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 900;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rl-redline-chart-reference__feature-copy > span {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: var(--vibe-text-muted-666666);
    font-size: 11px;
    line-height: 1.3;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rl-redline-chart-reference__number-one-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 16px;
}

.rl-redline-chart-reference__number-one-stats > div {
    min-width: 0;
    padding-right: 9px;
    border-right: 1px solid var(--vibe-border-light-e4e4e4);
}

.rl-redline-chart-reference__number-one-stats > div + div {
    padding-left: 9px;
}

.rl-redline-chart-reference__number-one-stats > div:last-child {
    border-right: 0;
}

.rl-redline-chart-reference__number-one-stats small,
.rl-redline-chart-reference__entry-position small {
    display: block;
    color: var(--vibe-text-muted-777777);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
}

.rl-redline-chart-reference__number-one-stats b {
    display: block;
    margin-top: 4px;
    color: var(--vibe-text-dark-151515);
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
}

.rl-redline-chart-reference__movement-summary,
.rl-redline-chart-reference__entry-position {
    margin-top: 14px;
}

.rl-redline-chart-reference__movement-summary b {
    color: var(--vibe-text-muted-666666);
    font-size: 15px;
    font-weight: 900;
}

.rl-redline-chart-reference__movement-summary small {
    display: block;
    margin-top: 3px;
    color: var(--vibe-text-muted-999999);
    font-size: 10px;
    line-height: 1.2;
    text-transform: uppercase;
}

.rl-redline-chart-reference__entry-position b {
    display: block;
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 13px;
    font-weight: 900;
}

/* TABLE */

.rl-redline-chart-reference__table {
    margin-top: 24px;
    background: var(--vibe-bg-white);
}

.rl-redline-chart-reference__table-head,
.rl-redline-chart-reference__row {
    display: grid;
    grid-template-columns:
        38px
        minmax(210px, 1.45fr)
        minmax(115px, .9fr)
        95px
        145px
        75px
        84px;
    align-items: center;
}

.rl-redline-chart-reference__table-head {
    min-height: 38px;
    border-bottom: 1px solid var(--vibe-border-light-dcdcdc);
    color: var(--vibe-text-dark-3d3d3d);
}

.rl-redline-chart-reference__table-head > div {
    padding: 0 9px;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-chart-reference__row {
    min-height: 66px;
    border-bottom: 1px solid var(--vibe-border-light-e4e4e4);
    background: var(--vibe-bg-white);
}

.rl-redline-chart-reference__row.is-number-one {
    background: var(--vibe-bg-component-fff2f2);
}

.rl-redline-chart-reference__row > div {
    min-width: 0;
    padding: 8px 9px;
}

.rl-redline-chart-reference__rank {
    text-align: center;
}

.rl-redline-chart-reference__rank span {
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-dark-secondary);
    font-size: 15px;
    line-height: 1;
    font-weight: 900;
}

.rl-redline-chart-reference__row.is-number-one
.rl-redline-chart-reference__rank span {
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.rl-redline-chart-reference__song {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rl-redline-chart-reference__row-art {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--vibe-bg-component-eeeeee);
}

.rl-redline-chart-reference__row-art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-chart-reference__row-art > span {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-muted-aaaaaa);
}

.rl-redline-chart-reference__song > div:last-child {
    min-width: 0;
}

.rl-redline-chart-reference__song strong {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-dark-181818);
    font-size: 16px;
    line-height: 1.15;
    font-weight: 900;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rl-redline-chart-reference__song span {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rl-redline-chart-reference__artist {
    overflow: hidden;
    color: var(--vibe-text-muted-555555);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.rl-redline-chart-reference__movement {
    text-align: center;
}

.rl-redline-chart-reference__movement strong {
    display: block;
    color: var(--vibe-text-muted-555555);
    font-size: 13px;
    line-height: 1;
    font-weight: 800;
}

.rl-redline-chart-reference__movement span {
    display: block;
    margin-top: 4px;
    color: var(--vibe-text-muted-888888);
    font-size: 10px;
    line-height: 1.1;
    font-weight: 600;
}

.rl-redline-chart-reference__votes {
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--vibe-text-dark-secondary);
}

.rl-redline-chart-reference__votes span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.rl-redline-chart-reference__vote-svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    display: block;
    fill: none;
    stroke: var(--vibe-text-dark-30343f);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-chart-reference__net {
    color: var(--vibe-text-dark-secondary);
    font-size: 14px;
    line-height: 1;
    font-weight: 900;
    text-align: center;
}

.rl-redline-chart-reference__row.is-number-one
.rl-redline-chart-reference__net {
    color: var(--vibe-primary);
}

.rl-redline-chart-reference__action {
    text-align: right;
}

.rl-redline-chart-reference__action a {
    min-width: 68px;
    min-height: 36px;
    padding: 0 13px;
    border: 1px solid var(--vibe-border-light-d3d3d3);
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark-secondary);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    text-decoration: none;
}

.rl-redline-chart-reference__action a span {
    width: 14px;
    height: 14px;
    border: 1px solid var(--vibe-primary);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--vibe-primary);
    font-size: 12px;
    line-height: 1;
}

.rl-redline-chart-reference__action a:hover,
.rl-redline-chart-reference__action a:focus {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary);
}

.rl-redline-chart-reference__empty {
    padding: 30px;
    color: var(--vibe-text-muted-666666);
    font-size: 12px;
    text-align: center;
}

/* RESPONSIVE */

@media (max-width: 1100px) {
    .rl-redline-chart-reference__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .rl-redline-chart-reference__toolbar-actions {
        width: 100%;
    }

    .rl-redline-chart-reference__toolbar-button {
        flex: 1 1 0;
    }

    .rl-redline-chart-reference__features {
        grid-template-columns: 1fr;
    }

    .rl-redline-chart-reference__table {
        overflow-x: auto;
    }

    .rl-redline-chart-reference__table-head,
    .rl-redline-chart-reference__row {
        min-width: 790px;
    }
}

@media (max-width: 760px) {
    .rl-redline-chart-reference {
        padding: 0 0 42px;
    }

    .rl-redline-chart-reference__toolbar-copy strong {
        font-size: 12px;
    }

    .rl-redline-chart-reference__toolbar-actions {
        overflow-x: auto;
    }

    .rl-redline-chart-reference__toolbar-button {
        flex: 0 0 auto;
    }

    .rl-redline-chart-reference__features {
        gap: 10px;
        margin-top: 12px;
    }
}

/* =========================================================
   VIBE — CONTROL CHART COLOUR OVERRIDES
   Same Redline structure/functionality. Vibe colours only.
   ========================================================= */

.vibe-site--inner .rl-redline-chart-reference__toolbar {
    background: var(--vibe-bg-sidebar);
    border-color: var(--vibe-border-medium);
    border-radius: var(--vibe-card-radius);
}

.vibe-site--inner .rl-redline-chart-reference__toolbar-copy strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__toolbar-button {
    border-color: var(--vibe-border-medium-strong);
    background: var(--vibe-bg-card);
    color: var(--vibe-button-text);
}

.vibe-site--inner .rl-redline-chart-reference__toolbar-button.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
}

.vibe-site--inner .rl-redline-chart-reference__toolbar-button.is-disabled {
    color: var(--vibe-text-faint);
}

.vibe-site--inner .rl-redline-chart-reference__feature {
    background: var(--vibe-bg-sidebar);
    border-color: var(--vibe-border-medium);
    border-radius: var(--vibe-card-radius);
}

.vibe-site--inner .rl-redline-chart-reference__feature.is-number-one {
    border-color: var(--vibe-brand-primary-a38);
    box-shadow: inset 0 0 0 1px var(--vibe-brand-primary-a10);
}

.vibe-site--inner .rl-redline-chart-reference__feature-heading {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-chart-reference__feature.is-number-one
.rl-redline-chart-reference__feature-heading {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-chart-reference__new-badge {
    border-color: var(--vibe-brand-primary-a32);
    background: var(--vibe-bg-card);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-chart-reference__feature-art,
.vibe-site--inner .rl-redline-chart-reference__feature-art.is-empty {
    background: var(--vibe-bg-card);
    border-radius: var(--vibe-card-radius);
}

.vibe-site--inner .rl-redline-chart-reference__feature-art > span {
    color: var(--vibe-text-white-a32);
}

.vibe-site--inner .rl-redline-chart-reference__feature-copy > strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__feature-copy > span {
    color: var(--vibe-text-white-a66);
}

.vibe-site--inner
.rl-redline-chart-reference__number-one-stats > div {
    border-right-color: var(--vibe-border-medium);
}

.vibe-site--inner
.rl-redline-chart-reference__number-one-stats small,
.vibe-site--inner
.rl-redline-chart-reference__entry-position small {
    color: var(--vibe-text-white-a55);
}

.vibe-site--inner
.rl-redline-chart-reference__number-one-stats b {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.rl-redline-chart-reference__movement-summary b {
    color: var(--vibe-text-white-a72);
}

.vibe-site--inner
.rl-redline-chart-reference__movement-summary small {
    color: var(--vibe-text-white-a46);
}

.vibe-site--inner .rl-redline-chart-reference__table {
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-chart-reference__table-head {
    border-bottom-color: var(--vibe-border-medium-strong);
    color: var(--vibe-text-white-a72);
}

.vibe-site--inner .rl-redline-chart-reference__row {
    border-bottom-color: var(--vibe-border-soft);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner
.rl-redline-chart-reference__row.is-number-one {
    background: var(--vibe-brand-primary-a10);
}

.vibe-site--inner .rl-redline-chart-reference__rank span {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__row-art {
    background: var(--vibe-bg-card);
    border-radius: var(--vibe-card-radius);
}

.vibe-site--inner .rl-redline-chart-reference__row-art > span {
    color: var(--vibe-text-white-a32);
}

.vibe-site--inner .rl-redline-chart-reference__song strong {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__song span {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-chart-reference__artist {
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner .rl-redline-chart-reference__movement strong {
    color: var(--vibe-text-white-a72);
}

.vibe-site--inner .rl-redline-chart-reference__movement span {
    color: var(--vibe-text-white-a48);
}

.vibe-site--inner .rl-redline-chart-reference__votes {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__vote-svg {
    stroke: var(--vibe-text-secondary);
}

.vibe-site--inner .rl-redline-chart-reference__net {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-chart-reference__action a {
    border-color: var(--vibe-border-white-a14);
    background: var(--vibe-bg-card);
    color: var(--vibe-button-text);
}

.vibe-site--inner
.rl-redline-chart-reference__action a:hover,
.vibe-site--inner
.rl-redline-chart-reference__action a:focus {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-chart-reference__empty {
    color: var(--vibe-text-white-a62);
}

/* =========================================================
   VIBE — SHARED REDLINE NEWS DESIGN
   ========================================================= */

.rl-redline-news {
    width: 100%;
    min-width: 0;
    font-family: inherit;
}

.rl-redline-news a {
    color: inherit;
    text-decoration: none;
}

.rl-redline-news__categories {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 52px;
    margin-bottom: 18px;
    padding: 6px 8px;
    overflow-x: auto;
    border-top: 1px solid var(--vibe-border-light-e3e3e3);
    border-bottom: 1px solid var(--vibe-border-light-e3e3e3);
    background: var(--vibe-bg-white);
    scrollbar-width: none;
}

.rl-redline-news__categories::-webkit-scrollbar {
    display: none;
}

.rl-redline-news__categories a {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 18px;
    border-radius: 3px;
    color: var(--vibe-text-dark-202020);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background-color .15s ease, color .15s ease;
}

.rl-redline-news__categories a:hover {
    background: var(--vibe-bg-card-raised-light-f3f3f3);
    color: var(--vibe-primary);
}

.rl-redline-news__categories a.is-active {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.rl-redline-news__categories a.is-active:hover {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.rl-redline-news__featured {
    display: grid;
    grid-template-columns: minmax(0, 1.28fr) minmax(300px, .95fr);
    min-height: 390px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e1e1e1);
    border-radius: 5px;
    background: var(--vibe-bg-white);
}

.rl-redline-news__lead {
    min-width: 0;
    min-height: 390px;
}

.rl-redline-news__lead-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 390px;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-news__lead-image,
.rl-redline-news__lead-link > .rl-redline-news__image-placeholder {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-news__lead-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to bottom,
            var(--vibe-overlay-black-a02) 28%,
            var(--vibe-overlay-black-a18) 58%,
            var(--vibe-overlay-black-a82) 100%
        );
}

.rl-redline-news__lead-content {
    position: absolute;
    z-index: 2;
    left: 22px;
    right: 22px;
    bottom: 22px;
    display: block;
    color: var(--vibe-text-primary);
}

.rl-redline-news__category {
    display: inline-block;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-news__lead-content > .rl-redline-news__category {
    margin-bottom: 12px;
    padding: 6px 8px;
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.rl-redline-news__lead-title {
    display: block;
    max-width: 94%;
    color: var(--vibe-text-primary);
    font-size: 24px;
    line-height: 1.08;
    font-weight: 900;
    letter-spacing: -.025em;
}

.rl-redline-news__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 13px;
    color: var(--vibe-text-muted-737373);
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
}

.rl-redline-news__lead .rl-redline-news__meta {
    color: var(--vibe-text-primary);
}

.rl-redline-news__meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.rl-redline-news__meta svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rl-redline-news__side {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    min-width: 0;
    background: var(--vibe-bg-white);
}

.rl-redline-news__side-story {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42%;
    gap: 16px;
    min-width: 0;
    padding: 14px 16px 14px 18px;
    border-bottom: 1px solid var(--vibe-border-light-e3e3e3);
}

.rl-redline-news__side-story:last-child {
    border-bottom: 0;
}

.rl-redline-news__side-copy {
    min-width: 0;
    align-self: center;
}

.rl-redline-news__side-copy h2 {
    margin: 8px 0 0;
    color: var(--vibe-text-dark);
    font-size: 15px;
    line-height: 1.13;
    font-weight: 900;
    letter-spacing: -.015em;
}

.rl-redline-news__side-copy h2 a:hover {
    color: var(--vibe-primary);
}

.rl-redline-news__side-image {
    display: block;
    min-height: 94px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-news__side-image img,
.rl-redline-news__side-image .rl-redline-news__image-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 94px;
    object-fit: cover;
}

.rl-redline-news__image-placeholder {
    background: var(--vibe-bg-component-e7e7e7);
}

.rl-redline-news__latest-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 16px;
    padding: 0 2px 12px;
    border-bottom: 1px solid var(--vibe-border-light-e4e4e4);
}

.rl-redline-news__latest-heading h2 {
    margin: 0;
    color: var(--vibe-text-dark);
    font-size: 21px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.02em;
}

.rl-redline-news__latest-heading > a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.rl-redline-news__latest-heading > a span {
    font-size: 23px;
    line-height: .7;
}

.rl-redline-news__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 14px;
}

.rl-redline-news__card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--vibe-border-light-e0e0e0);
    border-radius: 4px;
    background: var(--vibe-bg-white);
}

.rl-redline-news__card-image {
    display: block;
    width: 100%;
    aspect-ratio: 1.75 / 1;
    overflow: hidden;
    background: var(--vibe-bg-card-light-e8e8e8);
}

.rl-redline-news__card-image img,
.rl-redline-news__card-image .rl-redline-news__image-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rl-redline-news__card-copy {
    padding: 12px 12px 13px;
}

.rl-redline-news__card-copy h3 {
    margin: 7px 0 0;
    color: var(--vibe-text-dark);
    font-size: 13px;
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -.01em;
}

.rl-redline-news__card-copy h3 a:hover {
    color: var(--vibe-primary);
}

.rl-redline-news__pagination {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 20px;
    margin-top: 22px;
    padding: 15px 0 0;
    border-top: 1px solid var(--vibe-border-light-e3e3e3);
    color: var(--vibe-text-muted-666666);
    font-size: 11px;
    font-weight: 800;
}

.rl-redline-news__pagination > span:last-child {
    text-align: right;
}

.rl-redline-news__pagination a {
    color: var(--vibe-primary);
    font-weight: 900;
}

.rl-redline-news__empty {
    padding: 60px 24px;
    border: 1px solid var(--vibe-border-light-e2e2e2);
    background: var(--vibe-bg-white);
    text-align: center;
}

.rl-redline-news__empty h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 900;
}

.rl-redline-news__empty p {
    margin: 8px 0 0;
    color: var(--vibe-text-muted-666666);
    font-size: 12px;
}

@media (max-width: 1050px) {
    .rl-redline-news__featured {
        grid-template-columns: 1fr;
    }

    .rl-redline-news__side {
        grid-template-rows: none;
    }

    .rl-redline-news__side-story {
        grid-template-columns: minmax(0, 1fr) 180px;
    }

    .rl-redline-news__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .rl-redline-news__categories {
        min-height: 50px;
        margin-bottom: 14px;
    }

    .rl-redline-news__categories a {
        min-width: auto;
        padding: 0 17px;
        font-size: 11px;
    }

    .rl-redline-news__categories a.is-active {
        min-width: auto;
    }

    .rl-redline-news__featured,
    .rl-redline-news__lead,
    .rl-redline-news__lead-link {
        min-height: 330px;
    }

    .rl-redline-news__side {
        display: block;
    }

    .rl-redline-news__side-story {
        grid-template-columns: minmax(0, 1fr) 126px;
        min-height: 112px;
        gap: 12px;
        padding: 12px;
    }

    .rl-redline-news__side-image,
    .rl-redline-news__side-image img,
    .rl-redline-news__side-image .rl-redline-news__image-placeholder {
        min-height: 86px;
    }

    .rl-redline-news__lead-content {
        left: 18px;
        right: 18px;
        bottom: 18px;
    }

    .rl-redline-news__lead-title {
        max-width: 100%;
        font-size: 21px;
    }

    .rl-redline-news__grid {
        grid-template-columns: 1fr;
    }

    .rl-redline-news__latest-heading h2 {
        font-size: 19px;
    }

    .rl-redline-news__pagination {
        grid-template-columns: 1fr 1fr;
    }

    .rl-redline-news__pagination > span:nth-child(2) {
        display: none;
    }
}

/* =========================================================
   VIBE — NEWS INDEX COLOUR OVERRIDES
   Same Redline structure/functionality. Vibe colours only.
   ========================================================= */

.vibe-site--inner .rl-redline-news__categories {
    border-top-color: var(--vibe-border-medium);
    border-bottom-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-news__categories a {
    color: var(--vibe-text-white-a76);
}

.vibe-site--inner .rl-redline-news__categories a:hover {
    background: var(--vibe-bg-card);
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-news__categories a.is-active,
.vibe-site--inner .rl-redline-news__categories a.is-active:hover {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__featured {
    border-color: var(--vibe-border-medium);
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-news__lead-link {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-news__side {
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-news__side-story {
    border-bottom-color: var(--vibe-border-medium);
}

.vibe-site--inner .rl-redline-news__side-copy h2 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__side-image {
    border-radius: var(--vibe-card-radius);
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-news__image-placeholder {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-news__meta {
    color: var(--vibe-text-white-a52);
}

.vibe-site--inner .rl-redline-news__lead .rl-redline-news__meta {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__latest-heading {
    border-bottom-color: var(--vibe-border-medium);
}

.vibe-site--inner .rl-redline-news__latest-heading h2 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__card {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .rl-redline-news__card-image {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-news__card-copy h3 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__pagination {
    border-top-color: var(--vibe-border-medium);
    color: var(--vibe-text-white-a60);
}

.vibe-site--inner .rl-redline-news__empty {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-news__empty p {
    color: var(--vibe-text-white-a62);
}


/* =========================================================
   VIBE — HORIZON NEWS ARTICLE DESIGN
   Same Horizon article structure. Vibe colours only.
   ========================================================= */

.vibe-site--inner .horizon-article {
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}

.vibe-site--inner .horizon-article__back {
    display: inline-block;
    margin-bottom: 24px;
    color: var(--vibe-primary);
    font-weight: 800;
    text-decoration: none;
}

.vibe-site--inner .horizon-article__back:hover,
.vibe-site--inner .horizon-article__back:focus {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .horizon-article h1 {
    margin: 0 0 16px;
    color: var(--vibe-text-primary);
    font-size: clamp(38px, 7vw, 72px);
    line-height: .96;
    letter-spacing: -.045em;
}

.vibe-site--inner .horizon-article__meta {
    margin-bottom: 28px;
    color: var(--vibe-text-white-a55);
    font-weight: 700;
}

.vibe-site--inner .horizon-article__image {
    display: block;
    width: 100%;
    max-height: 520px;
    margin-bottom: 32px;
    border-radius: var(--vibe-card-radius);
    object-fit: cover;
}

.vibe-site--inner .horizon-article__summary {
    margin: 0 0 26px;
    color: var(--vibe-text-secondary);
    font-size: 21px;
    line-height: 1.55;
    font-weight: 700;
}

.vibe-site--inner .horizon-article__body {
    color: var(--vibe-text-secondary);
    font-size: 18px;
    line-height: 1.8;
}

.vibe-site--inner .horizon-article__body h2,
.vibe-site--inner .horizon-article__body h3,
.vibe-site--inner .horizon-article__body h4,
.vibe-site--inner .horizon-article__body h5,
.vibe-site--inner .horizon-article__body h6 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .horizon-article__body a {
    color: var(--vibe-primary);
}

.vibe-site--inner .horizon-article__body img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 700px) {
    .vibe-site--inner .horizon-article h1 {
        font-size: clamp(34px, 11vw, 52px);
    }

    .vibe-site--inner .horizon-article__summary {
        font-size: 18px;
    }

    .vibe-site--inner .horizon-article__body {
        font-size: 16px;
        line-height: 1.7;
    }
}

/* =========================================================
   VIBE — NEWS ARTICLE FINAL POLISH
   ========================================================= */

.vibe-site--inner .horizon-article {
    width: 100%;
    max-width: none;
    margin: 0;
}

.vibe-site--inner .horizon-article__back {
    margin-bottom: 20px;
    color: var(--vibe-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-site--inner .horizon-article h1 {
    max-width: 820px;
    margin: 0 0 14px;
    padding-left: 17px;
    border-left: 5px solid var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.02;
    font-weight: 950;
    letter-spacing: -1.4px;
}

.vibe-site--inner .horizon-article__meta {
    margin: 0 0 24px 22px;
    color: var(--vibe-text-white-a52);
    font-size: 12px;
    line-height: 1.4;
    font-weight: 700;
}

.vibe-site--inner .horizon-article__image {
    width: 100%;
    max-height: none;
    aspect-ratio: 16 / 9;
    margin: 0 0 27px;
    border-radius: var(--vibe-card-radius);
    object-fit: cover;
}

.vibe-site--inner .horizon-article__summary {
    max-width: 780px;
    margin: 0 0 24px;
    color: var(--vibe-text-primary);
    font-size: 19px;
    line-height: 1.5;
    font-weight: 750;
}

.vibe-site--inner .horizon-article__body {
    max-width: 780px;
    color: var(--vibe-text-white-a78);
    font-size: 16px;
    line-height: 1.75;
}

.vibe-site--inner .horizon-article__body p {
    margin: 0 0 20px;
}

.vibe-site--inner .horizon-article__body h2,
.vibe-site--inner .horizon-article__body h3 {
    margin: 32px 0 14px;
    color: var(--vibe-text-primary);
    line-height: 1.15;
    font-weight: 900;
}

@media (max-width: 700px) {
    .vibe-site--inner .horizon-article h1 {
        padding-left: 13px;
        border-left-width: 4px;
        font-size: 30px;
        letter-spacing: -.8px;
    }

    .vibe-site--inner .horizon-article__meta {
        margin-left: 17px;
    }

    .vibe-site--inner .horizon-article__summary {
        font-size: 17px;
    }

    .vibe-site--inner .horizon-article__body {
        font-size: 15px;
        line-height: 1.7;
    }
}

/* =========================================================
   VIBE — REFERENCE NEWS ARTICLE
   ========================================================= */

.vibe-site--inner .vibe-news-article {
    width: 100%;
    min-width: 0;
    color: var(--vibe-text-primary);
}

.vibe-site--inner .vibe-news-article__back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 20px;
    color: var(--vibe-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-site--inner .vibe-news-article__back:hover,
.vibe-site--inner .vibe-news-article__back:focus {
    color: var(--vibe-text-primary);
}

.vibe-site--inner .vibe-news-article__header h1 {
    max-width: 900px;
    margin: 0 0 24px;
    color: var(--vibe-text-primary);
    font-size: clamp(34px, 4vw, 52px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -1.8px;
}

.vibe-site--inner .vibe-news-article__information {
    display: flex;
    min-height: 62px;
    margin-bottom: 18px;
    padding: 10px 0;
    align-items: center;
    gap: 0;
    border-top: 1px solid var(--vibe-border-medium);
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-site--inner .vibe-news-article__author,
.vibe-site--inner .vibe-news-article__date,
.vibe-site--inner .vibe-news-article__read-time {
    min-height: 38px;
    padding: 0 22px;
    display: flex;
    align-items: center;
    border-right: 1px solid var(--vibe-border-medium-strong);
}

.vibe-site--inner .vibe-news-article__author {
    padding-left: 0;
    gap: 11px;
}

.vibe-site--inner .vibe-news-article__author-mark {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 950;
}

.vibe-site--inner .vibe-news-article__author > div {
    min-width: 0;
}

.vibe-site--inner .vibe-news-article__author strong,
.vibe-site--inner .vibe-news-article__author span {
    display: block;
}

.vibe-site--inner .vibe-news-article__author strong {
    color: var(--vibe-primary);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
}

.vibe-site--inner .vibe-news-article__author > div > span {
    margin-top: 3px;
    color: var(--vibe-text-white-a60);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 700;
}

.vibe-site--inner .vibe-news-article__date {
    color: var(--vibe-text-white-a78);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.vibe-site--inner .vibe-news-article__read-time {
    gap: 7px;
    color: var(--vibe-text-white-a78);
    font-size: 11px;
    font-weight: 800;
    white-space: nowrap;
}

.vibe-site--inner .vibe-news-article__read-time svg,
.vibe-site--inner .vibe-news-article__more-date svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-site--inner .vibe-news-article__share {
    margin-left: auto;
    padding-left: 22px;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share {
    display: flex;
    margin: 0;
    padding: 0;
    align-items: center;
    gap: 12px;
    border: 0;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__heading {
    margin: 0 5px 0 0;
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 850;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__heading {
    font-size: 0;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__heading::after {
    content: "Share this article";
    font-size: 11px;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__buttons {
    display: flex;
    flex-wrap: nowrap;
    gap: 9px;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__button {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border: 1px solid var(--vibe-border-white-a15);
    border-radius: 50%;
    background: var(--vibe-bg-card);
    color: var(--vibe-button-text);
    font-size: 0;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__button:hover {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__button svg {
    width: 15px;
    height: 15px;
}

.vibe-site--inner
.vibe-news-article__share
.rl-public-share__button--whatsapp {
    display: inline-flex !important;
}

.vibe-site--inner .vibe-news-article__share .rl-public-share__feedback {
    display: none;
}

.vibe-site--inner .vibe-news-article__hero {
    width: 100%;
    margin: 0 0 22px;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .vibe-news-article__hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-site--inner .vibe-news-article__content {
    max-width: 900px;
}

.vibe-site--inner .vibe-news-article__summary {
    margin: 0 0 14px;
    color: var(--vibe-text-primary);
    font-size: 17px;
    line-height: 1.45;
    font-weight: 850;
}

.vibe-site--inner .vibe-news-article__body {
    color: var(--vibe-text-secondary);
    font-size: 15px;
    line-height: 1.62;
    font-weight: 500;
}

.vibe-site--inner .vibe-news-article__body p {
    margin: 0 0 14px;
}

.vibe-site--inner .vibe-news-article__body h2,
.vibe-site--inner .vibe-news-article__body h3,
.vibe-site--inner .vibe-news-article__body h4 {
    margin: 25px 0 10px;
    color: var(--vibe-text-primary);
    line-height: 1.1;
    font-weight: 950;
}

.vibe-site--inner .vibe-news-article__body h2 {
    font-size: 25px;
}

.vibe-site--inner .vibe-news-article__body h3 {
    font-size: 20px;
}

.vibe-site--inner .vibe-news-article__body a {
    color: var(--vibe-primary);
    font-weight: 800;
}

.vibe-site--inner .vibe-news-article__body blockquote {
    position: relative;
    margin: 24px 0;
    padding: 4px 0 4px 28px;
    border-left: 4px solid var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 18px;
    line-height: 1.4;
    font-weight: 850;
}

.vibe-site--inner .vibe-news-article__body img {
    max-width: 100%;
    height: auto;
}

.vibe-site--inner .vibe-news-article__topics {
    display: flex;
    margin-top: 28px;
    padding-top: 15px;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--vibe-border-medium);
}

.vibe-site--inner .vibe-news-article__topics > strong {
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 900;
}

.vibe-site--inner .vibe-news-article__topic-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.vibe-site--inner .vibe-news-article__topic-list span {
    display: inline-flex;
    min-height: 28px;
    padding: 0 14px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-primary);
    border-radius: 4px;
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 850;
}

.vibe-site--inner .vibe-news-article__more {
    margin-top: 22px;
    padding-top: 14px;
    border-top: 1px solid var(--vibe-border-medium);
}

.vibe-site--inner .vibe-news-article__more-heading {
    margin-bottom: 11px;
}

.vibe-site--inner .vibe-news-article__more-heading h2 {
    margin: 0;
    color: var(--vibe-primary);
    font-size: 13px;
    line-height: 1;
    font-weight: 950;
    text-transform: uppercase;
}

.vibe-site--inner .vibe-news-article__more-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.vibe-site--inner .vibe-news-article__more-card {
    display: grid;
    min-width: 0;
    grid-template-columns: 42% minmax(0, 1fr);
    min-height: 82px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-medium);
    background: var(--vibe-bg-sidebar);
}

.vibe-site--inner .vibe-news-article__more-image {
    display: block;
    min-width: 0;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .vibe-news-article__more-image img,
.vibe-site--inner .vibe-news-article__more-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 82px;
    object-fit: cover;
}

.vibe-site--inner .vibe-news-article__more-placeholder {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .vibe-news-article__more-copy {
    min-width: 0;
    padding: 10px;
}

.vibe-site--inner .vibe-news-article__more-copy h3 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 850;
}

.vibe-site--inner .vibe-news-article__more-copy h3 a {
    color: inherit;
    text-decoration: none;
}

.vibe-site--inner .vibe-news-article__more-copy h3 a:hover {
    color: var(--vibe-primary);
}

.vibe-site--inner .vibe-news-article__more-date {
    display: flex;
    margin-top: 8px;
    align-items: center;
    gap: 5px;
    color: var(--vibe-text-white-a48);
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
}

@media (max-width: 1050px) {
    .vibe-site--inner .vibe-news-article__information {
        flex-wrap: wrap;
        row-gap: 10px;
    }

    .vibe-site--inner .vibe-news-article__share {
        width: 100%;
        margin-left: 0;
        padding: 10px 0 0;
        border-top: 1px solid var(--vibe-border-subtle);
    }

    .vibe-site--inner .vibe-news-article__more-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .vibe-site--inner .vibe-news-article__header h1 {
        margin-bottom: 18px;
        font-size: 31px;
        letter-spacing: -.9px;
    }

    .vibe-site--inner .vibe-news-article__information {
        display: block;
        padding: 0;
    }

    .vibe-site--inner .vibe-news-article__author,
    .vibe-site--inner .vibe-news-article__date,
    .vibe-site--inner .vibe-news-article__read-time {
        min-height: 44px;
        padding: 8px 0;
        border-right: 0;
        border-bottom: 1px solid var(--vibe-border-subtle);
    }

    .vibe-site--inner .vibe-news-article__share {
        padding: 12px 0;
        border-top: 0;
    }

    .vibe-site--inner .vibe-news-article__share .rl-public-share {
        align-items: flex-start;
        flex-direction: column;
    }

    .vibe-site--inner .vibe-news-article__hero {
        margin-bottom: 18px;
    }

    .vibe-site--inner .vibe-news-article__summary {
        font-size: 16px;
    }

    .vibe-site--inner .vibe-news-article__body {
        font-size: 15px;
    }

    .vibe-site--inner .vibe-news-article__topics {
        align-items: flex-start;
        flex-direction: column;
    }

    .vibe-site--inner .vibe-news-article__more-grid {
        grid-template-columns: 1fr;
    }
}



/* =========================================================
   VIBE — COMPACT SCHEDULE CARDS
   ========================================================= */

@media (min-width: 768px) {
    .vibe-site--inner .rl-redline-schedule-card {
        min-height: 154px;
    }

    .vibe-site--inner .rl-redline-schedule-card__image {
        width: 170px;
        min-width: 170px;
        min-height: 154px;
    }

    .vibe-site--inner .rl-redline-schedule-card__image img {
        width: 100%;
        height: 154px;
        min-height: 0;
        object-fit: contain;
        object-position: center bottom;
    }

    .vibe-site--inner .rl-redline-schedule-card__content {
        padding: 14px 20px;
    }

    .vibe-site--inner .rl-redline-schedule-card__on-air {
        margin-bottom: 7px;
    }

    .vibe-site--inner .rl-redline-schedule-card__time {
        margin-bottom: 5px;
    }

    .vibe-site--inner .rl-redline-schedule-card__presenter {
        margin-top: 5px;
    }

    .vibe-site--inner .rl-redline-schedule-card__description {
        margin-top: 7px;
        line-height: 1.4;
        -webkit-line-clamp: 2;
    }

    .vibe-site--inner .rl-redline-schedule-card__actions {
        margin-top: 9px;
    }

    .vibe-site--inner .rl-redline-schedule-card__sponsor {
        padding: 14px 16px;
    }
}


/* =========================================================
   VIBE — RECENTLY PLAYED MOCKUP POLISH
   ========================================================= */

.vibe-site--inner .rl-recently-played__filters {
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr)
        auto;
    gap: 10px;
    margin-bottom: 24px;
    padding: 15px 16px 16px;
    border-top-width: 3px;
}

.vibe-site--inner .rl-recently-played__field label {
    margin-bottom: 6px;
    font-size: 10px;
}

.vibe-site--inner .rl-recently-played__field select {
    height: 44px;
    font-size: 13px;
}

.vibe-site--inner .rl-recently-played__submit {
    height: 44px;
    padding: 0 22px;
    font-size: 11px;
}

/* Playlist heading */

.vibe-site--inner .rl-recently-played__results-header {
    margin-bottom: 14px;
}

.vibe-site--inner .rl-recently-played__playlist-summary {
    grid-template-columns:
        50px
        minmax(0, 1fr)
        245px;
    gap: 14px;
}

.vibe-site--inner .rl-recently-played__playlist-icon {
    width: 46px;
    height: 46px;
    border-width: 1.5px;
}

.vibe-site--inner .rl-recently-played__playlist-icon svg {
    width: 20px;
    height: 20px;
}

.vibe-site--inner .rl-recently-played__playlist-copy > span {
    margin-bottom: 3px;
    color: var(--vibe-primary);
    font-size: 14px;
    line-height: 1.15;
    font-weight: 900;
}

.vibe-site--inner .rl-recently-played__playlist-copy h2 {
    font-size: 15px !important;
    line-height: 1.2 !important;
    font-weight: 750;
    letter-spacing: 0;
}

.vibe-site--inner .rl-recently-played__playlist-copy strong {
    margin-top: 4px;
    color: var(--vibe-text-white-a68);
    font-size: 11px;
    font-weight: 800;
}

/* Control Chart callout */

.vibe-site--inner .rl-recently-played__chart-callout {
    grid-template-columns:
        28px
        minmax(0, 1fr)
        15px;
    gap: 9px;
    min-height: 52px;
    padding: 9px 11px;
}

.vibe-site--inner .rl-recently-played__chart-icon {
    width: 23px;
    height: 23px;
}

.vibe-site--inner .rl-recently-played__chart-callout span {
    font-size: 10px;
    line-height: 1.3;
}

.vibe-site--inner .rl-recently-played__chart-arrow {
    width: 14px;
    height: 14px;
}

/* Table heading */

.vibe-site--inner .rl-recently-played__table-head {
    grid-template-columns:
        70px
        minmax(0, 1fr)
        96px
        108px;
    gap: 10px;
    padding: 11px 14px;
    font-size: 10px;
}

/* Compact playlist rows */

.vibe-site--inner .rl-recently-played-track {
    grid-template-columns:
        70px
        60px
        minmax(0, 1fr)
        96px
        108px;
    gap: 10px;
    min-height: 74px;
    padding: 7px 14px;
}

.vibe-site--inner .rl-recently-played-track__time {
    font-size: 12px;
}

.vibe-site--inner .rl-recently-played-track__artwork {
    width: 56px;
    height: 56px;
}

.vibe-site--inner .rl-recently-played-track__copy strong {
    font-size: 14px;
    line-height: 1.15;
}

.vibe-site--inner .rl-recently-played-track__copy > span {
    margin-top: 3px;
    font-size: 11px;
}

.vibe-site--inner .rl-recently-played .rl-vote-bar {
    gap: 7px;
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button {
    gap: 3px;
    padding: 3px 2px;
    font-size: 10px;
}

.vibe-site--inner .rl-recently-played .rl-song-vote-button svg {
    width: 17px;
    height: 17px;
}

/* Smaller Preview action */

.vibe-site--inner .rl-recently-played-track__preview {
    height: 32px !important;
    padding: 0 12px !important;
    font-size: 10px !important;
    letter-spacing: .04em;
}

.vibe-site--inner .rl-recently-played-track__preview svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
}

/* Tablet */

@media (max-width: 980px) {
    .vibe-site--inner .rl-recently-played__playlist-summary {
        grid-template-columns: 46px minmax(0, 1fr);
    }

    .vibe-site--inner .rl-recently-played__chart-callout {
        grid-column: 1 / -1;
        margin-top: 4px;
    }
}

/* Mobile */

@media (max-width: 760px) {
    .vibe-site--inner .rl-recently-played__filters {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 14px;
    }

    .vibe-site--inner .rl-recently-played__playlist-summary {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 11px;
    }

    .vibe-site--inner .rl-recently-played__playlist-icon {
        width: 40px;
        height: 40px;
    }

    .vibe-site--inner .rl-recently-played__playlist-icon svg {
        width: 18px;
        height: 18px;
    }

    .vibe-site--inner .rl-recently-played__playlist-copy > span {
        font-size: 12px;
    }

    .vibe-site--inner .rl-recently-played__playlist-copy h2 {
        font-size: 14px !important;
    }

    .vibe-site--inner .rl-recently-played-track {
        grid-template-columns:
            44px
            54px
            minmax(0, 1fr);
        gap: 9px;
        min-height: 70px;
        padding: 8px;
    }

    .vibe-site--inner .rl-recently-played-track__artwork {
        width: 52px;
        height: 52px;
    }
}

/* ---------------------------------------------------------
   Vibe Podcasts public page
   --------------------------------------------------------- */

.vibe-podcasts {
    width: 100%;
    color: var(--vibe-text-primary);
}

/* Page intro */
.vibe-podcasts__header {
    margin-bottom: 22px;
}

.vibe-podcasts__eyebrow {
    display: block;
    margin-bottom: 7px;
    color: var(--vibe-brand-primary-hover);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-podcasts__header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(38px, 4.5vw, 56px);
    line-height: .95;
    font-weight: 950;
    letter-spacing: -.045em;
    text-transform: uppercase;
}

.vibe-podcasts__header p {
    max-width: 690px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a62);
    font-size: 14px;
    line-height: 1.5;
    font-weight: 650;
}

/* Featured podcast */
.vibe-podcasts-featured {
    display: grid;
    grid-template-columns: 250px minmax(0,1fr);
    min-height: 250px;
    margin-bottom: 32px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-soft);
    border-top: 4px solid var(--vibe-brand-primary-hover);
    background: var(--vibe-bg-panel);
}

.vibe-podcasts-featured__art {
    width: 250px;
    height: 250px;
    overflow: hidden;
    background: var(--vibe-bg-deepest);
}

.vibe-podcasts-featured__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-podcasts-featured__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 26px 30px;
}

.vibe-podcasts-featured__label {
    margin-bottom: 8px;
    color: var(--vibe-brand-primary-hover);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-podcasts-featured__content h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.vibe-podcasts-featured__content > p {
    max-width: 650px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a60);
    font-size: 12px;
    line-height: 1.5;
    font-weight: 650;
}

.vibe-podcasts-featured__latest {
    margin-top: 16px;
}

.vibe-podcasts-featured__latest > span {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-text-faint);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-podcasts-featured__latest > strong {
    display: block;
    color: var(--vibe-text-primary);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 850;
}

.vibe-podcasts-featured__meta {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 5px;
    color: var(--vibe-text-white-a46);
    font-size: 11px;
    font-weight: 700;
}

.vibe-podcasts-featured__button {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 7px;
    min-height: 38px;
    margin-top: 16px;
    padding: 0 14px;
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .03em;
    text-decoration: none !important;
    text-transform: uppercase;
}

.vibe-podcasts-featured__play {
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
}

.vibe-podcasts-featured__play svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

/* Shared section headings */
.vibe-podcasts-section {
    margin-top: 30px;
}

.vibe-podcasts-section__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 12px;
}

.vibe-podcasts-section__heading span {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-brand-primary-hover);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-podcasts-section__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 22px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.02em;
    text-transform: uppercase;
}

/* Latest episodes */
.vibe-podcasts-episodes {
    border: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-bg-panel);
}

.vibe-podcast-episode {
    display: grid;
    grid-template-columns: 72px minmax(0,1fr) 38px;
    gap: 14px;
    align-items: center;
    min-height: 92px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-podcast-episode:last-child {
    border-bottom: 0;
}

.vibe-podcast-episode__art {
    width: 72px;
    height: 72px;
    overflow: hidden;
    background: var(--vibe-bg-deepest);
}

.vibe-podcast-episode__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-podcast-episode__copy {
    min-width: 0;
}

.vibe-podcast-episode__show {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-brand-primary-hover);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.vibe-podcast-episode__copy h3 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 14px;
    line-height: 1.2;
    font-weight: 900;
}

.vibe-podcast-episode__copy p {
    max-width: 620px;
    margin: 5px 0 0;
    color: var(--vibe-text-white-a52);
    font-size: 10px;
    line-height: 1.4;
    font-weight: 650;
}

.vibe-podcast-episode__meta {
    display: flex;
    gap: 12px;
    margin-top: 6px;
    color: var(--vibe-text-white-a42);
    font-size: 10px;
    font-weight: 700;
}

.vibe-podcast-episode__play {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border-radius: 50%;
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-text-primary) !important;
    text-decoration: none !important;
}

.vibe-podcast-episode__play svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

/* More podcasts */
.vibe-podcasts-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 12px;
}

.vibe-podcast-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary) !important;
    text-decoration: none !important;
}

.vibe-podcast-card__art {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--vibe-bg-deepest);
}

.vibe-podcast-card__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-podcast-card__play {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 50%;
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-text-primary);
}

.vibe-podcast-card__play svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.vibe-podcast-card__copy {
    padding: 11px 12px 13px;
}

.vibe-podcast-card__copy h3 {
    margin: 0;
    overflow: hidden;
    color: var(--vibe-text-primary);
    font-size: 13px;
    line-height: 1.25;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-podcast-card__copy span {
    display: block;
    margin-top: 4px;
    color: var(--vibe-text-white-a48);
    font-size: 11px;
    font-weight: 700;
}

/* Artwork fallback */
.vibe-podcasts__art-placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    background: var(--vibe-bg-deepest);
    color: var(--vibe-text-white-a20);
}

.vibe-podcasts__art-placeholder svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-podcasts__empty {
    padding: 30px 18px;
    color: var(--vibe-text-white-a48);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

/* Tablet */
@media (max-width: 900px) {
    .vibe-podcasts-featured {
        grid-template-columns: 200px minmax(0,1fr);
    }

    .vibe-podcasts-featured__art {
        width: 200px;
        height: 200px;
    }

    .vibe-podcasts-featured__content {
        padding: 20px 22px;
    }

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

/* Mobile */
@media (max-width: 620px) {
    .vibe-podcasts__header h1 {
        font-size: 38px;
    }

    .vibe-podcasts-featured {
        grid-template-columns: 1fr;
    }

    .vibe-podcasts-featured__art {
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
    }

    .vibe-podcasts-featured__content {
        padding: 20px;
    }

    .vibe-podcast-episode {
        grid-template-columns: 58px minmax(0,1fr) 32px;
        gap: 10px;
        padding: 9px 10px;
    }

    .vibe-podcast-episode__art {
        width: 58px;
        height: 58px;
    }

    .vibe-podcast-episode__copy p {
        display: none;
    }

    .vibe-podcasts-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
}


/* ---------------------------------------------------------
   Vibe public schedule — compact proportions
   --------------------------------------------------------- */

@media (min-width: 768px) {
    .vibe-site--inner .rl-redline-schedule__tabs {
        display: flex;
        gap: 8px;
        overflow: visible;
        margin-bottom: 20px;
        border: 0;
        background: transparent;
    }

    .vibe-site--inner .rl-redline-schedule__tab {
        flex: 1 1 0;
        min-width: 0;
        min-height: 40px;
        padding: 0 10px;
        border: 0;
        border-radius: 5px;
        text-align: center;
    }

    .vibe-site--inner .rl-redline-schedule__tab:last-child {
        border-right: 0;
    }

    .vibe-site--inner .rl-redline-schedule__list {
        gap: 12px;
    }

    .vibe-site--inner .rl-redline-schedule-card {
        min-height: 132px;
    }

    .vibe-site--inner .rl-redline-schedule-card__image {
        width: 120px;
        min-width: 120px;
        min-height: 132px;
    }

    .vibe-site--inner .rl-redline-schedule-card__image img {
        min-height: 132px;
    }

    .vibe-site--inner .rl-redline-schedule-card__listen {
        right: 8px;
        bottom: 8px;
        left: 8px;
        padding: 7px 6px;
        font-size: 11px;
    }

    .vibe-site--inner .rl-redline-schedule-card__content {
        padding: 14px 18px;
    }

    .vibe-site--inner .rl-redline-schedule-card__on-air {
        margin-bottom: 6px;
        font-size: 10px;
    }

    .vibe-site--inner .rl-redline-schedule-card__time {
        margin-bottom: 5px;
        font-size: 11px;
    }

    .vibe-site--inner .rl-redline-schedule-card__content h3 {
        font-size: 22px;
        line-height: 1.05;
    }

    .vibe-site--inner .rl-redline-schedule-card__presenter {
        margin-top: 4px;
        font-size: 12px;
    }

    .vibe-site--inner .rl-redline-schedule-card__description {
        max-width: 720px;
        margin-top: 7px;
        font-size: 12px;
        line-height: 1.45;
        -webkit-line-clamp: 2;
    }

    .vibe-site--inner .rl-redline-schedule-card__actions {
        gap: 12px;
        margin-top: 8px;
    }

    .vibe-site--inner .rl-redline-schedule-card__sponsor {
        width: auto;
        min-width: 132px;
        max-width: 160px;
        padding: 12px 14px;
    }

    .vibe-site--inner
    .rl-redline-schedule-card__sponsor-inner {
        gap: 5px;
    }

    .vibe-site--inner
    .rl-redline-schedule-card__sponsor-inner img {
        max-width: 112px;
        max-height: 48px;
    }

    .vibe-site--inner
    .rl-redline-schedule-card__sponsor-inner strong {
        font-size: 11px;
    }
}

@media (max-width: 767px) {
    .vibe-site--inner .rl-redline-schedule__tabs {
        gap: 7px;
        padding: 0 16px 4px;
        border: 0;
        background: transparent;
    }

    .vibe-site--inner .rl-redline-schedule__tab {
        flex: 0 0 auto;
        min-width: 78px;
        min-height: 40px;
        border: 0;
        border-radius: 5px;
    }
}


/* RADIOlaunch Vibe Presenter Profile */

.vibe-presenter-profile {
    overflow: hidden;
    background: var(--vibe-bg-white);
}

.vibe-presenter-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
    min-height: 520px;
    background: var(--vibe-text-dark);
    color: var(--vibe-text-primary);
}

.vibe-presenter-hero--no-image {
    grid-template-columns: 1fr;
}

.vibe-presenter-hero__copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 62px 56px;
}

.vibe-presenter-hero__schedule {
    margin-bottom: 16px;
    color: var(--vibe-presenter-accent);
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-presenter-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(52px, 7vw, 88px);
    font-weight: 950;
    line-height: .92;
    letter-spacing: -.055em;
}

.vibe-presenter-hero__presenter {
    margin-top: 15px;
    font-size: clamp(27px, 3vw, 38px);
    font-weight: 850;
    line-height: 1;
}

.vibe-presenter-hero__copy > p {
    max-width: 650px;
    margin: 25px 0 0;
    color: var(--vibe-text-white-a78);
    font-size: 17px;
    line-height: 1.6;
}

.vibe-presenter-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.vibe-presenter-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 0;
    border-radius: 3px;
    padding: 0 22px;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.vibe-presenter-button svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-button svg path:first-child:last-child {
    fill: currentColor;
    stroke: none;
}

.vibe-presenter-button--primary {
    background: var(--vibe-presenter-accent);
    color: var(--vibe-button-text);
}

.vibe-presenter-button--secondary {
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark);
}

.vibe-presenter-hero__image {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: var(--vibe-bg-component-242424);
}

.vibe-presenter-hero__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.vibe-presenter-section {
    padding: 58px 56px;
}

.vibe-presenter-section__heading {
    margin-bottom: 28px;
}

.vibe-presenter-section__heading > span {
    display: block;
    margin-bottom: 7px;
    color: var(--vibe-presenter-accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-presenter-section__heading h2 {
    margin: 0;
    color: var(--vibe-text-dark-111111);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 950;
    letter-spacing: -.04em;
    line-height: 1;
}

.vibe-presenter-section__heading--light > span,
.vibe-presenter-section__heading--light h2 {
    color: var(--vibe-text-primary);
}

.vibe-presenter-about {
    background: var(--vibe-bg-white);
}

.vibe-presenter-about__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 245px;
    gap: 52px;
    align-items: start;
}

.vibe-presenter-about__copy {
    max-width: 760px;
}

.vibe-presenter-about__copy p {
    margin: 0 0 17px;
    color: var(--vibe-text-muted-404040);
    font-size: 16px;
    line-height: 1.72;
}

.vibe-presenter-about__image {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--vibe-bg-card-light-ededed);
}

.vibe-presenter-about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-presenter-highlights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--vibe-border-light-ededed);
    border-bottom: 1px solid var(--vibe-border-light-ededed);
    background: var(--vibe-bg-white);
}

.vibe-presenter-highlight {
    min-width: 0;
    padding: 34px 28px;
    text-align: center;
}

.vibe-presenter-highlight + .vibe-presenter-highlight {
    border-left: 1px solid var(--vibe-border-light-ededed);
}

.vibe-presenter-highlight__icon {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    color: var(--vibe-presenter-accent);
}

.vibe-presenter-highlight__icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-highlight h3 {
    margin: 0;
    color: var(--vibe-text-dark-111111);
    font-size: 17px;
    font-weight: 900;
}

.vibe-presenter-highlight p {
    margin: 7px auto 0;
    color: var(--vibe-text-muted-777777);
    font-size: 13px;
    line-height: 1.45;
}

.vibe-presenter-listen-back {
    background: var(--vibe-presenter-accent);
    color: var(--vibe-text-primary);
}

.vibe-presenter-episodes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.vibe-presenter-episode {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark);
}

.vibe-presenter-episode__image {
    position: relative;
    display: block;
    min-height: 145px;
    overflow: hidden;
    background: var(--vibe-text-dark);
}

.vibe-presenter-episode__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-presenter-episode__placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-primary);
}

.vibe-presenter-episode__placeholder svg,
.vibe-presenter-episode__play svg {
    width: 26px;
    height: 26px;
    fill: currentColor;
}

.vibe-presenter-episode__play {
    position: absolute;
    right: 12px;
    bottom: 12px;
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-white);
    color: var(--vibe-presenter-accent);
}

.vibe-presenter-episode__play svg {
    width: 18px;
    height: 18px;
}

.vibe-presenter-episode__copy {
    padding: 24px;
}

.vibe-presenter-episode__copy h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.2;
}

.vibe-presenter-episode__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
    color: var(--vibe-text-muted-777777);
    font-size: 12px;
    font-weight: 700;
}

.vibe-presenter-text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 27px;
    color: var(--vibe-text-dark);
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}

.vibe-presenter-text-link--light {
    color: var(--vibe-text-primary);
}

.vibe-presenter-text-link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-played {
    background: var(--vibe-bg-white);
}

.vibe-presenter-tracks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.vibe-presenter-track {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    min-width: 0;
    border: 1px solid var(--vibe-border-light-e8e8e8);
    background: var(--vibe-bg-white);
}

.vibe-presenter-track__art {
    width: 88px;
    height: 88px;
    overflow: hidden;
    background: var(--vibe-bg-card-light-ededed);
}

.vibe-presenter-track__art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-presenter-track__art > span {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-muted-777777);
}

.vibe-presenter-track__art svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.vibe-presenter-track__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: 12px 14px;
}

.vibe-presenter-track__copy strong,
.vibe-presenter-track__copy span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-presenter-track__copy strong {
    font-size: 14px;
    font-weight: 900;
}

.vibe-presenter-track__copy span {
    margin-top: 2px;
    color: var(--vibe-text-muted-666666);
    font-size: 12px;
}

.vibe-presenter-track__copy small {
    margin-top: 7px;
    color: var(--vibe-presenter-accent);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-presenter-sponsor {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr);
    gap: 50px;
    align-items: center;
    background: var(--vibe-bg-card-raised-light-f3f3f3);
}

.vibe-presenter-sponsor__copy > span {
    color: var(--vibe-presenter-accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-presenter-sponsor__copy h2 {
    margin: 8px 0 16px;
    font-size: 38px;
    font-weight: 950;
    letter-spacing: -.035em;
}

.vibe-presenter-sponsor__copy p {
    max-width: 650px;
    color: var(--vibe-text-muted-555555);
    font-size: 16px;
    line-height: 1.65;
}

.vibe-presenter-sponsor__visual {
    display: flex;
    min-height: 180px;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-white);
    padding: 28px;
}

.vibe-presenter-sponsor__visual img {
    max-width: 100%;
    max-height: 210px;
    object-fit: contain;
}

.vibe-presenter-social {
    border-top: 1px solid var(--vibe-border-light-ededed);
    background: var(--vibe-bg-white);
}

.vibe-presenter-social__links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.vibe-presenter-social__links a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--vibe-border-light-dcdcdc);
    padding: 0 16px;
    color: var(--vibe-text-dark);
    font-size: 13px;
    font-weight: 850;
    text-decoration: none;
}

.vibe-presenter-social__links svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 980px) {
    .vibe-presenter-hero {
        grid-template-columns: 1fr;
    }

    .vibe-presenter-hero__image {
        min-height: 460px;
        order: -1;
    }

    .vibe-presenter-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-presenter-highlight:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--vibe-border-light-ededed);
    }

    .vibe-presenter-highlight:nth-child(4) {
        border-top: 1px solid var(--vibe-border-light-ededed);
    }

    .vibe-presenter-episodes,
    .vibe-presenter-tracks {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .vibe-presenter-hero__copy,
    .vibe-presenter-section {
        padding: 36px 24px;
    }

    .vibe-presenter-hero__image {
        min-height: 350px;
    }

    .vibe-presenter-hero h1 {
        font-size: clamp(43px, 14vw, 64px);
    }

    .vibe-presenter-hero__actions {
        flex-direction: column;
    }

    .vibe-presenter-button {
        width: 100%;
    }

    .vibe-presenter-about__layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .vibe-presenter-about__image {
        max-width: 260px;
    }

    .vibe-presenter-highlights {
        grid-template-columns: 1fr;
    }

    .vibe-presenter-highlight + .vibe-presenter-highlight {
        border-top: 1px solid var(--vibe-border-light-ededed);
        border-left: 0;
    }

    .vibe-presenter-episode {
        grid-template-columns: 110px minmax(0, 1fr);
    }

    .vibe-presenter-sponsor {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}


/* RADIOlaunch Vibe Presenter Reference Hero V2 */

.vibe-presenter-hero.vibe-presenter-hero--reference {
    position: relative;
    display: block;
    min-height: 610px;
    overflow: hidden;
    background-color: var(--vibe-bg-component-181818);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: var(--vibe-text-primary);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: var(--vibe-preserve-background-f6a7c360d9);
    pointer-events: none;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__content {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(780px, 68%);
    min-height: 610px;
    flex-direction: column;
    justify-content: center;
    padding: 48px 0 48px 48px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor {
    display: flex;
    min-height: 52px;
    align-items: center;
    gap: 18px;
    margin-bottom: 22px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor > a {
    display: flex;
    align-items: center;
    gap: 18px;
    color: inherit;
    text-decoration: none;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor span {
    max-width: 260px;
    font-size: 14px;
    font-weight: 850;
    line-height: 1.12;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor strong {
    display: block;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor img {
    width: auto;
    max-width: 86px;
    height: 48px;
    object-fit: contain;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__title {
    max-width: 770px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__title h1 {
    max-width: none;
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(62px, 7vw, 104px);
    font-weight: 950;
    line-height: .82;
    letter-spacing: -.055em;
    text-transform: uppercase;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__with {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 17px;
    margin-top: 9px;
    font-size: clamp(45px, 5.5vw, 82px);
    font-weight: 950;
    line-height: .88;
    letter-spacing: -.045em;
    text-transform: uppercase;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__with span {
    color: var(--vibe-text-primary);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__with strong {
    color: var(--vibe-presenter-accent);
    font: inherit;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status {
    display: inline-flex;
    width: fit-content;
    min-height: 48px;
    align-items: center;
    gap: 13px;
    margin-top: 23px;
    border-radius: 6px;
    background: var(--vibe-brand-component-722cb0-a94);
    padding: 0 22px;
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 900;
    letter-spacing: .015em;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status--live {
    background: var(--vibe-presenter-accent);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status-dot {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border-radius: 50%;
    background: var(--vibe-presenter-accent);
}

.vibe-presenter-hero--reference
.vibe-presenter-hero__status--live
.vibe-presenter-hero__status-dot {
    background: var(--vibe-bg-white);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__description {
    max-width: 730px;
    margin-top: 20px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__description p {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 18px;
    font-weight: 520;
    line-height: 1.48;
    text-shadow: 0 1px 4px var(--vibe-shadow-black-a40);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 24px;
}

.vibe-presenter-hero--reference .vibe-presenter-button {
    min-width: 190px;
    min-height: 62px;
    border-radius: 6px;
    padding: 0 26px;
    font-size: 15px;
    text-transform: uppercase;
}

.vibe-presenter-hero--reference
.vibe-presenter-button--primary {
    background: var(--vibe-presenter-accent);
    color: var(--vibe-button-text);
}

.vibe-presenter-hero--reference
.vibe-presenter-button--listen-back {
    background: var(--vibe-brand-component-672b9d-a96);
    color: var(--vibe-button-text);
}

.vibe-presenter-hero--reference
.vibe-presenter-button--message {
    border: 2px solid var(--vibe-border-white-a90);
    background: var(--vibe-bg-component-0f0f12-a32);
    color: var(--vibe-button-text);
}

.vibe-presenter-hero--reference .vibe-presenter-button svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-hero--reference.vibe-presenter-hero--no-image {
    min-height: 540px;
    background: var(--vibe-bg-component-181818);
}

.vibe-presenter-hero--reference.vibe-presenter-hero--no-image
.vibe-presenter-hero__content {
    min-height: 540px;
}

@media (max-width: 980px) {
    .vibe-presenter-hero.vibe-presenter-hero--reference,
    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        min-height: 570px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        width: 82%;
        padding-left: 38px;
    }
}

@media (max-width: 700px) {
    .vibe-presenter-hero.vibe-presenter-hero--reference {
        min-height: 610px;
        background-position: 62% center;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__overlay {
        background: var(--vibe-preserve-background-490ead2ffe);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        width: 100%;
        min-height: 610px;
        justify-content: flex-end;
        padding: 34px 22px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__sponsor {
        margin-bottom: 18px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__title h1 {
        font-size: clamp(48px, 16vw, 70px);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__with {
        gap: 10px;
        font-size: clamp(35px, 11vw, 50px);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__status {
        min-height: 42px;
        padding: 0 16px;
        font-size: 12px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__description p {
        font-size: 15px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .vibe-presenter-hero--reference .vibe-presenter-button {
        width: 100%;
        min-width: 0;
        min-height: 52px;
    }
}


/* RADIOlaunch Vibe Presenter WordPress Hero Match V3 */

.vibe-presenter-profile {
    --vibe-presenter-accent: var(--vibe-primary);
}

.vibe-presenter-hero.vibe-presenter-hero--reference {
    min-height: 500px;
    background-position: center 38%;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__overlay {
    background: var(--vibe-preserve-background-be7e0a605f);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__content {
    width: min(820px, 72%);
    min-height: 500px;
    justify-content: center;
    padding: 30px 0 30px 48px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor {
    min-height: 40px;
    gap: 14px;
    margin-bottom: 14px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor > a {
    gap: 14px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor span {
    max-width: 225px;
    font-size: 12px;
    line-height: 1.05;
    letter-spacing: .12em;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__sponsor img {
    max-width: 72px;
    height: 38px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__title {
    max-width: none;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__title h1 {
    white-space: nowrap;
    font-size: clamp(58px, 5.5vw, 82px);
    line-height: .86;
    letter-spacing: -.05em;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__with {
    flex-wrap: nowrap;
    gap: 15px;
    margin-top: 5px;
    white-space: nowrap;
    font-size: clamp(42px, 4.65vw, 69px);
    line-height: .9;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__with strong {
    color: var(--vibe-primary);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status {
    min-height: 42px;
    gap: 11px;
    margin-top: 16px;
    border-radius: 5px;
    background: var(--vibe-brand-secondary-bright);
    padding: 0 18px;
    font-size: 13px;
    line-height: 1.15;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status--live {
    background: var(--vibe-primary);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__status-dot {
    width: 15px;
    height: 15px;
    flex-basis: 15px;
    background: var(--vibe-primary);
}

.vibe-presenter-hero--reference
.vibe-presenter-hero__status--live
.vibe-presenter-hero__status-dot {
    background: var(--vibe-bg-white);
}

.vibe-presenter-hero--reference .vibe-presenter-hero__description {
    max-width: 700px;
    margin-top: 15px;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__description p {
    margin: 0 0 9px;
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 520;
    line-height: 1.35;
    text-shadow: 0 1px 3px var(--vibe-shadow-black-a50);
}

.vibe-presenter-hero--reference
.vibe-presenter-hero__description p:last-child {
    margin-bottom: 0;
}

.vibe-presenter-hero--reference .vibe-presenter-hero__actions {
    flex-wrap: nowrap;
    gap: 12px;
    margin-top: 18px;
}

.vibe-presenter-hero--reference .vibe-presenter-button {
    min-width: 0;
    min-height: 50px;
    border-radius: 5px;
    padding: 0 22px;
    font-size: 13px;
}

.vibe-presenter-hero--reference
.vibe-presenter-button--primary {
    background: var(--vibe-primary);
}

.vibe-presenter-hero--reference
.vibe-presenter-button--listen-back {
    background: var(--vibe-brand-secondary-bright);
}

.vibe-presenter-hero--reference
.vibe-presenter-button--message {
    background: var(--vibe-brand-component-160621-a32);
}

.vibe-presenter-hero--reference.vibe-presenter-hero--no-image,
.vibe-presenter-hero--reference.vibe-presenter-hero--no-image
.vibe-presenter-hero__content {
    min-height: 460px;
}

@media (max-width: 1100px) {
    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        width: 78%;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__title h1 {
        font-size: clamp(54px, 6vw, 72px);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__with {
        font-size: clamp(38px, 5vw, 58px);
    }
}

@media (max-width: 820px) {
    .vibe-presenter-hero.vibe-presenter-hero--reference {
        min-height: 560px;
        background-position: 60% center;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        width: 100%;
        min-height: 560px;
        justify-content: flex-end;
        padding: 30px 24px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__title h1,
    .vibe-presenter-hero--reference .vibe-presenter-hero__with {
        white-space: normal;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__actions {
        flex-wrap: wrap;
    }
}

@media (max-width: 600px) {
    .vibe-presenter-hero.vibe-presenter-hero--reference {
        min-height: 610px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__content {
        min-height: 610px;
        padding: 26px 20px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__title h1 {
        font-size: clamp(46px, 15vw, 62px);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__with {
        gap: 8px;
        font-size: clamp(32px, 10vw, 44px);
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__description p {
        font-size: 14px;
    }

    .vibe-presenter-hero--reference .vibe-presenter-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .vibe-presenter-hero--reference .vibe-presenter-button {
        width: 100%;
        min-height: 48px;
    }
}


/* RADIOlaunch Vibe Presenter Hero Proportions V4 */

@media (min-width: 821px) {
    .vibe-presenter-hero.vibe-presenter-hero--reference {
        min-height: 395px;
        background-position: center 40%;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        width: 760px;
        min-height: 395px;
        justify-content: center;
        padding: 24px 0 24px 42px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__sponsor {
        min-height: 34px;
        margin-bottom: 11px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__sponsor span {
        max-width: 205px;
        font-size: 11px;
        line-height: 1.06;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__sponsor img {
        max-width: 58px;
        height: 32px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__title h1 {
        font-size: 59px;
        line-height: .86;
        letter-spacing: -.045em;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__with {
        gap: 12px;
        margin-top: 3px;
        font-size: 52px;
        line-height: .88;
        letter-spacing: -.04em;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__status {
        min-height: 35px;
        max-width: 355px;
        gap: 10px;
        margin-top: 13px;
        padding: 0 15px;
        font-size: 12px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__status-dot {
        width: 14px;
        height: 14px;
        flex-basis: 14px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__description {
        max-width: 620px;
        margin-top: 12px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__description p {
        margin-bottom: 7px;
        font-size: 13px;
        line-height: 1.32;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__actions {
        gap: 10px;
        margin-top: 13px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-button {
        min-height: 44px;
        padding: 0 18px;
        font-size: 12px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-button svg {
        width: 18px;
        height: 18px;
    }

    .vibe-presenter-hero--reference.vibe-presenter-hero--no-image,
    .vibe-presenter-hero--reference.vibe-presenter-hero--no-image
    .vibe-presenter-hero__content {
        min-height: 365px;
    }
}

@media (min-width: 1150px) {
    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        width: 800px;
        padding-left: 44px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__title h1 {
        font-size: 63px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__with {
        font-size: 55px;
    }

    .vibe-presenter-hero--reference
    .vibe-presenter-hero__description {
        max-width: 640px;
    }
}


/* RADIOlaunch Vibe Presenter Content Left Shift V5 */

@media (min-width: 821px) {
    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        padding-left: 22px;
    }
}

@media (min-width: 1150px) {
    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        padding-left: 24px;
    }
}


/* RADIOlaunch Vibe Presenter Content Further Left V6 */

@media (min-width: 821px) {
    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        padding-left: 12px;
    }
}

@media (min-width: 1150px) {
    .vibe-presenter-hero--reference
    .vibe-presenter-hero__content {
        padding-left: 14px;
    }
}


/* RADIOlaunch Vibe Presenter Homepage Frame Match V7 */

.vibe-site--inner:has(.vibe-presenter-profile)
.vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    margin: 0 auto;
    padding: 20px 16px 24px;
    box-sizing: border-box;
}

@media (max-width: 760px) {
    .vibe-site--inner:has(.vibe-presenter-profile)
    .vibe-page-shell {
        width: min(calc(100% - 32px), 1285px);
        padding: 18px 16px 28px;
    }
}


/* RADIOlaunch Vibe Presenter Exact Homepage Gutters V8 */

.vibe-site--inner:has(.vibe-presenter-profile)
.vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    padding-left: 16px;
    padding-right: 16px;
}

@media (max-width: 1120px) {
    .vibe-site--inner:has(.vibe-presenter-profile)
    .vibe-page-shell {
        width: min(calc(100% - 36px), 1285px);
    }
}

@media (max-width: 767px) {
    .vibe-site--inner:has(.vibe-presenter-profile)
    .vibe-page-shell {
        width: min(calc(100% - 28px), 1285px);
        padding-left: 10px;
        padding-right: 10px;
    }
}


/* RADIOlaunch Vibe Presenter Homepage Columns V9 */

@media (min-width: 761px) {
    .vibe-site--inner:has(.vibe-presenter-profile)
    .vibe-page-layout {
        grid-template-columns: minmax(0, 1fr) 31.5%;
        gap: 22px;
    }
}

@media (min-width: 761px) and (max-width: 980px) {
    .vibe-site--inner:has(.vibe-presenter-profile)
    .vibe-page-layout {
        grid-template-columns: minmax(0, 1fr) 34%;
        gap: 18px;
    }
}


/* RADIOlaunch Vibe Presenter Lower Page V10 */

.vibe-presenter-profile {
    background: transparent;
}

/* =========================================================
   ABOUT
   ========================================================= */

.vibe-presenter-about {
    margin-top: 18px;
    padding: 42px 38px;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-dark);
}

.vibe-presenter-section__heading {
    position: relative;
    margin-bottom: 26px;
    padding-left: 18px;
}

.vibe-presenter-section__heading::before {
    content: "";
    position: absolute;
    top: 2px;
    bottom: 2px;
    left: 0;
    width: 5px;
    background: var(--vibe-primary);
}

.vibe-presenter-section__heading > span {
    margin-bottom: 5px;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .1em;
}

.vibe-presenter-section__heading h2 {
    color: var(--vibe-text-dark);
    font-size: 38px;
    line-height: 1;
    letter-spacing: -.035em;
}

.vibe-presenter-about__layout {
    grid-template-columns: minmax(0, 1fr) 210px;
    gap: 34px;
}

.vibe-presenter-about__copy p {
    margin-bottom: 15px;
    color: var(--vibe-text-muted-4a4650);
    font-size: 15px;
    line-height: 1.7;
}

.vibe-presenter-about__image {
    border: 7px solid var(--vibe-border-light-f4eff6);
    background: var(--vibe-bg-component-f4eff6);
}

/* =========================================================
   SHOW HIGHLIGHTS
   ========================================================= */

.vibe-presenter-highlights {
    margin-top: 18px;
    border: 0;
    background: var(--vibe-bg-white);
}

.vibe-presenter-highlight {
    min-height: 170px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 28px 20px;
}

.vibe-presenter-highlight + .vibe-presenter-highlight {
    border-left: 1px solid var(--vibe-border-light-ece8ee);
}

.vibe-presenter-highlight__icon {
    width: 44px;
    height: 44px;
    margin-bottom: 13px;
    color: var(--vibe-primary);
}

.vibe-presenter-highlight__icon svg {
    width: 36px;
    height: 36px;
}

.vibe-presenter-highlight h3 {
    font-size: 16px;
    line-height: 1.15;
}

.vibe-presenter-highlight p {
    max-width: 180px;
    margin-top: 6px;
    color: var(--vibe-text-muted-77717c);
    font-size: 12px;
}

/* =========================================================
   LISTEN BACK
   ========================================================= */

.vibe-presenter-listen-back {
    margin-top: 18px;
    padding: 42px 38px;
    background: var(--vibe-bg-sidebar);
    color: var(--vibe-text-primary);
}

.vibe-presenter-listen-back
.vibe-presenter-section__heading::before {
    background: var(--vibe-primary);
}

.vibe-presenter-listen-back
.vibe-presenter-section__heading > span {
    color: var(--vibe-text-accent);
}

.vibe-presenter-listen-back
.vibe-presenter-section__heading h2 {
    color: var(--vibe-text-primary);
}

.vibe-presenter-episodes {
    gap: 14px;
}

.vibe-presenter-episode {
    grid-template-columns: 122px minmax(0, 1fr);
    min-height: 122px;
    border: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-bg-card);
    color: var(--vibe-text-primary);
}

.vibe-presenter-episode__image {
    min-height: 122px;
}

.vibe-presenter-episode__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: 18px;
}

.vibe-presenter-episode__copy h3 {
    color: var(--vibe-text-primary);
    font-size: 16px;
    line-height: 1.25;
}

.vibe-presenter-episode__meta {
    margin-top: 11px;
    color: var(--vibe-text-white-a62);
}

.vibe-presenter-episode__play {
    right: 9px;
    bottom: 9px;
    width: 34px;
    height: 34px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-presenter-listen-back
.vibe-presenter-text-link {
    margin-top: 22px;
    color: var(--vibe-text-primary);
}

/* =========================================================
   PLAYED ON SHOW
   ========================================================= */

.vibe-presenter-played {
    margin-top: 18px;
    padding: 42px 38px;
    background: var(--vibe-bg-white);
}

.vibe-presenter-tracks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.vibe-presenter-track {
    grid-template-columns: 82px minmax(0, 1fr);
    border: 1px solid var(--vibe-border-light-ece8ee);
    background: var(--vibe-bg-card-light-faf9fb);
}

.vibe-presenter-track__art {
    width: 82px;
    height: 82px;
}

.vibe-presenter-track__copy {
    padding: 10px 13px;
}

.vibe-presenter-track__copy strong {
    color: var(--vibe-text-dark-18151b);
    font-size: 13px;
}

.vibe-presenter-track__copy span {
    color: var(--vibe-text-muted-6c6670);
    font-size: 12px;
}

.vibe-presenter-track__copy small {
    margin-top: 5px;
    color: var(--vibe-primary);
    font-size: 11px;
    letter-spacing: .04em;
}

.vibe-presenter-played
.vibe-presenter-text-link {
    margin-top: 22px;
    color: var(--vibe-bg-frame);
}

/* =========================================================
   SPONSOR
   ========================================================= */

.vibe-presenter-sponsor {
    margin-top: 18px;
    padding: 38px;
    grid-template-columns: minmax(0, 1fr) 210px;
    gap: 32px;
    border-left: 5px solid var(--vibe-primary);
    background: var(--vibe-bg-component-f4eff6);
}

.vibe-presenter-sponsor__copy > span {
    color: var(--vibe-primary);
    font-size: 10px;
    letter-spacing: .11em;
}

.vibe-presenter-sponsor__copy h2 {
    margin: 6px 0 12px;
    color: var(--vibe-bg-frame);
    font-size: 31px;
}

.vibe-presenter-sponsor__copy p {
    margin: 0 0 18px;
    color: var(--vibe-text-muted-5f5864);
    font-size: 14px;
    line-height: 1.6;
}

.vibe-presenter-sponsor__visual {
    min-height: 145px;
    padding: 22px;
    border: 1px solid var(--vibe-border-light-e5dce9);
    background: var(--vibe-bg-white);
}

.vibe-presenter-sponsor__visual img {
    max-height: 150px;
}

/* =========================================================
   SOCIALS
   ========================================================= */

.vibe-presenter-social {
    margin-top: 18px;
    padding: 38px;
    border: 0;
    background: var(--vibe-bg-frame);
}

.vibe-presenter-social
.vibe-presenter-section__heading::before {
    background: var(--vibe-primary);
}

.vibe-presenter-social
.vibe-presenter-section__heading > span {
    color: var(--vibe-text-accent);
}

.vibe-presenter-social
.vibe-presenter-section__heading h2 {
    color: var(--vibe-text-primary);
}

.vibe-presenter-social__links {
    gap: 8px;
}

.vibe-presenter-social__links a {
    min-height: 42px;
    border: 1px solid var(--vibe-border-strong);
    background: var(--vibe-bg-frame-alt);
    color: var(--vibe-text-primary);
}

.vibe-presenter-social__links a:hover,
.vibe-presenter-social__links a:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {
    .vibe-presenter-highlights {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-presenter-highlight:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--vibe-border-light-ece8ee);
    }

    .vibe-presenter-highlight:nth-child(4) {
        border-top: 1px solid var(--vibe-border-light-ece8ee);
    }

    .vibe-presenter-episodes,
    .vibe-presenter-tracks {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .vibe-presenter-about,
    .vibe-presenter-listen-back,
    .vibe-presenter-played,
    .vibe-presenter-sponsor,
    .vibe-presenter-social {
        margin-top: 14px;
        padding: 28px 22px;
    }

    .vibe-presenter-section__heading {
        padding-left: 14px;
    }

    .vibe-presenter-section__heading h2 {
        font-size: 31px;
    }

    .vibe-presenter-about__layout {
        grid-template-columns: 1fr;
    }

    .vibe-presenter-about__image {
        max-width: 220px;
    }

    .vibe-presenter-highlights {
        grid-template-columns: 1fr;
        margin-top: 14px;
    }

    .vibe-presenter-highlight {
        min-height: 140px;
    }

    .vibe-presenter-highlight + .vibe-presenter-highlight {
        border-top: 1px solid var(--vibe-border-light-ece8ee);
        border-left: 0;
    }

    .vibe-presenter-episode {
        grid-template-columns: 100px minmax(0, 1fr);
        min-height: 100px;
    }

    .vibe-presenter-episode__image {
        min-height: 100px;
    }

    .vibe-presenter-sponsor {
        grid-template-columns: 1fr;
    }

    .vibe-presenter-sponsor__visual {
        min-height: 120px;
    }

    .vibe-presenter-social__links {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}


/* RADIOlaunch Vibe Presenter Compact Playlist V11 */

.vibe-presenter-played--compact {
    padding: 30px 28px 32px;
}

.vibe-presenter-played__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 17px;
}

.vibe-presenter-played__heading {
    min-width: 0;
}

.vibe-presenter-played__title {
    display: flex;
    align-items: center;
    gap: 9px;
}

.vibe-presenter-played__title > svg {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-played__title h2 {
    margin: 0;
    color: var(--vibe-text-dark);
    font-size: 24px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.vibe-presenter-played__heading p {
    margin: 7px 0 0 33px;
    color: var(--vibe-text-muted-6f6873);
    font-size: 12px;
    line-height: 1.4;
}

.vibe-presenter-played__full-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .035em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-presenter-played__full-link svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-playlist {
    border-top: 1px solid var(--vibe-border-light-e9e5eb);
}

.vibe-presenter-playlist__row {
    display: grid;
    grid-template-columns:
        48px
        42px
        minmax(0, 1fr)
        auto;
    min-height: 53px;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--vibe-border-light-e9e5eb);
}

.vibe-presenter-playlist__time {
    color: var(--vibe-text-dark-302a33);
    font-size: 11px;
    font-weight: 900;
}

.vibe-presenter-playlist__art {
    width: 34px;
    height: 34px;
    overflow: hidden;
    background: var(--vibe-bg-component-efedf0);
}

.vibe-presenter-playlist__art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-presenter-playlist__art > span {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-muted-918b94);
}

.vibe-presenter-playlist__art svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-playlist__song {
    display: grid;
    grid-template-columns:
        minmax(150px, .8fr)
        minmax(150px, 1fr);
    align-items: center;
    gap: 18px;
    min-width: 0;
}

.vibe-presenter-playlist__song strong,
.vibe-presenter-playlist__song span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-presenter-playlist__song strong {
    color: var(--vibe-text-dark-18151a);
    font-size: 12px;
    font-weight: 900;
}

.vibe-presenter-playlist__song span {
    color: var(--vibe-text-muted-5f5962);
    font-size: 11px;
}

.vibe-presenter-playlist__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.vibe-presenter-playlist__play {
    display: inline-flex;
    width: 27px;
    height: 27px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-border-light-ddd8df);
    border-radius: 50%;
    background: var(--vibe-bg-white);
    color: var(--vibe-text-accent-1f1922);
    text-decoration: none;
}

.vibe-presenter-playlist__play svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.vibe-presenter-playlist__buy {
    display: inline-flex;
    min-width: 38px;
    height: 25px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-border-light-e2dde4);
    background: var(--vibe-bg-component-f5f3f6);
    color: var(--vibe-text-dark-332c36);
    font-size: 11px;
    font-weight: 850;
    text-decoration: none;
}

.vibe-presenter-playlist__play:hover,
.vibe-presenter-playlist__play:focus-visible,
.vibe-presenter-playlist__buy:hover,
.vibe-presenter-playlist__buy:focus-visible {
    border-color: var(--vibe-primary);
    color: var(--vibe-primary);
}

@media (max-width: 760px) {
    .vibe-presenter-played--compact {
        padding: 24px 18px 26px;
    }

    .vibe-presenter-played__header {
        display: block;
    }

    .vibe-presenter-played__full-link {
        margin: 12px 0 0 33px;
    }

    .vibe-presenter-playlist__row {
        grid-template-columns:
            38px
            38px
            minmax(0, 1fr)
            auto;
        gap: 8px;
    }

    .vibe-presenter-playlist__song {
        display: block;
    }

    .vibe-presenter-playlist__song strong,
    .vibe-presenter-playlist__song span {
        display: block;
    }

    .vibe-presenter-playlist__song span {
        margin-top: 2px;
    }

    .vibe-presenter-playlist__buy {
        display: none;
    }
}


/* RADIOlaunch Vibe Presenter Reused Recently Played V12 */

.vibe-presenter-played--recently {
    overflow: hidden;
    padding: 0;
    background: transparent;
}

.vibe-presenter-played__reference-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
    padding: 30px 28px 28px;
    background: var(--vibe-bg-white);
}

.vibe-presenter-played__reference-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.vibe-presenter-played__reference-title svg {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-played__reference-title h2 {
    margin: 0;
    color: var(--vibe-text-dark);
    font-size: 30px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.045em;
    text-transform: uppercase;
}

.vibe-presenter-played__reference-header p {
    margin: 9px 0 0 38px;
    color: var(--vibe-text-muted-716b74);
    font-size: 13px;
    line-height: 1.45;
}

.vibe-presenter-played--recently
.vibe-presenter-played__full-link {
    margin-top: 5px;
}

.vibe-presenter-played--recently
.rl-recently-played__table-head {
    margin: 0;
}

.vibe-presenter-played--recently
.rl-recently-played__list {
    margin: 0;
}

@media (max-width: 760px) {
    .vibe-presenter-played__reference-header {
        display: block;
        padding: 24px 18px 22px;
    }

    .vibe-presenter-played__reference-title h2 {
        font-size: 24px;
    }

    .vibe-presenter-played__reference-header p {
        margin-left: 0;
    }

    .vibe-presenter-played--recently
    .vibe-presenter-played__full-link {
        margin: 14px 0 0;
    }
}


/* RADIOlaunch Vibe Presenter Exact Recently Played Match V13 */

/*
 * Presenter page uses the same final Recently Played
 * table geometry and controls as the full playlist page.
 */

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head {
    display: grid;
    grid-template-columns:
        76px
        minmax(0, 1fr)
        118px
        132px;
    gap: 14px;
    align-items: center;
    margin: 0;
    padding: 11px 18px;
    border: 1px solid var(--vibe-border-medium);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    background: var(--vibe-bg-page-tone-25073e);
    color: var(--vibe-text-white-a62);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head span:nth-child(1) {
    grid-column: 1;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head span:nth-child(2) {
    grid-column: 2;
    padding-left: 86px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head span:nth-child(3) {
    grid-column: 3;
    text-align: center;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head span:nth-child(4) {
    grid-column: 4;
    text-align: center;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__list {
    margin: 0;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 0 0 8px 8px;
    background: var(--vibe-bg-card-tone-19042d);
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track {
    grid-template-columns:
        76px
        72px
        minmax(0, 1fr)
        118px
        132px;
    gap: 14px;
    min-height: 86px;
    padding: 9px 18px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__time {
    grid-column: 1;
    text-align: left;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__artwork {
    grid-column: 2;
    width: 62px;
    height: 62px;
    border-radius: 5px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy {
    grid-column: 3;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy strong {
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 900;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy > span {
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 12px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__actions {
    display: contents;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-vote-bar {
    grid-column: 4;
    justify-content: center;
    gap: 11px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button {
    color: var(--vibe-text-white-a58);
    font-size: 11px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button:hover,
.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button.is-active,
.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button.voted {
    color: var(--vibe-primary);
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview {
    grid-column: 5;
    justify-self: center;
    height: 38px !important;
    padding: 0 16px !important;
    border: 1px solid var(--vibe-primary) !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--vibe-text-primary) !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    color: var(--vibe-primary);
    fill: currentColor;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview:hover,
.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview.is-playing {
    background: var(--vibe-primary) !important;
    color: var(--vibe-text-primary) !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview:hover svg,
.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview.is-playing svg {
    color: var(--vibe-text-primary);
}

@media (max-width: 980px) {
    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played__table-head {
        display: none;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track {
        grid-template-columns:
            52px
            66px
            minmax(0, 1fr);
        min-height: 94px;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__time {
        grid-column: 1;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__artwork {
        grid-column: 2;
        width: 66px;
        height: 66px;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__copy {
        grid-column: 3;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-vote-bar,
    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__preview {
        grid-column: auto;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__actions {
        display: flex;
        grid-column: 2 / -1;
        align-items: center;
        justify-content: flex-start;
        gap: 14px;
        padding-bottom: 5px;
    }
}


/* RADIOlaunch Vibe Presenter Played Visual Fix V14 */

/* Dark Presenter playlist heading — no white panel */
.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-header {
    padding: 26px 28px 24px;
    background: var(--vibe-bg-header-tone-2b0750);
    border-bottom: 0;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title h2 {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-header p {
    color: var(--vibe-text-white-a68);
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__full-link {
    color: var(--vibe-primary);
}

/* Lock playlist to the same scale as full Recently Played */
.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track {
    min-height: 86px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__artwork {
    width: 62px !important;
    height: 62px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy strong {
    font-size: 15px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy > span {
    margin-top: 4px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__time {
    font-size: 13px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview {
    height: 38px !important;
    padding: 0 16px !important;
    font-size: 10px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview svg {
    width: 14px !important;
    height: 14px !important;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-played--recently
    .vibe-presenter-played__reference-header {
        padding: 22px 18px 20px;
    }
}


/* RADIOlaunch Vibe Presenter Playlist Scale Match V15 */

/*
 * Scale the Presenter playlist down to visually match
 * the full Recently Played page inside the narrower column.
 */

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head {
    grid-template-columns:
        64px
        minmax(0, 1fr)
        100px
        116px;
    gap: 12px;
    padding: 10px 14px;
    font-size: 10px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played__table-head span:nth-child(2) {
    padding-left: 68px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track {
    grid-template-columns:
        64px
        60px
        minmax(0, 1fr)
        100px
        116px;
    gap: 12px;
    min-height: 74px !important;
    padding: 8px 14px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__time {
    font-size: 12px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__artwork {
    width: 52px !important;
    height: 52px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy strong {
    font-size: 14px !important;
    line-height: 1.12 !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__copy > span {
    margin-top: 3px !important;
    font-size: 11px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-vote-bar {
    gap: 8px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button {
    gap: 3px;
    padding: 4px 2px;
    font-size: 10px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-song-vote-button svg {
    width: 17px !important;
    height: 17px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview {
    height: 34px !important;
    padding: 0 13px !important;
    font-size: 10px !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.rl-recently-played-track__preview svg {
    width: 13px !important;
    height: 13px !important;
}

@media (max-width: 980px) {
    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track {
        grid-template-columns:
            44px
            56px
            minmax(0, 1fr);
        gap: 10px;
        min-height: 76px !important;
    }

    .vibe-site--inner
    .vibe-presenter-played--recently
    .rl-recently-played-track__artwork {
        width: 54px !important;
        height: 54px !important;
    }
}


/* RADIOlaunch Vibe Presenter Listen Back Row V16 */

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episodes {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode {
    display: flex;
    min-width: 0;
    min-height: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__image {
    position: relative;
    display: block;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--vibe-bg-panel-media);
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    justify-content: flex-start;
    padding: 15px 14px 16px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__copy h3 {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 14px;
    line-height: 1.3;
    font-weight: 900;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 10px;
    color: var(--vibe-text-white-a58);
    font-size: 11px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__play {
    right: 10px;
    bottom: 10px;
    width: 36px;
    height: 36px;
}

@media (max-width: 1100px) {
    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-episodes {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-episodes {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        padding-bottom: 6px;
        scroll-snap-type: x mandatory;
        scrollbar-width: thin;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-episode {
        flex: 0 0 min(72vw, 260px);
        scroll-snap-align: start;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-episode__image {
        min-height: 0;
    }
}


/* RADIOlaunch Vibe Presenter Listen Back Open Layout V17 */

.vibe-site--inner
.vibe-presenter-listen-back {
    margin-top: 24px;
    padding: 0 !important;
    background: transparent;
}

.vibe-site--inner
.vibe-presenter-listen-back__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.vibe-site--inner
.vibe-presenter-listen-back__header
.vibe-presenter-section__heading {
    margin: 0;
}

.vibe-site--inner
.vibe-presenter-listen-back__header
.vibe-presenter-text-link {
    flex: 0 0 auto;
    margin: 0 0 3px;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-presenter-listen-back__header
.vibe-presenter-text-link svg {
    width: 15px;
    height: 15px;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-listen-back {
        margin-top: 20px;
        padding: 0 !important;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back__header {
        display: block;
        margin-bottom: 16px;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back__header
    .vibe-presenter-text-link {
        margin-top: 12px;
    }
}


/* RADIOlaunch Vibe Presenter Listen Back Scale V18 */

/* Match homepage section-heading proportions */
.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading {
    padding-left: 14px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading::before {
    top: 0;
    bottom: auto;
    width: 5px;
    height: 30px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading > span {
    margin-bottom: 4px;
    font-size: 11px;
    line-height: 1;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading h2 {
    font-size: 30px !important;
    line-height: 1 !important;
    font-weight: 900;
    letter-spacing: -.6px;
}

/* Reduce artwork dominance while keeping four cards across */
.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__image {
    aspect-ratio: 16 / 10;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__copy {
    padding: 12px 13px 13px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__copy h3 {
    font-size: 13px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__meta {
    margin-top: 7px;
    font-size: 11px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-episode__play {
    width: 32px;
    height: 32px;
    right: 9px;
    bottom: 9px;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-section__heading h2 {
        font-size: 27px !important;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-section__heading::before {
        height: 27px;
    }
}


/* RADIOlaunch Vibe Exact Homepage Heading Match V19 */

/*
 * Presenter Listen Back heading uses the exact same
 * typography and accent proportions as homepage Latest News.
 */

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading {
    position: relative;
    margin: 0;
    padding-left: 12px;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading::before {
    content: "";
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 0;
    width: 3px;
    height: auto;
    background: var(--vibe-primary);
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading > span {
    display: none;
}

.vibe-site--inner
.vibe-presenter-listen-back
.vibe-presenter-section__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: .01em !important;
}

.vibe-site--inner
.vibe-presenter-listen-back__header {
    align-items: center;
    margin-bottom: 14px;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-section__heading h2 {
        font-size: 20px !important;
    }

    .vibe-site--inner
    .vibe-presenter-listen-back
    .vibe-presenter-section__heading::before {
        height: auto;
    }
}


/* RADIOlaunch Vibe Played Heading Homepage Match V20 */

/* Match homepage section typography */
.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title h2 {
    margin: 0;
    font-size: 20px !important;
    line-height: 1 !important;
    font-weight: 850 !important;
    letter-spacing: .01em !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title svg {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-header p {
    margin-top: 7px;
    margin-left: 32px;
    font-size: 12px;
    line-height: 1.4;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__full-link {
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .045em;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-played--recently
    .vibe-presenter-played__reference-title h2 {
        font-size: 20px !important;
    }
}


/* RADIOlaunch Vibe Played Heading Listen Back Match V21 */

/* Match the Listen Back / homepage section-heading treatment */
.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0;
    padding-left: 12px;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title::before {
    content: "";
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 0;
    width: 3px;
    background: var(--vibe-primary);
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title > svg {
    display: none;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-title h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
}

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-header p {
    margin: 7px 0 0 12px;
}


/* RADIOlaunch Vibe Played Heading Left Align V22 */

.vibe-site--inner
.vibe-presenter-played--recently
.vibe-presenter-played__reference-header {
    padding-left: 0;
    padding-right: 0;
}

@media (max-width: 760px) {
    .vibe-site--inner
    .vibe-presenter-played--recently
    .vibe-presenter-played__reference-header {
        padding-left: 0;
        padding-right: 0;
    }
}

/* =========================================================
   VIBE GLOBAL INNER PAGE FRAME — HOMEPAGE EXACT MATCH
   One width/gutter system for every public Vibe page.
   ========================================================= */

/* Outer frame: same measurements as the homepage. */
.vibe-site--inner .vibe-page-shell,
.vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-shell {
    width: min(calc(100% - 48px), 1285px);
    max-width: 1285px;
    margin-left: auto;
    margin-right: auto;
    padding: 20px 16px 24px;
    box-sizing: border-box;
}

/* Page hero must start and finish on the same edges. */
.vibe-site--inner .vibe-page-hero__shell {
    width: min(calc(100% - 48px), 1285px);
    max-width: 1285px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* Use the same main/sidebar proportions as the homepage. */
.vibe-site--inner .vibe-page-layout,
.vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-layout {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) 31.5%;
    gap: 22px;
}

/* Never allow an individual page module to shrink the available column. */
.vibe-site--inner .vibe-page-content,
.vibe-site--inner .vibe-page-sidebar {
    width: 100%;
    max-width: none;
    min-width: 0;
    box-sizing: border-box;
}

@media (max-width: 1120px) {
    .vibe-site--inner .vibe-page-shell,
    .vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-shell,
    .vibe-site--inner .vibe-page-hero__shell {
        width: min(calc(100% - 36px), 1285px);
    }
}

@media (max-width: 980px) {
    .vibe-site--inner .vibe-page-layout,
    .vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-layout {
        grid-template-columns: minmax(0, 1fr) 34%;
        gap: 18px;
    }
}

@media (max-width: 768px) {
    .vibe-site--inner .vibe-page-shell,
    .vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-shell {
        width: min(calc(100% - 28px), 1285px);
        padding: 14px 10px 34px;
    }

    .vibe-site--inner .vibe-page-hero__shell {
        width: min(calc(100% - 28px), 1285px);
    }

    .vibe-site--inner .vibe-page-layout,
    .vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-layout {
        grid-template-columns: 1fr;
        gap: 26px;
    }
}


/* =========================================================
   VIBE MOBILE FULL-WIDTH BACKGROUND — WORDPRESS MATCH
   Remove dark outer gutter and use 8px content spacing.
   ========================================================= */

@media (max-width: 767px) {

    /* One continuous mobile background. */
    body.vibe-site,
    .vibe-site .vibe-main,
    .vibe-homepage {
        background: var(--vibe-bg-frame-alt) !important;
    }

    /* Homepage fills the screen; cards/content sit 8px in. */
    .vibe-homepage__frame {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 8px;
        padding-right: 8px;
        background: var(--vibe-bg-frame-alt);
        box-sizing: border-box;
    }

    /* Inner pages use the same mobile treatment. */
    .vibe-site--inner .vibe-page-shell,
    .vibe-site--inner:has(.vibe-presenter-profile) .vibe-page-shell {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        padding-left: 8px;
        padding-right: 8px;
        background: var(--vibe-bg-frame-alt);
        box-sizing: border-box;
    }

    /* Keep page hero content aligned with the 8px gutter. */
    .vibe-site--inner .vibe-page-hero__shell {
        width: calc(100% - 16px);
        max-width: none;
    }
}

/* =========================================================
   VIBE — PRESENTERS INDEX
   Compact 3-column card grid
   ========================================================= */

.vibe-presenters-index {
    width: 100%;
    min-width: 0;
}

.vibe-presenters-index__header {
    margin: 0 0 18px;
    padding: 2px 0 16px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-presenters-index__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vibe-presenters-index__header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(32px, 3vw, 48px);
    line-height: .96;
    font-weight: 950;
    letter-spacing: -1.3px;
}

.vibe-presenters-index__header p {
    max-width: 720px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a72);
    font-size: 13px;
    line-height: 1.55;
    font-weight: 550;
}

.vibe-presenters-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

.vibe-presenter-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 4px;
    background: linear-gradient(180deg, var(--vibe-bg-card-tone-361058) 0%, var(--vibe-bg-card-tone-2c0d49) 100%);
    box-shadow: inset 0 1px 0 var(--vibe-overlay-white-a03);
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.vibe-presenter-card:hover {
    transform: translateY(-2px);
    border-color: var(--vibe-brand-action-ff008c-a45);
    box-shadow:
        0 18px 30px var(--vibe-overlay-black-a22),
        inset 0 1px 0 var(--vibe-overlay-white-a04);
}

.vibe-presenter-card--live {
    border-color: var(--vibe-brand-accent-ff008c-a55);
}

.vibe-presenter-card__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--vibe-bg-frame-alt);
    text-decoration: none;
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-presenter-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    transition: transform .22s ease;
}

.vibe-presenter-card:hover .vibe-presenter-card__media img {
    transform: scale(1.03);
}

.vibe-presenter-card__placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-white-a28);
    background:
        radial-gradient(circle at top, var(--vibe-brand-accent-ff008c-a08), transparent 45%),
        var(--vibe-bg-frame-alt);
}

.vibe-presenter-card__placeholder svg {
    width: 42px;
    height: 42px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-card__live {
    position: absolute;
    top: 10px;
    left: 10px;
    display: inline-flex;
    min-height: 24px;
    padding: 0 9px;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    background: var(--vibe-brand-accent-ff008c-a96);
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
    box-shadow: 0 8px 20px var(--vibe-preserve-shadow-fc6490e46f);
}

.vibe-presenter-card__live-dot {
    display: block;
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    overflow: hidden;
    border: 0 !important;
    border-radius: 50% !important;
    background: var(--vibe-bg-white);
    box-shadow: none !important;
    clip-path: circle(50%);
}

.vibe-presenter-card__body {
    display: flex;
    min-height: 188px;
    padding: 14px 14px 15px;
    flex-direction: column;
    color: var(--vibe-text-primary);
}

.vibe-presenter-card h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 18px;
    line-height: 1.05;
    font-weight: 900;
    letter-spacing: -.35px;
}

.vibe-presenter-card h2 a {
    color: inherit;
    text-decoration: none;
}

.vibe-presenter-card h2 a:hover,
.vibe-presenter-card h2 a:focus {
    color: var(--vibe-text-primary);
}

.vibe-presenter-card__show {
    margin-top: 4px;
    color: var(--vibe-text-white-a88);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
}

.vibe-presenter-card__schedule {
    display: flex;
    margin-top: 10px;
    align-items: flex-start;
    gap: 7px;
    color: var(--vibe-text-white-a72);
    font-size: 10px;
    line-height: 1.35;
    font-weight: 700;
}

.vibe-presenter-card__schedule svg {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-presenter-card__body > p {
    display: -webkit-box;
    margin: 10px 0 0;
    overflow: hidden;
    color: var(--vibe-text-white-a62);
    font-size: 11px;
    line-height: 1.45;
    font-weight: 500;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.vibe-presenter-card__link {
    display: inline-flex;
    min-width: 118px;
    min-height: 34px;
    margin-top: auto;
    padding: 0 14px;
    align-self: flex-start;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 3px;
    background: linear-gradient(180deg, var(--vibe-brand-accent-ff1493) 0%, var(--vibe-brand-accent-e10b82) 100%);
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        background .18s ease,
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
    box-shadow: 0 8px 20px var(--vibe-preserve-shadow-558967dc32);
}

.vibe-presenter-card__link:hover,
.vibe-presenter-card__link:focus {
    background: linear-gradient(180deg, var(--vibe-brand-primary-bright-hover) 0%, var(--vibe-brand-primary-hover-deep) 100%);
    border-color: var(--vibe-border-white-a18);
    color: var(--vibe-text-primary);
    transform: translateY(-1px);
}

.vibe-presenters-index__empty {
    grid-column: 1 / -1;
    padding: 28px 18px;
    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 4px;
    background: linear-gradient(180deg, var(--vibe-bg-card-tone-361058) 0%, var(--vibe-bg-card-tone-2c0d49) 100%);
    color: var(--vibe-text-white-a78);
    text-align: center;
    font-size: 13px;
    font-weight: 700;
}

@media (max-width: 1100px) {
    .vibe-presenters-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }
}

@media (max-width: 767px) {
    .vibe-presenters-index__header {
        margin-bottom: 14px;
        padding-bottom: 14px;
    }

    .vibe-presenters-index__header h1 {
        font-size: 29px;
        letter-spacing: -.8px;
    }

    .vibe-presenters-index__header p {
        font-size: 12px;
    }

    .vibe-presenters-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .vibe-presenter-card__body {
        min-height: 0;
    }
}

/* =========================================================
   VIBE — LISTENER CLUB JOIN
   ========================================================= */

.vibe-club-join {
    width: 100%;
    min-width: 0;
}

.vibe-club-join__header {
    margin-bottom: 18px;
    padding: 2px 0 17px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-club-join__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vibe-club-join__header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(34px, 4vw, 50px);
    line-height: .98;
    font-weight: 950;
    letter-spacing: -1.5px;
}

.vibe-club-join__header p {
    max-width: 650px;
    margin: 10px 0 0;
    color: var(--vibe-text-white-a68);
    font-size: 13px;
    line-height: 1.55;
}

.vibe-club-intro {
    position: relative;
    display: grid;
    min-height: 205px;
    margin-bottom: 22px;
    padding: 25px 27px;
    grid-template-columns: minmax(0, 1fr) 150px;
    align-items: center;
    gap: 24px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 5px;
    background: var(--vibe-bg-card-tone-361058);
}

.vibe-club-intro::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -80px;
    width: 235px;
    height: 235px;
    border: 34px solid var(--vibe-preserve-border-daf0ff241b);
    border-radius: 50%;
    pointer-events: none;
}

.vibe-club-intro__copy {
    position: relative;
    z-index: 2;
}

.vibe-club-intro__copy > span,
.vibe-club-section__heading > span,
.vibe-club-form-panel__header > span {
    display: block;
    margin-bottom: 6px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.vibe-club-intro h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.7px;
}

.vibe-club-intro p {
    max-width: 510px;
    margin: 11px 0 0;
    color: var(--vibe-text-white-a68);
    font-size: 12px;
    line-height: 1.55;
}

.vibe-club-intro__button {
    display: inline-flex;
    min-height: 35px;
    margin-top: 17px;
    padding: 0 14px;
    align-items: center;
    gap: 9px;
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-club-intro__button svg,
.vibe-club-submit svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-club-intro__mark {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vibe-club-intro__mark svg {
    width: 105px;
    height: 105px;
    fill: none;
    stroke: var(--vibe-text-white-a15);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-club-section {
    margin-bottom: 23px;
}

.vibe-club-section__heading {
    margin-bottom: 11px;
}

.vibe-club-section__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 22px;
    line-height: 1.05;
    font-weight: 950;
    letter-spacing: -.45px;
}

.vibe-club-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.vibe-club-benefit {
    display: flex;
    min-height: 118px;
    padding: 14px;
    gap: 11px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-club-benefit__icon {
    display: flex;
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-club-benefit__icon svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-club-benefit h3,
.vibe-club-step h3 {
    margin: 1px 0 5px;
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1.15;
    font-weight: 900;
}

.vibe-club-benefit p,
.vibe-club-step p {
    margin: 0;
    color: var(--vibe-text-white-a59);
    font-size: 10px;
    line-height: 1.45;
}

.vibe-club-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-club-step {
    display: flex;
    min-width: 0;
    padding: 15px;
    align-items: flex-start;
    gap: 10px;
    border-right: 1px solid var(--vibe-border-soft);
}

.vibe-club-step:last-child {
    border-right: 0;
}

.vibe-club-step > strong {
    display: flex;
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 950;
}

.vibe-club-form-panel {
    padding: 22px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 5px;
    background: var(--vibe-bg-card-raised);
}

.vibe-club-form-panel__header {
    margin-bottom: 19px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--vibe-border-soft);
}

.vibe-club-form-panel__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 25px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.55px;
}

.vibe-club-form-panel__header p {
    margin: 7px 0 0;
    color: var(--vibe-text-white-a58);
    font-size: 10px;
}

.vibe-club-form-panel__header a,
.vibe-club-check a {
    color: var(--vibe-primary);
    font-weight: 900;
    text-decoration: none;
}

.vibe-club-form {
    display: grid;
    gap: 14px;
}

.vibe-club-form__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.vibe-club-field {
    display: grid;
    min-width: 0;
    gap: 6px;
}

.vibe-club-field label {
    color: var(--vibe-text-white-a84);
    font-size: 10px;
    font-weight: 850;
}

.vibe-club-field input {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-brand-component-260b3e);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 12px;
}

.vibe-club-field input:focus {
    border-color: var(--vibe-primary);
    box-shadow: 0 0 0 2px var(--vibe-preserve-shadow-4078c375c2);
}

.vibe-club-field input[type="date"] {
    color-scheme: dark;
}

.vibe-club-form__checks {
    display: grid;
    margin-top: 2px;
    gap: 9px;
}

.vibe-club-check {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--vibe-text-white-a63);
    font-size: 10px;
    line-height: 1.5;
}

.vibe-club-check input {
    width: 14px;
    height: 14px;
    margin: 1px 0 0;
    flex: 0 0 14px;
    accent-color: var(--vibe-primary);
}

.vibe-club-submit {
    display: inline-flex;
    min-height: 42px;
    margin-top: 2px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 0;
    border-radius: 3px;
    cursor: pointer;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.vibe-club-submit:hover,
.vibe-club-intro__button:hover {
    background: var(--vibe-brand-primary-active-deep);
}

.vibe-club-alert {
    margin-bottom: 16px;
    padding: 11px 13px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 3px;
    font-size: 10px;
    line-height: 1.5;
}

.vibe-club-alert ul {
    margin: 6px 0 0;
    padding-left: 17px;
}

.vibe-club-alert--success {
    border-color: rgba(55, 211, 145, .3);
    background: rgba(55, 211, 145, .08);
    color: #b8f1d5;
}

.vibe-club-alert--error {
    border-color: rgba(255, 91, 118, .32);
    background: rgba(255, 91, 118, .08);
    color: #ffc5cf;
}

@media (max-width: 980px) {
    .vibe-club-benefits {
        grid-template-columns: 1fr;
    }

    .vibe-club-benefit {
        min-height: 0;
    }

    .vibe-club-steps {
        grid-template-columns: 1fr;
    }

    .vibe-club-step {
        border-right: 0;
        border-bottom: 1px solid var(--vibe-border-soft);
    }

    .vibe-club-step:last-child {
        border-bottom: 0;
    }
}

@media (max-width: 767px) {
    .vibe-club-join__header h1 {
        font-size: 31px;
    }

    .vibe-club-intro {
        min-height: 0;
        padding: 19px;
        grid-template-columns: 1fr;
    }

    .vibe-club-intro__mark {
        display: none;
    }

    .vibe-club-form-panel {
        padding: 16px;
    }

    .vibe-club-form__grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   VIBE — LISTENER CLUB LOGIN
   ========================================================= */

.vibe-club-login {
    width: 100%;
    min-width: 0;
}

.vibe-club-login-panel {
    display: grid;
    overflow: hidden;
    grid-template-columns:
        minmax(0, 1fr)
        225px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 5px;
    background: var(--vibe-bg-card-raised);
}

.vibe-club-login-panel__main {
    min-width: 0;
    padding: 22px;
}

.vibe-club-login-panel__main
.vibe-club-form-panel__header {
    margin-bottom: 19px;
}

.vibe-club-login-panel__aside {
    display: flex;
    min-width: 0;
    padding: 23px 20px;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid var(--vibe-border-medium);
    background: var(--vibe-bg-card-tone-361058);
}

.vibe-club-login-panel__icon {
    display: flex;
    width: 48px;
    height: 48px;
    margin-bottom: 20px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 50%;
    color: var(--vibe-primary);
    background: var(--vibe-bg-card-alt);
}

.vibe-club-login-panel__icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-club-login-panel__eyebrow {
    display: block;
    margin-bottom: 6px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vibe-club-login-panel__aside h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 21px;
    line-height: 1.05;
    font-weight: 950;
    letter-spacing: -.4px;
}

.vibe-club-login-panel__aside p {
    margin: 10px 0 0;
    color: var(--vibe-text-white-a61);
    font-size: 10px;
    line-height: 1.55;
}

.vibe-club-login-panel__join {
    display: inline-flex;
    min-height: 34px;
    margin-top: 18px;
    padding: 0 12px;
    align-self: flex-start;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--vibe-border-strong);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .05em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-club-login-panel__join:hover,
.vibe-club-login-panel__join:focus {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-club-login-panel__join svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 980px) {
    .vibe-club-login-panel {
        grid-template-columns: 1fr;
    }

    .vibe-club-login-panel__aside {
        border-top: 1px solid var(--vibe-border-medium);
        border-left: 0;
    }
}

@media (max-width: 767px) {
    .vibe-club-login-panel__main,
    .vibe-club-login-panel__aside {
        padding: 16px;
    }

    .vibe-club-login-panel__icon {
        margin-bottom: 14px;
    }
}

/* =========================================================
   VIBE — LISTENER CLUB DASHBOARD
   ========================================================= */

.vibe-member-dashboard {
    width: 100%;
    min-width: 0;
}

.vibe-member-dashboard__header {
    margin-bottom: 18px;
    padding: 2px 0 16px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-member-dashboard__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vibe-member-dashboard__header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(34px, 4vw, 48px);
    line-height: .98;
    font-weight: 950;
    letter-spacing: -1.4px;
}

.vibe-member-dashboard__header p {
    margin: 9px 0 0;
    color: var(--vibe-text-white-a66);
    font-size: 12px;
    line-height: 1.5;
}

.vibe-member-welcome {
    display: grid;
    margin-bottom: 14px;
    padding: 18px;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(180px, .7fr)
        auto;
    align-items: center;
    gap: 18px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 5px;
    background: var(--vibe-bg-card-tone-361058);
}

.vibe-member-welcome__identity {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 13px;
}

.vibe-member-welcome__avatar {
    display: flex;
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 17px;
    font-weight: 950;
}

.vibe-member-welcome__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-member-welcome__label {
    display: block;
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-member-welcome h2 {
    margin: 3px 0 2px;
    color: var(--vibe-text-primary);
    font-size: 20px;
    line-height: 1;
    font-weight: 950;
}

.vibe-member-welcome__identity p,
.vibe-member-welcome__message span {
    margin: 0;
    color: var(--vibe-text-white-a58);
    font-size: 11px;
    line-height: 1.45;
}

.vibe-member-welcome__message {
    display: grid;
    gap: 3px;
}

.vibe-member-welcome__message strong {
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 850;
}

.vibe-member-signout {
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 3px;
    cursor: pointer;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.vibe-member-signout:hover {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
}

.vibe-member-stats {
    display: grid;
    margin-bottom: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.vibe-member-stat {
    display: grid;
    min-width: 0;
    min-height: 100px;
    padding: 13px;
    grid-template-columns: 31px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    column-gap: 10px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    text-decoration: none;
}

.vibe-member-stat__icon {
    display: flex;
    width: 31px;
    height: 31px;
    grid-row: 1 / 3;
    align-self: center;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-member-stat__icon svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-stat strong {
    align-self: end;
    color: var(--vibe-text-primary);
    font-size: 20px;
    line-height: 1;
    font-weight: 950;
}

.vibe-member-stat > span:last-child {
    align-self: start;
    margin-top: 4px;
    color: var(--vibe-text-white-a58);
    font-size: 10px;
    font-weight: 700;
}

.vibe-member-stat:hover {
    border-color: var(--vibe-brand-action-ff1493-a5);
}

.vibe-member-dashboard__grid {
    display: grid;
    margin-bottom: 14px;
    grid-template-columns:
        minmax(0, 1.1fr)
        minmax(0, .9fr);
    gap: 10px;
    align-items: start;
}

.vibe-member-panel {
    min-width: 0;
    padding: 15px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-member-panel__heading {
    display: flex;
    margin-bottom: 12px;
    padding-bottom: 11px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid var(--vibe-border-soft);
}

.vibe-member-panel__heading span {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.vibe-member-panel__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 17px;
    line-height: 1;
    font-weight: 950;
}

.vibe-member-panel__heading > a {
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-member-activity {
    display: grid;
}

.vibe-member-activity__item {
    display: flex;
    padding: 10px 0;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--vibe-border-white-a07);
}

.vibe-member-activity__item:first-child {
    padding-top: 0;
}

.vibe-member-activity__item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.vibe-member-activity__icon {
    display: flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-member-activity__icon svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-activity__item > div {
    display: grid;
    min-width: 0;
    gap: 3px;
}

.vibe-member-activity__item strong {
    color: var(--vibe-text-white-a85);
    font-size: 10px;
    font-weight: 800;
}

.vibe-member-activity__item div > span {
    color: var(--vibe-text-white-a43);
    font-size: 10px;
}

.vibe-member-featured {
    display: grid;
    gap: 9px;
}

.vibe-member-feature {
    display: grid;
    overflow: hidden;
    grid-template-columns: 105px minmax(0, 1fr);
    border: 1px solid var(--vibe-border-soft);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-member-feature__image {
    display: block;
    min-height: 115px;
    overflow: hidden;
    background: var(--vibe-brand-component-220936);
}

.vibe-member-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-member-feature__content {
    display: flex;
    min-width: 0;
    padding: 10px;
    flex-direction: column;
}

.vibe-member-feature__content > span {
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-member-feature h3 {
    margin: 4px 0 0;
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1.15;
    font-weight: 900;
}

.vibe-member-feature p {
    display: -webkit-box;
    margin: 5px 0 8px;
    overflow: hidden;
    color: var(--vibe-text-white-a55);
    font-size: 12px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.vibe-member-feature__button {
    display: inline-flex;
    min-height: 25px;
    margin-top: auto;
    padding: 0 9px;
    align-self: flex-start;
    align-items: center;
    justify-content: center;
    border-radius: 2px;
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-member-panel__empty {
    padding: 20px 10px;
    color: var(--vibe-text-white-a50);
    text-align: center;
    font-size: 12px;
    line-height: 1.5;
}

.vibe-member-shortcuts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.vibe-member-shortcuts > a {
    display: flex;
    min-width: 0;
    padding: 12px;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    text-decoration: none;
}

.vibe-member-shortcuts > a > span {
    display: flex;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-member-shortcuts svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-shortcuts strong,
.vibe-member-shortcuts small {
    display: block;
}

.vibe-member-shortcuts strong {
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 850;
}

.vibe-member-shortcuts small {
    margin-top: 2px;
    color: var(--vibe-text-faint);
    font-size: 10px;
}

.vibe-member-shortcuts > a:hover {
    border-color: var(--vibe-brand-action-ff1493-a5);
}

@media (max-width: 980px) {
    .vibe-member-welcome {
        grid-template-columns: 1fr auto;
    }

    .vibe-member-welcome__message {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .vibe-member-dashboard__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .vibe-member-dashboard__header h1 {
        font-size: 31px;
    }

    .vibe-member-welcome {
        padding: 14px;
        grid-template-columns: 1fr;
    }

    .vibe-member-welcome__message {
        grid-column: auto;
        grid-row: auto;
    }

    .vibe-member-signout {
        width: 100%;
    }

    .vibe-member-stats,
    .vibe-member-shortcuts {
        grid-template-columns: 1fr;
    }

    .vibe-member-stat {
        min-height: 80px;
    }

    .vibe-member-feature {
        grid-template-columns: 90px minmax(0, 1fr);
    }
}

/* =========================================================
   VIBE — LISTENER CLUB MEMBER PAGES
   ========================================================= */

.vibe-member-page {
    width: 100%;
    min-width: 0;
}

.vibe-member-page__header {
    display: flex;
    margin-bottom: 18px;
    padding: 2px 0 16px;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-member-page__eyebrow {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vibe-member-page__header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(32px, 4vw, 45px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -1.2px;
}

.vibe-member-page__header p {
    margin: 8px 0 0;
    color: var(--vibe-text-white-a62);
    font-size: 11px;
    line-height: 1.5;
}

.vibe-member-page__back {
    display: inline-flex;
    min-height: 34px;
    padding: 0 12px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-member-page__back:hover {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
}

.vibe-member-page__back svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-form-card,
.vibe-member-entry,
.vibe-member-empty {
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-member-form-card {
    padding: 18px;
}

.vibe-member-section-head {
    margin-bottom: 17px;
}

.vibe-member-section-head > span {
    display: block;
    margin-bottom: 5px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.vibe-member-section-head h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px;
    line-height: 1.1;
    font-weight: 950;
}

.vibe-member-section-head p {
    margin: 6px 0 0;
    color: var(--vibe-text-white-a52);
    font-size: 12px;
    line-height: 1.55;
}

.vibe-member-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.vibe-member-preferences {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--vibe-border-medium);
}

.vibe-member-form-actions {
    display: flex;
    margin-top: 6px;
    align-items: center;
    gap: 13px;
}

.vibe-member-form-actions > a,
.vibe-member-text-link {
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    text-decoration: none;
}

.vibe-member-primary-button,
.vibe-member-secondary-button,
.vibe-member-danger-button {
    display: inline-flex;
    min-height: 34px;
    padding: 0 13px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 3px;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-member-primary-button {
    background: var(--vibe-primary);
    color: var(--vibe-button-text);
}

.vibe-member-secondary-button {
    border: 1px solid var(--vibe-border-white-a14);
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-button-text);
}

.vibe-member-danger-button {
    border: 1px solid rgba(255, 100, 120, .3);
    background: #3b0d2b;
    color: #ff8095;
}

.vibe-member-entry-list {
    display: grid;
    gap: 9px;
}

.vibe-member-entry {
    display: grid;
    padding: 14px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
}

.vibe-member-entry__icon {
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-member-entry__icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-entry__main {
    min-width: 0;
}

.vibe-member-entry__date {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-primary);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-member-entry h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 15px;
    line-height: 1.15;
    font-weight: 900;
}

.vibe-member-entry p {
    margin: 5px 0 0;
    color: var(--vibe-text-white-a62);
    font-size: 12px;
}

.vibe-member-entry small {
    display: block;
    margin-top: 5px;
    color: var(--vibe-text-white-a40);
    font-size: 10px;
}

.vibe-member-entry__actions {
    display: flex;
    min-width: 120px;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.vibe-member-entry__status {
    display: inline-flex;
    min-height: 23px;
    padding: 0 8px;
    align-items: center;
    border-radius: 20px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-white-a70);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-member-entry__status.is-winner {
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-member-entry__actions a {
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    text-decoration: none;
}

.vibe-member-empty {
    padding: 42px 20px;
    text-align: center;
}

.vibe-member-empty__icon {
    display: flex;
    width: 48px;
    height: 48px;
    margin: 0 auto 15px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-member-empty__icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-empty h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 20px;
    font-weight: 950;
}

.vibe-member-empty p {
    max-width: 340px;
    margin: 7px auto 16px;
    color: var(--vibe-text-white-a50);
    font-size: 12px;
    line-height: 1.55;
}

.vibe-member-pagination {
    display: flex;
    margin-top: 14px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.vibe-member-pagination a,
.vibe-member-pagination > span {
    color: var(--vibe-text-muted);
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.vibe-member-pagination a {
    color: var(--vibe-primary);
}

.vibe-member-pagination .is-disabled {
    opacity: .4;
}

.vibe-member-account-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(220px, .7fr);
    gap: 11px;
    align-items: start;
}

.vibe-member-account-main,
.vibe-member-account-side {
    display: grid;
    gap: 11px;
}

.vibe-member-account-summary {
    display: grid;
    margin-bottom: 15px;
}

.vibe-member-account-summary > div {
    display: grid;
    padding: 9px 0;
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 10px;
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-member-account-summary > div:last-child {
    border-bottom: 0;
}

.vibe-member-account-summary span {
    color: var(--vibe-text-white-a40);
    font-size: 10px;
}

.vibe-member-account-summary strong {
    min-width: 0;
    overflow-wrap: anywhere;
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 800;
}

.vibe-member-pending {
    display: flex;
    padding: 11px;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--vibe-brand-accent-ff1493-a24);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-member-pending svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-member-pending > div {
    display: grid;
    gap: 2px;
}

.vibe-member-pending strong {
    color: var(--vibe-text-primary);
    font-size: 11px;
}

.vibe-member-pending span {
    color: var(--vibe-text-faint);
    font-size: 10px;
}

.vibe-member-danger-card {
    border-color: rgba(255, 100, 120, .2);
}

.vibe-member-danger-note {
    margin: 0 0 11px;
    color: rgba(255, 255, 255, .42);
    font-size: 11px;
    line-height: 1.5;
}

@media (max-width: 980px) {
    .vibe-member-account-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .vibe-member-page__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .vibe-member-page__header h1 {
        font-size: 31px;
    }

    .vibe-member-page__back {
        width: 100%;
    }

    .vibe-member-form-grid {
        grid-template-columns: 1fr;
    }

    .vibe-member-entry {
        grid-template-columns: 32px minmax(0, 1fr);
    }

    .vibe-member-entry__actions {
        grid-column: 1 / -1;
        min-width: 0;
        padding-left: 44px;
        align-items: flex-start;
    }

    .vibe-member-form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .vibe-member-primary-button,
    .vibe-member-secondary-button,
    .vibe-member-danger-button {
        width: 100%;
    }
}

/* =========================================================
   VIBE — SCHEDULE 2026 MEMBER/PRESENTER STYLE
   ========================================================= */

.vibe-schedule {
    width: 100%;
    min-width: 0;
}

.vibe-schedule__tabs {
    display: grid;
    margin: 0 0 22px;
    grid-template-columns:
        repeat(7, minmax(0, 1fr));
    gap: 7px;
}

.vibe-schedule__tab {
    display: flex;
    min-width: 0;
    min-height: 42px;
    padding: 0 8px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card);
    color: var(--vibe-text-white-a72);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .02em;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-schedule__tab:hover {
    border-color: var(--vibe-brand-action-ff1493-a55);
    color: var(--vibe-text-primary);
}

.vibe-schedule__tab.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-schedule__heading {
    display: flex;
    margin-bottom: 17px;
    align-items: center;
    gap: 12px;
}

.vibe-schedule__heading > span {
    display: block;
    width: 4px;
    height: 43px;
    flex: 0 0 4px;
    border-radius: 20px;
    background: var(--vibe-primary);
}

.vibe-schedule__heading small {
    display: block;
    margin-bottom: 4px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.vibe-schedule__heading h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 28px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.8px;
}

.vibe-schedule__list {
    display: grid;
    gap: 9px;
}

.vibe-schedule-show {
    display: grid;
    min-width: 0;
    min-height: 112px;
    overflow: hidden;
    grid-template-columns:
        112px
        minmax(0, 1fr);
    border: 1px solid var(--vibe-border-white-a11);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-schedule-show.has-sponsor {
    grid-template-columns:
        112px
        minmax(0, 1fr)
        132px;
}

.vibe-schedule-show.is-live {
    min-height: 150px;
    grid-template-columns:
        142px
        minmax(0, 1fr);
    border-color: var(--vibe-primary);
    background: var(--vibe-bg-card-tone-351053);
}

.vibe-schedule-show.is-live.has-sponsor {
    grid-template-columns:
        142px
        minmax(0, 1fr)
        150px;
}

.vibe-schedule-show__image {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 112px;
    overflow: hidden;
    align-items: flex-end;
    justify-content: center;
    background: var(--vibe-bg-card-alt);
}

.vibe-schedule-show.is-live
.vibe-schedule-show__image {
    min-height: 150px;
}

.vibe-schedule-show__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 112px;
    object-fit: contain;
    object-position: center bottom;
}

.vibe-schedule-show.is-live
.vibe-schedule-show__image img {
    min-height: 150px;
}

.vibe-schedule-show__fallback {
    display: flex;
    width: 100%;
    min-height: inherit;
    align-items: center;
    justify-content: center;
    color: var(--vibe-text-white-a35);
    font-size: 30px;
    font-weight: 950;
}

.vibe-schedule-show__live-image {
    position: absolute;
    top: 9px;
    left: 9px;
    display: inline-flex;
    min-height: 22px;
    padding: 0 8px;
    align-items: center;
    border-radius: 20px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-schedule-show__content {
    display: flex;
    min-width: 0;
    padding: 14px 16px;
    flex-direction: column;
    justify-content: center;
}

.vibe-schedule-show.is-live
.vibe-schedule-show__content {
    padding: 16px 18px;
}

.vibe-schedule-show__meta {
    display: flex;
    margin-bottom: 5px;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.vibe-schedule-show__on-air {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-schedule-show__on-air > span {
    display: block;
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--vibe-primary);
}

.vibe-schedule-show__time {
    color: var(--vibe-text-white-a55);
    font-size: 11px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.vibe-schedule-show h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 18px;
    line-height: 1.05;
    font-weight: 950;
    letter-spacing: -.35px;
}

.vibe-schedule-show.is-live h2 {
    font-size: 24px;
}

.vibe-schedule-show__presenter {
    margin-top: 4px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1.15;
    font-weight: 900;
}

.vibe-schedule-show.is-live
.vibe-schedule-show__presenter {
    font-size: 11px;
}

.vibe-schedule-show__description {
    display: -webkit-box;
    max-width: 720px;
    margin: 6px 0 0;
    overflow: hidden;
    color: var(--vibe-text-white-a55);
    font-size: 12px;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
}

.vibe-schedule-show.is-live
.vibe-schedule-show__description {
    color: var(--vibe-text-white-a63);
    font-size: 10px;
    -webkit-line-clamp: 2;
}

.vibe-schedule-show__actions {
    display: flex;
    margin-top: 10px;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.vibe-schedule-show__action {
    display: inline-flex;
    min-height: 27px;
    padding: 0 9px;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-white-a86);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-schedule-show__action:hover {
    border-color: var(--vibe-primary);
    color: var(--vibe-button-text);
}

.vibe-schedule-show__action--primary {
    border-color: var(--vibe-brand-primary-hover);
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text);
}

.vibe-schedule-show__action--primary:hover,
.vibe-schedule-show__action--primary:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text);
}

.vibe-schedule-show__action svg {
    width: 11px;
    height: 11px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-schedule-show__action--primary svg {
    fill: currentColor;
    stroke: currentColor;
}

.vibe-schedule-sponsor {
    display: flex;
    min-width: 0;
    padding: 10px;
    align-items: center;
    justify-content: center;
    border-left: 1px solid var(--vibe-border-subtle);
    background: var(--vibe-bg-card-tone-2b0c45);
}

.vibe-schedule-sponsor__inner {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: inherit;
    text-align: center;
    text-decoration: none;
}

.vibe-schedule-sponsor__inner > span {
    color: var(--vibe-text-white-a38);
    font-size: 9px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-schedule-sponsor__inner img {
    display: block;
    max-width: 86px;
    max-height: 42px;
    object-fit: contain;
}

.vibe-schedule-show.is-live
.vibe-schedule-sponsor__inner img {
    max-width: 98px;
    max-height: 50px;
}

.vibe-schedule-sponsor__inner strong {
    max-width: 100%;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 850;
    overflow-wrap: anywhere;
}

.vibe-schedule__empty {
    display: flex;
    padding: 24px;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-schedule__empty svg {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-schedule__empty > div {
    display: grid;
    gap: 3px;
}

.vibe-schedule__empty strong {
    color: var(--vibe-text-primary);
    font-size: 11px;
}

.vibe-schedule__empty span {
    color: var(--vibe-text-white-a48);
    font-size: 11px;
}

@media (max-width: 980px) {
    .vibe-schedule__tabs {
        display: flex;
        padding-bottom: 3px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .vibe-schedule__tabs::-webkit-scrollbar {
        display: none;
    }

    .vibe-schedule__tab {
        min-width: 92px;
        flex: 0 0 92px;
    }

    .vibe-schedule-show.has-sponsor,
    .vibe-schedule-show.is-live.has-sponsor {
        grid-template-columns:
            120px
            minmax(0, 1fr);
    }

    .vibe-schedule-show.is-live.has-sponsor {
        grid-template-columns:
            140px
            minmax(0, 1fr);
    }

    .vibe-schedule-sponsor {
        grid-column: 1 / -1;
        padding: 8px 12px;
        border-top: 1px solid var(--vibe-border-subtle);
        border-left: 0;
    }

    .vibe-schedule-sponsor__inner {
        flex-direction: row;
        gap: 9px;
    }

    .vibe-schedule-sponsor__inner img,
    .vibe-schedule-show.is-live
    .vibe-schedule-sponsor__inner img {
        max-width: 70px;
        max-height: 30px;
    }
}

@media (max-width: 768px) {
    .vibe-schedule__tabs {
        margin-right: -8px;
        margin-left: -8px;
        padding: 0 8px 4px;
    }

    .vibe-schedule__tab {
        min-width: 82px;
        min-height: 38px;
        flex-basis: 82px;
        font-size: 10px;
    }

    .vibe-schedule__heading {
        margin-bottom: 13px;
    }

    .vibe-schedule__heading h1 {
        font-size: 24px;
    }

    .vibe-schedule__heading > span {
        height: 37px;
    }

    .vibe-schedule-show,
    .vibe-schedule-show.has-sponsor,
    .vibe-schedule-show.is-live,
    .vibe-schedule-show.is-live.has-sponsor {
        grid-template-columns:
            92px
            minmax(0, 1fr);
        min-height: 108px;
    }

    .vibe-schedule-show__image,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image {
        min-height: 108px;
    }

    .vibe-schedule-show__image img,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image img {
        min-height: 108px;
    }

    .vibe-schedule-show__content,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__content {
        padding: 11px 12px;
    }

    .vibe-schedule-show h2,
    .vibe-schedule-show.is-live h2 {
        font-size: 17px;
    }

    .vibe-schedule-show__description {
        display: none;
    }

    .vibe-schedule-show__actions {
        margin-top: 8px;
    }

    .vibe-schedule-show__action {
        min-height: 25px;
        padding: 0 7px;
        font-size: 10px;
    }

    .vibe-schedule-sponsor {
        grid-column: 1 / -1;
    }
}

/* =========================================================
   VIBE — SCHEDULE ACTION FOCUS FIX
   ========================================================= */

.vibe-schedule-show__action:focus,
.vibe-schedule-show__action:focus-visible {
    outline: 0 !important;
    box-shadow: none !important;
    border-color: var(--vibe-primary);
}

/* =========================================================
   VIBE — RECENTLY PLAYED 2026 COMPACT STYLE
   ========================================================= */

.vibe-site--inner
.vibe-recently-played-2026 {
    width: 100%;
    min-width: 0;
}

/* Search controls */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__filters {
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr)
        auto;
    gap: 8px;
    margin-bottom: 14px;
    padding: 11px 12px 12px;
    border: 1px solid var(--vibe-border-white-a11);
    border-top: 2px solid var(--vibe-primary);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__field label {
    margin-bottom: 5px;
    color: var(--vibe-text-faint);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__field select {
    height: 38px;
    padding-left: 37px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 800;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__field select:focus {
    border-color: var(--vibe-primary);
    box-shadow: none;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__select-icon {
    bottom: 10px;
    left: 11px;
    width: 18px;
    height: 18px;
    color: var(--vibe-text-white-a60);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__select-icon svg {
    width: 17px;
    height: 17px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__submit {
    height: 38px;
    min-width: 128px;
    padding: 0 14px;
    align-self: end;
    border: 0;
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
    color: var(--vibe-text-primary);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .04em;
    text-transform: uppercase;
}

/* Playlist information */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__results-header {
    margin-bottom: 8px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-summary {
    display: grid;
    grid-template-columns:
        38px
        minmax(0, 1fr)
        210px;
    gap: 11px;
    padding: 11px 12px;
    align-items: center;
    border: 1px solid var(--vibe-border-white-a11);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-icon {
    width: 36px;
    height: 36px;
    border: 1px solid var(--vibe-primary);
    border-radius: 50%;
    color: var(--vibe-primary);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-icon svg {
    width: 16px;
    height: 16px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy > span {
    margin: 0 0 2px;
    color: var(--vibe-text-white-a43);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy > span a {
    color: var(--vibe-primary);
    text-decoration: none;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy > span a:hover {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 13px !important;
    line-height: 1.15 !important;
    font-weight: 900;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy strong {
    margin-top: 3px;
    color: var(--vibe-text-white-a48);
    font-size: 12px;
    font-weight: 800;
}

/* Control Chart */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__chart-callout {
    grid-template-columns:
        21px
        minmax(0, 1fr)
        11px;
    gap: 7px;
    min-height: 41px;
    padding: 7px 9px;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__chart-icon {
    width: 18px;
    height: 18px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__chart-callout span {
    font-size: 10px;
    line-height: 1.3;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__chart-arrow {
    width: 11px;
    height: 11px;
}

/* Programme on air */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme--vibe {
    display: grid;
    margin: 0 0 8px;
    padding: 8px 10px;
    grid-template-columns:
        42px
        minmax(0, 1fr)
        auto;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--vibe-border-medium);
    border-left: 3px solid var(--vibe-primary);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    color: inherit;
    text-decoration: none;
}

.vibe-site--inner
.vibe-recently-played-2026
a.rl-recently-played__programme--vibe:hover {
    border-color: var(--vibe-brand-action-ff1493-a5);
    border-left-color: var(--vibe-primary);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-art {
    display: flex;
    width: 42px;
    height: 42px;
    overflow: hidden;
    align-items: flex-end;
    justify-content: center;
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
    font-size: 16px;
    font-weight: 950;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-art img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy {
    display: grid;
    min-width: 0;
    gap: 2px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy > span {
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy strong {
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1.1;
    font-weight: 950;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy b {
    color: var(--vibe-primary);
    font-size: 11px;
    line-height: 1.15;
    font-weight: 850;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy small {
    color: var(--vibe-text-white-a40);
    font-size: 10px;
    line-height: 1.15;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-arrow {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Table */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__table-head {
    grid-template-columns:
        55px
        minmax(0, 1fr)
        82px
        92px;
    gap: 8px;
    margin: 0 0 4px;
    padding: 8px 10px;
    border: 0;
    border-radius: 3px;
    background: var(--vibe-bg-card);
    color: var(--vibe-text-white-a40);
    font-size: 10px;
    font-weight: 950;
    letter-spacing: .08em;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__table-head span:nth-child(2) {
    padding-left: 0;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__list {
    display: grid;
    gap: 4px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track {
    display: grid;
    grid-template-columns:
        55px
        46px
        minmax(0, 1fr)
        82px
        92px;
    gap: 8px;
    min-height: 60px;
    padding: 6px 10px;
    align-items: center;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track:hover {
    border-color: var(--vibe-brand-action-ff1493-a28);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__time {
    color: var(--vibe-text-white-a58);
    font-size: 10px;
    font-weight: 850;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__artwork {
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__artwork img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__copy strong {
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1.1;
    font-weight: 900;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__copy > span {
    margin-top: 3px;
    color: var(--vibe-primary);
    font-size: 11px;
    line-height: 1.15;
    font-weight: 800;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__actions {
    display: contents;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-vote-bar {
    grid-column: 4;
    justify-content: center;
    gap: 6px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-song-vote-button {
    gap: 2px;
    padding: 2px;
    color: var(--vibe-text-white-a46);
    font-size: 10px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-song-vote-button svg {
    width: 14px;
    height: 14px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-song-vote-button:hover,
.vibe-site--inner
.vibe-recently-played-2026
.rl-song-vote-button.is-active,
.vibe-site--inner
.vibe-recently-played-2026
.rl-song-vote-button.voted {
    color: var(--vibe-primary);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview {
    grid-column: 5;
    justify-self: center;
    height: 28px !important;
    padding: 0 9px !important;
    border: 1px solid var(--vibe-brand-accent-ff1493-a7) !important;
    border-radius: 3px !important;
    outline: 0 !important;
    background: var(--vibe-bg-card-alt) !important;
    box-shadow: none !important;
    color: var(--vibe-text-primary) !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview svg {
    width: 11px !important;
    height: 11px !important;
    flex: 0 0 11px;
    color: var(--vibe-primary);
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:hover,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:focus,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:focus-visible,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview.is-playing {
    border-color: var(--vibe-primary) !important;
    outline: 0 !important;
    background: var(--vibe-primary) !important;
    box-shadow: none !important;
    color: var(--vibe-text-primary) !important;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__empty {
    padding: 20px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-white-a50);
    font-size: 11px;
}

/* Tablet */

@media (max-width: 980px) {
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__playlist-summary {
        grid-template-columns:
            38px
            minmax(0, 1fr);
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__chart-callout {
        grid-column: 1 / -1;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__table-head {
        display: none;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track {
        grid-template-columns:
            42px
            46px
            minmax(0, 1fr);
        min-height: 66px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__actions {
        display: flex;
        grid-column: 2 / -1;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        padding-bottom: 3px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-vote-bar,
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__preview {
        grid-column: auto;
    }
}

/* Mobile */

@media (max-width: 768px) {
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__filters {
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 10px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__submit {
        width: 100%;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__playlist-summary {
        grid-template-columns:
            34px
            minmax(0, 1fr);
        gap: 9px;
        padding: 9px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__playlist-icon {
        width: 32px;
        height: 32px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__programme--vibe {
        grid-template-columns:
            38px
            minmax(0, 1fr)
            auto;
        padding: 8px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__programme-art {
        width: 38px;
        height: 38px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track {
        grid-template-columns:
            38px
            44px
            minmax(0, 1fr);
        gap: 7px;
        padding: 6px 7px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__artwork {
        width: 40px;
        height: 40px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__copy strong {
        font-size: 12px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__copy > span {
        font-size: 11px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__actions {
        gap: 8px;
    }
}

/* =========================================================
   VIBE — RECENTLY PLAYED HEADER POLISH V2
   Track rows deliberately untouched
   ========================================================= */

/* Slightly reduce the dominance of Show Playlist */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__filters {
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr)
        116px;
    gap: 7px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__submit {
    width: 116px;
    min-width: 116px;
    padding: 0 10px;
}

/* Pull playlist information together */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-summary {
    grid-template-columns:
        38px
        minmax(0, 1fr)
        196px;
    gap: 9px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy h2 {
    font-size: 14px !important;
    font-weight: 950;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__playlist-copy strong {
    margin-top: 2px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__chart-callout {
    min-height: 39px;
    padding: 6px 8px;
}

/* Programme on Air card */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme--vibe {
    grid-template-columns:
        44px
        minmax(0, 1fr)
        auto;
    gap: 10px;
    padding: 8px 10px;
    outline: 0;
    box-shadow: none;
    cursor: pointer;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-art {
    width: 44px;
    height: 44px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy strong {
    font-size: 13px;
}

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__programme-copy b {
    font-size: 11px;
}

.vibe-site--inner
.vibe-recently-played-2026
a.rl-recently-played__programme--vibe:focus,
.vibe-site--inner
.vibe-recently-played-2026
a.rl-recently-played__programme--vibe:focus-visible {
    outline: 0;
    box-shadow: none;
    border-color: var(--vibe-brand-action-ff1493-a5);
    border-left-color: var(--vibe-primary);
}

@media (max-width: 768px) {
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__filters {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__submit {
        width: 100%;
        min-width: 0;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__playlist-summary {
        grid-template-columns:
            34px
            minmax(0, 1fr);
    }
}

/* =========================================================
   VIBE — RECENTLY PLAYED PREVIEW ICON VISIBILITY FIX
   ========================================================= */

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:hover svg,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:focus svg,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview:focus-visible svg,
.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played-track__preview.is-playing svg {
    color: var(--vibe-text-primary) !important;
}

/* =========================================================
   VIBE — COMPETITIONS 2026 CARD REDESIGN
   ========================================================= */

/* Featured competition */

.vibe-site--inner
.rl-redline-competitions__featured {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, .65fr);
    overflow: hidden;
    margin-bottom: 14px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competitions__featured-media {
    display: block;
    min-height: 280px;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-competitions__featured-media img {
    width: 100%;
    height: 100%;
    min-height: 280px;
    display: block;
    object-fit: cover;
}

.vibe-site--inner
.rl-redline-competitions__featured-copy {
    display: flex;
    min-width: 0;
    padding: 24px 22px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.vibe-site--inner
.rl-redline-competitions__featured-label {
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competitions__featured-copy h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.05;
    font-weight: 950;
    letter-spacing: -.02em;
}

.vibe-site--inner
.rl-redline-competitions__featured-copy h2 a {
    color: var(--vibe-text-primary);
    text-decoration: none;
}

.vibe-site--inner
.rl-redline-competitions__featured-summary {
    margin: 10px 0 0;
    color: var(--vibe-text-white-a62);
    font-size: 11px;
    line-height: 1.45;
}

.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__date {
    margin-top: 13px;
    color: var(--vibe-text-white-a52);
    font-size: 10px;
}

.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__date svg {
    width: 14px;
    height: 14px;
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__button {
    min-height: 34px;
    margin-top: 14px;
    padding: 0 16px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
    color: var(--vibe-button-text);
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__button:hover,
.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__button:focus,
.vibe-site--inner
.rl-redline-competitions__featured
.rl-redline-competitions__button:focus-visible {
    border-color: var(--vibe-border-white);
    outline: 0;
    box-shadow: none;
}

/* How To Enter */

.vibe-site--inner
.rl-redline-competitions__how {
    margin-top: 14px;
    padding: 16px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-competitions__how > h2 {
    margin: 0 0 12px;
    color: var(--vibe-text-primary);
    font-size: 15px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.01em;
}

.vibe-site--inner
.rl-redline-competitions__steps {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.vibe-site--inner
.rl-redline-competitions__steps li {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 126px;
    padding: 15px 13px 13px;
    grid-template-columns: 32px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    gap: 10px;
    align-items: start;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competitions__steps li:hover {
    border-color: var(--vibe-brand-action-ff1493-a35);
}

.vibe-site--inner
.rl-redline-competitions__step-number {
    position: absolute;
    top: 7px;
    right: 8px;
    display: flex;
    width: 19px;
    height: 19px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__step-icon {
    display: flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    grid-row: 1 / span 2;
    border: 1px solid var(--vibe-brand-action-ff1493-a55);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competitions__step-icon svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-site--inner
.rl-redline-competitions__steps li > div {
    min-width: 0;
    padding-top: 2px;
}

.vibe-site--inner
.rl-redline-competitions__steps strong {
    display: block;
    padding-right: 18px;
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1.15;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__steps p {
    margin: 5px 0 0;
    color: var(--vibe-text-white-a48);
    font-size: 12px;
    line-height: 1.4;
}

/* Recent Winners */

.vibe-site--inner
.rl-redline-competitions__winners {
    margin-top: 10px;
    padding: 15px 16px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competitions__winners > h2 {
    margin: 0 0 10px;
    color: var(--vibe-text-primary);
    font-size: 14px;
    line-height: 1;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__winners-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.vibe-site--inner
.rl-redline-competitions__winner,
.vibe-site--inner
.rl-redline-competitions__winner
+ .rl-redline-competitions__winner {
    display: grid;
    min-width: 0;
    padding: 10px;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-site--inner
.rl-redline-competitions__winner-avatar {
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-size: 10px;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__winner h3 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 10px;
    line-height: 1.15;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__winner p {
    margin: 3px 0 0;
    color: var(--vibe-primary);
    font-size: 12px;
    line-height: 1.25;
    font-weight: 800;
}

.vibe-site--inner
.rl-redline-competitions__winner span {
    display: block;
    margin-top: 3px;
    color: var(--vibe-text-white-a40);
    font-size: 10px;
    line-height: 1.2;
}

.vibe-site--inner
.rl-redline-competitions__winners-empty {
    display: flex;
    min-height: 52px;
    margin: 0;
    padding: 0 13px;
    align-items: center;
    border: 1px solid var(--vibe-border-subtle);
    border-left: 3px solid var(--vibe-primary);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-text-white-a52);
    font-size: 12px;
}

/* Terms */

.vibe-site--inner
.rl-redline-competitions__terms {
    display: flex;
    min-height: 64px;
    margin-top: 10px;
    padding: 11px 14px;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-competitions__terms > div {
    min-width: 0;
}

.vibe-site--inner
.rl-redline-competitions__terms h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.1;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competitions__terms p {
    margin: 4px 0 0;
    color: var(--vibe-text-white-a43);
    font-size: 12px;
    line-height: 1.3;
}

.vibe-site--inner
.rl-redline-competitions__terms > a {
    display: inline-flex;
    min-height: 30px;
    padding: 0 11px;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 0 auto;
    border: 1px solid var(--vibe-brand-accent-ff1493-a7);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-bg-card-alt);
    box-shadow: none;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competitions__terms > a:hover,
.vibe-site--inner
.rl-redline-competitions__terms > a:focus,
.vibe-site--inner
.rl-redline-competitions__terms > a:focus-visible {
    border-color: var(--vibe-primary);
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
    color: var(--vibe-text-primary) !important;
}

/* Tablet */

@media (max-width: 980px) {
    .vibe-site--inner
    .rl-redline-competitions__featured {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-competitions__featured-media,
    .vibe-site--inner
    .rl-redline-competitions__featured-media img {
        min-height: 0;
        height: auto;
    }

    .vibe-site--inner
    .rl-redline-competitions__steps {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */

@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-competitions__featured-copy {
        padding: 18px 15px;
    }

    .vibe-site--inner
    .rl-redline-competitions__featured-copy h2 {
        font-size: 20px;
    }

    .vibe-site--inner
    .rl-redline-competitions__how {
        padding: 12px;
    }

    .vibe-site--inner
    .rl-redline-competitions__steps {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .vibe-site--inner
    .rl-redline-competitions__steps li {
        display: block;
        min-height: 138px;
        padding: 12px 10px;
    }

    .vibe-site--inner
    .rl-redline-competitions__step-icon {
        margin-bottom: 10px;
    }

    .vibe-site--inner
    .rl-redline-competitions__steps strong {
        padding-right: 0;
    }

    .vibe-site--inner
    .rl-redline-competitions__winners-grid {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-competitions__terms {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .vibe-site--inner
    .rl-redline-competitions__terms > a {
        align-self: flex-start;
    }
}

/* =========================================================
   VIBE — COMPETITIONS SPACING POLISH V2
   ========================================================= */

.vibe-site--inner
.rl-redline-competitions__featured {
    margin-bottom: 8px;
}

.vibe-site--inner
.rl-redline-competitions__how {
    margin-top: 8px;
    padding: 14px;
}

.vibe-site--inner
.rl-redline-competitions__how > h2 {
    margin-bottom: 10px;
}

.vibe-site--inner
.rl-redline-competitions__steps li {
    min-height: 96px;
    padding: 12px 11px;
}

@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-competitions__steps li {
        min-height: 112px;
        padding: 11px 10px;
    }
}

/* =========================================================
   VIBE — COMPETITIONS FEATURED HOW GAP FIX
   ========================================================= */

.vibe-site--inner
.rl-redline-competitions__featured {
    margin-bottom: 0;
}

.vibe-site--inner
.rl-redline-competitions__how {
    margin-top: 0;
}

/* =========================================================
   VIBE — COMPETITION DETAIL 2026 REDESIGN
   ========================================================= */

.vibe-site--inner
.rl-redline-competition-detail {
    width: 100%;
    min-width: 0;
}

.vibe-site--inner
.rl-redline-competition-detail__card {
    overflow: hidden;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

/* Prize / hero */

.vibe-site--inner
.rl-redline-competition-detail__prize {
    display: grid;
    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(260px, .55fr);
    gap: 14px;
    padding: 18px;
    align-items: start;
}

.vibe-site--inner
.rl-redline-competition-detail__main {
    min-width: 0;
}

.vibe-site--inner
.rl-redline-competition-detail__image,
.vibe-site--inner
.rl-redline-competition-detail__placeholder {
    width: 100%;
    max-height: 390px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-alt);
}

.vibe-site--inner
.rl-redline-competition-detail__image {
    display: block;
    object-fit: cover;
}

.vibe-site--inner
.rl-redline-competition-detail__summary {
    margin: 13px 0 0;
    color: var(--vibe-text-white-a66);
    font-size: 11px;
    line-height: 1.5;
}

/* Prize information panel */

.vibe-site--inner
.rl-redline-competition-detail__prize-panel {
    padding: 16px;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-panel h2 {
    margin: 0 0 10px;
    color: var(--vibe-primary);
    font-size: 15px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.01em;
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    padding: 11px 0;
    align-items: start;
    border-top: 1px solid var(--vibe-border-subtle);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item:first-of-type {
    border-top: 0;
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item > span {
    display: flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-alt);
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item > span svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item strong {
    display: block;
    margin-top: 1px;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.1;
    font-weight: 950;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item p {
    margin: 5px 0 0;
    color: var(--vibe-text-white-a60);
    font-size: 10px;
    line-height: 1.4;
}

/* Main competition description */

.vibe-site--inner
.rl-redline-competition-detail__description {
    padding: 2px 18px 16px;
    color: var(--vibe-text-white-a66);
    font-size: 11px;
    line-height: 1.55;
}

.vibe-site--inner
.rl-redline-competition-detail__description br + br {
    line-height: 1.1;
}

/* Closing date callout */

.vibe-site--inner
.rl-redline-competition-detail__closes {
    display: grid;
    margin: 0 18px 18px;
    padding: 10px 12px;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    border: 1px solid var(--vibe-border-soft);
    border-left: 3px solid var(--vibe-primary);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competition-detail__closes-icon {
    display: flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-detail__closes-icon svg {
    width: 20px;
    height: 20px;
}

.vibe-site--inner
.rl-redline-competition-detail__closes strong {
    display: block;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.1;
    font-weight: 950;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competition-detail__closes p {
    margin: 3px 0 0;
    color: var(--vibe-text-white-a58);
    font-size: 12px;
    line-height: 1.25;
}

/* Entry form area */

.vibe-site--inner
.rl-redline-competition-entry {
    margin: 0;
    padding: 20px 18px;
    border-top: 1px solid var(--vibe-border-soft);
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-competition-entry__heading {
    margin-bottom: 15px;
}

.vibe-site--inner
.rl-redline-competition-entry__heading h2 {
    margin: 0;
    color: var(--vibe-primary);
    font-size: 20px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.02em;
}

.vibe-site--inner
.rl-redline-competition-entry__heading p {
    margin: 6px 0 0;
    color: var(--vibe-text-white-a55);
    font-size: 10px;
    line-height: 1.4;
}

.vibe-site--inner
.rl-redline-competition-form {
    gap: 12px;
}

.vibe-site--inner
.rl-redline-competition-field label {
    margin-bottom: 5px;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.vibe-site--inner
.rl-redline-competition-field input,
.vibe-site--inner
.rl-redline-competition-field textarea {
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid var(--vibe-border-white-a13);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-bg-card-raised);
    box-shadow: none;
    color: var(--vibe-text-primary);
    font: inherit;
    font-size: 10px;
}

.vibe-site--inner
.rl-redline-competition-field textarea {
    min-height: 92px;
    padding-top: 10px;
    resize: vertical;
}

.vibe-site--inner
.rl-redline-competition-field input::placeholder,
.vibe-site--inner
.rl-redline-competition-field textarea::placeholder {
    color: var(--vibe-text-white-a36);
}

.vibe-site--inner
.rl-redline-competition-field input:focus,
.vibe-site--inner
.rl-redline-competition-field textarea:focus {
    border-color: var(--vibe-primary);
    outline: 0;
    box-shadow: none;
}

/* Consent rows */

.vibe-site--inner
.rl-redline-competition-checkbox {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    padding: 2px 0;
}

.vibe-site--inner
.rl-redline-competition-checkbox input {
    width: 16px;
    height: 16px;
    margin: 1px 0 0;
    accent-color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-competition-checkbox label {
    color: var(--vibe-text-white-a66);
    font-size: 11px;
    line-height: 1.4;
}

.vibe-site--inner
.rl-redline-competition-checkbox a {
    color: var(--vibe-primary);
    font-weight: 850;
}

/* Data use disclosure */

.vibe-site--inner
.rl-redline-competition-privacy {
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-competition-privacy summary {
    padding: 9px 11px;
    color: var(--vibe-text-primary);
    cursor: pointer;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
}

.vibe-site--inner
.rl-redline-competition-privacy p {
    margin: 0;
    padding: 0 11px 10px;
    color: var(--vibe-text-white-a50);
    font-size: 11px;
    line-height: 1.45;
}

/* Submit */

.vibe-site--inner
.rl-redline-competition-submit {
    min-height: 40px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
    color: var(--vibe-text-primary);
    font-size: 12px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.vibe-site--inner
.rl-redline-competition-submit:hover,
.vibe-site--inner
.rl-redline-competition-submit:focus,
.vibe-site--inner
.rl-redline-competition-submit:focus-visible {
    border-color: var(--vibe-border-white);
    outline: 0;
    box-shadow: none;
}

/* Notices / closed states */

.vibe-site--inner
.rl-redline-competition-notice,
.vibe-site--inner
.rl-redline-competition-closed {
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

/* Terms */

.vibe-site--inner
.rl-redline-competition-detail__terms {
    padding: 20px 18px;
    border-top: 1px solid var(--vibe-border-soft);
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-competition-detail__terms h2 {
    margin: 0 0 11px;
    color: var(--vibe-primary);
    font-size: 15px;
    line-height: 1;
    font-weight: 950;
}

.vibe-site--inner
.rl-redline-competition-detail__terms-copy {
    padding: 13px 14px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-white-a58);
    font-size: 12px;
    line-height: 1.55;
}

/* More competitions */

.vibe-site--inner
.rl-redline-competition-detail__more {
    padding: 18px;
    border-top: 1px solid var(--vibe-border-soft);
    background: var(--vibe-bg-card);
}

/* Responsive */

@media (max-width: 980px) {
    .vibe-site--inner
    .rl-redline-competition-detail__prize {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__prize-panel {
        width: 100%;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__image {
        max-height: none;
    }
}

@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-competition-detail__prize {
        gap: 10px;
        padding: 10px;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__summary {
        margin-top: 10px;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__description {
        padding: 0 10px 12px;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__closes {
        margin: 0 10px 12px;
    }

    .vibe-site--inner
    .rl-redline-competition-entry,
    .vibe-site--inner
    .rl-redline-competition-detail__terms {
        padding: 16px 10px;
    }

    .vibe-site--inner
    .rl-redline-competition-entry__heading h2 {
        font-size: 18px;
    }

    .vibe-site--inner
    .rl-redline-competition-detail__terms-copy {
        padding: 11px;
    }
}

/* =========================================================
   VIBE — COMPETITION DETAIL FINAL TYPOGRAPHY POLISH
   ========================================================= */

/* Main copy */

.vibe-site--inner
.rl-redline-competition-detail__summary,
.vibe-site--inner
.rl-redline-competition-detail__description {
    color: var(--vibe-text-white-a72);
    font-size: 12px;
}

.vibe-site--inner
.rl-redline-competition-detail__prize-item p {
    color: var(--vibe-text-white-a67);
    font-size: 11px;
}

.vibe-site--inner
.rl-redline-competition-detail__closes p {
    color: var(--vibe-text-white-a66);
    font-size: 12px;
}

/* Form readability */

.vibe-site--inner
.rl-redline-competition-entry__heading p {
    color: var(--vibe-text-white-a64);
    font-size: 11px;
}

.vibe-site--inner
.rl-redline-competition-field label {
    font-size: 11px;
}

.vibe-site--inner
.rl-redline-competition-field input,
.vibe-site--inner
.rl-redline-competition-field textarea {
    font-size: 11px;
}

.vibe-site--inner
.rl-redline-competition-checkbox {
    gap: 8px;
    padding: 0;
}

.vibe-site--inner
.rl-redline-competition-checkbox label {
    color: var(--vibe-text-white-a72);
    font-size: 11px;
    line-height: 1.35;
}

.vibe-site--inner
.rl-redline-competition-privacy summary {
    font-size: 11px;
}

.vibe-site--inner
.rl-redline-competition-privacy p {
    color: var(--vibe-text-white-a62);
    font-size: 11px;
}

/* Slightly tighter lower form rhythm */

.vibe-site--inner
.rl-redline-competition-form {
    row-gap: 10px;
}

/* Terms readability */

.vibe-site--inner
.rl-redline-competition-detail__terms-copy {
    color: var(--vibe-text-white-a68);
    font-size: 12px;
    line-height: 1.6;
}

/* =========================================================
   VIBE — EVENTS INDEX 2026 REDESIGN
   Layout / spacing only — typography pass comes later
   ========================================================= */

.vibe-site--inner
.rl-redline-events {
    display: grid;
    gap: 14px;
}

/* Featured event */

.vibe-site--inner
.rl-redline-events__featured {
    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(300px, .65fr);
    overflow: hidden;
    min-height: 0;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-events__featured-image {
    min-width: 0;
    min-height: 300px;
    border: 0;
    border-radius: 0;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-events__featured-image img,
.vibe-site--inner
.rl-redline-events__featured-image
.rl-redline-events__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
}

.vibe-site--inner
.rl-redline-events__featured-copy {
    display: flex;
    min-width: 0;
    padding: 22px;
    flex-direction: column;
    justify-content: center;
}

.vibe-site--inner
.rl-redline-events__featured-summary {
    margin-top: 8px;
}

.vibe-site--inner
.rl-redline-events__featured-meta {
    display: grid;
    gap: 7px;
    margin-top: 13px;
}

.vibe-site--inner
.rl-redline-events__featured-meta > div {
    gap: 8px;
}

.vibe-site--inner
.rl-redline-events__featured-button {
    width: fit-content;
    min-height: 36px;
    margin-top: 16px;
    padding: 0 16px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__featured-button:hover,
.vibe-site--inner
.rl-redline-events__featured-button:focus,
.vibe-site--inner
.rl-redline-events__featured-button:focus-visible {
    border-color: var(--vibe-border-white);
    outline: 0;
    box-shadow: none;
}

/* Filter toolbar */

.vibe-site--inner
.rl-redline-events__toolbar {
    display: flex;
    gap: 10px;
    padding: 9px 10px;
    align-items: center;
    justify-content: space-between;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-events__categories {
    display: flex;
    min-width: 0;
    gap: 5px;
    align-items: center;
}

.vibe-site--inner
.rl-redline-events__categories a {
    display: inline-flex;
    min-height: 34px;
    padding: 0 13px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 3px;
    white-space: nowrap;
}

.vibe-site--inner
.rl-redline-events__categories a:not(.is-active) {
    background: transparent;
}

.vibe-site--inner
.rl-redline-events__categories a.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-events__controls {
    display: flex;
    gap: 6px;
    align-items: center;
    flex: 0 0 auto;
}

.vibe-site--inner
.rl-redline-events__controls label {
    min-width: 0;
}

.vibe-site--inner
.rl-redline-events__controls select {
    min-height: 34px;
    padding-top: 0;
    padding-bottom: 0;
    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 3px;
    outline: 0;
    background-color: var(--vibe-bg-card-raised);
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__controls select:focus {
    border-color: var(--vibe-primary);
    outline: 0;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__clear {
    min-height: 34px;
    border-radius: 3px;
}

/* Event card grid */

.vibe-site--inner
.rl-redline-events__grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.vibe-site--inner
.rl-redline-events__card {
    display: flex;
    overflow: hidden;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-events__card-image {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    min-height: 0;
    border: 0;
    border-radius: 0;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-events__card-image img,
.vibe-site--inner
.rl-redline-events__card-image
.rl-redline-events__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.vibe-site--inner
.rl-redline-events__card-copy {
    display: flex;
    min-width: 0;
    padding: 14px;
    flex: 1 1 auto;
    flex-direction: column;
}

.vibe-site--inner
.rl-redline-events__card-copy > p {
    margin-top: 7px;
}

.vibe-site--inner
.rl-redline-events__card-meta {
    display: grid;
    gap: 5px;
    margin-top: 11px;
}

.vibe-site--inner
.rl-redline-events__card-meta > div {
    gap: 7px;
}

.vibe-site--inner
.rl-redline-events__card-button {
    width: fit-content;
    min-height: 32px;
    margin-top: 13px;
    padding: 0 12px;
    border: 1px solid var(--vibe-border-white-a18);
    border-radius: 3px;
    background: transparent;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__card-copy
.rl-redline-events__card-button {
    margin-top: auto;
    padding-top: 0;
    padding-bottom: 0;
}

.vibe-site--inner
.rl-redline-events__card-button:hover,
.vibe-site--inner
.rl-redline-events__card-button:focus,
.vibe-site--inner
.rl-redline-events__card-button:focus-visible {
    border-color: var(--vibe-primary);
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
}

/* Submit event callout */

.vibe-site--inner
.rl-redline-events__submit {
    display: grid;
    grid-template-columns:
        42px minmax(0, 1fr) auto;
    gap: 12px;
    min-height: 0;
    padding: 12px 14px;
    align-items: center;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-events__submit-icon {
    display: flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-events__submit-icon svg {
    width: 20px;
    height: 20px;
}

.vibe-site--inner
.rl-redline-events__submit p {
    margin-top: 3px;
}

.vibe-site--inner
.rl-redline-events__submit > a {
    min-height: 36px;
    padding: 0 16px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__submit > a:hover,
.vibe-site--inner
.rl-redline-events__submit > a:focus,
.vibe-site--inner
.rl-redline-events__submit > a:focus-visible {
    border-color: var(--vibe-border-white);
    outline: 0;
    box-shadow: none;
}

/* Empty / load more */

.vibe-site--inner
.rl-redline-events__empty {
    padding: 18px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-events__load-more {
    margin-top: 0;
}

/* Tablet */

@media (max-width: 1100px) {
    .vibe-site--inner
    .rl-redline-events__featured {
        grid-template-columns:
            minmax(0, 1.15fr)
            minmax(270px, .85fr);
    }

    .vibe-site--inner
    .rl-redline-events__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .vibe-site--inner
    .rl-redline-events__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .vibe-site--inner
    .rl-redline-events__categories {
        width: 100%;
        overflow-x: auto;
    }

    .vibe-site--inner
    .rl-redline-events__controls {
        width: 100%;
    }
}

/* Small tablet / mobile */

@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-events {
        gap: 10px;
    }

    .vibe-site--inner
    .rl-redline-events__featured {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-events__featured-image,
    .vibe-site--inner
    .rl-redline-events__featured-image img,
    .vibe-site--inner
    .rl-redline-events__featured-image
    .rl-redline-events__placeholder {
        min-height: 0;
        height: auto;
    }

    .vibe-site--inner
    .rl-redline-events__featured-copy {
        padding: 15px;
    }

    .vibe-site--inner
    .rl-redline-events__toolbar {
        padding: 8px;
    }

    .vibe-site--inner
    .rl-redline-events__controls {
        display: grid;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .vibe-site--inner
    .rl-redline-events__controls label,
    .vibe-site--inner
    .rl-redline-events__controls select {
        width: 100%;
    }

    .vibe-site--inner
    .rl-redline-events__grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .vibe-site--inner
    .rl-redline-events__submit {
        grid-template-columns:
            38px minmax(0, 1fr);
        padding: 11px;
    }

    .vibe-site--inner
    .rl-redline-events__submit-icon {
        width: 38px;
        height: 38px;
    }

    .vibe-site--inner
    .rl-redline-events__submit > a {
        grid-column: 1 / -1;
        width: 100%;
        justify-content: center;
    }
}

/* =========================================================
   VIBE — EVENTS IMAGE / SPACING / BUTTON FIXES
   ========================================================= */

/* Tighter overall spacing */
.vibe-site--inner
.rl-redline-events {
    gap: 10px;
}

.vibe-site--inner
.rl-redline-events__toolbar {
    padding: 12px 14px;
}

.vibe-site--inner
.rl-redline-events__grid {
    gap: 10px;
}

.vibe-site--inner
.rl-redline-events__submit {
    padding: 14px 16px;
}

/* Show full images instead of cropping */
.vibe-site--inner
.rl-redline-events__featured-image,
.vibe-site--inner
.rl-redline-events__card-image {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-events__featured-image {
    min-height: 0;
    aspect-ratio: 16 / 9;
}

.vibe-site--inner
.rl-redline-events__card-image {
    aspect-ratio: 1 / 1;
}

.vibe-site--inner
.rl-redline-events__featured-image img,
.vibe-site--inner
.rl-redline-events__card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    background: var(--vibe-bg-card);
}

/* Tighter card layout + button pushed down */
.vibe-site--inner
.rl-redline-events__card {
    display: flex;
    flex-direction: column;
}

.vibe-site--inner
.rl-redline-events__card-copy {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 14px 14px 16px;
}

.vibe-site--inner
.rl-redline-events__card-copy > p {
    margin-bottom: 8px;
}

.vibe-site--inner
.rl-redline-events__card-meta {
    gap: 6px;
    margin-bottom: 10px;
}

.vibe-site--inner
.rl-redline-events__card-button {
    margin-top: auto;
    align-self: flex-start;
}

/* Fix hover/focus state */
.vibe-site--inner
.rl-redline-events__card-button:hover,
.vibe-site--inner
.rl-redline-events__card-button:focus,
.vibe-site--inner
.rl-redline-events__card-button:focus-visible,
.vibe-site--inner
.rl-redline-events__featured-button:hover,
.vibe-site--inner
.rl-redline-events__featured-button:focus,
.vibe-site--inner
.rl-redline-events__featured-button:focus-visible {
    background: var(--vibe-primary);
    border-color: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
    outline: 0;
}

.vibe-site--inner
.rl-redline-events__card-button:hover span,
.vibe-site--inner
.rl-redline-events__card-button:focus span,
.vibe-site--inner
.rl-redline-events__card-button:focus-visible span,
.vibe-site--inner
.rl-redline-events__featured-button:hover span,
.vibe-site--inner
.rl-redline-events__featured-button:focus span,
.vibe-site--inner
.rl-redline-events__featured-button:focus-visible span {
    color: var(--vibe-button-text) !important;
}

/* Small mobile tidy */
@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-events__toolbar {
        padding: 10px 12px;
    }

    .vibe-site--inner
    .rl-redline-events__card-copy {
        padding: 12px 12px 14px;
    }
}

/* =========================================================
   VIBE — EVENTS 16X9 CARD IMAGE FIX
   ========================================================= */

.vibe-site--inner
.rl-redline-events__card-image {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    align-items: center;
    justify-content: center;
}

.vibe-site--inner
.rl-redline-events__card-image img,
.vibe-site--inner
.rl-redline-events__card-image
.rl-redline-events__placeholder {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    object-position: center;
}

.vibe-site--inner
.rl-redline-events__card-copy {
    padding-top: 13px;
}

.vibe-site--inner
.rl-redline-events__card-button {
    margin-top: 14px;
}

.vibe-site--inner
.rl-redline-events__card-copy
.rl-redline-events__card-button {
    margin-top: auto;
    padding-top: 0;
    padding-bottom: 0;
}

/* =========================================================
   VIBE — EVENT DETAIL 2026 REDESIGN
   Layout / spacing only — typography pass comes later
   ========================================================= */

.vibe-site--inner
.rl-redline-event-detail {
    display: grid;
    gap: 12px;
}

/* ---------------------------------------------------------
   Event overview
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__overview {
    display: grid;
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(320px, .6fr);
    overflow: hidden;
    min-height: 0;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-event-detail__image {
    min-width: 0;
    min-height: 0;
    border: 0;
    border-radius: 0;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-event-detail__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center;
}

.vibe-site--inner
.rl-redline-event-detail__overview-copy {
    display: flex;
    min-width: 0;
    overflow: visible;
    padding: 18px;
    flex-direction: column;
    justify-content: center;
}

.vibe-site--inner
.rl-redline-event-detail__meta {
    display: grid;
    gap: 7px;
}

.vibe-site--inner
.rl-redline-event-detail__meta > div {
    gap: 8px;
    align-items: center;
}

.vibe-site--inner
.rl-redline-event-detail__actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    flex-wrap: wrap;
}

.vibe-site--inner
.rl-redline-event-detail__button {
    min-height: 38px;
    padding: 0 14px;
    border-radius: 3px;
    outline: 0;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-event-detail__button.is-primary {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
}

.vibe-site--inner
.rl-redline-event-detail__button:hover,
.vibe-site--inner
.rl-redline-event-detail__button:focus,
.vibe-site--inner
.rl-redline-event-detail__button:focus-visible {
    border-color: var(--vibe-primary);
    outline: 0;
    background: var(--vibe-primary);
    box-shadow: none;
    color: var(--vibe-button-text) !important;
}

.vibe-site--inner
.rl-redline-event-detail__summary {
    display: block;
    overflow: visible;
    max-height: none;
    margin-top: 13px;
}

/* ---------------------------------------------------------
   Shared panel treatment
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__split {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
}

.vibe-site--inner
.rl-redline-event-detail__split.is-single {
    grid-template-columns: 1fr;
}

.vibe-site--inner
.rl-redline-event-detail__panel {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-shell);
}

.vibe-site--inner
.rl-redline-event-detail__panel > h2 {
    margin-bottom: 12px;
    padding-bottom: 10px;
}

.vibe-site--inner
.rl-redline-event-detail__body {
    margin: 0;
}

/* ---------------------------------------------------------
   Line-up
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__lineup {
    overflow: hidden;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-event-detail__lineup-item {
    min-height: 0;
    padding: 9px 11px;
    gap: 10px;
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-site--inner
.rl-redline-event-detail__lineup-item:last-child {
    border-bottom: 0;
}

.vibe-site--inner
.rl-redline-event-detail__lineup-image {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
}

/* ---------------------------------------------------------
   Event information
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__information-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.vibe-site--inner
.rl-redline-event-detail__information-item {
    min-height: 0;
    padding: 10px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.rl-redline-event-detail__information-icon {
    width: 34px;
    height: 34px;
}

/* ---------------------------------------------------------
   Location
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__location {
    display: grid;
    gap: 12px;
}

.vibe-site--inner
.rl-redline-event-detail__map {
    overflow: hidden;
    height: 220px;
    min-height: 0;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
}

.vibe-site--inner
.rl-redline-event-detail__map iframe {
    display: block;
    width: 100%;
    height: 220px;
    min-height: 0;
    border: 0;
}

.vibe-site--inner
.rl-redline-event-detail__location-copy {
    padding: 0;
}

.vibe-site--inner
.rl-redline-event-detail__location-links {
    margin-top: 8px;
}

/* ---------------------------------------------------------
   Related events
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-event-detail__related {
    padding: 16px;
}

.vibe-site--inner
.rl-redline-event-detail__related-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.vibe-site--inner
.rl-redline-event-detail__related-card {
    display: flex;
    overflow: hidden;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-event-detail__related-media {
    display: flex;
    overflow: hidden;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 9;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.rl-redline-event-detail__related-media img,
.vibe-site--inner
.rl-redline-event-detail__related-media > span {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.vibe-site--inner
.rl-redline-event-detail__related-media img {
    object-fit: contain;
    object-position: center;
}

.vibe-site--inner
.rl-redline-event-detail__related-copy {
    display: flex;
    padding: 12px;
    flex: 1 1 auto;
    flex-direction: column;
}

.vibe-site--inner
.rl-redline-event-detail__related-link {
    margin-top: 10px;
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width: 1100px) {
    .vibe-site--inner
    .rl-redline-event-detail__overview {
        grid-template-columns:
            minmax(0, 1.2fr)
            minmax(300px, .8fr);
    }

    .vibe-site--inner
    .rl-redline-event-detail__related-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .vibe-site--inner
    .rl-redline-event-detail {
        gap: 10px;
    }

    .vibe-site--inner
    .rl-redline-event-detail__overview {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-event-detail__image img {
        height: auto;
        object-fit: contain;
    }

    .vibe-site--inner
    .rl-redline-event-detail__overview-copy {
        padding: 14px;
    }

    .vibe-site--inner
    .rl-redline-event-detail__split {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vibe-site--inner
    .rl-redline-event-detail__panel {
        padding: 13px;
    }

    .vibe-site--inner
    .rl-redline-event-detail__information-grid {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner
    .rl-redline-event-detail__map,
    .vibe-site--inner
    .rl-redline-event-detail__map iframe {
        height: 190px;
    }

    .vibe-site--inner
    .rl-redline-event-detail__related-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   VIBE — EVENT DETAIL COLOUR ALIGNMENT
   Match Events index / newer Vibe component system
   ========================================================= */

/* Main event surfaces */
.vibe-site--inner
.rl-redline-event-detail__overview,
.vibe-site--inner
.rl-redline-event-detail__panel {
    background: var(--vibe-bg-card);
}

/* Inner raised surfaces */
.vibe-site--inner
.rl-redline-event-detail__lineup,
.vibe-site--inner
.rl-redline-event-detail__information-item {
    background: var(--vibe-bg-card-raised);
}

/* Related event cards */
.vibe-site--inner
.rl-redline-event-detail__related-card {
    background: var(--vibe-bg-card);
}

/* Keep image / map neutral within the newer purple system */
.vibe-site--inner
.rl-redline-event-detail__image,
.vibe-site--inner
.rl-redline-event-detail__related-media,
.vibe-site--inner
.rl-redline-event-detail__map {
    background: var(--vibe-bg-card);
}

/* =========================================================
   VIBE — HOMEPAGE NOW / RECENT 2026 REDESIGN
   Layout / surfaces only — typography pass comes later
   ========================================================= */

.vibe-site--inner
.vibe-sidebar-tracks,
.vibe-sidebar-tracks {
    width: 100%;
    margin: 0 0 18px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

/* Now Playing */

.vibe-site--inner
.vibe-sidebar-now,
.vibe-sidebar-now {
    padding: 14px;
    background: var(--vibe-bg-card-raised);
    border-bottom: 1px solid var(--vibe-border-soft);
}

.vibe-site--inner
.vibe-sidebar-now__label,
.vibe-sidebar-now__label {
    margin-bottom: 10px;
}

.vibe-site--inner
.vibe-sidebar-now__live-dot,
.vibe-sidebar-now__live-dot {
    box-shadow: none;
}

.vibe-site--inner
.vibe-sidebar-now__body,
.vibe-sidebar-now__body {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 13px;
}

.vibe-site--inner
.vibe-sidebar-now__artwork,
.vibe-sidebar-now__artwork {
    width: 82px;
    height: 82px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.vibe-sidebar-now__copy span,
.vibe-sidebar-now__copy span {
    margin-top: 5px;
}

/* Recently Played */

.vibe-site--inner
.vibe-sidebar-recent,
.vibe-sidebar-recent {
    padding: 12px 14px 14px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.vibe-sidebar-recent__header,
.vibe-sidebar-recent__header {
    min-height: 38px;
    margin-bottom: 8px;
    border-bottom: 0;
}

.vibe-site--inner
.vibe-sidebar-recent__header a,
.vibe-sidebar-recent__header a {
    min-height: 28px;
    padding: 0 8px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.vibe-sidebar-recent__header a:hover,
.vibe-site--inner
.vibe-sidebar-recent__header a:focus,
.vibe-site--inner
.vibe-sidebar-recent__header a:focus-visible,
.vibe-sidebar-recent__header a:hover,
.vibe-sidebar-recent__header a:focus,
.vibe-sidebar-recent__header a:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    outline: 0;
    box-shadow: none;
}

.vibe-site--inner
.vibe-sidebar-recent__header a:hover span,
.vibe-site--inner
.vibe-sidebar-recent__header a:focus span,
.vibe-sidebar-recent__header a:hover span,
.vibe-sidebar-recent__header a:focus span {
    color: var(--vibe-text-primary);
}

.vibe-site--inner
.vibe-sidebar-recent__list,
.vibe-sidebar-recent__list {
    display: grid;
    gap: 6px;
}

.vibe-site--inner
.vibe-sidebar-recent__track,
.vibe-sidebar-recent__track {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    min-height: 0;
    gap: 10px;
    padding: 8px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-site--inner
.vibe-sidebar-recent__track:last-child,
.vibe-sidebar-recent__track:last-child {
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-site--inner
.vibe-sidebar-recent__artwork,
.vibe-sidebar-recent__artwork {
    width: 46px;
    height: 46px;
    border-radius: 3px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner
.vibe-sidebar-recent__copy span,
.vibe-sidebar-recent__copy span {
    margin-top: 3px;
}

.vibe-site--inner
.vibe-sidebar-recent__time,
.vibe-sidebar-recent__time {
    padding-left: 6px;
}

/* Responsive */

@media (max-width: 980px) {
    .vibe-site--inner
    .vibe-sidebar-now__body,
    .vibe-sidebar-now__body {
        grid-template-columns: 72px minmax(0, 1fr);
    }

    .vibe-site--inner
    .vibe-sidebar-now__artwork,
    .vibe-sidebar-now__artwork {
        width: 72px;
        height: 72px;
    }
}

@media (max-width: 768px) {
    .vibe-site--inner
    .vibe-sidebar-tracks,
    .vibe-sidebar-tracks {
        margin-bottom: 14px;
    }

    .vibe-site--inner
    .vibe-sidebar-now,
    .vibe-sidebar-now {
        padding: 12px;
    }

    .vibe-site--inner
    .vibe-sidebar-recent,
    .vibe-sidebar-recent {
        padding: 10px 12px 12px;
    }

    .vibe-site--inner
    .vibe-sidebar-recent__track,
    .vibe-sidebar-recent__track {
        grid-template-columns: 44px minmax(0, 1fr) auto;
    }

    .vibe-site--inner
    .vibe-sidebar-recent__artwork,
    .vibe-sidebar-recent__artwork {
        width: 44px;
        height: 44px;
    }
}

/* =========================================================
   VIBE — HOMEPAGE EVENTS 2026 REDESIGN
   Layout / surfaces only — typography pass comes later
   ========================================================= */

.vibe-homepage
.vibe-events {
    margin-top: 0;
}

/* Heading */

.vibe-homepage
.vibe-events__header {
    margin-bottom: 12px;
}

.vibe-homepage
.vibe-events__view-all {
    min-height: 30px;
    padding: 0 9px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
}

.vibe-homepage
.vibe-events__view-all:hover,
.vibe-homepage
.vibe-events__view-all:focus,
.vibe-homepage
.vibe-events__view-all:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    outline: 0;
    box-shadow: none;
}

/* Card grid */

.vibe-homepage
.vibe-events__grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
}

.vibe-homepage
.vibe-event {
    display: flex;
    overflow: hidden;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

/* Full event artwork */

.vibe-homepage
.vibe-event__image {
    display: flex;
    overflow: hidden;
    width: 100%;
    min-height: 0;
    aspect-ratio: 16 / 9;
    align-items: center;
    justify-content: center;
    background: var(--vibe-bg-card-raised);
}

.vibe-homepage
.vibe-event__image img,
.vibe-homepage
.vibe-event__image-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.vibe-homepage
.vibe-event__image img {
    object-fit: contain;
    object-position: center;
    transform: none;
}

.vibe-homepage
.vibe-event:hover
.vibe-event__image img,
.vibe-homepage
.vibe-event__image:hover img,
.vibe-homepage
.vibe-event__image:focus-visible img {
    transform: none;
}

/* Card body */

.vibe-homepage
.vibe-event__content {
    display: flex;
    min-width: 0;
    padding: 13px 14px 9px;
    flex: 1 1 auto;
    flex-direction: column;
}

.vibe-homepage
.vibe-event__badge {
    width: fit-content;
}

.vibe-homepage
.vibe-event__content h3 {
    margin-bottom: 8px;
}

.vibe-homepage
.vibe-event__meta {
    display: grid;
    gap: 5px;
    margin-top: auto;
}

.vibe-homepage
.vibe-event__meta-item {
    gap: 6px;
}

/* Compact CTA instead of full pink footer */

.vibe-homepage
.vibe-event__cta {
    display: inline-flex;
    width: fit-content;
    min-height: 34px;
    margin: 3px 14px 14px;
    padding: 0 13px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid var(--vibe-brand-primary-hover);
    border-radius: 3px;
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text);
    box-shadow: none;
}

.vibe-homepage
.vibe-event__cta:hover,
.vibe-homepage
.vibe-event__cta:focus,
.vibe-homepage
.vibe-event__cta:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text);
    outline: 0;
    box-shadow: none;
}

.vibe-homepage
.vibe-event__cta:hover span,
.vibe-homepage
.vibe-event__cta:focus span,
.vibe-homepage
.vibe-event__cta:focus-visible span {
    color: var(--vibe-button-text);
    transform: none;
}

/* Tablet */

@media (max-width: 1050px) {
    .vibe-homepage
    .vibe-events__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */

@media (max-width: 768px) {
    .vibe-homepage
    .vibe-events__grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .vibe-homepage
    .vibe-event__content {
        padding: 12px 12px 8px;
    }

    .vibe-homepage
    .vibe-event__cta {
        margin: 3px 12px 12px;
    }
}

/* =========================================================
   VIBE — HOMEPAGE EVENTS VIEW ALL ARROW HOVER FIX
   ========================================================= */

.vibe-site--inner
.vibe-events__view-all,
.vibe-site--inner
.vibe-events__view-all:visited {
    color: var(--vibe-text-white-a78);
}

.vibe-site--inner
.vibe-events__view-all-icon,
.vibe-site--inner
.vibe-events__view-all svg {
    color: currentColor;
    flex-shrink: 0;
}

.vibe-site--inner
.vibe-events__view-all svg path {
    stroke: currentColor !important;
}

.vibe-site--inner
.vibe-events__view-all:hover,
.vibe-site--inner
.vibe-events__view-all:focus,
.vibe-site--inner
.vibe-events__view-all:focus-visible {
    color: var(--vibe-text-primary) !important;
}

.vibe-site--inner
.vibe-events__view-all:hover .vibe-events__view-all-icon,
.vibe-site--inner
.vibe-events__view-all:focus .vibe-events__view-all-icon,
.vibe-site--inner
.vibe-events__view-all:focus-visible .vibe-events__view-all-icon,
.vibe-site--inner
.vibe-events__view-all:hover svg,
.vibe-site--inner
.vibe-events__view-all:focus svg,
.vibe-site--inner
.vibe-events__view-all:focus-visible svg,
.vibe-site--inner
.vibe-events__view-all:hover svg path,
.vibe-site--inner
.vibe-events__view-all:focus svg path,
.vibe-site--inner
.vibe-events__view-all:focus-visible svg path {
    color: var(--vibe-text-primary) !important;
    stroke: var(--vibe-text-primary) !important;
    opacity: 1 !important;
}

/* =========================================================
   VIBE — HOMEPAGE EVENTS VIEW ALL ARROW SELECTOR FIX
   ========================================================= */

.vibe-homepage
.vibe-events__view-all-icon,
.vibe-homepage
.vibe-events__view-all svg {
    color: var(--vibe-primary);
    flex: 0 0 auto;
    opacity: 1 !important;
}

.vibe-homepage
.vibe-events__view-all svg path {
    stroke: currentColor !important;
}

.vibe-homepage
.vibe-events__view-all:hover,
.vibe-homepage
.vibe-events__view-all:focus,
.vibe-homepage
.vibe-events__view-all:focus-visible {
    color: var(--vibe-text-primary) !important;
}

.vibe-homepage
.vibe-events__view-all:hover .vibe-events__view-all-icon,
.vibe-homepage
.vibe-events__view-all:focus .vibe-events__view-all-icon,
.vibe-homepage
.vibe-events__view-all:focus-visible .vibe-events__view-all-icon,
.vibe-homepage
.vibe-events__view-all:hover svg,
.vibe-homepage
.vibe-events__view-all:focus svg,
.vibe-homepage
.vibe-events__view-all:focus-visible svg {
    color: var(--vibe-text-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
    transform: none !important;
}

.vibe-homepage
.vibe-events__view-all:hover svg path,
.vibe-homepage
.vibe-events__view-all:focus svg path,
.vibe-homepage
.vibe-events__view-all:focus-visible svg path {
    stroke: var(--vibe-text-primary) !important;
    opacity: 1 !important;
}

/* =========================================================
   VIBE — HOMEPAGE NEWS 2026 REDESIGN
   Layout / surfaces only — typography pass comes later
   ========================================================= */

.vibe-homepage
.vibe-news-blogs {
    margin-top: 0;
}

/* Header */

.vibe-homepage
.vibe-news-blogs__header {
    margin-bottom: 12px;
}

.vibe-homepage
.vibe-news-blogs__view-all {
    display: inline-flex;
    min-height: 30px;
    padding: 0 9px;
    gap: 6px;
    align-items: center;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-white-a72);
    text-decoration: none;
}

.vibe-homepage
.vibe-news-blogs__view-all-icon,
.vibe-homepage
.vibe-news-blogs__view-all svg {
    flex: 0 0 auto;
    color: var(--vibe-primary);
    opacity: 1;
}

.vibe-homepage
.vibe-news-blogs__view-all svg path {
    stroke: currentColor !important;
}

.vibe-homepage
.vibe-news-blogs__view-all:hover,
.vibe-homepage
.vibe-news-blogs__view-all:focus,
.vibe-homepage
.vibe-news-blogs__view-all:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary) !important;
    outline: 0;
    box-shadow: none;
}

.vibe-homepage
.vibe-news-blogs__view-all:hover svg,
.vibe-homepage
.vibe-news-blogs__view-all:focus svg,
.vibe-homepage
.vibe-news-blogs__view-all:focus-visible svg,
.vibe-homepage
.vibe-news-blogs__view-all:hover .vibe-news-blogs__view-all-icon,
.vibe-homepage
.vibe-news-blogs__view-all:focus .vibe-news-blogs__view-all-icon,
.vibe-homepage
.vibe-news-blogs__view-all:focus-visible .vibe-news-blogs__view-all-icon {
    color: var(--vibe-text-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Grid */

.vibe-homepage
.vibe-news-blogs__grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
}

/* Card */

.vibe-homepage
.vibe-news-card {
    overflow: hidden;
    min-width: 0;
    height: 100%;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card);
}

.vibe-homepage
.vibe-news-card__link {
    position: relative;
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

/* Image */

.vibe-homepage
.vibe-news-card__image,
.vibe-homepage
.vibe-news-card__image-placeholder {
    position: relative;
    inset: auto;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    border: 0;
    border-radius: 0;
    background: var(--vibe-bg-card-raised);
}

.vibe-homepage
.vibe-news-card__image {
    object-fit: cover;
    object-position: center;
    transform: none;
}

.vibe-homepage
.vibe-news-card__link:hover
.vibe-news-card__image,
.vibe-homepage
.vibe-news-card__link:focus-visible
.vibe-news-card__image {
    transform: none;
}

/* Remove old image-overlay treatment */

.vibe-homepage
.vibe-news-card__shade {
    display: none;
}

/* Category becomes part of card body */

.vibe-homepage
.vibe-news-card__category {
    position: static;
    display: block;
    width: fit-content;
    margin: 12px 13px 0;
    padding: 0;
    background: transparent;
    color: var(--vibe-primary);
}

/* Content panel */

.vibe-homepage
.vibe-news-card__content {
    position: static;
    inset: auto;
    display: flex;
    min-width: 0;
    padding: 9px 13px 13px;
    flex: 1 1 auto;
    flex-direction: column;
    background: var(--vibe-bg-card);
}

.vibe-homepage
.vibe-news-card__title {
    color: var(--vibe-text-primary);
}

.vibe-homepage
.vibe-news-card__summary {
    margin-top: 6px;
    color: var(--vibe-text-white-a58);
}

.vibe-homepage
.vibe-news-card__meta {
    margin-top: auto;
    padding-top: 10px;
    color: var(--vibe-text-white-a55);
}

.vibe-homepage
.vibe-news-card__meta-icon {
    color: var(--vibe-primary);
}

/* Hover */

.vibe-homepage
.vibe-news-card__link:hover,
.vibe-homepage
.vibe-news-card__link:focus,
.vibe-homepage
.vibe-news-card__link:focus-visible {
    outline: 0;
    box-shadow: none;
}

.vibe-homepage
.vibe-news-card__link:hover
.vibe-news-card__title,
.vibe-homepage
.vibe-news-card__link:focus-visible
.vibe-news-card__title {
    color: var(--vibe-primary);
}

/* Tablet */

@media (max-width: 1050px) {
    .vibe-homepage
    .vibe-news-blogs__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */

@media (max-width: 768px) {
    .vibe-homepage
    .vibe-news-blogs__grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .vibe-homepage
    .vibe-news-card__category {
        margin: 10px 11px 0;
    }

    .vibe-homepage
    .vibe-news-card__content {
        padding: 8px 11px 11px;
    }
}

/* =========================================================
   VIBE — HOMEPAGE LISTEN AGAIN 2026 REDESIGN V2
   Match newer Events / News card system
   Typography pass comes later
   ========================================================= */

.vibe-homepage
.vibe-listen-again {
    margin-top: 0;
}

/* Header */

.vibe-homepage
.vibe-listen-again__header {
    margin-bottom: 12px;
}

.vibe-homepage
.vibe-listen-again__view-all {
    display: inline-flex;
    min-height: 30px;
    padding: 0 9px;
    gap: 6px;
    align-items: center;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-white-a72);
    text-decoration: none;
    box-shadow: none;
}

.vibe-homepage
.vibe-listen-again__view-all svg {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    opacity: 1;
}

.vibe-homepage
.vibe-listen-again__view-all:hover,
.vibe-homepage
.vibe-listen-again__view-all:focus,
.vibe-homepage
.vibe-listen-again__view-all:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary) !important;
    outline: 0;
    box-shadow: none;
}

.vibe-homepage
.vibe-listen-again__view-all:hover svg,
.vibe-homepage
.vibe-listen-again__view-all:focus svg,
.vibe-homepage
.vibe-listen-again__view-all:focus-visible svg {
    stroke: var(--vibe-text-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Four card layout */

.vibe-homepage
.vibe-listen-again__grid,
.vibe-homepage
.vibe-listen-again--2 .vibe-listen-again__grid,
.vibe-homepage
.vibe-listen-again--3 .vibe-listen-again__grid,
.vibe-homepage
.vibe-listen-again--4 .vibe-listen-again__grid,
.vibe-homepage
.vibe-listen-again--5 .vibe-listen-again__grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
}

/* One clean card surface */

.vibe-homepage
.vibe-listen-again__card {
    display: flex;
    overflow: hidden;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card) !important;
    box-shadow: none;
}

/* Artwork */

.vibe-homepage
.vibe-listen-again__artwork {
    position: relative;
    display: block;
    overflow: hidden;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    background: var(--vibe-bg-card-raised);
}

.vibe-homepage
.vibe-listen-again__artwork img,
.vibe-homepage
.vibe-listen-again__artwork-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.vibe-homepage
.vibe-listen-again__artwork img {
    object-fit: cover;
    object-position: center;
    transform: none !important;
}

.vibe-homepage
.vibe-listen-again__card:hover
.vibe-listen-again__artwork img,
.vibe-homepage
.vibe-listen-again__artwork:hover img,
.vibe-homepage
.vibe-listen-again__artwork:focus-visible img {
    transform: none !important;
}

/* Latest badge */

.vibe-homepage
.vibe-listen-again__latest {
    top: 10px;
    left: 10px;
    border-radius: 3px;
    box-shadow: none;
}

/* Single continuous card body */

.vibe-homepage
.vibe-listen-again__content,
.vibe-homepage
.vibe-listen-again--5
.vibe-listen-again__content {
    display: flex;
    min-width: 0;
    padding: 13px 14px 8px;
    flex: 1 1 auto;
    flex-direction: column;
    background: transparent !important;
}

.vibe-homepage
.vibe-listen-again__show {
    margin-top: 5px;
}

.vibe-homepage
.vibe-listen-again__meta,
.vibe-homepage
.vibe-listen-again--5
.vibe-listen-again__meta {
    margin-top: auto;
    padding-top: 12px;
    background: transparent !important;
}

/* Compact button inside same card */

.vibe-homepage
.vibe-listen-again__listen,
.vibe-homepage
.vibe-listen-again--5
.vibe-listen-again__listen {
    display: inline-flex;
    width: fit-content !important;
    min-width: 0;
    min-height: 34px;
    margin: 3px 14px 14px;
    padding: 0 13px !important;
    gap: 7px;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    background: var(--vibe-primary) !important;
    color: var(--vibe-text-primary) !important;
    box-shadow: none;
}

.vibe-homepage
.vibe-listen-again__listen svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    opacity: 1;
}

.vibe-homepage
.vibe-listen-again__listen:hover,
.vibe-homepage
.vibe-listen-again__listen:focus,
.vibe-homepage
.vibe-listen-again__listen:focus-visible {
    border-color: var(--vibe-border-white);
    background: var(--vibe-primary) !important;
    color: var(--vibe-text-primary) !important;
    outline: 0;
    box-shadow: none;
}

.vibe-homepage
.vibe-listen-again__listen:hover svg,
.vibe-homepage
.vibe-listen-again__listen:focus svg,
.vibe-homepage
.vibe-listen-again__listen:focus-visible svg {
    stroke: var(--vibe-text-primary) !important;
    opacity: 1 !important;
}

/* Tablet */

@media (max-width: 1100px) {
    .vibe-homepage
    .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--2 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--3 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--4 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--5 .vibe-listen-again__grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

/* Mobile */

@media (max-width: 768px) {
    .vibe-homepage
    .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--2 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--3 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--4 .vibe-listen-again__grid,
    .vibe-homepage
    .vibe-listen-again--5 .vibe-listen-again__grid {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .vibe-homepage
    .vibe-listen-again__content {
        padding: 12px 12px 8px;
    }

    .vibe-homepage
    .vibe-listen-again__listen {
        margin: 3px 12px 12px;
    }
}

/* =========================================================
   VIBE — SHARED SECTION HEADER
   Standard header for top-level Vibe index pages
   ========================================================= */

.vibe-section-header {
    width: 100%;
    margin: 0 0 15px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-section-header__eyebrow {
    display: block;
    margin: 0 0 7px;
    color: var(--vibe-primary);
    font-size: 10px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.vibe-section-header h1 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-size: clamp(30px, 3vw, 44px);
    line-height: .98;
    font-weight: 950;
    letter-spacing: -1.2px;
}

.vibe-section-header p {
    max-width: 720px;
    margin: 8px 0 0;
    color: var(--vibe-text-white-a72);
    font-size: 13px;
    line-height: 1.5;
    font-weight: 550;
}

@media (max-width: 767px) {
    .vibe-section-header {
        margin-bottom: 13px;
        padding-bottom: 12px;
    }

    .vibe-section-header__eyebrow {
        margin-bottom: 6px;
    }

    .vibe-section-header h1 {
        font-size: 31px;
        letter-spacing: -.8px;
    }

    .vibe-section-header p {
        margin-top: 7px;
        font-size: 12px;
        line-height: 1.5;
    }
}

/* VIBE SIDEBAR MODULE SYSTEM 2026
   Compact shared presentation for Apps, Weather and Poll only.
   ------------------------------------------------------------ */

.vibe-sidebar-content-block--apps,
.vibe-sidebar-content-block--weather,
.vibe-sidebar-content-block--poll {
    position: relative;
    overflow: hidden;
    margin: 0 0 18px;
    padding: 0;
    border: 1px solid var(--vibe-border-soft);
    border-radius: 4px;
    background: var(--vibe-bg-panel);
    color: var(--vibe-text-primary);
    box-shadow: none;
}

.vibe-sidebar-content-block--apps::before,
.vibe-sidebar-content-block--weather::before,
.vibe-sidebar-content-block--poll::before {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    width: 38px;
    height: 2px;
    background: var(--vibe-primary);
    pointer-events: none;
}

.vibe-sidebar-content-block--apps .vibe-sidebar-content-block__body,
.vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body {
    padding: 18px;
    color: var(--vibe-text-primary);
}

/* Listen on the Go */

/* VIBE DOWNLOAD APP PROMO — WEATHER FAMILY 2026
   Heading + Text + Buttons only.
   Store Buttons Only remains independent.
   -------------------------------------------------------- */

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo {
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    box-shadow:
        inset 0 1px 0 var(--vibe-overlay-white-a025),
        inset 0 0 30px var(--vibe-brand-primary-hover-a025);
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-sidebar-apps__body {
    padding: 17px 18px 18px;
}

.vibe-app-promo {
    min-width: 0;
}

.vibe-app-promo__masthead {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-app-promo__brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
    color: var(--vibe-primary);
}

.vibe-app-promo__brand svg {
    width: 19px;
    height: 21px;
    flex: 0 0 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-app-promo__brand strong {
    color: var(--vibe-primary) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.vibe-app-promo__strapline {
    overflow: hidden;
    color: var(--vibe-text-white-a56);
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-app-promo__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 18px;
    align-items: center;
    min-width: 0;
    padding-top: 15px;
}

.vibe-app-promo__content {
    min-width: 0;
}

.vibe-app-promo__title {
    margin: 0;
    color: var(--vibe-text-primary) !important;
    font-size: 28px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em;
}

.vibe-app-promo__text {
    max-width: 32em;
    margin: 8px 0 0;
    color: var(--vibe-text-white-a64) !important;
    font-size: 12px;
    line-height: 1.5;
    font-weight: 600;
}

.vibe-app-promo__badges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: min(100%, 286px);
    margin-top: 14px;
}

.vibe-app-promo__badge-link {
    display: flex;
    width: 100%;
    min-width: 0;
    aspect-ratio: 3.15 / 1;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid var(--vibe-border-white-a34);
    border-radius: 4px;
    background: var(--vibe-black);
    text-decoration: none;
}

.vibe-app-promo__badge-link img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    margin: 0;
    object-fit: fill;
}

.vibe-app-promo__visual {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 164px;
    place-items: center;
    overflow: hidden;
}

.vibe-app-promo__signal {
    position: absolute;
    right: 2px;
    bottom: 20px;
    display: flex;
    height: 54px;
    gap: 5px;
    align-items: end;
    opacity: .22;
}

.vibe-app-promo__signal span {
    display: block;
    width: 4px;
    border-radius: 2px 2px 0 0;
    background: var(--vibe-primary);
}

.vibe-app-promo__signal span:nth-child(1) {
    height: 18px;
}

.vibe-app-promo__signal span:nth-child(2) {
    height: 31px;
}

.vibe-app-promo__signal span:nth-child(3) {
    height: 46px;
}

.vibe-app-promo__signal span:nth-child(4) {
    height: 35px;
}

.vibe-app-promo__signal span:nth-child(5) {
    height: 23px;
}

.vibe-app-promo__phone {
    position: relative;
    z-index: 1;
    width: 88px;
    height: 158px;
    padding: 7px;
    border: 1px solid var(--vibe-border-white-a22);
    border-radius: 18px;
    background: var(--vibe-bg-panel);
    box-shadow:
        inset 0 0 0 2px var(--vibe-overlay-white-a035),
        0 8px 18px var(--vibe-overlay-black-a12);
}

.vibe-app-promo__speaker {
    position: absolute;
    top: 7px;
    left: 50%;
    width: 22px;
    height: 3px;
    border-radius: 2px;
    background: var(--vibe-overlay-white-a18);
    transform: translateX(-50%);
}

.vibe-app-promo__screen {
    display: flex;
    width: 100%;
    height: 100%;
    padding: 20px 8px 10px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    border-radius: 12px;
    background: var(--vibe-bg-card);
    text-align: center;
}

.vibe-app-promo__screen img {
    display: block;
    width: auto;
    height: auto;
    max-width: 58px;
    max-height: 40px;
    object-fit: contain;
}

.vibe-app-promo__screen > strong {
    color: var(--vibe-text-primary);
    font-size: 15px;
    line-height: 1;
    font-weight: 900;
}

.vibe-app-promo__live {
    margin-top: 12px;
    color: var(--vibe-primary);
    font-size: 8px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.vibe-app-promo__wave {
    display: flex;
    height: 23px;
    margin-top: 8px;
    gap: 3px;
    align-items: center;
}

.vibe-app-promo__wave span {
    display: block;
    width: 3px;
    border-radius: 2px;
    background: var(--vibe-primary);
}

.vibe-app-promo__wave span:nth-child(1) {
    height: 8px;
}

.vibe-app-promo__wave span:nth-child(2) {
    height: 15px;
}

.vibe-app-promo__wave span:nth-child(3) {
    height: 22px;
}

.vibe-app-promo__wave span:nth-child(4) {
    height: 14px;
}

.vibe-app-promo__wave span:nth-child(5) {
    height: 9px;
}

@media (hover: hover) {
    .vibe-app-promo__badge-link {
        transition: opacity .16s ease;
    }

    .vibe-app-promo__badge-link:hover {
        opacity: .78;
    }
}

@media (max-width: 768px) {
    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-sidebar-apps__body {
        padding: 15px 16px 16px;
    }

    .vibe-app-promo__main {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .vibe-app-promo__title {
        font-size: 26px;
    }

    .vibe-app-promo__visual {
        min-height: 132px;
    }

    .vibe-app-promo__phone {
        width: 76px;
        height: 130px;
        border-radius: 16px;
    }

    .vibe-app-promo__signal {
        right: calc(50% - 78px);
        bottom: 14px;
    }
}

@media (max-width: 430px) {
    .vibe-app-promo__strapline {
        display: none;
    }

    .vibe-app-promo__badges {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        width: min(100%, 286px);
    }

    .vibe-app-promo__badge-link {
        width: 100%;
        min-width: 0;
    }
}


.vibe-sidebar-apps__badges {
    min-width: 0;
}

.vibe-sidebar-apps__badges > div {
    width: 100% !important;
    margin-left: 0 !important;
    gap: 8px !important;
}

.vibe-sidebar-apps__badges > div > a {
    height: 54px !important;
    border: 1px solid var(--vibe-border-subtle) !important;
    border-radius: 3px !important;
    background: var(--vibe-bg-panel-alt) !important;
}

.vibe-sidebar-apps__badges > div > a img {
    width: 30px !important;
    height: 30px !important;
}

@media (hover: hover) {
.vibe-sidebar-apps__badge-link:hover {
        opacity: .78;
    }

    .vibe-sidebar-apps__badges > div > a {
        transition:
            background-color .16s ease,
            border-color .16s ease !important;
    }

    .vibe-sidebar-apps__badges > div > a:hover {
        border-color: var(--vibe-brand-primary-hover-a36) !important;
        background: var(--vibe-bg-card-hover) !important;
    }
}

@media (max-width: 768px) {
    .vibe-sidebar-content-block--apps,
    .vibe-sidebar-content-block--weather,
    .vibe-sidebar-content-block--poll {
        margin-bottom: 14px;
    }

    .vibe-sidebar-content-block--apps .vibe-sidebar-content-block__body,
    .vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body {
        padding: 16px;
    }

    .vibe-sidebar-content-block--apps::before,
    .vibe-sidebar-content-block--weather::before,
    .vibe-sidebar-content-block--poll::before {
        left: 16px;
    }
}


/* =========================================================
   VIBE APP DOWNLOAD — CLEAN REBUILD 2026
   Promo layout only.
   ========================================================= */

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo {
    --vibe-primary: var(--vibe-brand-primary-hover);

    overflow: hidden;
    margin: 0 0 18px;
    padding: 0;

    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 4px;

    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-primary);

    box-shadow: none;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo::before {
    display: none;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-sidebar-apps__body {
    padding: 17px 18px 18px;
}

.vibe-app-download {
    min-width: 0;
}


/* Masthead */

.vibe-app-download__masthead {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    padding-bottom: 12px;

    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-app-download__brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;

    color: var(--vibe-primary);
}

.vibe-app-download__brand svg {
    width: 19px;
    height: 21px;
    flex: 0 0 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-app-download__brand strong {
    color: var(--vibe-primary) !important;

    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;

    text-transform: uppercase;
}

.vibe-app-download__strapline {
    overflow: hidden;

    color: var(--vibe-text-white-a56);

    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;

    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}


/* Main layout */

.vibe-app-download__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 88px;
    gap: 16px;
    align-items: center;

    min-width: 0;

    padding-top: 15px;
}

.vibe-app-download__content {
    min-width: 0;
}

.vibe-app-download__title {
    margin: 0;

    color: var(--vibe-text-primary) !important;

    font-size: 28px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.04em;
}

.vibe-app-download__text {
    max-width: 31em;
    margin: 8px 0 0;

    color: var(--vibe-text-white-a64) !important;

    font-size: 12px;
    line-height: 1.5;
    font-weight: 600;
}


/* Store buttons — exact footer button design */

.vibe-app-download__stores {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;

    width: auto;
    max-width: 100%;

    margin-top: 14px;
}

.vibe-app-download__store {
    display: flex;

    width: 142px;
    min-width: 142px;
    height: 48px;
    min-height: 48px;
    flex: 0 0 142px;

    align-items: center;
    gap: 9px;

    padding: 7px 11px;

    border: 1px solid var(--vibe-border-white-a42);
    border-radius: 5px;

    background: var(--vibe-bg-footer-tone-050506);
    color: var(--vibe-text-primary) !important;

    box-sizing: border-box;

    text-decoration: none !important;
}

.vibe-app-download__store:hover,
.vibe-app-download__store:focus-visible {
    border-color: var(--vibe-border-white);
    color: var(--vibe-text-primary) !important;
}

.vibe-app-download__store-icon {
    display: block;

    width: 27px;
    height: 27px;
    flex: 0 0 27px;

    object-fit: contain;

    filter: brightness(0) invert(1);
}

.vibe-app-download__store span {
    display: flex;
    min-width: 0;

    flex-direction: column;
    gap: 1px;
}

.vibe-app-download__store small {
    color: var(--vibe-text-white-a80);

    font-size: 8px;
    font-weight: 500;
    line-height: 1;

    white-space: nowrap;
}

.vibe-app-download__store strong {
    color: var(--vibe-text-primary) !important;

    font-size: 13px;
    font-weight: 800;
    line-height: 1.1;

    white-space: nowrap;
}


/* Keep both identical and side-by-side on mobile */

@media (max-width: 430px) {

    .vibe-app-download__stores {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        width: 100%;
        max-width: 286px;

        gap: 8px;
    }

    .vibe-app-download__store {
        width: 100%;
        min-width: 0;
        height: 46px;
        min-height: 46px;
        flex: none;

        gap: 7px;

        padding: 6px 8px;
    }

    .vibe-app-download__store-icon {
        width: 24px;
        height: 24px;
        flex-basis: 24px;
    }

    .vibe-app-download__store small {
        font-size: 7px;
    }

    .vibe-app-download__store strong {
        font-size: 12px;
    }
}


/* Phone visual */

.vibe-app-download__visual {
    position: relative;

    display: grid;
    min-width: 0;
    min-height: 164px;

    place-items: center;

    overflow: visible;
}

.vibe-app-download__signal {
    position: absolute;
    right: -1px;
    bottom: 20px;

    display: flex;
    height: 54px;
    gap: 4px;

    align-items: end;

    opacity: .22;
}

.vibe-app-download__signal span {
    display: block;

    width: 3px;

    border-radius: 2px 2px 0 0;

    background: var(--vibe-primary);
}

.vibe-app-download__signal span:nth-child(1) { height: 18px; }
.vibe-app-download__signal span:nth-child(2) { height: 31px; }
.vibe-app-download__signal span:nth-child(3) { height: 46px; }
.vibe-app-download__signal span:nth-child(4) { height: 35px; }
.vibe-app-download__signal span:nth-child(5) { height: 23px; }

.vibe-app-download__phone {
    position: relative;
    z-index: 1;

    width: 88px;
    height: 158px;

    padding: 7px;

    border: 1px solid var(--vibe-border-white-a22);
    border-radius: 18px;

    background: var(--vibe-bg-panel);

    box-shadow:
        inset 0 0 0 2px var(--vibe-overlay-white-a035),
        0 8px 18px var(--vibe-overlay-black-a12);
}

.vibe-app-download__speaker {
    position: absolute;
    top: 7px;
    left: 50%;

    width: 22px;
    height: 3px;

    border-radius: 2px;

    background: var(--vibe-overlay-white-a18);

    transform: translateX(-50%);
}

.vibe-app-download__screen {
    display: flex;

    width: 100%;
    height: 100%;

    padding: 20px 8px 10px;

    align-items: center;
    justify-content: center;
    flex-direction: column;

    border-radius: 12px;

    background: var(--vibe-bg-card);

    text-align: center;
}

.vibe-app-download__screen img {
    display: block;

    width: auto;
    height: auto;

    max-width: 58px;
    max-height: 40px;

    object-fit: contain;
}

.vibe-app-download__screen > strong {
    color: var(--vibe-text-primary);

    font-size: 15px;
    line-height: 1;
    font-weight: 900;
}

.vibe-app-download__live {
    margin-top: 12px;

    color: var(--vibe-primary);

    font-size: 8px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;

    text-transform: uppercase;
}

.vibe-app-download__wave {
    display: flex;

    height: 23px;
    margin-top: 8px;
    gap: 3px;

    align-items: center;
}

.vibe-app-download__wave span {
    display: block;

    width: 3px;

    border-radius: 2px;

    background: var(--vibe-primary);
}

.vibe-app-download__wave span:nth-child(1) { height: 8px; }
.vibe-app-download__wave span:nth-child(2) { height: 15px; }
.vibe-app-download__wave span:nth-child(3) { height: 22px; }
.vibe-app-download__wave span:nth-child(4) { height: 14px; }
.vibe-app-download__wave span:nth-child(5) { height: 9px; }


/* Hover */

@media (hover: hover) {
    .vibe-app-download__store {
        transition:
            opacity .16s ease,
            border-color .16s ease;
    }

    .vibe-app-download__store:hover {
        opacity: .82;
        border-color: var(--vibe-brand-primary-hover-a42);
    }
}


/* Responsive */

@media (max-width: 430px) {
    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-sidebar-apps__body {
        padding: 15px 16px 16px;
    }

    .vibe-app-download__strapline {
        display: none;
    }

    .vibe-app-download__layout {
        grid-template-columns: minmax(0, 1fr) 76px;
        gap: 12px;
    }

    .vibe-app-download__title {
        font-size: 25px;
    }

    .vibe-app-download__visual {
        min-height: 136px;
    }

    .vibe-app-download__phone {
        width: 76px;
        height: 132px;

        border-radius: 16px;
    }

    .vibe-app-download__stores {
        gap: 7px;
        max-width: 250px;
    }
}

@media (max-width: 350px) {
    .vibe-app-download__layout {
        grid-template-columns: 1fr;
    }

    .vibe-app-download__visual {
        display: none;
    }

    .vibe-app-download__stores {
        max-width: 270px;
    }
}


/* VIBE SIDEBAR WEATHER 2026 */

.vibe-sidebar-weather__body {
    min-width: 0;
}

.vibe-sidebar-weather__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 15px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--vibe-border-soft);
    color: var(--vibe-text-primary) !important;
    text-decoration: none !important;
}

.vibe-sidebar-weather__header strong {
    color: var(--vibe-text-primary) !important;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: .01em;
}

.vibe-sidebar-weather__header svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: var(--vibe-primary);
    transition: transform .16s ease;
}

.vibe-sidebar-weather__current {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
}

.vibe-sidebar-weather__current-icon {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    color: var(--vibe-primary);
}

.vibe-sidebar-weather__current-icon svg {
    width: 52px;
    height: 52px;
}

.vibe-sidebar-weather__summary {
    min-width: 0;
}

.vibe-sidebar-weather__location {
    display: block;
    margin-bottom: 3px;
    overflow: hidden;
    color: var(--vibe-text-white-a55) !important;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-weather__temperature {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 31px;
    line-height: .95;
    font-weight: 900;
    letter-spacing: -.045em;
}

.vibe-sidebar-weather__condition {
    display: block;
    margin-top: 6px;
    color: var(--vibe-text-white-a78) !important;
    font-size: 11px;
    line-height: 1.25;
    font-weight: 750;
}

.vibe-sidebar-weather__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(42px, auto));
    align-items: stretch;
    border-left: 1px solid var(--vibe-border-soft);
}

.vibe-sidebar-weather__stat {
    min-width: 0;
    padding: 2px 9px;
    text-align: center;
}

.vibe-sidebar-weather__stat + .vibe-sidebar-weather__stat {
    border-left: 1px solid var(--vibe-border-white-a07);
}

.vibe-sidebar-weather__stat span {
    display: block;
    color: var(--vibe-text-white-a42) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-sidebar-weather__stat strong {
    display: block;
    margin-top: 5px;
    color: var(--vibe-text-primary) !important;
    font-size: 15px;
    line-height: 1;
    font-weight: 900;
}

.vibe-sidebar-weather__stat--rain strong {
    color: var(--vibe-primary) !important;
}

/* Five-day forecast */

.vibe-sidebar-weather__forecast {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
}

.vibe-sidebar-weather__day {
    min-width: 0;
    padding: 2px 8px;
    text-align: center;
}

.vibe-sidebar-weather__day + .vibe-sidebar-weather__day {
    border-left: 1px solid var(--vibe-border-white-a07);
}

.vibe-sidebar-weather__day-name {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-white-a72) !important;
    font-size: 10px;
    line-height: 1.1;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.vibe-sidebar-weather__day-icon {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin: 7px auto;
    color: var(--vibe-primary);
}

.vibe-sidebar-weather__day-icon svg {
    width: 27px;
    height: 27px;
}

.vibe-sidebar-weather__day-high {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
}

.vibe-sidebar-weather__day-low {
    display: block;
    margin-top: 3px;
    color: var(--vibe-text-white-a42) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 700;
}

@media (hover: hover) {
    .vibe-sidebar-weather__header:hover {
        color: var(--vibe-text-primary) !important;
    }

    .vibe-sidebar-weather__header:hover svg {
        transform: translateX(3px);
    }
}

@media (max-width: 1180px) and (min-width: 768px) {
    .vibe-sidebar-weather__current {
        grid-template-columns: 50px minmax(0, 1fr);
    }

    .vibe-sidebar-weather__current-icon {
        width: 50px;
        height: 50px;
    }

    .vibe-sidebar-weather__current-icon svg {
        width: 43px;
        height: 43px;
    }

    .vibe-sidebar-weather__stats {
        grid-column: 1 / -1;
        grid-template-columns: repeat(3, 1fr);
        margin-top: 2px;
        padding-top: 11px;
        border-top: 1px solid var(--vibe-border-subtle);
        border-left: 0;
    }
}

@media (max-width: 768px) {
    .vibe-sidebar-weather__header {
        margin-bottom: 13px;
        padding-bottom: 11px;
    }

    .vibe-sidebar-weather__current {
        grid-template-columns: 56px minmax(0, 1fr) auto;
        gap: 11px;
    }

    .vibe-sidebar-weather__current-icon {
        width: 56px;
        height: 56px;
    }

    .vibe-sidebar-weather__current-icon svg {
        width: 47px;
        height: 47px;
    }

    .vibe-sidebar-weather__temperature {
        font-size: 29px;
    }

    .vibe-sidebar-weather__stat {
        padding-right: 7px;
        padding-left: 7px;
    }

    .vibe-sidebar-weather__forecast {
        overflow-x: auto;
        grid-template-columns: repeat(5, minmax(58px, 1fr));
        scrollbar-width: none;
    }

    .vibe-sidebar-weather__forecast::-webkit-scrollbar {
        display: none;
    }

    .vibe-sidebar-weather__day {
        padding-right: 6px;
        padding-left: 6px;
    }
}

/* VIBE SIDEBAR POLL 2026 */

.vibe-sidebar-content-block--poll {
    padding: 18px;
}

.vibe-sidebar-poll__header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 11px;
}

.vibe-sidebar-poll__icon {
    display: grid;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    place-items: center;
    color: var(--vibe-primary);
}

.vibe-sidebar-poll__icon svg {
    width: 18px;
    height: 18px;
}

.vibe-sidebar-poll__header strong {
    color: var(--vibe-primary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.vibe-sidebar-poll__question {
    margin: 0 0 15px;
    color: var(--vibe-text-primary) !important;
    font-size: 17px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: -.012em;
}

.vibe-sidebar-poll__message {
    margin: 0 0 12px;
    padding: 9px 10px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-overlay-white-a035);
    color: var(--vibe-text-white-a70) !important;
    font-size: 11px;
    line-height: 1.4;
    font-weight: 700;
}

.vibe-sidebar-poll__message--error {
    border-color: rgba(237, 21, 132, .28);
    background: rgba(237, 21, 132, .07);
    color: #fff !important;
}

.vibe-sidebar-poll__results {
    display: grid;
    gap: 12px;
}

.vibe-sidebar-poll__result-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
    color: var(--vibe-text-primary);
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
}

.vibe-sidebar-poll__result-meta > span {
    min-width: 0;
}

.vibe-sidebar-poll__result-meta > strong {
    flex: 0 0 auto;
    color: var(--vibe-primary) !important;
    font-size: 10px;
    font-weight: 900;
}

.vibe-sidebar-poll__bar {
    height: 5px;
    overflow: hidden;
    border-radius: 2px;
    background: var(--vibe-overlay-white-a09);
}

.vibe-sidebar-poll__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--vibe-primary);
}

.vibe-sidebar-poll__options {
    display: grid;
    gap: 7px;
}

.vibe-sidebar-poll__options form {
    margin: 0;
}

.vibe-sidebar-poll__option,
.vibe-sidebar-poll__choice {
    width: 100%;
    min-height: 39px;
    border: 1px solid var(--vibe-border-subtle);
    border-radius: 3px;
    background: var(--vibe-bg-sidebar-tone-210932);
    color: var(--vibe-text-primary) !important;
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
}

.vibe-sidebar-poll__option {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 11px;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.vibe-sidebar-poll__option svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-poll__change {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--vibe-border-subtle);
}

.vibe-sidebar-poll__change-label {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-text-faint) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.vibe-sidebar-poll__multiple-form {
    margin: 0;
}

.vibe-sidebar-poll__choices {
    display: grid;
    gap: 7px;
}

.vibe-sidebar-poll__choice {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    cursor: pointer;
}

.vibe-sidebar-poll__choice input[type="checkbox"] {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    margin: 0;
    accent-color: var(--vibe-primary);
}

.vibe-sidebar-poll__submit {
    width: 100%;
    margin-top: 8px;
    padding: 10px 12px;
    border: 0;
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    font-family: inherit;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    cursor: pointer;
}

.vibe-sidebar-poll__closed {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 1px;
    color: var(--vibe-text-white-a54) !important;
    font-size: 11px;
    line-height: 1.4;
    font-weight: 700;
}

.vibe-sidebar-poll__closed svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (hover: hover) {
    .vibe-sidebar-poll__option,
    .vibe-sidebar-poll__choice,
    .vibe-sidebar-poll__submit {
        transition:
            background-color .16s ease,
            border-color .16s ease;
    }

    .vibe-sidebar-poll__option:hover,
    .vibe-sidebar-poll__choice:hover {
        border-color: var(--vibe-brand-primary-hover-a34);
        background: var(--vibe-bg-sidebar-tone-270c39);
    }

    .vibe-sidebar-poll__submit:hover {
        background: var(--vibe-brand-primary-active);
    }
}

@media (max-width: 768px) {
    .vibe-sidebar-content-block--poll {
        padding: 16px;
    }

    .vibe-sidebar-poll__question {
        font-size: 16px;
    }

    .vibe-sidebar-poll__option,
    .vibe-sidebar-poll__choice {
        min-height: 41px;
    }
}

/* VIBE SIDEBAR MATCH PASS 2
   Bring Apps / Weather / Poll into the approved Vibe page language.
   --------------------------------------------------------------- */

.vibe-sidebar-content-block--apps,
.vibe-sidebar-content-block--weather,
.vibe-sidebar-content-block--poll {
    margin-bottom: 18px;
    border: 1px solid var(--vibe-border-white-a14);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    box-shadow: none;
}

.vibe-sidebar-content-block--apps::before,
.vibe-sidebar-content-block--weather::before,
.vibe-sidebar-content-block--poll::before {
    display: none;
}

/* Listen on the Go */

.vibe-sidebar-content-block--apps .vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;
}

.vibe-sidebar-apps__badges > div > a {
    height: 50px !important;
    border: 1px solid var(--vibe-border-medium-strong) !important;
    border-radius: 4px !important;
    background: var(--vibe-bg-sidebar-tone-2a0d46) !important;
}

/* Weather */

.vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;
}

.vibe-sidebar-weather__header {
    min-height: 28px;
    margin-bottom: 14px;
    padding-bottom: 11px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-weather__header strong {
    color: var(--vibe-text-primary) !important;
    font-size: 16px;
    line-height: 1.05;
    font-weight: 900;
    letter-spacing: -.2px;
}

.vibe-sidebar-weather__header svg {
    width: 17px;
    height: 17px;
}

.vibe-sidebar-weather__current {
    gap: 12px;
}

.vibe-sidebar-weather__location {
    color: var(--vibe-text-white-a56) !important;
}

.vibe-sidebar-weather__condition {
    color: var(--vibe-text-white-a70) !important;
}

.vibe-sidebar-weather__stats {
    border-left-color: var(--vibe-border-medium);
}

.vibe-sidebar-weather__stat + .vibe-sidebar-weather__stat,
.vibe-sidebar-weather__day + .vibe-sidebar-weather__day {
    border-left-color: var(--vibe-border-subtle);
}

.vibe-sidebar-weather__day-name {
    color: var(--vibe-text-white-a72) !important;
}

/* Poll */

.vibe-sidebar-content-block--poll {
    padding: 17px 18px 18px;
}

.vibe-sidebar-poll__header {
    margin-bottom: 10px;
}

.vibe-sidebar-poll__header strong {
    font-size: 11px;
    letter-spacing: .12em;
}

.vibe-sidebar-poll__question {
    margin-bottom: 14px;
    color: var(--vibe-text-primary) !important;
    font-size: 17px;
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -.25px;
}

.vibe-sidebar-poll__option,
.vibe-sidebar-poll__choice {
    border-color: var(--vibe-border-white-a11);
    background: var(--vibe-bg-sidebar-tone-2a0d46);
}

.vibe-sidebar-poll__bar {
    background: var(--vibe-overlay-white-a10);
}

.vibe-sidebar-poll__closed {
    padding-top: 2px;
    color: var(--vibe-text-white-a62) !important;
}

/* Keep the three modules visually aligned on mobile too */

@media (max-width: 768px) {
    .vibe-sidebar-content-block--apps,
    .vibe-sidebar-content-block--weather,
    .vibe-sidebar-content-block--poll {
        margin-bottom: 14px;
    }

    .vibe-sidebar-content-block--apps .vibe-sidebar-content-block__body,
    .vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body,
    .vibe-sidebar-content-block--poll {
        padding: 15px 16px 16px;
    }

    .vibe-sidebar-weather__header strong {
        font-size: 17px !important;
    }

    .vibe-sidebar-poll__question {
        font-size: 16px;
    }
}

/* VIBE EVENTS — COMPETITIONS MATCH PASS 2026
   Align Events index with the approved Competitions Vibe language.
   Functionality and Event data remain untouched.
   -------------------------------------------------------------- */

/* Overall rhythm */

.vibe-site--inner .rl-redline-events {
    gap: 12px;
}

/* Featured event — same surface system as Competitions */

.vibe-site--inner .rl-redline-events__featured {
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, .65fr);
    min-height: 0;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    box-shadow: none;
}

.vibe-site--inner .rl-redline-events__featured-image {
    min-height: 280px;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__featured-image img,
.vibe-site--inner
.rl-redline-events__featured-image
.rl-redline-events__placeholder {
    min-height: 280px;
    object-fit: cover;
}

.vibe-site--inner .rl-redline-events__featured-copy {
    padding: 24px 22px;
    align-items: flex-start;
}

.vibe-site--inner .rl-redline-events__eyebrow {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-events__featured-summary {
    margin: 10px 0 0;
    color: var(--vibe-text-white-a62);
}

.vibe-site--inner .rl-redline-events__featured-meta {
    margin-top: 13px;
    color: var(--vibe-text-white-a52);
}

.vibe-site--inner .rl-redline-events__featured-meta svg {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-events__featured-button {
    min-height: 34px;
    margin-top: 14px;
    padding: 0 16px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

/* Filters — retain Event functionality but use Vibe surfaces */

.vibe-site--inner .rl-redline-events__toolbar {
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-sidebar);
    box-shadow: none;
}

.vibe-site--inner .rl-redline-events__categories {
    gap: 5px;
}

.vibe-site--inner .rl-redline-events__categories a {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-bg-card);
    color: var(--vibe-text-white-a72);
}

.vibe-site--inner
.rl-redline-events__categories
a:not(.is-active) {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__categories a:hover,
.vibe-site--inner .rl-redline-events__categories a:focus,
.vibe-site--inner .rl-redline-events__categories a:focus-visible {
    border-color: var(--vibe-brand-action-ff1493-a45);
    color: var(--vibe-text-primary);
    outline: 0;
    box-shadow: none;
}

.vibe-site--inner .rl-redline-events__categories a.is-active {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
}

.vibe-site--inner .rl-redline-events__controls select {
    min-height: 32px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 3px;
    background-color: var(--vibe-bg-card);
    color: var(--vibe-text-primary);
    box-shadow: none;
}

.vibe-site--inner .rl-redline-events__clear {
    min-height: 32px;
}

/* Event cards — same visual family as Competition cards */

.vibe-site--inner .rl-redline-events__grid {
    gap: 12px;
}

.vibe-site--inner .rl-redline-events__card {
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-sidebar);
    box-shadow: none;
}

.vibe-site--inner .rl-redline-events__card-image {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1.62 / 1;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__card-image img,
.vibe-site--inner
.rl-redline-events__card-image
.rl-redline-events__placeholder {
    width: 100%;
    height: 100%;
    min-height: 0;
}

.vibe-site--inner .rl-redline-events__card-image img {
    object-fit: cover;
    object-position: center;
    transform: none;
}

.vibe-site--inner
.rl-redline-events__card:hover
.rl-redline-events__card-image img,
.vibe-site--inner
.rl-redline-events__card-image:hover img,
.vibe-site--inner
.rl-redline-events__card-image:focus-visible img {
    transform: none;
}

.vibe-site--inner .rl-redline-events__card-copy {
    padding: 13px 14px 14px;
}

.vibe-site--inner .rl-redline-events__card-copy > p {
    margin: 8px 0 0;
    color: var(--vibe-text-white-a56);
}

.vibe-site--inner .rl-redline-events__card-meta {
    margin-top: 12px;
    margin-bottom: 10px;
    color: var(--vibe-text-white-a52);
}

.vibe-site--inner .rl-redline-events__card-meta svg {
    color: var(--vibe-primary);
}

.vibe-site--inner .rl-redline-events__card-button {
    width: fit-content;
    min-height: 34px;
    margin-top: auto;
    padding: 0 13px;
    border: 1px solid var(--vibe-primary);
    border-radius: 3px;
    background: var(--vibe-primary);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

/* Submit-event callout */

.vibe-site--inner .rl-redline-events__submit {
    border: 1px solid var(--vibe-border-medium);
    border-radius: 4px;
    background: var(--vibe-bg-sidebar);
    box-shadow: none;
}

/* Responsive alignment */

@media (max-width: 1100px) {
    .vibe-site--inner .rl-redline-events__featured {
        grid-template-columns:
            minmax(0, 1.15fr)
            minmax(260px, .85fr);
    }
}

@media (max-width: 768px) {
    .vibe-site--inner .rl-redline-events__featured {
        grid-template-columns: 1fr;
    }

    .vibe-site--inner .rl-redline-events__featured-image,
    .vibe-site--inner .rl-redline-events__featured-image img,
    .vibe-site--inner
    .rl-redline-events__featured-image
    .rl-redline-events__placeholder {
        min-height: 0;
        height: auto;
    }

    .vibe-site--inner .rl-redline-events__featured-copy {
        padding: 18px 15px;
    }

    .vibe-site--inner .rl-redline-events__toolbar {
        padding: 9px;
    }

    .vibe-site--inner .rl-redline-events__card-copy {
        padding: 12px 12px 13px;
    }
}

/* VIBE EVENTS — NEW VIBE SURFACE CORRECTION 2026
   Remove remaining legacy near-black Redline surfaces.
   ------------------------------------------------ */

/* Featured event remains the stronger Vibe panel */

.vibe-site--inner .rl-redline-events__featured {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-medium);
}

.vibe-site--inner .rl-redline-events__featured-image {
    background: var(--vibe-bg-card);
}

/* Filter toolbar = supporting Vibe section */

.vibe-site--inner .rl-redline-events__toolbar {
    background: var(--vibe-bg-card);
    border-color: var(--vibe-border-medium);
}

/* Inactive filter controls sit one level brighter */

.vibe-site--inner .rl-redline-events__categories a,
.vibe-site--inner
.rl-redline-events__categories
a:not(.is-active),
.vibe-site--inner .rl-redline-events__controls select {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-medium-strong);
}

/* Event cards = same purple card family used across new Vibe */

.vibe-site--inner .rl-redline-events__card {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-medium);
}

.vibe-site--inner .rl-redline-events__card-image,
.vibe-site--inner
.rl-redline-events__card-image
.rl-redline-events__placeholder {
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__card-copy {
    background: transparent;
}

/* Supporting text softened rather than greyed-out */

.vibe-site--inner .rl-redline-events__card-copy > p {
    color: var(--vibe-text-white-a62);
}

.vibe-site--inner .rl-redline-events__card-meta {
    color: var(--vibe-text-white-a58);
}

/* Submit Event = supporting section, not legacy black strip */

.vibe-site--inner .rl-redline-events__submit {
    background: var(--vibe-bg-card);
    border-color: var(--vibe-border-medium);
}

.vibe-site--inner .rl-redline-events__submit-icon {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-medium);
}

/* Empty state follows the same system */

.vibe-site--inner .rl-redline-events__empty {
    background: var(--vibe-bg-card);
    border-color: var(--vibe-border-medium);
}

/* VIBE EVENTS — FEATURED IMAGE + TIME ROW FINAL 2026 */

/* Match the Competition featured-media treatment */

.vibe-site--inner .rl-redline-events__featured-image {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 280px;
    align-self: stretch;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__featured-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
    object-position: center;
}

/* Three clean metadata rows: venue / date / time */

.vibe-site--inner .rl-redline-events__featured-meta {
    display: grid;
    gap: 7px;
}

.vibe-site--inner .rl-redline-events__featured-meta > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.vibe-site--inner .rl-redline-events__featured-meta svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--vibe-primary);
}

@media (max-width: 768px) {
    .vibe-site--inner .rl-redline-events__featured-image {
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .vibe-site--inner .rl-redline-events__featured-image img {
        height: 100%;
        min-height: 0;
    }
}

/* VIBE EVENTS — TOOLBAR TOP ALIGNMENT FIX 2026
   Remove legacy Redline top margin so filtered Events
   align with the top of the sidebar/search column.
   -------------------------------------------------- */

.vibe-site--inner .rl-redline-events__toolbar {
    margin-top: 0;
}

/* VIBE EVENTS — TRUE FULL FEATURED IMAGE FIX 2026
   Let the artwork define the featured row height.
   No crop, no forced media height.
   ------------------------------------------------ */

.vibe-site--inner .rl-redline-events__featured {
    align-items: stretch;
}

.vibe-site--inner .rl-redline-events__featured-image {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    align-self: start;
    aspect-ratio: auto;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__featured-image img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    object-fit: contain;
    object-position: center;
}

.vibe-site--inner .rl-redline-events__featured-copy {
    height: 100%;
    align-self: stretch;
}

@media (max-width: 768px) {
    .vibe-site--inner .rl-redline-events__featured-image,
    .vibe-site--inner .rl-redline-events__featured-image img {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        aspect-ratio: auto;
    }
}

/* VIBE EVENTS — COPY WORKING SINGLE EVENT IMAGE TREATMENT 2026
   Use the exact media behaviour already working on Event detail.
   ---------------------------------------------------------------- */

.vibe-site--inner .rl-redline-events__featured-image {
    display: block;
    align-self: start;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--vibe-bg-card);
}

.vibe-site--inner .rl-redline-events__featured-image img,
.vibe-site--inner
.rl-redline-events__featured-image
.rl-redline-events__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    object-fit: contain;
    object-position: center;
}

.vibe-site--inner .rl-redline-events__featured-copy {
    height: auto;
    align-self: stretch;
}

@media (max-width: 768px) {
    .vibe-site--inner .rl-redline-events__featured-image {
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .vibe-site--inner .rl-redline-events__featured-image img,
    .vibe-site--inner
    .rl-redline-events__featured-image
    .rl-redline-events__placeholder {
        width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: contain;
    }
}

/* VIBE EVENTS — REMOVE LEGACY FEATURED CARD RATIO 2026 */

.vibe-site--inner .rl-redline-events__featured {
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
}

/* VIBE ON AIR HERO BACKGROUND IMAGE 2026
   Use the uploaded Media Library artwork as the background for
   the approved On Air / Now Playing hero without changing layout.
   -------------------------------------------------------------- */

.vibe-header__broadcast {
    background-image:
        url("/storage/stations/1/media-library/wdbOE12MMpkBsxbhHsuiFLgz95FiDYbHpk7HBDu9.png");
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.vibe-header__broadcast::before {
    background:
        linear-gradient(
            90deg,
            var(--vibe-preserve-colour-5bf0095163) 0%,
            var(--vibe-preserve-colour-b22b2fc714) 28%,
            var(--vibe-preserve-colour-ac27be9a6b) 72%,
            var(--vibe-preserve-colour-b54b039a5b) 100%
        ),
        linear-gradient(
            180deg,
            var(--vibe-preserve-colour-8f72a4c5ed) 0%,
            var(--vibe-preserve-colour-882fd83cce) 100%
        );
}

/* VIBE SIDEBAR WEATHER — REFERENCE REDESIGN 2026
   Compact commercial-radio weather card based on supplied reference.
   ------------------------------------------------------------------ */

.vibe-sidebar-content-block--weather {
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    box-shadow: none;
}

.vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;
}

.vibe-sidebar-weather__masthead {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-weather__brand,
.vibe-sidebar-weather__masthead-location {
    min-width: 0;
    display: flex;
    align-items: center;
}

.vibe-sidebar-weather__brand {
    gap: 9px;
    color: var(--vibe-primary);
}

.vibe-sidebar-weather__brand svg {
    width: 26px;
    height: 21px;
    flex: 0 0 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-weather__brand strong {
    color: var(--vibe-primary) !important;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.vibe-sidebar-weather__masthead-location {
    gap: 6px;
    overflow: hidden;
    color: var(--vibe-text-white-a56);
}

.vibe-sidebar-weather__masthead-location svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-weather__masthead-location span {
    overflow: hidden;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-sidebar-weather__hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
    padding: 14px 0 12px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-weather__hero-copy {
    min-width: 0;
}

.vibe-sidebar-weather__today {
    display: flex;
    align-items: baseline;
    gap: 7px;
    min-width: 0;
    color: var(--vibe-text-primary);
}

.vibe-sidebar-weather__today span,
.vibe-sidebar-weather__today strong {
    color: var(--vibe-text-primary) !important;
    font-size: 30px;
    line-height: .98;
    font-weight: 900;
    letter-spacing: -.045em;
}

.vibe-sidebar-weather__condition {
    display: block;
    margin-top: 6px;
    color: var(--vibe-text-white-a64) !important;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
}

.vibe-sidebar-weather__forecast-link {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--vibe-primary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none !important;
    white-space: nowrap;
}

.vibe-sidebar-weather__forecast-link svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .16s ease;
}

.vibe-sidebar-weather__forecast {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    padding-top: 13px;
    overflow: visible;
}

.vibe-sidebar-weather__day {
    min-width: 0;
    padding: 0 6px;
    text-align: center;
}

.vibe-sidebar-weather__day:first-child {
    padding-left: 0;
}

.vibe-sidebar-weather__day:last-child {
    padding-right: 0;
}

.vibe-sidebar-weather__day + .vibe-sidebar-weather__day {
    border-left: 1px solid var(--vibe-border-soft);
}

.vibe-sidebar-weather__day-name {
    display: block;
    overflow: hidden;
    color: var(--vibe-text-white-a64) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .045em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-sidebar-weather__day-icon {
    width: 35px;
    height: 35px;
    display: grid;
    place-items: center;
    margin: 8px auto 7px;
    color: var(--vibe-primary);
}

.vibe-sidebar-weather__day-icon svg {
    width: 32px;
    height: 32px;
}

.vibe-sidebar-weather__day-high {
    display: block;
    color: var(--vibe-text-primary) !important;
    font-size: 16px;
    line-height: 1;
    font-weight: 900;
}

.vibe-sidebar-weather__day-low {
    display: block;
    margin-top: 5px;
    color: var(--vibe-text-white-a42) !important;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
}

.vibe-sidebar-content-block--weather
    .vibe-sidebar-weather__forecast-link:hover svg,
    .vibe-sidebar-content-block--weather
    .vibe-sidebar-weather__forecast-link:focus-visible svg {
        transform: translateX(3px);
    }
}

@media (max-width: 768px) {
    .vibe-sidebar-content-block--weather .vibe-sidebar-content-block__body {
        padding: 15px 16px 16px;
    }

    .vibe-sidebar-weather__hero {
        gap: 10px;
    }

    .vibe-sidebar-weather__today span,
    .vibe-sidebar-weather__today strong {
        font-size: 27px;
    }

    .vibe-sidebar-weather__forecast {
        grid-template-columns: repeat(5, minmax(52px, 1fr));
        overflow-x: auto;
        scrollbar-width: none;
    }

    .vibe-sidebar-weather__forecast::-webkit-scrollbar {
        display: none;
    }
}

/* VIBE SIDEBAR POLL — REFERENCE REDESIGN 2026
   Compact commercial-radio poll treatment based on supplied reference.
   Existing voting and results behaviour remains unchanged.
   ------------------------------------------------------------------ */

.vibe-sidebar-content-block--poll {
    padding: 17px 18px 18px;
    border: 1px solid var(--vibe-border-medium-strong);
    border-radius: 4px;
    background: var(--vibe-bg-card-raised);
    box-shadow: none;
}

.vibe-sidebar-poll__header {
    min-height: 28px;
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 14px;
    padding: 0 0 11px;
    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-poll__icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    color: var(--vibe-primary);
}

.vibe-sidebar-poll__icon svg {
    width: 19px;
    height: 19px;
}

.vibe-sidebar-poll__header strong {
    color: var(--vibe-primary) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.vibe-sidebar-poll__strapline {
    min-width: 0;
    margin-left: auto;
    overflow: hidden;
    color: var(--vibe-text-white-a48) !important;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .10em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-sidebar-poll__question {
    margin: 0 0 14px;
    color: var(--vibe-text-primary) !important;
    font-size: 18px;
    line-height: 1.18;
    font-weight: 900;
    letter-spacing: -.025em;
}

.vibe-sidebar-poll__closed--results {
    margin: 0 0 15px;
}

.vibe-sidebar-poll__closed {
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;
    background: var(--vibe-overlay-white-a025);
    color: var(--vibe-text-white-a58) !important;
    font-size: 11px;
    line-height: 1.3;
    font-weight: 700;
}

.vibe-sidebar-poll__closed svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: var(--vibe-primary);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-poll__results {
    display: grid;
    gap: 12px;
}

.vibe-sidebar-poll__result {
    display: grid;
    grid-template-columns:
        minmax(88px, .36fr)
        minmax(70px, 1fr)
        36px;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.vibe-sidebar-poll__result-meta {
    display: contents;
}

.vibe-sidebar-poll__result-meta > span {
    grid-column: 1;
    min-width: 0;
    overflow: hidden;
    color: var(--vibe-text-primary) !important;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-sidebar-poll__result-meta > strong {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    color: var(--vibe-text-white-a50) !important;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.vibe-sidebar-poll__bar {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 8px;
    margin: 0;
    overflow: hidden;
    border-radius: 999px;
    background: var(--vibe-overlay-white-a09);
}

.vibe-sidebar-poll__bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--vibe-bg-sidebar-tone-b184e0-a46);
}

.vibe-sidebar-poll__result.is-leading .vibe-sidebar-poll__bar > span {
    background: var(--vibe-primary);
}

.vibe-sidebar-poll__result.is-leading .vibe-sidebar-poll__result-meta > strong {
    color: var(--vibe-primary) !important;
}

.vibe-sidebar-poll__message {
    margin-bottom: 13px;
}

.vibe-sidebar-poll__options,
.vibe-sidebar-poll__choices {
    gap: 7px;
}

.vibe-sidebar-poll__option,
.vibe-sidebar-poll__choice {
    min-height: 39px;
    border-color: var(--vibe-border-white-a11);
    border-radius: 3px;
    background: var(--vibe-bg-sidebar-tone-2a0d46);
}

.vibe-sidebar-poll__change {
    margin-top: 14px;
    padding-top: 13px;
    border-top-color: var(--vibe-border-soft);
}

@media (max-width: 768px) {
    .vibe-sidebar-content-block--poll {
        padding: 15px 16px 16px;
    }

    .vibe-sidebar-poll__question {
        font-size: 17px;
    }

    .vibe-sidebar-poll__result {
        grid-template-columns:
            minmax(82px, .34fr)
            minmax(64px, 1fr)
            34px;
        gap: 8px;
    }
}

/* =========================================================
   VIBE — SCHEDULE SIDEBAR WEATHER-FAMILY SHELL FIX
   ========================================================= */

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--schedule {
    overflow: hidden;
    margin: 0 0 18px;
    padding: 0;

    border: 1px solid var(--vibe-border-soft);
    border-top: 1px solid var(--vibe-border-soft);
    border-radius: 4px !important;

    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-primary);

    box-shadow: none;
}

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--schedule
.vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;
    color: var(--vibe-text-primary);
}


/* =========================================================
   VIBE — SCHEDULE SIDEBAR ICON ALIGNMENT FIX
   Match Schedule icon treatment to Weather / Events.
   ========================================================= */

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--schedule
.vibe-schedule-module__heading {
    display: flex;
    align-items: center;
    gap: 9px;
}

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--schedule
.vibe-schedule-module__clock {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--vibe-brand-primary-hover) !important;
    line-height: 1;
}

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--schedule
.vibe-schedule-module__clock svg {
    display: block;
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--vibe-brand-primary-hover) !important;
}



/* =========================================================
   VIBE — SEARCH SIDEBAR WEATHER-FAMILY 2026
   ========================================================= */

.vibe-site--inner
.vibe-page-sidebar
.vibe-sidebar-content-block--search {
    --vibe-primary: var(--vibe-brand-primary-hover);

    position: relative;
    overflow: hidden;

    margin: 0 0 18px !important;
    padding: 0 !important;

    border: 1px solid var(--vibe-border-soft) !important;
    border-top: 1px solid var(--vibe-border-soft) !important;
    border-radius: 4px !important;

    background: var(--vibe-bg-card-raised) !important;
    color: var(--vibe-text-primary);

    box-shadow: none !important;
}

.vibe-sidebar-search__body {
    padding: 17px 18px 18px;
}


/* Masthead */

.vibe-sidebar-search__masthead {
    display: flex;
    min-width: 0;
    align-items: center;

    padding-bottom: 12px;

    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-sidebar-search__brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;

    color: var(--vibe-primary);
}

.vibe-sidebar-search__brand svg {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-search__brand strong {
    color: var(--vibe-primary) !important;

    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .13em;

    text-transform: uppercase;
}


/* Form */

.vibe-sidebar-search__form {
    position: relative;

    padding-top: 14px;
}

.vibe-sidebar-search__label {
    position: absolute;

    width: 1px;
    height: 1px;

    padding: 0;
    margin: -1px;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);
    white-space: nowrap;

    border: 0;
}

.vibe-sidebar-content-block--search
input.vibe-sidebar-search__input {
    display: block !important;

    width: 100% !important;
    height: 52px !important;

    box-sizing: border-box !important;

    padding: 0 58px 0 15px !important;

    border: 1px solid var(--vibe-border-white-a11) !important;
    border-radius: 4px !important;

    background: var(--vibe-bg-card) !important;
    color: var(--vibe-text-primary) !important;

    font: inherit !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 700 !important;

    outline: none !important;

    appearance: none;
    -webkit-appearance: none;

    transition:
        border-color .16s ease,
        background-color .16s ease;
}

.vibe-sidebar-content-block--search
input.vibe-sidebar-search__input::placeholder {
    color: var(--vibe-text-white-a44) !important;
    opacity: 1;
}

.vibe-sidebar-content-block--search
input.vibe-sidebar-search__input:focus {
    border-color: var(--vibe-brand-primary-hover-a72) !important;
    background: var(--vibe-bg-sidebar-tone-290a40) !important;
}


/* Search button */

.vibe-sidebar-content-block--search
button.vibe-sidebar-search__submit {
    position: absolute !important;

    top: calc(50% + 7px) !important;
    right: 7px !important;

    transform: translateY(-50%) !important;

    display: grid !important;
    place-items: center !important;

    width: 38px !important;
    height: 38px !important;

    padding: 0 !important;

    border: 0 !important;
    border-radius: 3px !important;

    background: var(--vibe-primary) !important;
    color: var(--vibe-button-text) !important;

    cursor: pointer !important;
}

.vibe-sidebar-content-block--search
button.vibe-sidebar-search__submit svg {
    width: 18px !important;
    height: 18px !important;
}


/* Hover */

@media (hover:hover) {

    .vibe-sidebar-content-block--search
    button.vibe-sidebar-search__submit {
        transition: background-color .16s ease;
    }

    .vibe-sidebar-content-block--search
    button.vibe-sidebar-search__submit:hover {
        background: var(--vibe-brand-primary-active) !important;
    }
}


/* Mobile */

@media (max-width: 430px) {

    .vibe-sidebar-search__body {
        padding: 15px 16px 16px;
    }
}


/* =========================================================
   VIBE — APP STORE BADGE SIZE / PROPORTION FIX
   ========================================================= */

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;

    width: auto;
    max-width: 100%;
    margin-top: 14px;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badge-link {
    display: flex;

    flex: 0 0 auto;
    width: 138px;
    height: 42px;
    min-width: 0;

    align-items: center;
    justify-content: center;

    overflow: hidden;

    aspect-ratio: auto;

    border: 0;
    border-radius: 4px;

    background: transparent;

    text-decoration: none;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badge-link img {
    display: block;

    width: 100%;
    height: 100%;
    max-width: 100%;

    margin: 0;

    object-fit: contain;
    object-position: center;
}


/* Mobile */

@media (max-width: 430px) {

    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-app-promo__badges {
        gap: 8px;
    }

    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-app-promo__badge-link {
        width: 128px;
        height: 39px;
    }
}


/* =========================================================
   VIBE — APP BADGES FINAL ALIGNMENT
   Equal size + side by side
   ========================================================= */

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badges {
    display: grid !important;
    grid-template-columns: repeat(2, 150px) !important;
    align-items: center !important;
    justify-content: start !important;
    gap: 10px !important;

    width: max-content !important;
    max-width: 100% !important;

    margin-top: 14px !important;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badges
.vibe-app-promo__badge-link {
    display: flex !important;

    width: 150px !important;
    height: 46px !important;
    min-width: 150px !important;
    max-width: 150px !important;

    align-items: center !important;
    justify-content: center !important;

    overflow: hidden !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 4px !important;

    background: var(--vibe-black) !important;

    aspect-ratio: auto !important;
}

.vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
.vibe-app-promo__badges
.vibe-app-promo__badge-link img {
    display: block !important;

    width: 150px !important;
    height: 46px !important;
    max-width: 150px !important;
    max-height: 46px !important;

    margin: 0 !important;

    object-fit: fill !important;
}


/* Keep both badges side-by-side on smaller screens */

@media (max-width: 430px) {

    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-app-promo__badges {
        grid-template-columns: repeat(2, 132px) !important;
        gap: 8px !important;
    }

    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-app-promo__badges
    .vibe-app-promo__badge-link,
    .vibe-sidebar-content-block--apps.vibe-sidebar-apps--promo
    .vibe-app-promo__badges
    .vibe-app-promo__badge-link img {
        width: 132px !important;
        min-width: 132px !important;
        max-width: 132px !important;

        height: 40px !important;
        max-height: 40px !important;
    }
}


/* =========================================================
   VIBE — SIDEBAR APP BUTTON SIZE REDUCTION
   ========================================================= */

.vibe-app-download__store {
    width: 128px !important;
    min-width: 128px !important;
    height: 43px !important;
    min-height: 43px !important;
    flex: 0 0 128px !important;

    gap: 8px !important;
    padding: 6px 10px !important;
}

.vibe-app-download__store-icon {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
}

.vibe-app-download__store small {
    font-size: 7px !important;
}

.vibe-app-download__store strong {
    font-size: 11px !important;
}

@media (max-width: 430px) {
    .vibe-app-download__store {
        height: 41px !important;
        min-height: 41px !important;
        padding: 6px 8px !important;
    }

    .vibe-app-download__store-icon {
        width: 22px !important;
        height: 22px !important;
        flex-basis: 22px !important;
    }

    .vibe-app-download__store strong {
        font-size: 11px !important;
    }
}


/* =========================================================
   VIBE — SIDEBAR APP BUTTON SIZE REDUCTION FINAL
   ========================================================= */

.vibe-app-download__store {
    width: 120px !important;
    min-width: 120px !important;
    height: 40px !important;
    min-height: 40px !important;
    flex: 0 0 120px !important;

    gap: 7px !important;
    padding: 5px 9px !important;
}

.vibe-app-download__store-icon {
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
}

.vibe-app-download__store small {
    font-size: 7px !important;
}

.vibe-app-download__store strong {
    font-size: 10px !important;
    line-height: 1.05 !important;
}

@media (max-width: 430px) {
    .vibe-app-download__store {
        width: 100% !important;
        min-width: 0 !important;
        height: 39px !important;
        min-height: 39px !important;
        flex: none !important;
    }

    .vibe-app-download__store-icon {
        width: 21px !important;
        height: 21px !important;
        flex-basis: 21px !important;
    }

    .vibe-app-download__store strong {
        font-size: 10px !important;
    }
}

/* =========================================================
   VIBE — LISTENER CLUB SIDEBAR
   ========================================================= */

.vibe-sidebar-content-block--listener-club {
    --vibe-primary: var(--vibe-brand-primary-hover);

    position: relative;
    overflow: hidden;

    margin: 0 0 18px !important;
    padding: 0 !important;

    border: 1px solid var(--vibe-border-white-a14) !important;
    border-radius: 4px !important;

    background: var(--vibe-bg-card-raised) !important;
    color: var(--vibe-text-primary) !important;

    box-shadow: none !important;
}

.vibe-sidebar-content-block--listener-club
.vibe-sidebar-content-block__body {
    padding: 0 !important;

    background: transparent !important;
    color: var(--vibe-text-primary) !important;
}


/* Masthead */

.vibe-sidebar-listener-club__header {
    display: flex;

    min-width: 0;

    align-items: center;
    gap: 10px;

    margin: 0;
    padding: 17px 18px 14px;

    border-bottom:
        1px solid
        var(--vibe-border-medium);
}

.vibe-sidebar-listener-club__icon {
    display: flex !important;

    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;

    align-items: center;
    justify-content: center;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--vibe-primary) !important;
    background: transparent !important;
}

.vibe-sidebar-listener-club__icon svg {
    display: block !important;

    width: 22px !important;
    height: 22px !important;

    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.vibe-sidebar-listener-club__header strong {
    display: block;

    margin: 0 !important;

    color: var(--vibe-primary) !important;

    font-family: var(--rl-heading-font);
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .13em !important;

    text-transform: uppercase;
}


/* Main content */

.vibe-sidebar-listener-club__content {
    padding: 18px;
}

.vibe-sidebar-listener-club__content h2 {
    max-width: 250px;

    margin: 0 !important;

    color: var(--vibe-text-primary) !important;

    font-family: var(--rl-heading-font);
    font-size: 29px !important;
    font-weight: 900 !important;
    line-height: 1.03 !important;
    letter-spacing: -.035em !important;
}

.vibe-sidebar-listener-club__content p {
    max-width: 260px;

    margin: 12px 0 0 !important;

    color: var(--vibe-text-white-a64) !important;

    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
}


/* Actions */

.vibe-sidebar-listener-club__actions {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 8px;

    margin-top: 18px;
}

.vibe-sidebar-listener-club__actions--promo {
    grid-template-columns: 1fr;
}

.vibe-sidebar-listener-club__button {
    display: inline-flex;

    min-width: 0;
    min-height: 48px;

    align-items: center;
    justify-content: center;
    gap: 9px;

    padding: 0 15px;

    border-radius: 4px;

    font-family: var(--rl-heading-font);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .055em;

    text-align: center;
    text-decoration: none !important;
    text-transform: uppercase;

    box-sizing: border-box;
}

.vibe-sidebar-listener-club__button svg {
    width: 17px !important;
    height: 17px !important;
    flex: 0 0 17px;

    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Join */

.vibe-sidebar-listener-club__button--primary {
    border:
        1px solid
        var(--vibe-brand-primary-hover);

    background:
        var(--vibe-brand-primary-hover);

    color:
        var(--vibe-button-text) !important;

    box-shadow: none;
}


/* Login / logout */

.vibe-sidebar-listener-club__button--secondary {
    min-width: 76px;

    border:
        1px solid
        var(--vibe-border-white-a18);

    background: var(--vibe-bg-card);

    color:
        var(--vibe-text-white-a86) !important;
}


/* Benefits strip */

.vibe-sidebar-listener-club__benefits {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    margin:
        18px
        -18px
        -18px;

    border-top:
        1px solid
        var(--vibe-border-medium);
}

.vibe-sidebar-listener-club__benefit {
    min-width: 0;

    display: flex;
    min-height: 78px;

    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 7px;

    padding: 11px 5px;

    text-align: center;
}

.vibe-sidebar-listener-club__benefit
+ .vibe-sidebar-listener-club__benefit {
    border-left:
        1px solid
        var(--vibe-border-medium);
}

.vibe-sidebar-listener-club__benefit-icon {
    display: grid;

    width: 27px;
    height: 27px;

    place-items: center;

    color: var(--vibe-primary);
}

.vibe-sidebar-listener-club__benefit-icon svg {
    display: block;

    width: 27px;
    height: 27px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-sidebar-listener-club__benefit strong {
    display: block;

    color: var(--vibe-text-white-a86);

    font-size: 8px;
    font-weight: 900;
    line-height: 1.25;
    letter-spacing: .045em;

    text-transform: uppercase;
}


/* Hover */

@media (hover: hover) {
    .vibe-sidebar-listener-club__button {
        transition:
            background-color .16s ease,
            border-color .16s ease,
            color .16s ease;
    }

    .vibe-sidebar-listener-club__button--primary:hover {
        border-color:
            var(--vibe-brand-primary-active-deep);

        background:
            var(--vibe-brand-primary-active-deep);

        color:
            var(--vibe-button-text) !important;
    }
}


/* Mobile */

@media (max-width: 430px) {
    .vibe-sidebar-listener-club__header {
        padding:
            16px
            16px
            13px;
    }

    .vibe-sidebar-listener-club__content {
        padding: 16px;
    }

    .vibe-sidebar-listener-club__content h2 {
        font-size: 27px !important;
    }

    .vibe-sidebar-listener-club__actions {
        grid-template-columns:
            minmax(0, 1fr)
            72px;
    }

    .vibe-sidebar-listener-club__actions--promo {
        grid-template-columns: 1fr;
    }

    .vibe-sidebar-listener-club__benefits {
        margin:
            17px
            -16px
            -16px;
    }

    .vibe-sidebar-listener-club__benefit {
        min-height: 74px;
    }
}

/* =========================================================
   END VIBE — LISTENER CLUB SIDEBAR
   ========================================================= */

/* Listener Club — Login button purple */

.vibe-sidebar-listener-club__button--secondary {
    border-color: var(--vibe-border-white-a14) !important;
    background: var(--vibe-bg-sidebar-tone-3b1a5a) !important;
    color: var(--vibe-button-text) !important;
}

@media (hover: hover) {
    .vibe-sidebar-listener-club__button--secondary:hover {
        border-color: var(--vibe-border-white-a22) !important;
        background: var(--vibe-bg-sidebar-tone-472066) !important;
        color: var(--vibe-button-text) !important;
    }
}


/* Listener Club — Login button exact purple */
.vibe-sidebar-listener-club__button--secondary {
    border-color: var(--vibe-sidebar-secondary) !important;
    background: var(--vibe-sidebar-secondary) !important;
    color: var(--vibe-button-text) !important;
}

@media (hover: hover) {
    .vibe-sidebar-listener-club__button--secondary:hover {
        border-color: var(--vibe-sidebar-secondary-hover) !important;
        background: var(--vibe-sidebar-secondary-hover) !important;
        color: var(--vibe-button-text) !important;
    }
}

/* =========================================================
   VIBE — LISTENER CLUB AUTHENTICATED STATE
   ========================================================= */

.vibe-sidebar-listener-club__logout-form {
    display: block;

    min-width: 76px;

    margin: 0;
    padding: 0;
}

.vibe-sidebar-listener-club__logout-form
.vibe-sidebar-listener-club__button {
    width: 100%;

    margin: 0;

    font: inherit;

    cursor: pointer;
}

/*
 * Keep Login / Logout using the approved dark Vibe purple.
 */
.vibe-sidebar-listener-club__button--secondary {
    border-color: var(--vibe-sidebar-secondary) !important;
    background: var(--vibe-sidebar-secondary) !important;
    color: var(--vibe-button-text) !important;
}

@media (hover: hover) {

    .vibe-sidebar-listener-club__button--secondary:hover {
        border-color: var(--vibe-sidebar-secondary-hover) !important;
        background: var(--vibe-sidebar-secondary-hover) !important;
        color: var(--vibe-button-text) !important;
    }
}



/* =========================================================
   VIBE — LISTENER CLUB LOGOUT TYPOGRAPHY FIX
   Match Login button exactly
   ========================================================= */

.vibe-sidebar-listener-club__logout-form
.vibe-sidebar-listener-club__button--secondary {
    width: 100% !important;
    min-width: 76px !important;
    min-height: 40px !important;

    padding: 0 13px !important;

    font-family: inherit !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .06em !important;

    text-align: center !important;
    text-transform: uppercase !important;

    appearance: none !important;
    -webkit-appearance: none !important;
}


/* =========================================================
   VIBE — ENERGY PINK WEBSITE HEADER / MENU
   ========================================================= */

.vibe-header__top {
    background: var(--vibe-primary, var(--vibe-brand-primary-hover)) !important;
}

/* Main desktop navigation */
.vibe-navigation {
    background: var(--vibe-primary, var(--vibe-brand-primary-hover)) !important;
}

.vibe-navigation__link {
    color: var(--vibe-text-primary) !important;
}

.vibe-navigation__link:hover,
.vibe-navigation__link:focus-visible {
    color: var(--vibe-text-primary) !important;
}

/* Keep menu underline white */
.vibe-navigation__link::after {
    background: var(--vibe-bg-white) !important;
}

/* Dropdown remains clean/readable */
.vibe-navigation__dropdown {
    background: var(--vibe-bg-white) !important;
}

.vibe-navigation__dropdown a {
    color: var(--vibe-text-dark-29292d) !important;
}

.vibe-navigation__dropdown a:hover,
.vibe-navigation__dropdown a:focus-visible {
    background: var(--vibe-bg-header-tone-f8edf4) !important;
    color: var(--vibe-primary, var(--vibe-brand-primary-hover)) !important;
}

/* Mobile/tablet menu */
@media (max-width: 1200px) {
    .vibe-navigation {
        background: var(--vibe-primary, var(--vibe-brand-primary-hover)) !important;
    }
}

/* =========================================================
   VIBE ENERGY 106 FONT ROLE MAPPING — START
   Font-family only. Existing sizes, weights, spacing,
   line heights and text transforms remain untouched.
   ========================================================= */

body.vibe-site,
.vibe-page,
.vibe-site {
    font-family: var(--vibe-font-body);
}

body.vibe-site p,
body.vibe-site .vibe-body-text,
body.vibe-site .vibe-card-text,
body.vibe-site .vibe-module-text,
body.vibe-site .vibe-meta,
body.vibe-site .vibe-muted {
    font-family: var(--vibe-font-body);
}

body.vibe-site h1,
body.vibe-site h2,
body.vibe-site h3,
body.vibe-site h4,
body.vibe-site h5,
body.vibe-site h6,
body.vibe-site .vibe-hero-title,
body.vibe-site .vibe-section-title,
body.vibe-site .vibe-module-title,
body.vibe-site .vibe-show-title,
body.vibe-site .vibe-card-title {
    font-family: var(--vibe-font-heading);
}

body.vibe-site nav a,
body.vibe-site .vibe-navigation a,
body.vibe-site .vibe-navigation__link,
body.vibe-site .vibe-navigation__dropdown a,
body.vibe-site .vibe-menu a,
body.vibe-site .vibe-eyebrow,
body.vibe-site .vibe-label,
body.vibe-site .vibe-section-label,
body.vibe-site .vibe-module-label,
body.vibe-site .vibe-card-label,
body.vibe-site [class*="__eyebrow"],
body.vibe-site [class*="__label"] {
    font-family: var(--vibe-font-subheading);
}

body.vibe-site button,
body.vibe-site input[type="button"],
body.vibe-site input[type="submit"],
body.vibe-site .btn,
body.vibe-site .vibe-button,
body.vibe-site .vibe-cta,
body.vibe-site .vibe-listen-live,
body.vibe-site [class*="__button"],
body.vibe-site [class*="__cta"] {
    font-family: var(--vibe-font-button);
}

/* =========================================================
   VIBE ENERGY 106 FONT ROLE MAPPING — END
   ========================================================= */

/* =========================================================
   VIBE STANDARD PAGE HEADING SYSTEM — 2026

   Reference:
   Meet the Presenters

   Standard landing/index/internal-page heading only.
   Bespoke detail/content heroes remain untouched.
   ========================================================= */

body.vibe-site .vibe-section-header h1,
body.vibe-site .vibe-page-hero h1,
body.vibe-site .vibe-podcasts__header h1 {
    font-family: var(--vibe-font-heading);
    font-size: clamp(32px, 3vw, 48px);
    font-weight: 950;
    line-height: .96;
    letter-spacing: -1.3px;
    text-transform: none;
}

@media (max-width: 720px) {
    body.vibe-site .vibe-section-header h1,
    body.vibe-site .vibe-page-hero h1,
    body.vibe-site .vibe-podcasts__header h1 {
        font-size: 29px;
        letter-spacing: -.8px;
    }
}

/* =========================================================
   END VIBE STANDARD PAGE HEADING SYSTEM — 2026
   ========================================================= */

/* =========================================================
   VIBE ACTIVE NAVIGATION STATE — 2026
   Current page keeps the existing hover underline visible.
   ========================================================= */

.vibe-navigation__link--active::after {
    opacity: 1;
}

/* =========================================================
   END VIBE ACTIVE NAVIGATION STATE — 2026
   ========================================================= */

/* === VIBE ADVERTISING LANDING PAGE CONCEPT 3 START === */

.vibe-site--inner:has(.vibe-ad-c3) .vibe-page-shell {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.vibe-site--inner:has(.vibe-ad-c3) .vibe-page-layout {
    display: block;
    width: 100%;
}

.vibe-site--inner:has(.vibe-ad-c3) .vibe-page-content {
    width: 100%;
    max-width: none;
}

.vibe-site--inner:has(.vibe-ad-c3) .vibe-page-sidebar {
    display: none;
}

.vibe-ad-c3 {
    --ad-pink: var(--vibe-primary, #ec0e86);
    --ad-purple: #31134d;
    --ad-purple-deep: #19082b;
    --ad-ink: #171225;
    --ad-muted: #716b7c;
    --ad-line: #ded9e5;

    width: 100%;
    overflow: hidden;
    background: #ffffff;
    color: var(--ad-ink);
}

.vibe-ad-c3 *,
.vibe-ad-c3 *::before,
.vibe-ad-c3 *::after {
    box-sizing: border-box;
}

.vibe-ad-c3__inner {
    width: min(calc(100% - 48px), 1280px);
    margin: 0 auto;
}

.vibe-ad-c3__hero {
    position: relative;
    min-height: 620px;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 77% 22%,
            rgba(236, 14, 134, .30),
            transparent 29%
        ),
        linear-gradient(
            115deg,
            #13061f 0%,
            #251038 58%,
            #190821 100%
        );
    color: #ffffff;
}

.vibe-ad-c3__hero.has-image {
    background-image:
        linear-gradient(
            90deg,
            rgba(14, 4, 25, .96) 0%,
            rgba(17, 6, 30, .87) 43%,
            rgba(20, 4, 31, .55) 100%
        ),
        var(--vibe-ad-c3-hero);
    background-size: cover;
    background-position: center;
}

.vibe-ad-c3__hero-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, .04),
            rgba(0, 0, 0, .20)
        );
}

.vibe-ad-c3__hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    min-height: 620px;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(370px, .74fr);
    gap: 60px;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}

.vibe-ad-c3__hero-copy {
    max-width: 720px;
}

.vibe-ad-c3__eyebrow {
    display: inline-flex;
    width: fit-content;
    min-height: 27px;
    padding: 6px 10px;
    align-items: center;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.vibe-ad-c3__hero h1 {
    max-width: 780px;
    margin: 19px 0 0;
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: clamp(46px, 5.35vw, 78px);
    font-weight: 900;
    line-height: .96;
    letter-spacing: -.05em;
}

.vibe-ad-c3__lead {
    max-width: 700px;
    margin: 23px 0 0;
    color: rgba(255, 255, 255, .85);
    font-size: 18px;
    line-height: 1.55;
}

.vibe-ad-c3__stats {
    display: flex;
    margin-top: 34px;
    flex-wrap: wrap;
}

.vibe-ad-c3__stat {
    min-width: 145px;
    padding: 0 28px;
    border-left: 1px solid rgba(255, 255, 255, .32);
}

.vibe-ad-c3__stat:first-child {
    padding-left: 0;
    border-left: 0;
}

.vibe-ad-c3__stat strong,
.vibe-ad-c3__stat span {
    display: block;
}

.vibe-ad-c3__stat strong {
    color: var(--ad-pink);
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
}

.vibe-ad-c3__stat span {
    margin-top: 7px;
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.vibe-ad-c3__proposal {
    padding: 27px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 5px;
    background: rgba(28, 8, 46, .90);
    box-shadow: 0 24px 50px rgba(0, 0, 0, .20);
    backdrop-filter: blur(10px);
}

.vibe-ad-c3__proposal h2 {
    margin: 0;
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 24px;
    font-weight: 900;
    line-height: 1.1;
}

.vibe-ad-c3__proposal > p {
    margin: 10px 0 0;
    color: rgba(255, 255, 255, .73);
    font-size: 13px;
    line-height: 1.5;
}

.vibe-ad-c3__form {
    display: grid;
    margin-top: 22px;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 13px 12px;
}

.vibe-ad-c3__field label {
    display: block;
    margin-bottom: 6px;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
}

.vibe-ad-c3__field input {
    width: 100%;
    height: 42px;
    padding: 0 11px;
    border: 1px solid rgba(255, 255, 255, .23);
    border-radius: 3px;
    outline: none;
    background: #ffffff;
    color: #21172c;
    font: inherit;
    font-size: 12px;
}

.vibe-ad-c3__field input:focus {
    border-color: var(--ad-pink);
    box-shadow: 0 0 0 2px rgba(236, 14, 134, .18);
}

.vibe-ad-c3__submit {
    grid-column: 1 / -1;
    display: flex;
    min-height: 48px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #ffffff;
    cursor: pointer;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 13px;
    font-weight: 900;
}

.vibe-ad-c3__submit:hover,
.vibe-ad-c3__button:hover,
.vibe-ad-c3__package-button:hover {
    transform: translateY(-1px);
}

.vibe-ad-c3__privacy {
    grid-column: 1 / -1;
    margin: 0;
    color: rgba(255, 255, 255, .55);
    font-size: 10px;
    line-height: 1.45;
    text-align: center;
}

.vibe-ad-c3__honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.vibe-ad-c3__form-message {
    margin-top: 16px;
    padding: 11px 12px;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1.5;
}

.vibe-ad-c3__form-message.is-success {
    border: 1px solid rgba(83, 210, 140, .35);
    background: rgba(83, 210, 140, .11);
    color: #e8fff2;
}

.vibe-ad-c3__form-message.is-error {
    border: 1px solid rgba(255, 93, 125, .35);
    background: rgba(255, 93, 125, .11);
    color: #ffe8ed;
}

.vibe-ad-c3__form-message ul {
    margin: 6px 0 0;
    padding-left: 17px;
}

.vibe-ad-c3__why {
    padding: 58px 0 64px;
    background:
        radial-gradient(
            circle at 79% 30%,
            rgba(236, 14, 134, .11),
            transparent 30%
        ),
        #1a092a;
    color: #ffffff;
}

.vibe-ad-c3__why-grid {
    display: grid;
    grid-template-columns:
        minmax(280px, .8fr)
        minmax(0, 1.5fr);
    gap: 64px;
}

.vibe-ad-c3__why-intro h2,
.vibe-ad-c3__section-heading h2,
.vibe-ad-c3__faq-intro h2,
.vibe-ad-c3__methodology-copy h2,
.vibe-ad-c3__final h2 {
    margin: 17px 0 0;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.035em;
}

.vibe-ad-c3__why-intro h2 {
    color: #ffffff;
    font-size: clamp(35px, 4vw, 54px);
}

.vibe-ad-c3__why-intro p {
    margin: 20px 0 0;
    color: rgba(255, 255, 255, .72);
    font-size: 15px;
    line-height: 1.7;
}

.vibe-ad-c3__button {
    display: inline-flex;
    min-height: 44px;
    margin-top: 25px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    transition: transform .18s ease;
}

.vibe-ad-c3__benefits {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 30px 34px;
}

.vibe-ad-c3__benefit {
    min-width: 0;
}

.vibe-ad-c3__benefit-icon {
    display: flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(236, 14, 134, .15);
    color: var(--ad-pink);
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 12px;
    font-weight: 900;
}

.vibe-ad-c3__benefit h3 {
    margin: 12px 0 0;
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 16px;
    font-weight: 900;
    line-height: 1.2;
}

.vibe-ad-c3__benefit p {
    margin: 7px 0 0;
    color: rgba(255, 255, 255, .65);
    font-size: 13px;
    line-height: 1.55;
}

.vibe-ad-c3__spotlight {
    padding: 34px 0;
    background:
        linear-gradient(
            110deg,
            #2b103d,
            #150820
        );
    color: #ffffff;
}

.vibe-ad-c3__spotlight-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.6fr)
        minmax(220px, .6fr);
    gap: 45px;
    align-items: center;
}

.vibe-ad-c3__quote {
    position: relative;
    padding-left: 42px;
}

.vibe-ad-c3__quote-mark {
    position: absolute;
    top: -15px;
    left: 0;
    color: var(--ad-pink);
    font-family: Georgia, serif;
    font-size: 68px;
    line-height: 1;
}

.vibe-ad-c3__quote blockquote {
    margin: 0 0 12px;
    color: #ffffff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
}

.vibe-ad-c3__quote strong {
    color: rgba(255, 255, 255, .72);
    font-size: 12px;
}

.vibe-ad-c3__spotlight-result {
    padding-left: 25px;
    border-left: 1px solid rgba(255, 255, 255, .18);
}

.vibe-ad-c3__spotlight-result span {
    color: var(--ad-pink);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-ad-c3__spotlight-result p {
    margin: 8px 0 0;
    color: #ffffff;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.35;
}

.vibe-ad-c3__packages {
    padding: 58px 0 64px;
    background: #ffffff;
}

.vibe-ad-c3__section-heading {
    max-width: 600px;
}

.vibe-ad-c3__section-heading h2 {
    color: var(--ad-ink);
    font-size: clamp(34px, 4vw, 52px);
}

.vibe-ad-c3__section-heading p {
    margin: 13px 0 0;
    color: var(--ad-muted);
    font-size: 14px;
    line-height: 1.65;
}

.vibe-ad-c3__package-grid {
    display: grid;
    margin-top: 32px;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.vibe-ad-c3__package {
    display: flex;
    min-height: 285px;
    padding: 25px;
    flex-direction: column;
    border: 1px solid var(--ad-line);
    border-radius: 5px;
    background: #ffffff;
}

.vibe-ad-c3__package h3 {
    margin: 0;
    color: var(--ad-ink);
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 20px;
    font-weight: 900;
}

.vibe-ad-c3__package ul {
    display: grid;
    margin: 18px 0 25px;
    padding: 0;
    gap: 9px;
    list-style: none;
}

.vibe-ad-c3__package li {
    position: relative;
    padding-left: 21px;
    color: #5d5767;
    font-size: 13px;
    line-height: 1.45;
}

.vibe-ad-c3__package li::before {
    position: absolute;
    top: 0;
    left: 0;
    color: var(--ad-pink);
    content: "✓";
    font-weight: 900;
}

.vibe-ad-c3__package-button {
    display: flex;
    min-height: 43px;
    margin-top: auto;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #ffffff;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    transition: transform .18s ease;
}

.vibe-ad-c3__faq {
    padding: 55px 0;
    background:
        radial-gradient(
            circle at 85% 20%,
            rgba(236, 14, 134, .09),
            transparent 28%
        ),
        #1a092a;
    color: #ffffff;
}

.vibe-ad-c3__faq-grid {
    display: grid;
    grid-template-columns:
        minmax(260px, .65fr)
        minmax(0, 1.35fr);
    gap: 55px;
}

.vibe-ad-c3__faq-intro h2 {
    color: #ffffff;
    font-size: 42px;
}

.vibe-ad-c3__faq-intro p {
    margin: 15px 0 0;
    color: rgba(255, 255, 255, .62);
    font-size: 13px;
    line-height: 1.65;
}

.vibe-ad-c3__faq-list {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 10px;
    align-content: start;
}

.vibe-ad-c3__faq-item {
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 3px;
    background: rgba(255, 255, 255, .025);
}

.vibe-ad-c3__faq-item summary {
    position: relative;
    padding: 14px 42px 14px 15px;
    color: #ffffff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    list-style: none;
}

.vibe-ad-c3__faq-item summary::-webkit-details-marker {
    display: none;
}

.vibe-ad-c3__faq-item summary::after {
    position: absolute;
    top: 50%;
    right: 15px;
    color: var(--ad-pink);
    content: "+";
    font-size: 19px;
    transform: translateY(-50%);
}

.vibe-ad-c3__faq-item[open] summary::after {
    content: "−";
}

.vibe-ad-c3__faq-item > div {
    padding: 0 15px 15px;
    color: rgba(255, 255, 255, .68);
    font-size: 12px;
    line-height: 1.65;
}

.vibe-ad-c3__methodology {
    padding: 36px 0;
    background: #ffffff;
}

.vibe-ad-c3__methodology-grid {
    display: grid;
    grid-template-columns:
        minmax(280px, 1fr)
        minmax(0, 1.4fr);
    gap: 45px;
    align-items: center;
}

.vibe-ad-c3__methodology-copy h2 {
    color: var(--ad-ink);
    font-size: 32px;
}

.vibe-ad-c3__methodology-copy p {
    margin: 12px 0 0;
    color: var(--ad-muted);
    font-size: 12px;
    line-height: 1.65;
}

.vibe-ad-c3__methodology-stats {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}

.vibe-ad-c3__methodology-stats > div {
    padding: 6px 20px;
    border-left: 1px solid var(--ad-line);
}

.vibe-ad-c3__methodology-stats strong,
.vibe-ad-c3__methodology-stats span {
    display: block;
}

.vibe-ad-c3__methodology-stats strong {
    color: var(--ad-pink);
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 27px;
    font-weight: 900;
}

.vibe-ad-c3__methodology-stats span {
    margin-top: 4px;
    color: var(--ad-muted);
    font-size: 10px;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
}

.vibe-ad-c3__final {
    position: relative;
    overflow: hidden;
    padding: 48px 0 52px;
    background:
        linear-gradient(
            120deg,
            #28103e,
            #160720
        );
    color: #ffffff;
    text-align: center;
}

.vibe-ad-c3__final::before,
.vibe-ad-c3__final::after {
    position: absolute;
    bottom: -130px;
    width: 390px;
    height: 260px;
    border: 60px solid rgba(236, 14, 134, .07);
    content: "";
    transform: rotate(34deg);
}

.vibe-ad-c3__final::before {
    left: -180px;
}

.vibe-ad-c3__final::after {
    right: -180px;
}

.vibe-ad-c3__final .vibe-ad-c3__inner {
    position: relative;
    z-index: 2;
}

.vibe-ad-c3__final-kicker {
    display: block;
    color: rgba(255, 255, 255, .58);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .10em;
    text-transform: uppercase;
}

.vibe-ad-c3__final h2 {
    color: #ffffff;
    font-size: clamp(32px, 4vw, 48px);
}

.vibe-ad-c3__final p {
    max-width: 700px;
    margin: 12px auto 0;
    color: rgba(255, 255, 255, .65);
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 1020px) {
    .vibe-ad-c3__hero-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .vibe-ad-c3__proposal {
        max-width: 620px;
    }

    .vibe-ad-c3__why-grid,
    .vibe-ad-c3__faq-grid,
    .vibe-ad-c3__methodology-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-c3__package-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .vibe-ad-c3__inner {
        width: min(calc(100% - 28px), 1280px);
    }

    .vibe-ad-c3__hero-grid {
        min-height: auto;
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .vibe-ad-c3__hero h1 {
        font-size: 44px;
    }

    .vibe-ad-c3__lead {
        font-size: 15px;
    }

    .vibe-ad-c3__stats {
        display: grid;
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .vibe-ad-c3__stat {
        min-width: 0;
        padding: 0 12px;
    }

    .vibe-ad-c3__stat strong {
        font-size: 22px;
    }

    .vibe-ad-c3__proposal {
        padding: 21px 17px;
    }

    .vibe-ad-c3__form {
        grid-template-columns: 1fr;
    }

    .vibe-ad-c3__submit,
    .vibe-ad-c3__privacy {
        grid-column: auto;
    }

    .vibe-ad-c3__why {
        padding: 42px 0;
    }

    .vibe-ad-c3__benefits {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
        gap: 26px 18px;
    }

    .vibe-ad-c3__spotlight-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .vibe-ad-c3__spotlight-result {
        padding: 18px 0 0;
        border-top:
            1px solid rgba(255, 255, 255, .18);
        border-left: 0;
    }

    .vibe-ad-c3__package-grid,
    .vibe-ad-c3__faq-list {
        grid-template-columns: 1fr;
    }

    .vibe-ad-c3__methodology-stats {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .vibe-ad-c3__methodology-stats > div {
        padding: 5px 0 5px 16px;
    }
}

@media (max-width: 520px) {
    .vibe-ad-c3__hero h1 {
        font-size: 38px;
    }

    .vibe-ad-c3__stats {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .vibe-ad-c3__stat {
        padding: 0;
        border-left: 0;
    }

    .vibe-ad-c3__benefits {
        grid-template-columns: 1fr;
    }
}


.vibe-ad-c3__preview-banner {
    position: relative;
    z-index: 100;
    padding: 10px 20px;
    background: #ffcf33;
    color: #211829;
    font-family: var(
        --vibe-font-heading,
        "Rubik",
        sans-serif
    );
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-align: center;
    text-transform: uppercase;
}


.vibe-ad-c3__trust {
    padding: 18px 0 20px;
    border-bottom: 1px solid #e5e1e9;
    background: #ffffff;
}

.vibe-ad-c3__trust-label {
    display: block;
    margin-bottom: 14px;
    color: #696272;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-ad-c3__trust-logos {
    display: flex;
    min-height: 70px;
    align-items: center;
    gap: 34px;
}

.vibe-ad-c3__trust-logo {
    display: flex;
    min-width: 0;
    max-width: 145px;
    height: 58px;
    align-items: center;
    justify-content: center;
}

.vibe-ad-c3__trust-logo img {
    display: block;
    max-width: 100%;
    max-height: 52px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: .76;
}

.vibe-ad-c3__trust-more {
    min-width: 110px;
    margin-left: auto;
    padding-left: 25px;
    border-left: 1px solid #ddd7e2;
    color: #8c8593;
    font-size: 9px;
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: .05em;
    text-transform: uppercase;
}

@media (max-width: 760px) {
    .vibe-ad-c3__trust-logos {
        display: grid;
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
        gap: 18px;
    }

    .vibe-ad-c3__trust-logo {
        width: 100%;
        max-width: none;
    }

    .vibe-ad-c3__trust-more {
        margin: 0;
        padding: 10px 0 0;
        border-top: 1px solid #ddd7e2;
        border-left: 0;
    }
}

@media (max-width: 520px) {
    .vibe-ad-c3__trust-logos {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}


/* =========================================================
   VIBE AD LANDING STEP 5A START
   ========================================================= */

.vibe-ad-c3__advertisers {
    padding: 72px 0;
    background: var(--vibe-primary);
}

.vibe-ad-c3__advertisers-layout {
    display: grid;
    grid-template-columns:
        minmax(0, .8fr)
        minmax(0, 1.2fr);
    align-items: center;
    gap: 56px;
}

.vibe-ad-c3__advertisers-label {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 3px;
    background: var(--vibe-bg-page);
    color: #fff;
    font-family: var(--vibe-font-heading);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-ad-c3__advertisers-copy h2 {
    max-width: 520px;
    margin: 20px 0 0;
    color: #fff;
    font-family: var(--vibe-font-heading);
    font-size: clamp(36px, 4vw, 56px);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -.04em;
}

.vibe-ad-c3__advertisers-copy p {
    max-width: 520px;
    margin: 22px 0 0;
    color: rgba(255,255,255,.82);
    font-size: 17px;
    line-height: 1.7;
}

.vibe-ad-c3__advertiser-logos {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0,1fr));
    gap: 14px;
}

.vibe-ad-c3__advertiser-logo {
    display: flex;
    min-height: 136px;
    padding: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    background: #fff;
}

.vibe-ad-c3__advertiser-logo img {
    display: block;
    width: 100%;
    max-width: 175px;
    max-height: 92px;
    object-fit: contain;
}


/* Editorial / SEO content */

.vibe-ad-c3__editorial {
    padding: 86px 0;
    background: #fff;
}

.vibe-ad-c3__editorial-heading {
    max-width: 820px;
}

.vibe-ad-c3__editorial-label {
    display: inline-flex;
    padding: 8px 14px;
    border-radius: 3px;
    background: var(--vibe-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-ad-c3__editorial-heading h2 {
    max-width: 780px;
    margin: 20px 0 0;
    color: #190b21;
    font-family: var(--vibe-font-heading);
    font-size: clamp(36px, 4vw, 54px);
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: -.04em;
}

.vibe-ad-c3__editorial-heading p {
    max-width: 690px;
    margin: 16px 0 0;
    color: #706979;
    font-size: 16px;
    line-height: 1.7;
}

.vibe-ad-c3__editorial-grid {
    display: grid;
    margin-top: 42px;
    grid-template-columns:
        repeat(2, minmax(0,1fr));
    gap: 18px;
}

.vibe-ad-c3__editorial-card {
    padding: 30px;
    border: 1px solid #e6e1e9;
    border-radius: 5px;
    background: #fff;
}

.vibe-ad-c3__editorial-card h3 {
    margin: 0 0 14px;
    color: #190b21;
    font-family: var(--vibe-font-heading);
    font-size: 23px;
    font-weight: 900;
}

.vibe-ad-c3__editorial-copy {
    color: #68616f;
    font-size: 15px;
    line-height: 1.75;
}

@media (max-width: 900px) {
    .vibe-ad-c3__advertisers-layout {
        grid-template-columns: 1fr;
        gap: 38px;
    }
}

@media (max-width: 680px) {
    .vibe-ad-c3__advertisers,
    .vibe-ad-c3__editorial {
        padding: 54px 0;
    }

    .vibe-ad-c3__advertiser-logos {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .vibe-ad-c3__advertiser-logo {
        min-height: 108px;
        padding: 14px;
    }

    .vibe-ad-c3__editorial-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   VIBE AD LANDING STEP 5A END
   ========================================================= */


/* =========================================================
   VIBE AD LANDING STEP 5B1 START
   Campaign Spotlight v2
   ========================================================= */

.vibe-ad-c3__spotlight-v2 {
    padding: 84px 0;
    background: var(--vibe-bg-page);
}

.vibe-ad-c3__spotlight-v2-heading {
    max-width: 760px;
    margin-bottom: 38px;
}

.vibe-ad-c3__spotlight-v2-heading h2 {
    margin: 15px 0 0;
    color: var(--vibe-text-primary);
    font-family: var(--vibe-font-heading);
    font-size: clamp(35px, 4vw, 52px);
    font-weight: 900;
    line-height: 1.04;
    letter-spacing: -.04em;
}

.vibe-ad-c3__spotlight-v2-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.12fr)
        minmax(320px, .88fr);
    gap: 20px;
    align-items: stretch;
}

.vibe-ad-c3__spotlight-v2-quote {
    position: relative;
    min-width: 0;
    padding: 42px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 6px;
    background: var(--vibe-bg-card-raised);
}

.vibe-ad-c3__spotlight-v2-mark {
    display: block;
    height: 54px;
    color: var(--vibe-primary);
    font-family: Georgia, serif;
    font-size: 82px;
    line-height: 1;
}

.vibe-ad-c3__spotlight-v2-quote blockquote {
    max-width: 760px;
    margin: 10px 0 0;
    color: var(--vibe-text-primary);
    font-family: var(--vibe-font-heading);
    font-size: clamp(23px, 2.4vw, 34px);
    font-weight: 800;
    line-height: 1.35;
}

.vibe-ad-c3__spotlight-v2-quote footer {
    display: grid;
    margin-top: 30px;
    gap: 4px;
}

.vibe-ad-c3__spotlight-v2-quote footer strong {
    color: var(--vibe-text-primary);
    font-size: 15px;
    font-weight: 900;
}

.vibe-ad-c3__spotlight-v2-quote footer span {
    color: var(--vibe-text-secondary);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.vibe-ad-c3__spotlight-v2-detail {
    margin: 28px 0 0;
    padding-top: 24px;
    border-top: 1px solid var(--vibe-border-medium);
    color: var(--vibe-text-secondary);
    font-size: 14px;
    line-height: 1.7;
}

.vibe-ad-c3__spotlight-v2-facts {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.vibe-ad-c3__spotlight-v2-fact {
    display: flex;
    min-height: 150px;
    padding: 24px;
    flex-direction: column;
    justify-content: space-between;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 6px;
    background: var(--vibe-bg-card-raised);
}

.vibe-ad-c3__spotlight-v2-fact span {
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-ad-c3__spotlight-v2-fact strong {
    margin-top: 20px;
    color: var(--vibe-text-primary);
    font-family: var(--vibe-font-heading);
    font-size: 22px;
    font-weight: 900;
    line-height: 1.15;
}

@media (max-width: 900px) {
    .vibe-ad-c3__spotlight-v2-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .vibe-ad-c3__spotlight-v2 {
        padding: 56px 0;
    }

    .vibe-ad-c3__spotlight-v2-quote {
        padding: 28px 22px;
    }

    .vibe-ad-c3__spotlight-v2-facts {
        grid-template-columns: 1fr;
    }

    .vibe-ad-c3__spotlight-v2-fact {
        min-height: 120px;
    }
}

/* =========================================================
   VIBE AD LANDING STEP 5B1 END
   ========================================================= */


/* =========================================================
   VIBE AD LANDING STEP 5B2B START
   Media Pack CTA
   ========================================================= */

.vibe-ad-c3__media-pack {
    padding: 72px 0;
    background: #fff;
}

.vibe-ad-c3__media-pack-card {
    display: grid;
    padding: 38px 40px;
    grid-template-columns:
        82px
        minmax(0, 1fr)
        auto;
    align-items: center;
    gap: 28px;
    overflow: hidden;
    border: 1px solid var(--vibe-border-medium);
    border-radius: 7px;
    background: var(--vibe-bg-page);
}

.vibe-ad-c3__media-pack-icon {
    display: grid;
    width: 82px;
    height: 82px;
    place-items: center;
    border-radius: 6px;
    background: var(--vibe-primary);
    color: #fff;
}

.vibe-ad-c3__media-pack-icon svg {
    width: 38px;
    height: 38px;
}

.vibe-ad-c3__media-pack-label {
    display: block;
    margin-bottom: 8px;
    color: var(--vibe-primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
}

.vibe-ad-c3__media-pack-copy h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--vibe-font-heading);
    font-size: clamp(29px, 3vw, 42px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.vibe-ad-c3__media-pack-copy p {
    max-width: 720px;
    margin: 12px 0 0;
    color: var(--vibe-text-secondary);
    font-size: 15px;
    line-height: 1.65;
}

.vibe-ad-c3__media-pack-copy small {
    display: block;
    margin-top: 12px;
    color: var(--vibe-text-secondary);
    font-size: 11px;
    opacity: .72;
}

.vibe-ad-c3__media-pack-action {
    display: flex;
    justify-content: flex-end;
}

.vibe-ad-c3__media-pack-button {
    white-space: nowrap;
}

@media (max-width: 880px) {
    .vibe-ad-c3__media-pack-card {
        grid-template-columns:
            70px
            minmax(0, 1fr);
    }

    .vibe-ad-c3__media-pack-icon {
        width: 70px;
        height: 70px;
    }

    .vibe-ad-c3__media-pack-action {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 600px) {
    .vibe-ad-c3__media-pack {
        padding: 54px 0;
    }

    .vibe-ad-c3__media-pack-card {
        padding: 26px 22px;
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .vibe-ad-c3__media-pack-icon {
        width: 62px;
        height: 62px;
    }

    .vibe-ad-c3__media-pack-icon svg {
        width: 31px;
        height: 31px;
    }

    .vibe-ad-c3__media-pack-action {
        grid-column: auto;
    }

    .vibe-ad-c3__media-pack-button {
        width: 100%;
        justify-content: center;
    }
}

/* =========================================================
   VIBE AD LANDING STEP 5B2B END
   ========================================================= */

/* === VIBE ADVERTISING LANDING PAGE CONCEPT 3 END === */

/* === VIBE AD FINAL CONCEPT 3 STEP 6 START === */

/*
|--------------------------------------------------------------------------
| ENERGY / VIBE ADVERTISING LANDING PAGE
|--------------------------------------------------------------------------
|
| Final Concept 3 visual system.
| Uses vibe-ad-v2 namespace to avoid previous Concept 3 rules.
|
*/

.vibe-ad-v2 {
    --ad-pink:
        var(--vibe-primary, #f4068d);

    --ad-deep:
        #170025;

    --ad-purple:
        #23003c;

    --ad-purple-2:
        #2b0649;

    --ad-white:
        #ffffff;

    --ad-paper:
        #f8f7f9;

    --ad-ink:
        #21152f;

    --ad-muted:
        #756b7e;

    width: 100%;
    overflow: hidden;
    background: var(--ad-deep);
    color: #fff;
}

.vibe-ad-v2 *,
.vibe-ad-v2 *::before,
.vibe-ad-v2 *::after {
    box-sizing: border-box;
}

.vibe-ad-v2__inner {
    width: min(
        1180px,
        calc(100% - 48px)
    );
    margin-inline: auto;
}

.vibe-ad-v2__preview {
    padding: 10px 20px;
    background: #ffca28;
    color: #21152f;
    font-size: 12px;
    font-weight: 900;
    text-align: center;
    letter-spacing: .06em;
}

.vibe-ad-v2__pill {
    display: inline-flex;
    min-height: 28px;
    padding: 6px 12px;
    align-items: center;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.vibe-ad-v2__button {
    display: inline-flex;
    min-height: 46px;
    padding: 0 20px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 3px;
    font-size: 13px;
    font-weight: 850;
    line-height: 1;
    text-decoration: none;
    transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease;
}

.vibe-ad-v2__button:hover {
    transform: translateY(-1px);
}

.vibe-ad-v2__button--pink {
    border: 1px solid var(--ad-pink);
    background: var(--ad-pink);
    color: #fff;
}

.vibe-ad-v2__button--outline {
    border:
        1px solid
        rgba(255, 255, 255, .38);
    background:
        rgba(255, 255, 255, .03);
    color: #fff;
}


/* =========================================================
   HERO
   ========================================================= */

.vibe-ad-v2__hero {
    position: relative;
    min-height: 520px;
    padding: 48px 0 42px;
    overflow: hidden;
    background:
        linear-gradient(
            125deg,
            #1a002c,
            #36035b
        );
}

.vibe-ad-v2__hero.has-image {
    background-image:
        var(--vibe-ad-v2-hero);
    background-size: cover;
    background-position: center;
}

.vibe-ad-v2__hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(17, 0, 29, .95) 0%,
            rgba(24, 0, 41, .88) 37%,
            rgba(38, 0, 65, .57) 66%,
            rgba(25, 0, 42, .66) 100%
        );
}

.vibe-ad-v2__hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        380px;
    gap: 62px;
    align-items: center;
}

.vibe-ad-v2__hero-copy {
    max-width: 650px;
}

.vibe-ad-v2__hero-copy h1 {
    max-width: 650px;
    margin: 14px 0 17px;
    color: #fff;
    font-family:
        var(
            --vibe-font-heading,
            inherit
        );
    font-size:
        clamp(
            48px,
            5.25vw,
            73px
        );
    font-weight: 950;
    line-height: .93;
    letter-spacing: -.045em;
}

.vibe-ad-v2__hero-lead {
    max-width: 620px;
    color:
        rgba(
            255,
            255,
            255,
            .88
        );
    font-size: 17px;
    line-height: 1.5;
}

.vibe-ad-v2__hero-stats {
    display: grid;
    max-width: 620px;
    margin-top: 28px;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}

.vibe-ad-v2__hero-stat {
    min-width: 0;
    padding: 0 20px;
    border-left:
        1px solid
        rgba(255,255,255,.32);
}

.vibe-ad-v2__hero-stat:first-child {
    padding-left: 0;
    border-left: 0;
}

.vibe-ad-v2__hero-stat strong {
    display: block;
    margin-bottom: 4px;
    color: var(--ad-pink);
    font-size: 27px;
    font-weight: 950;
    line-height: 1;
}

.vibe-ad-v2__hero-stat span {
    display: block;
    color:
        rgba(
            255,
            255,
            255,
            .78
        );
    font-size: 9px;
    font-weight: 850;
    line-height: 1.25;
    letter-spacing: .035em;
    text-transform: uppercase;
}


/* Proposal */

.vibe-ad-v2__proposal {
    padding: 21px;
    border:
        1px solid
        rgba(255,255,255,.34);
    border-radius: 5px;
    background:
        rgba(
            28,
            3,
            47,
            .95
        );
    box-shadow:
        0 18px 50px
        rgba(0,0,0,.24);
}

.vibe-ad-v2__proposal h2 {
    margin: 0 0 5px;
    color: #fff;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.15;
}

.vibe-ad-v2__proposal > p {
    margin: 0 0 15px;
    color:
        rgba(
            255,
            255,
            255,
            .74
        );
    font-size: 12px;
    line-height: 1.45;
}

.vibe-ad-v2__form-grid {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 10px;
}

.vibe-ad-v2__field {
    min-width: 0;
}

.vibe-ad-v2__field label {
    display: block;
    margin-bottom: 5px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
}

.vibe-ad-v2__field label b {
    color: var(--ad-pink);
}

.vibe-ad-v2__field input {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    border:
        1px solid
        rgba(255,255,255,.16);
    border-radius: 3px;
    outline: none;
    background: #fff;
    color: #21152f;
    font-size: 11px;
}

.vibe-ad-v2__field input:focus {
    border-color: var(--ad-pink);
    box-shadow:
        0 0 0 2px
        rgba(244,6,141,.13);
}

.vibe-ad-v2__submit {
    display: flex;
    width: 100%;
    min-height: 43px;
    margin-top: 13px;
    padding: 0 15px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #fff;
    font: inherit;
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
}

.vibe-ad-v2__submit:disabled {
    cursor: not-allowed;
    opacity: .62;
}

.vibe-ad-v2__privacy {
    margin-top: 10px;
    color:
        rgba(
            255,
            255,
            255,
            .62
        );
    font-size: 9px;
    line-height: 1.35;
    text-align: center;
}

.vibe-ad-v2__honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.vibe-ad-v2__form-message {
    margin-bottom: 12px;
    padding: 9px 11px;
    border-radius: 3px;
    font-size: 11px;
    line-height: 1.4;
}

.vibe-ad-v2__form-message.is-success {
    background:
        rgba(
            66,
            190,
            101,
            .16
        );
    color: #d6ffe2;
}

.vibe-ad-v2__form-message.is-error {
    background:
        rgba(
            232,
            59,
            80,
            .18
        );
    color: #fff;
}

.vibe-ad-v2__form-message ul {
    margin: 6px 0 0;
    padding-left: 17px;
}


/* =========================================================
   LOGOS
   ========================================================= */

.vibe-ad-v2__logos {
    background: #fff;
    color: var(--ad-ink);
}

.vibe-ad-v2__logos-inner {
    display: grid;
    min-height: 108px;
    grid-template-columns:
        145px
        minmax(0, 1fr)
        105px;
    align-items: center;
    gap: 22px;
}

.vibe-ad-v2__logos-label {
    color: #61566c;
    font-size: 9px;
    font-weight: 900;
    line-height: 1.35;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.vibe-ad-v2__logos-grid {
    display: grid;
    grid-template-columns:
        repeat(
            6,
            minmax(0, 1fr)
        );
    gap: 20px;
    align-items: center;
}

.vibe-ad-v2__logo {
    display: flex;
    height: 72px;
    align-items: center;
    justify-content: center;
}

.vibe-ad-v2__logo img {
    display: block;
    max-width: 100%;
    max-height: 58px;
    object-fit: contain;
    filter: grayscale(1);
}

.vibe-ad-v2__logos-more {
    padding-left: 18px;
    border-left:
        1px solid #ddd7e1;
    color: #746a7c;
    font-size: 8px;
    font-weight: 850;
    line-height: 1.55;
    letter-spacing: .06em;
}


/* =========================================================
   DARK SECTIONS
   ========================================================= */

.vibe-ad-v2__dark {
    background:
        radial-gradient(
            circle at 80% 20%,
            rgba(244,6,141,.10),
            transparent 33%
        ),
        linear-gradient(
            110deg,
            #19002b,
            #26003f
        );
}


/* =========================================================
   WHY
   ========================================================= */

.vibe-ad-v2__why {
    padding: 43px 0 38px;
}

.vibe-ad-v2__why-grid {
    display: grid;
    grid-template-columns:
        330px
        minmax(0, 1fr);
    gap: 62px;
    align-items: center;
}

.vibe-ad-v2__why-copy h2 {
    margin: 12px 0 14px;
    color: #fff;
    font-size:
        clamp(
            34px,
            3.4vw,
            47px
        );
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.035em;
}

.vibe-ad-v2__body-copy {
    margin-bottom: 18px;
    color:
        rgba(
            255,
            255,
            255,
            .75
        );
    font-size: 13px;
    line-height: 1.55;
}

.vibe-ad-v2__benefits {
    display: grid;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
    gap: 24px 28px;
}

.vibe-ad-v2__benefit {
    min-width: 0;
}

.vibe-ad-v2__benefit-icon {
    display: grid;
    width: 40px;
    height: 40px;
    margin-bottom: 9px;
    place-items: center;
    border-radius: 50%;
    background:
        rgba(
            244,
            6,
            141,
            .19
        );
    color: var(--ad-pink);
    font-size: 11px;
    font-weight: 950;
}

.vibe-ad-v2__benefit h3 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
}

.vibe-ad-v2__benefit p {
    margin: 0;
    color:
        rgba(
            255,
            255,
            255,
            .67
        );
    font-size: 11px;
    line-height: 1.42;
}


/* =========================================================
   SPOTLIGHT
   ========================================================= */

.vibe-ad-v2__spotlight {
    background: #170025;
}

.vibe-ad-v2__spotlight-grid {
    display: grid;
    min-height: 218px;
    grid-template-columns:
        minmax(260px, 29%)
        minmax(0, 1fr)
        260px;
    max-width: 1440px;
    margin-inline: auto;
}

.vibe-ad-v2__spotlight-image {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(
            rgba(244,6,141,.17),
            rgba(23,0,37,.45)
        ),
        var(
            --vibe-ad-v2-spotlight,
            linear-gradient(
                135deg,
                #4b0d6b,
                #160025
            )
        );
    background-size: cover;
    background-position: center;
}

.vibe-ad-v2__spotlight-image span {
    position: absolute;
    bottom: 17px;
    left: 20px;
    color:
        rgba(
            255,
            255,
            255,
            .72
        );
    font-size: 9px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: .08em;
}

.vibe-ad-v2__spotlight-quote {
    position: relative;
    display: flex;
    padding: 26px 35px;
    flex-direction: column;
    justify-content: center;
    border-right:
        1px solid
        rgba(255,255,255,.13);
}

.vibe-ad-v2__quote-mark {
    position: absolute;
    top: 13px;
    left: 22px;
    color: var(--ad-pink);
    font-family: Georgia, serif;
    font-size: 52px;
    line-height: 1;
}

.vibe-ad-v2__spotlight-quote blockquote {
    margin: 13px 0 13px;
    color: #fff;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.48;
}

.vibe-ad-v2__spotlight-credit {
    display: grid;
    gap: 2px;
}

.vibe-ad-v2__spotlight-credit strong {
    color: #fff;
    font-size: 10px;
}

.vibe-ad-v2__spotlight-credit span {
    color:
        rgba(
            255,
            255,
            255,
            .65
        );
    font-size: 9px;
}

.vibe-ad-v2__spotlight-result {
    display: flex;
    padding: 25px 26px;
    flex-direction: column;
    justify-content: center;
}

.vibe-ad-v2__result-label {
    color:
        rgba(
            255,
            255,
            255,
            .52
        );
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.vibe-ad-v2__result-value {
    display: block;
    margin: 7px 0;
    color: var(--ad-pink);
    font-size: 42px;
    font-weight: 950;
    line-height: .95;
    letter-spacing: -.03em;
}

.vibe-ad-v2__spotlight-result p {
    margin: 0 0 8px;
    color:
        rgba(
            255,
            255,
            255,
            .8
        );
    font-size: 10px;
    line-height: 1.4;
}

.vibe-ad-v2__spotlight-result small {
    color:
        rgba(
            255,
            255,
            255,
            .53
        );
    font-size: 9px;
}


/* =========================================================
   PACKAGES
   ========================================================= */

.vibe-ad-v2__packages {
    padding: 38px 0 35px;
    background: #f7f6f8;
    color: var(--ad-ink);
}

.vibe-ad-v2__packages-grid {
    display: grid;
    grid-template-columns:
        260px
        minmax(0, 1fr);
    gap: 34px;
    align-items: start;
}

.vibe-ad-v2__packages-copy h2 {
    margin: 11px 0 11px;
    color: var(--ad-ink);
    font-size: 33px;
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.03em;
}

.vibe-ad-v2__packages-copy p {
    margin: 0;
    color: #6e6377;
    font-size: 11px;
    line-height: 1.5;
}

.vibe-ad-v2__package-cards {
    display: grid;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
    gap: 14px;
}

.vibe-ad-v2__package {
    position: relative;
    display: flex;
    min-height: 245px;
    padding: 21px 20px 17px;
    flex-direction: column;
    border:
        1px solid
        #ddd8e0;
    border-radius: 4px;
    background: #fff;
}

.vibe-ad-v2__package.is-featured {
    border-color:
        rgba(
            244,
            6,
            141,
            .38
        );
    background:
        linear-gradient(
            180deg,
            rgba(244,6,141,.035),
            #fff 32%
        );
}

.vibe-ad-v2__package-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    padding: 4px 10px;
    transform:
        translateX(-50%);
    border-radius: 999px;
    background: var(--ad-pink);
    color: #fff;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .05em;
}

.vibe-ad-v2__package h3 {
    margin: 0 0 13px;
    color: #251635;
    font-size: 18px;
    font-weight: 950;
    line-height: 1.15;
}

.vibe-ad-v2__package ul {
    display: grid;
    margin: 0 0 17px;
    padding: 0;
    gap: 6px;
    list-style: none;
}

.vibe-ad-v2__package li {
    position: relative;
    padding-left: 16px;
    color: #62586b;
    font-size: 10px;
    line-height: 1.4;
}

.vibe-ad-v2__package li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ad-pink);
    font-weight: 950;
}

.vibe-ad-v2__package-button {
    display: flex;
    min-height: 39px;
    margin-top: auto;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    background: var(--ad-pink);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    text-decoration: none;
}

.vibe-ad-v2__seo {
    display: grid;
    margin-top: 28px;
    padding-top: 24px;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 28px;
    border-top:
        1px solid #ded9e1;
}

.vibe-ad-v2__seo article {
    max-width: 520px;
}

.vibe-ad-v2__seo h3 {
    margin: 0 0 7px;
    color: #2a1c38;
    font-size: 15px;
    font-weight: 900;
}

.vibe-ad-v2__seo article > div {
    color: #766d7e;
    font-size: 10px;
    line-height: 1.55;
}


/* =========================================================
   FAQ
   ========================================================= */

.vibe-ad-v2__faq {
    padding: 37px 0;
}

.vibe-ad-v2__faq-grid {
    display: grid;
    grid-template-columns:
        250px
        minmax(0, 1fr);
    gap: 48px;
    align-items: start;
}

.vibe-ad-v2__faq-copy h2 {
    margin: 11px 0 8px;
    color: #fff;
    font-size: 32px;
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.03em;
}

.vibe-ad-v2__faq-copy p {
    margin: 0;
    color:
        rgba(
            255,
            255,
            255,
            .7
        );
    font-size: 10px;
    line-height: 1.5;
}

.vibe-ad-v2__faq-list {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 8px 10px;
}

.vibe-ad-v2__faq-item {
    border:
        1px solid
        rgba(255,255,255,.28);
    border-radius: 3px;
    background:
        rgba(255,255,255,.018);
}

.vibe-ad-v2__faq-item summary {
    display: flex;
    min-height: 43px;
    padding: 0 13px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
}

.vibe-ad-v2__faq-item summary::-webkit-details-marker {
    display: none;
}

.vibe-ad-v2__faq-item summary b {
    color:
        rgba(
            255,
            255,
            255,
            .68
        );
    font-size: 16px;
    font-weight: 500;
}

.vibe-ad-v2__faq-item[open] summary b {
    transform: rotate(45deg);
}

.vibe-ad-v2__faq-item > div {
    padding: 0 13px 13px;
    color:
        rgba(
            255,
            255,
            255,
            .7
        );
    font-size: 10px;
    line-height: 1.5;
}


/* =========================================================
   AUDIENCE
   ========================================================= */

.vibe-ad-v2__audience {
    padding: 24px 0;
    background: #fff;
    color: var(--ad-ink);
}

.vibe-ad-v2__audience-grid {
    display: grid;
    grid-template-columns:
        230px
        minmax(240px, .9fr)
        minmax(0, 1.35fr);
    align-items: center;
    gap: 25px;
}

.vibe-ad-v2__audience-title h2 {
    margin: 8px 0 0;
    color: #271838;
    font-size: 22px;
    font-weight: 950;
    line-height: 1.02;
}

.vibe-ad-v2__audience-copy {
    padding-left: 20px;
    border-left:
        1px solid #ded9e0;
    color: #716777;
    font-size: 9px;
    line-height: 1.55;
}

.vibe-ad-v2__audience-stats {
    display: grid;
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}

.vibe-ad-v2__audience-stat {
    padding: 4px 16px;
    border-left:
        1px solid #ded9e0;
}

.vibe-ad-v2__audience-stat strong {
    display: block;
    color: #2a193a;
    font-size: 20px;
    font-weight: 950;
    line-height: 1;
}

.vibe-ad-v2__audience-stat span {
    display: block;
    margin-top: 5px;
    color: #7b7181;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.3;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.vibe-ad-v2__final {
    position: relative;
    padding: 40px 0 42px;
    overflow: hidden;
    background:
        linear-gradient(
            130deg,
            #180027,
            #2a0646
        );
    color: #fff;
    text-align: center;
}

.vibe-ad-v2__final::before,
.vibe-ad-v2__final::after {
    content: "";
    position: absolute;
    bottom: -70px;
    width: 310px;
    height: 180px;
    border:
        28px solid
        rgba(111, 34, 154, .12);
    transform: rotate(28deg);
}

.vibe-ad-v2__final::before {
    left: -110px;
}

.vibe-ad-v2__final::after {
    right: -110px;
    transform: rotate(-28deg);
}

.vibe-ad-v2__final > .vibe-ad-v2__inner {
    position: relative;
    z-index: 2;
}

.vibe-ad-v2__final-kicker {
    color:
        rgba(
            255,
            255,
            255,
            .54
        );
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.vibe-ad-v2__final h2 {
    margin: 7px 0 7px;
    color: #fff;
    font-size:
        clamp(
            29px,
            3.1vw,
            39px
        );
    font-weight: 950;
    line-height: 1;
    letter-spacing: -.025em;
}

.vibe-ad-v2__final p {
    max-width: 650px;
    margin: 0 auto 16px;
    color:
        rgba(
            255,
            255,
            255,
            .72
        );
    font-size: 10px;
    line-height: 1.5;
}

.vibe-ad-v2__final-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1020px) {

    .vibe-ad-v2__hero-grid {
        grid-template-columns:
            minmax(0, 1fr)
            340px;
        gap: 34px;
    }

    .vibe-ad-v2__why-grid {
        grid-template-columns:
            280px
            minmax(0, 1fr);
        gap: 35px;
    }

    .vibe-ad-v2__benefits {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .vibe-ad-v2__logos-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

    .vibe-ad-v2__logos-inner {
        grid-template-columns:
            120px
            minmax(0, 1fr);
    }

    .vibe-ad-v2__logos-more {
        display: none;
    }

    .vibe-ad-v2__package-cards {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__package {
        min-height: 0;
    }

    .vibe-ad-v2__audience-grid {
        grid-template-columns:
            1fr 1.4fr;
    }

    .vibe-ad-v2__audience-copy {
        grid-column: 1 / -1;
        padding-left: 0;
        border-left: 0;
        order: 3;
    }

}

@media (max-width: 760px) {

    .vibe-ad-v2__inner {
        width:
            calc(100% - 30px);
    }

    .vibe-ad-v2__hero {
        min-height: 0;
        padding: 35px 0;
    }

    .vibe-ad-v2__hero-grid,
    .vibe-ad-v2__why-grid,
    .vibe-ad-v2__packages-grid,
    .vibe-ad-v2__faq-grid,
    .vibe-ad-v2__audience-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__hero-grid {
        gap: 28px;
    }

    .vibe-ad-v2__hero-copy h1 {
        font-size:
            clamp(
                44px,
                14vw,
                64px
            );
    }

    .vibe-ad-v2__hero-stats {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vibe-ad-v2__hero-stat {
        padding: 0;
        border-left: 0;
    }

    .vibe-ad-v2__form-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__logos {
        padding: 17px 0;
    }

    .vibe-ad-v2__logos-inner {
        min-height: 0;
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__logos-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .vibe-ad-v2__benefits {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__spotlight-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__spotlight-image {
        min-height: 190px;
    }

    .vibe-ad-v2__spotlight-quote {
        border-right: 0;
        border-bottom:
            1px solid
            rgba(255,255,255,.13);
    }

    .vibe-ad-v2__faq-list {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__audience-stats {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .vibe-ad-v2__audience-stat {
        padding: 8px 0;
        border-left: 0;
        border-top:
            1px solid #ded9e0;
    }

    .vibe-ad-v2__seo {
        grid-template-columns: 1fr;
    }

}

/* === VIBE AD FINAL CONCEPT 3 STEP 6 END === */

/* =========================================================
   ADVERTISING LANDING PAGES — FULL WIDTH
   ========================================================= */

.vibe-page-layout--advertising {
    grid-template-columns: minmax(0, 1fr) !important;
}

.vibe-page-layout--advertising .vibe-page-content {
    width: 100%;
    min-width: 0;
    max-width: none;
}

/* === VIBE AD HERO MATCH FIX START === */

/*
|--------------------------------------------------------------------------
| Advertising hero — Concept 3 proportions
|--------------------------------------------------------------------------
*/

.vibe-ad-v2__hero {
    min-height: 510px;
    padding: 44px 0 40px;
}

.vibe-ad-v2__hero.has-image {
    background-position: center 38%;
}

.vibe-ad-v2__hero-grid {
    grid-template-columns:
        minmax(0, 1fr)
        370px;
    gap: 54px;
}

.vibe-ad-v2__hero-copy {
    width: 100%;
    max-width: 610px !important;
}

.vibe-ad-v2__hero-copy h1 {
    width: 100%;
    max-width: 590px !important;
    margin: 14px 0 18px !important;
    font-size:
        clamp(
            50px,
            5.2vw,
            72px
        ) !important;
    font-weight: 950 !important;
    line-height: .90 !important;
    letter-spacing: -.045em !important;
    text-wrap: balance;
}

.vibe-ad-v2__hero-copy h1 span {
    display: block;
    width: max-content;
    max-width: 100%;
    color: #fff;
}

.vibe-ad-v2__hero-copy h1 span.is-accent {
    color:
        var(
            --ad-pink,
            var(--vibe-primary)
        );
}

.vibe-ad-v2__hero-lead {
    max-width: 585px;
    font-size: 15px;
    line-height: 1.48;
}

.vibe-ad-v2__hero-stats {
    max-width: 590px;
}


/*
|--------------------------------------------------------------------------
| Compact desktop / tablet
|
| The previous breakpoint switched to a stacked mobile layout at 760px.
| Keep the reference two-column hero until 620px instead.
|--------------------------------------------------------------------------
*/

@media (
    min-width: 621px
) and (
    max-width: 760px
) {

    .vibe-ad-v2__inner {
        width:
            calc(100% - 34px);
    }

    .vibe-ad-v2__hero {
        min-height: 470px;
        padding: 34px 0;
    }

    .vibe-ad-v2__hero-grid {
        display: grid;
        grid-template-columns:
            minmax(0, 1fr)
            275px;
        gap: 24px;
        align-items: center;
    }

    .vibe-ad-v2__hero-copy {
        max-width: none !important;
    }

    .vibe-ad-v2__hero-copy h1 {
        max-width: 350px !important;
        font-size: 45px !important;
        line-height: .90 !important;
        letter-spacing: -.045em !important;
    }

    .vibe-ad-v2__hero-lead {
        max-width: 350px;
        font-size: 12px;
    }

    .vibe-ad-v2__hero-stats {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
        gap: 0;
        margin-top: 21px;
    }

    .vibe-ad-v2__hero-stat {
        padding: 0 10px;
        border-left:
            1px solid
            rgba(
                255,
                255,
                255,
                .28
            );
    }

    .vibe-ad-v2__hero-stat:first-child {
        padding-left: 0;
        border-left: 0;
    }

    .vibe-ad-v2__hero-stat strong {
        font-size: 19px;
    }

    .vibe-ad-v2__hero-stat span {
        font-size: 7px;
    }

    .vibe-ad-v2__proposal {
        width: 100%;
        padding: 17px;
    }

    .vibe-ad-v2__proposal h2 {
        font-size: 17px;
    }

    .vibe-ad-v2__proposal > p {
        font-size: 10px;
    }

    .vibe-ad-v2__form-grid {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .vibe-ad-v2__field input {
        height: 35px;
    }

}


/* True mobile only */

@media (max-width: 620px) {

    .vibe-ad-v2__hero-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__hero-copy h1 {
        max-width: 520px !important;
        font-size:
            clamp(
                43px,
                13vw,
                58px
            ) !important;
    }

}

/* === VIBE AD HERO MATCH FIX END === */

/* === VIBE AD WHY MATCH FIX START === */

/*
|--------------------------------------------------------------------------
| WHY ADVERTISE — Concept 3 reference match
|--------------------------------------------------------------------------
*/

.vibe-ad-v2__why {
    padding: 52px 0 48px !important;
}

.vibe-ad-v2__why-grid {
    display: grid !important;
    grid-template-columns:
        minmax(390px, 440px)
        minmax(0, 1fr) !important;
    gap: 72px !important;
    align-items: center !important;
}

.vibe-ad-v2__why-copy {
    width: 100%;
    max-width: 440px;
}

.vibe-ad-v2__why-copy .vibe-ad-v2__pill {
    margin-bottom: 15px;
}

.vibe-ad-v2__why-copy h2 {
    width: 100%;
    max-width: 440px !important;
    margin: 0 0 16px !important;

    color: #fff !important;

    font-size:
        clamp(
            36px,
            3.25vw,
            48px
        ) !important;

    font-weight: 950 !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;

    text-wrap: balance;
}

.vibe-ad-v2__body-copy {
    width: 100%;
    max-width: 420px;

    margin: 0 0 20px !important;

    color:
        rgba(
            255,
            255,
            255,
            .78
        ) !important;

    font-size: 13px !important;
    line-height: 1.55 !important;
}

.vibe-ad-v2__why-copy .vibe-ad-v2__button {
    margin-top: 0;
    min-height: 43px;
    padding: 0 17px;

    font-size: 11px;
}


/*
|--------------------------------------------------------------------------
| Mid-size desktop
|--------------------------------------------------------------------------
*/

@media (
    min-width: 761px
) and (
    max-width: 1050px
) {

    .vibe-ad-v2__why-grid {
        grid-template-columns:
            minmax(330px, 390px)
            minmax(0, 1fr) !important;

        gap: 42px !important;
    }

    .vibe-ad-v2__why-copy h2 {
        max-width: 390px !important;
        font-size:
            clamp(
                34px,
                4vw,
                43px
            ) !important;
    }

}


/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 760px) {

    .vibe-ad-v2__why {
        padding: 38px 0 !important;
    }

    .vibe-ad-v2__why-grid {
        grid-template-columns: 1fr !important;
        gap: 34px !important;
    }

    .vibe-ad-v2__why-copy {
        max-width: 100%;
    }

    .vibe-ad-v2__why-copy h2 {
        max-width: 520px !important;

        font-size:
            clamp(
                35px,
                10vw,
                44px
            ) !important;
    }

    .vibe-ad-v2__body-copy {
        max-width: 520px;
    }

}

/* === VIBE AD WHY MATCH FIX END === */

/* === VIBE AD WHY HEADING FINAL SIZE FIX START === */

.vibe-ad-v2__why-grid {
    grid-template-columns:
        minmax(0, 540px)
        minmax(0, 1fr) !important;
    gap: 58px !important;
}

.vibe-ad-v2__why-copy {
    max-width: 540px !important;
}

.vibe-ad-v2__why-copy h2 {
    width: 100%;
    max-width: 540px !important;

    font-size: 42px !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
}

.vibe-ad-v2__body-copy {
    max-width: 500px !important;
}

@media (max-width: 1050px) and (min-width: 761px) {

    .vibe-ad-v2__why-grid {
        grid-template-columns:
            minmax(0, 460px)
            minmax(0, 1fr) !important;
        gap: 40px !important;
    }

    .vibe-ad-v2__why-copy {
        max-width: 460px !important;
    }

    .vibe-ad-v2__why-copy h2 {
        max-width: 460px !important;
        font-size: 38px !important;
    }

}

@media (max-width: 760px) {

    .vibe-ad-v2__why-copy h2 {
        max-width: 100% !important;
        font-size: 36px !important;
    }

}

/* === VIBE AD WHY HEADING FINAL SIZE FIX END === */


/* === WHY HEADING FORCED TWO LINES === */

.vibe-ad-v2__why-copy h2 > span {
    display: block;
}


/* === VIBE AD BENEFITS REFERENCE MATCH START === */

.vibe-ad-v2__benefits {
    display: grid !important;
    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    gap:
        34px
        42px !important;

    align-items: start;
}

.vibe-ad-v2__benefit {
    min-width: 0;
    max-width: 235px;
}

.vibe-ad-v2__benefit-icon {
    display: grid !important;

    width: 44px !important;
    height: 44px !important;

    margin: 0 0 11px !important;

    place-items: center;

    border-radius: 50% !important;

    background:
        rgba(
            244,
            6,
            141,
            .18
        ) !important;

    color:
        var(
            --ad-pink,
            var(--vibe-primary)
        ) !important;
}

.vibe-ad-v2__benefit-icon svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-ad-v2__benefit:nth-child(4)
.vibe-ad-v2__benefit-icon svg {
    fill: currentColor;
    stroke: none;
}

.vibe-ad-v2__benefit h3 {
    margin: 0 0 5px !important;

    color: #fff !important;

    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: -.015em !important;
}

.vibe-ad-v2__benefit p {
    max-width: 220px;

    margin: 0 !important;

    color:
        rgba(
            255,
            255,
            255,
            .70
        ) !important;

    font-size: 10px !important;
    line-height: 1.45 !important;
}


/* Keep the reference-style 3 x 2 arrangement
   until the page genuinely gets narrow. */

@media (
    min-width: 761px
) and (
    max-width: 1050px
) {

    .vibe-ad-v2__benefits {
        gap:
            28px
            24px !important;
    }

    .vibe-ad-v2__benefit h3 {
        font-size: 13px !important;
    }

}


@media (max-width: 760px) {

    .vibe-ad-v2__benefits {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap:
            28px
            24px !important;
    }

}


@media (max-width: 480px) {

    .vibe-ad-v2__benefits {
        grid-template-columns: 1fr !important;
    }

    .vibe-ad-v2__benefit {
        max-width: 100%;
    }

    .vibe-ad-v2__benefit p {
        max-width: 330px;
    }

}

/* === VIBE AD BENEFITS REFERENCE MATCH END === */


/* =========================================================
   ADVERTISING — EXTRA SALES / TRUST SECTIONS
   ========================================================= */


/* COVERAGE */

.vibe-ad-v2__coverage {
    padding: 48px 0 42px;
    background: #fff;
    color: #24152f;
}

.vibe-ad-v2__coverage-grid {
    display: grid;
    grid-template-columns:
        320px minmax(0, 1fr);
    gap: 60px;
    align-items: start;
}

.vibe-ad-v2__coverage-intro h2 {
    margin: 12px 0 13px;
    color: #251632;
    font-size: 38px;
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.035em;
}

.vibe-ad-v2__coverage-intro > p {
    margin: 0;
    color: #706676;
    font-size: 12px;
    line-height: 1.55;
}

.vibe-ad-v2__coverage-population {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid #e1dce4;
}

.vibe-ad-v2__coverage-population strong {
    display: block;
    color: var(--ad-pink);
    font-size: 31px;
    font-weight: 950;
    line-height: 1;
}

.vibe-ad-v2__coverage-population span {
    display: block;
    max-width: 250px;
    margin-top: 7px;
    color: #716777;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.4;
}

.vibe-ad-v2__coverage-areas {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    border-top: 1px solid #ddd7e0;
    border-left: 1px solid #ddd7e0;
}

.vibe-ad-v2__coverage-areas article {
    padding: 20px 22px;
    border-right: 1px solid #ddd7e0;
    border-bottom: 1px solid #ddd7e0;
}

.vibe-ad-v2__coverage-areas h3 {
    margin: 0 0 8px;
    color: #29183a;
    font-size: 14px;
    font-weight: 950;
}

.vibe-ad-v2__coverage-areas p {
    margin: 0;
    color: #766d7d;
    font-size: 10px;
    line-height: 1.65;
}

.vibe-ad-v2__coverage-source {
    margin-top: 18px;
    color: #918997;
    font-size: 8px;
    line-height: 1.45;
}


/* PRODUCTION */

.vibe-ad-v2__production {
    padding: 23px 0;
    background:
        linear-gradient(
            100deg,
            #39004e,
            #20002e
        );
    color: #fff;
}

.vibe-ad-v2__production-inner {
    display: grid;
    grid-template-columns:
        58px minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
}

.vibe-ad-v2__production-icon {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 50%;
    background: rgba(244, 6, 141, .18);
    color: var(--ad-pink);
    font-size: 10px;
    font-weight: 950;
}

.vibe-ad-v2__production-inner > div:nth-child(2) > span {
    color: var(--ad-pink);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
}

.vibe-ad-v2__production h2 {
    margin: 4px 0 4px;
    color: #fff;
    font-size: 20px;
    font-weight: 950;
}

.vibe-ad-v2__production p {
    max-width: 720px;
    margin: 0;
    color: rgba(255,255,255,.7);
    font-size: 10px;
    line-height: 1.5;
}


/* PROCESS */

.vibe-ad-v2__process {
    padding: 43px 0;
    background: #f7f6f8;
    color: #271936;
}

.vibe-ad-v2__process-heading {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 360px;
    gap: 45px;
    align-items: end;
    margin-bottom: 27px;
}

.vibe-ad-v2__process-heading h2 {
    margin: 10px 0 0;
    color: #291839;
    font-size: 36px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: -.035em;
}

.vibe-ad-v2__process-heading > p {
    margin: 0;
    color: #756b7c;
    font-size: 11px;
    line-height: 1.5;
}

.vibe-ad-v2__process-steps {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    border-top: 1px solid #dcd6df;
    border-left: 1px solid #dcd6df;
}

.vibe-ad-v2__process-steps article {
    padding: 21px;
    border-right: 1px solid #dcd6df;
    border-bottom: 1px solid #dcd6df;
    background: #fff;
}

.vibe-ad-v2__process-steps article > span {
    color: var(--ad-pink);
    font-size: 10px;
    font-weight: 950;
}

.vibe-ad-v2__process-steps h3 {
    margin: 11px 0 7px;
    color: #281737;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.2;
}

.vibe-ad-v2__process-steps p {
    margin: 0;
    color: #776e7e;
    font-size: 10px;
    line-height: 1.5;
}

.vibe-ad-v2__process-notes {
    display: flex;
    margin-top: 16px;
    flex-wrap: wrap;
    gap: 8px 22px;
    color: #776d7d;
    font-size: 8px;
    line-height: 1.4;
}


/* AUDIO */

.vibe-ad-v2__audio-showcase {
    padding: 34px 0;
    background:
        linear-gradient(
            120deg,
            #180026,
            #2b0645
        );
    color: #fff;
}

.vibe-ad-v2__audio-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 320px;
    gap: 50px;
    align-items: center;
}

.vibe-ad-v2__audio-showcase h2 {
    max-width: 570px;
    margin: 10px 0 8px;
    color: #fff;
    font-size: 31px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: -.025em;
}

.vibe-ad-v2__audio-showcase p {
    max-width: 590px;
    margin: 0;
    color: rgba(255,255,255,.68);
    font-size: 10px;
    line-height: 1.5;
}

.vibe-ad-v2__audio-actions {
    display: grid;
    justify-items: start;
    gap: 9px;
}

.vibe-ad-v2__audio-actions small {
    color: rgba(255,255,255,.48);
    font-size: 8px;
    line-height: 1.4;
}


/* METHODOLOGY */

.vibe-ad-v2__method-note {
    padding: 18px 0;
    background: #eeebf0;
    color: #281936;
}

.vibe-ad-v2__method-grid {
    display: grid;
    grid-template-columns:
        260px minmax(0, 1fr);
    gap: 34px;
    align-items: center;
}

.vibe-ad-v2__method-grid span,
.vibe-ad-v2__method-grid strong {
    display: block;
}

.vibe-ad-v2__method-grid span {
    margin-bottom: 4px;
    color: var(--ad-pink);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .07em;
}

.vibe-ad-v2__method-grid strong {
    color: #2a193a;
    font-size: 16px;
    font-weight: 950;
}

.vibe-ad-v2__method-grid p {
    margin: 0;
    color: #716777;
    font-size: 8px;
    line-height: 1.55;
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .vibe-ad-v2__coverage-grid,
    .vibe-ad-v2__process-heading,
    .vibe-ad-v2__audio-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .vibe-ad-v2__production-inner {
        grid-template-columns:
            54px minmax(0, 1fr);
    }

    .vibe-ad-v2__production-inner > a {
        grid-column: 2;
        justify-self: start;
    }

    .vibe-ad-v2__process-steps {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 620px) {

    .vibe-ad-v2__coverage-areas,
    .vibe-ad-v2__process-steps,
    .vibe-ad-v2__method-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__production-inner {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__production-inner > a {
        grid-column: auto;
    }

}

/* ========================================================= */


/* =========================================================
   ADVERTISING — INDEPENDENT / LOCAL
   ========================================================= */

.vibe-ad-v2__local {
    padding: 52px 0 48px;

    background:
        radial-gradient(
            circle at 80% 10%,
            rgba(244, 6, 141, .07),
            transparent 30%
        ),
        #0c0710;

    color: #fff;
}

.vibe-ad-v2__local-heading {
    max-width: 760px;
    margin-bottom: 34px;
}

.vibe-ad-v2__local-kicker {
    display: block;

    margin-bottom: 14px;

    color:
        var(
            --ad-pink,
            var(--vibe-primary)
        );

    font-size: 10px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.vibe-ad-v2__local-heading h2 {
    max-width: 700px;

    margin: 0 0 17px;

    color: #fff;

    font-size:
        clamp(
            38px,
            4vw,
            55px
        );

    font-weight: 950;
    line-height: .96;
    letter-spacing: -.04em;
}

.vibe-ad-v2__local-heading h2 span {
    display: block;

    color:
        var(
            --ad-pink,
            var(--vibe-primary)
        );
}

.vibe-ad-v2__local-heading p {
    max-width: 720px;

    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            .62
        );

    font-size: 13px;
    line-height: 1.65;
}


.vibe-ad-v2__local-cards {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    border-top:
        1px solid
        rgba(255,255,255,.24);

    border-left:
        1px solid
        rgba(255,255,255,.24);
}

.vibe-ad-v2__local-cards article {
    min-height: 245px;

    padding: 28px 25px 27px;

    border-right:
        1px solid
        rgba(255,255,255,.24);

    border-bottom:
        1px solid
        rgba(255,255,255,.24);
}

.vibe-ad-v2__local-line {
    display: block;

    width: 38px;
    height: 5px;

    margin-bottom: 20px;

    background:
        var(
            --ad-pink,
            var(--vibe-primary)
        );
}

.vibe-ad-v2__local-cards h3 {
    margin: 0 0 15px;

    color: #fff;

    font-size: 16px;
    font-weight: 950;
    line-height: 1.08;
    text-transform: uppercase;
}

.vibe-ad-v2__local-cards p {
    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            .59
        );

    font-size: 11px;
    line-height: 1.6;
}


@media (max-width: 900px) {

    .vibe-ad-v2__local-cards {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

}


@media (max-width: 560px) {

    .vibe-ad-v2__local {
        padding: 38px 0;
    }

    .vibe-ad-v2__local-heading h2 {
        font-size: 38px;
    }

    .vibe-ad-v2__local-cards {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__local-cards article {
        min-height: 0;
    }

}

/* ========================================================= */

/* === VIBE AD COVERAGE REFRESH START === */

.vibe-ad-v2__coverage {
    padding: 58px 0 62px;
    background: #f8f7f9;
    color: #21152f;
}

.vibe-ad-v2__coverage-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 360px)
        minmax(0, 1fr);
    gap: 54px;
    align-items: start;
}

.vibe-ad-v2__coverage-copy h2 {
    margin: 15px 0 17px;
    color: #21102f;
    font-size: 48px;
    font-weight: 950;
    line-height: .94;
    letter-spacing: -.04em;
}

.vibe-ad-v2__coverage-copy > p {
    margin: 0;
    color: #756d7c;
    font-size: 13px;
    line-height: 1.55;
}

.vibe-ad-v2__coverage-stat {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #ded9e1;
}

.vibe-ad-v2__coverage-stat strong {
    display: block;
    color: var(--ad-pink);
    font-size: 42px;
    font-weight: 950;
    line-height: .95;
    letter-spacing: -.035em;
}

.vibe-ad-v2__coverage-stat span {
    display: block;
    max-width: 300px;
    margin-top: 7px;
    color: #5f5668;
    font-size: 11px;
    font-weight: 850;
    line-height: 1.35;
}

.vibe-ad-v2__coverage-stat small {
    display: block;
    max-width: 330px;
    margin-top: 20px;
    color: #99919f;
    font-size: 8px;
    line-height: 1.55;
}


/* Area cards */

.vibe-ad-v2__coverage-cards {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    border-top: 1px solid #ddd8df;
    border-left: 1px solid #ddd8df;
    background: #fff;
}

.vibe-ad-v2__coverage-card {
    min-height: 170px;
    padding: 25px 27px;
    border-right: 1px solid #ddd8df;
    border-bottom: 1px solid #ddd8df;
    background: #fff;
    transition:
        background .18s ease,
        transform .18s ease;
}

.vibe-ad-v2__coverage-card:hover {
    background: #fdf9fc;
}

.vibe-ad-v2__coverage-card-head {
    display: flex;
    margin-bottom: 14px;
    align-items: center;
    gap: 13px;
}

.vibe-ad-v2__coverage-icon {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border-radius: 50%;
    background: rgba(244, 6, 141, .10);
    color: var(--ad-pink);
}

.vibe-ad-v2__coverage-icon svg {
    width: 21px;
    height: 21px;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-ad-v2__coverage-card h3 {
    margin: 0;
    color: #2a1738;
    font-size: 15px;
    font-weight: 950;
    line-height: 1.15;
}

.vibe-ad-v2__coverage-card p {
    margin: 0;
    color: #7b7281;
    font-size: 10px;
    line-height: 1.65;
}


/* Responsive */

@media (max-width: 1000px) {

    .vibe-ad-v2__coverage-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .vibe-ad-v2__coverage-copy {
        max-width: 600px;
    }

}

@media (max-width: 680px) {

    .vibe-ad-v2__coverage {
        padding: 40px 0;
    }

    .vibe-ad-v2__coverage-copy h2 {
        font-size: 39px;
    }

    .vibe-ad-v2__coverage-cards {
        grid-template-columns: 1fr;
    }

    .vibe-ad-v2__coverage-card {
        min-height: 0;
    }

}

/* === VIBE AD COVERAGE REFRESH END === */

/* =========================================================
   VIBE — RECENTLY PLAYED MOBILE ROW ALIGNMENT 2026
   Compact layout:
   Time | Artwork | Track | Preview
                  | Votes |
   ========================================================= */

@media (max-width: 768px) {

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track {
        grid-template-columns:
            38px
            44px
            minmax(0, 1fr)
            92px;

        grid-template-rows:
            auto
            auto;

        column-gap: 7px;
        row-gap: 3px;

        min-height: 68px;
        padding: 7px 8px;

        align-items: center;
    }

    /* Time remains vertically centred on the left. */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__time {
        grid-column: 1;
        grid-row: 1 / 3;

        align-self: center;

        white-space: nowrap;
    }

    /* Artwork occupies both compact rows. */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__artwork {
        grid-column: 2;
        grid-row: 1 / 3;

        width: 40px;
        height: 40px;

        align-self: center;
    }

    /* Track title / artist. */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__copy {
        grid-column: 3;
        grid-row: 1;

        min-width: 0;
        align-self: end;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__copy strong,
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__copy > span {
        display: block;
        overflow: hidden;

        white-space: nowrap;
        text-overflow: ellipsis;
    }

    /*
     * Undo the tablet action wrapper.
     * This allows Votes and Preview to become grid items
     * inside the main track row again.
     */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__actions {
        display: contents;

        grid-column: auto;

        padding-bottom: 0;
    }

    /* Votes directly beneath title / artist. */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-vote-bar {
        grid-column: 3;
        grid-row: 2;

        justify-content: flex-start;
        align-self: start;

        gap: 7px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-song-vote-button {
        gap: 3px;
        padding: 1px 2px;
    }

    /* Preview stays on the right, centred across both rows. */
    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__preview {
        grid-column: 4;
        grid-row: 1 / 3;

        width: 92px;
        min-width: 92px;

        justify-self: end;
        align-self: center;
    }
}


/* Extra squeeze for narrower phones. */
@media (max-width: 390px) {

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track {
        grid-template-columns:
            36px
            42px
            minmax(0, 1fr)
            86px;

        column-gap: 6px;

        padding-right: 7px;
        padding-left: 7px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__artwork {
        width: 40px;
        height: 40px;
    }

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played-track__preview {
        width: 86px;
        min-width: 86px;

        padding-right: 7px !important;
        padding-left: 7px !important;

        font-size: 9px !important;
    }
}

/* === VIBE CURRENT SCHEDULE IMAGE SIZE START === */

/*
 * Schedule image sizing only.
 *
 * No backgrounds changed.
 * No object-fit changed.
 * No object-position changed.
 * No content/text/button styling changed.
 */
@media (min-width: 768px) {

    /*
     * Standard image column.
     */
    .vibe-schedule-show,
    .vibe-schedule-show.is-live {
        grid-template-columns:
            142px
            minmax(0, 1fr) !important;
    }

    /*
     * Preserve the existing sponsor column sizes.
     */
    .vibe-schedule-show.has-sponsor {
        grid-template-columns:
            142px
            minmax(0, 1fr)
            132px !important;
    }

    .vibe-schedule-show.is-live.has-sponsor {
        grid-template-columns:
            142px
            minmax(0, 1fr)
            150px !important;
    }

    /*
     * Prevent rows with descriptions/actions from stretching
     * presenter images taller than artwork-led shows.
     */
    .vibe-schedule-show__image,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image {
        width: 142px !important;

        height: 142px !important;
        min-height: 142px !important;
        max-height: 142px !important;

        align-self: start !important;
    }

    .vibe-schedule-show__image img,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image img {
        width: 100% !important;

        height: 142px !important;
        min-height: 142px !important;
        max-height: 142px !important;
    }
}

/* === VIBE CURRENT SCHEDULE IMAGE SIZE END === */

/* === ENERGY 106 ADVERTISING LANDING PAGE TARGET DESIGN === */

.vibe-ad-target {
    --ad-bg: #2a0143;
    --ad-bg-dark: #180028;
    --ad-panel: #f5f2f8;
    --ad-panel-alt: #ffffff;
    --ad-panel-soft: #efebf5;
    --ad-border: #d8d2e3;
    --ad-navy: #071226;
    --ad-navy-deep: #050b1a;
    --ad-purple-deep: #230336;
    --ad-purple-soft: #3a0a59;
    --ad-purple-mid: #4b146d;
    --ad-pink: #ff0a8c;
    --ad-pink-soft: #ff3ca3;
    --ad-text: #091325;
    --ad-text-soft: #4e5665;
    --ad-white: #ffffff;
    background: transparent;
    color: var(--ad-text);
    font-family: inherit;
    overflow: hidden;
}

.vibe-ad-target *,
.vibe-ad-target *::before,
.vibe-ad-target *::after {
    box-sizing: border-box;
}

.vibe-ad-target__inner {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
}

.vibe-ad-target__preview {
    padding: 10px 24px;
    background: #fff1a6;
    color: #151515;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
}

/* HERO */

.vibe-ad-target__hero {
    position: relative;
    min-height: 430px;
    background:
        var(--ad-purple-deep)
        var(--ad-hero-image, none)
        center 45% / cover
        no-repeat;
    color: #fff;
}

.vibe-ad-target__hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(5, 8, 20, .97) 0%,
            rgba(18, 4, 30, .90) 34%,
            rgba(43, 5, 62, .48) 68%,
            rgba(48, 8, 70, .16) 100%
        );
}

.vibe-ad-target__hero-inner {
    position: relative;
    min-height: 430px;
    display: flex;
    align-items: center;
}

.vibe-ad-target__hero-copy {
    width: min(650px, 68%);
    padding: 54px 0 56px;
}

.vibe-ad-target__eyebrow,
.vibe-ad-target__section-label {
    display: block;
    color: var(--ad-pink);
    font-size: 13px;
    line-height: 1.15;
    font-weight: 900;
    letter-spacing: .01em;
    text-transform: uppercase;
}

.vibe-ad-target__hero h1 {
    max-width: 610px;
    margin: 8px 0 14px;
    color: #fff;
    font-size: clamp(46px, 5.3vw, 78px);
    line-height: .88;
    font-weight: 950;
    letter-spacing: -.055em;
    text-transform: uppercase;
}

.vibe-ad-target__hero h1::after {
    content: "";
    display: inline-block;
    width: .13em;
    height: .13em;
    margin-left: .04em;
    border-radius: 50%;
    background: var(--ad-pink);
    vertical-align: .08em;
}

.vibe-ad-target__hero-copy > p {
    max-width: 590px;
    margin: 0;
    color: rgba(255,255,255,.96);
    font-size: 20px;
    line-height: 1.35;
    font-weight: 520;
}

.vibe-ad-target__hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 26px;
}

.vibe-ad-target__button {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 13px;
    padding: 0 24px;
    border: 2px solid transparent;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
    transition:
        transform .15s ease,
        background .15s ease,
        border-color .15s ease,
        color .15s ease;
}

.vibe-ad-target__button:hover {
    transform: translateY(-1px);
}

.vibe-ad-target__button--pink {
    background: var(--ad-pink);
    border-color: var(--ad-pink);
    color: #fff;
}

.vibe-ad-target__button--outline {
    background: rgba(13, 7, 24, .35);
    border-color: rgba(255,255,255,.60);
    color: #fff;
}

.vibe-ad-target__hero-note {
    position: absolute;
    right: 34px;
    bottom: 42px;
    width: 180px;
    transform: rotate(-7deg);
    color: #fff;
    text-align: center;
    font-style: italic;
    text-transform: uppercase;
}

.vibe-ad-target__hero-note strong,
.vibe-ad-target__hero-note span {
    display: block;
}

.vibe-ad-target__hero-note strong {
    color: var(--ad-pink);
    font-size: 28px;
    line-height: .95;
    font-weight: 950;
}

.vibe-ad-target__hero-note span {
    margin: 4px 0;
    font-size: 19px;
    line-height: 1;
    font-weight: 800;
}

/* STATS */

.vibe-ad-target__stats {
    background:
        linear-gradient(
            90deg,
            #071226 0%,
            #09162d 38%,
            #180730 72%,
            #2c0843 100%
        );
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.10);
}

.vibe-ad-target__stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.vibe-ad-target__stat {
    min-height: 124px;
    padding: 22px 20px 20px;
    text-align: center;
    position: relative;
}

.vibe-ad-target__stat + .vibe-ad-target__stat::before {
    content: "";
    position: absolute;
    left: 0;
    top: 24px;
    bottom: 24px;
    width: 1px;
    background: rgba(255,255,255,.24);
}

.vibe-ad-target__stat-icon {
    min-height: 25px;
    display: block;
    margin-bottom: 8px;
    color: var(--ad-pink);
    font-size: 22px;
    line-height: 1;
    font-weight: 900;
}

.vibe-ad-target__stat strong {
    display: block;
    color: #fff;
    font-size: 21px;
    line-height: 1.1;
    font-weight: 900;
}

.vibe-ad-target__stat small {
    display: block;
    margin-top: 5px;
    color: rgba(255,255,255,.82);
    font-size: 12px;
    line-height: 1.3;
}

/* LIGHT SECTIONS */

.vibe-ad-target__why,
.vibe-ad-target__options,
.vibe-ad-target__logos,
.vibe-ad-target__faq {
    background: var(--ad-panel);
}

.vibe-ad-target__why {
    padding: 40px 0 38px;
}

.vibe-ad-target__why-grid {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.45fr);
    gap: 56px;
    align-items: center;
}

.vibe-ad-target__why-copy h2,
.vibe-ad-target__options h2,
.vibe-ad-target__faq h2 {
    margin: 6px 0 10px;
    color: var(--ad-text);
    font-size: clamp(31px, 3vw, 45px);
    line-height: .98;
    font-weight: 950;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.vibe-ad-target__why-copy p,
.vibe-ad-target__faq-intro p {
    margin: 0;
    color: #2f3849;
    font-size: 15px;
    line-height: 1.45;
}

.vibe-ad-target__benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 27px 34px;
}

.vibe-ad-target__benefit {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 13px;
    align-items: start;
}

.vibe-ad-target__benefit-icon svg {
    width: 35px;
    height: 35px;
    fill: none;
    stroke: var(--ad-pink);
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.vibe-ad-target__benefit h3 {
    margin: 0 0 4px;
    color: var(--ad-text);
    font-size: 13px;
    line-height: 1.15;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-ad-target__benefit p {
    margin: 0;
    color: #50596a;
    font-size: 12px;
    line-height: 1.4;
}

/* PROCESS */

.vibe-ad-target__process {
    padding: 30px 0 34px;
    background:
        radial-gradient(circle at 74% 42%, rgba(255, 10, 140, .12), transparent 24%),
        linear-gradient(90deg, #071226 0%, #0a1430 44%, #26063d 100%);
    color: #fff;
}

.vibe-ad-target__process-heading {
    margin-bottom: 19px;
}

.vibe-ad-target__process-heading h2 {
    margin: 4px 0 0;
    color: #fff;
    font-size: 35px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.035em;
}

.vibe-ad-target__process-grid {
    display: grid;
    grid-template-columns: 1fr 35px 1fr 35px 1fr;
    gap: 16px;
    align-items: center;
}

.vibe-ad-target__process-grid article {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
}

.vibe-ad-target__process-number {
    color: rgba(255,255,255,.18);
    font-size: 46px;
    line-height: .95;
    font-weight: 950;
}

.vibe-ad-target__process-grid h3 {
    margin: 0 0 5px;
    color: #fff;
    font-size: 15px;
    line-height: 1.08;
    font-weight: 900;
}

.vibe-ad-target__process-grid p {
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: 12px;
    line-height: 1.38;
}

.vibe-ad-target__process-arrow {
    color: #fff;
    font-size: 30px;
    font-weight: 300;
    text-align: center;
}

/* OPTIONS */

.vibe-ad-target__options {
    padding: 35px 0 38px;
}

.vibe-ad-target__options h2 {
    margin-bottom: 22px;
}

.vibe-ad-target__option-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.vibe-ad-target__option {
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: linear-gradient(160deg, #061126 0%, #18032a 100%);
    border: 1px solid rgba(86, 35, 116, .45);
    border-radius: 4px;
    color: #fff;
}

.vibe-ad-target__option-image {
    height: 130px;
    background:
        linear-gradient(180deg, rgba(8, 16, 36, .05), rgba(8, 16, 36, .72)),
        var(--ad-option-image, none)
        center / cover no-repeat;
}

.vibe-ad-target__option-image--2 {
    background-position: center 58%;
}

.vibe-ad-target__option-image--3 {
    background-position: center 25%;
}

.vibe-ad-target__option-body {
    flex: 1;
    padding: 16px 17px 18px;
}

.vibe-ad-target__option h3 {
    margin: 0 0 7px;
    color: #fff;
    font-size: 16px;
    line-height: 1.08;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-ad-target__option p {
    margin: 0;
    color: rgba(255,255,255,.86);
    font-size: 12px;
    line-height: 1.42;
}

.vibe-ad-target__option > a {
    min-height: 46px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 17px;
    background: var(--ad-pink);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
    text-transform: uppercase;
}

/* AUDIO */

.vibe-ad-target__audio {
    padding: 25px 0 27px;
    background: var(--ad-panel-soft);
}

.vibe-ad-target__audio-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 25px;
    margin-bottom: 17px;
}

.vibe-ad-target__audio-heading p {
    margin: 4px 0 0;
    color: #41495a;
    font-size: 13px;
}

.vibe-ad-target__audio-heading > strong {
    color: var(--ad-text);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.vibe-ad-target__audio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.vibe-ad-target__audio-player {
    min-height: 76px;
    display: grid;
    grid-template-columns: 42px 1fr 20px;
    gap: 12px;
    align-items: center;
    padding: 12px;
    background: #fff;
    border: 1px solid var(--ad-border);
    border-radius: 4px;
}

.vibe-ad-target__audio-player button {
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--ad-pink);
    color: #fff;
    cursor: pointer;
}

.vibe-ad-target__audio-player strong {
    display: block;
    color: var(--ad-text);
    font-size: 12px;
    font-weight: 800;
}

.vibe-ad-target__audio-player small {
    display: block;
    margin: 2px 0 5px;
    color: #717989;
    font-size: 10px;
}

.vibe-ad-target__audio-line {
    display: block;
    width: 100%;
    height: 3px;
    background: #d8dde6;
}

/* LOGOS */

.vibe-ad-target__logos {
    padding: 25px 0 28px;
    border-top: 1px solid #e8e2ef;
}

.vibe-ad-target__logo-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 22px;
    align-items: center;
    margin-top: 12px;
}

.vibe-ad-target__logo {
    min-width: 0;
    text-align: center;
}

.vibe-ad-target__logo img {
    max-width: 100%;
    max-height: 58px;
    width: auto;
    height: auto;
    object-fit: contain;
    filter: grayscale(1);
}

.vibe-ad-target__logo-more {
    color: #343b48;
    font-size: 10px;
    line-height: 1.35;
    font-weight: 800;
    text-align: center;
}

/* COVERAGE + FORM */

.vibe-ad-target__coverage {
    padding: 30px 0 0;
    background:
        radial-gradient(circle at 30% 25%, rgba(87, 27, 126, .35), transparent 28%),
        radial-gradient(circle at 73% 38%, rgba(255, 10, 140, .10), transparent 24%),
        linear-gradient(90deg, #071226 0%, #090f28 40%, #220437 100%);
    color: #fff;
}

.vibe-ad-target__coverage-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(370px, .82fr);
    gap: 30px;
    align-items: stretch;
}

.vibe-ad-target__coverage-content h2 {
    margin: 3px 0 10px;
    color: #fff;
    font-size: 33px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.035em;
}

.vibe-ad-target__coverage-top {
    display: grid;
    grid-template-columns: 1fr 180px;
    gap: 18px;
    align-items: center;
}

.vibe-ad-target__coverage-top ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.vibe-ad-target__coverage-top li {
    position: relative;
    padding: 3px 0 3px 23px;
    color: rgba(255,255,255,.93);
    font-size: 12px;
    line-height: 1.35;
}

.vibe-ad-target__coverage-top li::before {
    content: "●";
    position: absolute;
    left: 2px;
    top: 3px;
    color: var(--ad-pink);
}

.vibe-ad-target__coverage-visual {
    position: relative;
    height: 145px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vibe-ad-target__coverage-visual::before {
    content: "";
    position: absolute;
    width: 112px;
    height: 128px;
    border: 1px solid rgba(255,255,255,.30);
    border-radius: 47% 53% 54% 46% / 37% 42% 58% 63%;
    transform: rotate(11deg);
}

.vibe-ad-target__coverage-visual strong {
    color: rgba(255,255,255,.16);
    font-size: 42px;
    font-weight: 950;
}

.vibe-ad-target__coverage-ring {
    position: absolute;
    border: 1px solid rgba(255, 10, 140, .45);
    border-radius: 50%;
}

.vibe-ad-target__coverage-ring.ring-1 { width: 82px; height: 82px; }
.vibe-ad-target__coverage-ring.ring-2 { width: 112px; height: 112px; }
.vibe-ad-target__coverage-ring.ring-3 { width: 142px; height: 142px; }

.vibe-ad-target__coverage-dot {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ad-pink);
    box-shadow: 0 0 18px rgba(255, 10, 140, .9);
}

.vibe-ad-target__coverage-dot.dot-1 { transform: translate(-34px,-38px); }
.vibe-ad-target__coverage-dot.dot-2 { transform: translate(28px,-10px); }
.vibe-ad-target__coverage-dot.dot-3 { transform: translate(-8px,34px); }
.vibe-ad-target__coverage-dot.dot-4 { transform: translate(39px,45px); }

.vibe-ad-target__audience {
    margin-top: 23px;
    padding: 20px 0 25px;
    border-top: 1px solid rgba(255,255,255,.14);
}

.vibe-ad-target__audience-number {
    display: block;
    margin-top: 3px;
    color: #fff;
    font-size: clamp(36px, 4vw, 53px);
    line-height: .95;
    font-weight: 950;
    letter-spacing: -.045em;
}

.vibe-ad-target__audience > b {
    display: block;
    margin-top: 4px;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
}

.vibe-ad-target__audience > p {
    margin: 4px 0 17px;
    color: rgba(255,255,255,.82);
    font-size: 12px;
}

.vibe-ad-target__audience-mini {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.vibe-ad-target__audience-mini span {
    color: rgba(255,255,255,.72);
    font-size: 10px;
    line-height: 1.3;
}

.vibe-ad-target__audience-mini strong {
    display: block;
    margin-bottom: 2px;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.vibe-ad-target__methodology {
    margin: 0;
    padding: 0 0 22px;
    color: rgba(255,255,255,.52);
    font-size: 10px;
    line-height: 1.45;
}

.vibe-ad-target__proposal-wrap {
    min-width: 0;
}

.vibe-ad-target .vibe-ad-v2__proposal {
    height: 100%;
    margin: 0;
    padding: 0 0 28px;
    background: transparent;
    border: 0;
    border-radius: 0;
    color: #fff;
    box-shadow: none;
}

.vibe-ad-target .vibe-ad-v2__proposal > h2 {
    margin: 0 0 5px;
    color: #fff;
    font-size: 18px;
    line-height: 1.1;
    font-weight: 900;
}

.vibe-ad-target .vibe-ad-v2__proposal p {
    color: rgba(255,255,255,.82);
}

.vibe-ad-target .vibe-ad-v2__form {
    display: grid;
    gap: 8px;
}

.vibe-ad-target .vibe-ad-v2__form label {
    color: #fff;
    font-size: 11px;
    font-weight: 750;
}

.vibe-ad-target .vibe-ad-v2__form input,
.vibe-ad-target .vibe-ad-v2__form select,
.vibe-ad-target .vibe-ad-v2__form textarea {
    width: 100%;
    min-height: 44px;
    padding: 10px 11px;
    border: 1px solid #ccbfe0;
    border-radius: 3px;
    background: #fff;
    color: #101827;
    font: inherit;
    font-size: 12px;
}

.vibe-ad-target .vibe-ad-v2__form textarea {
    min-height: 108px;
    resize: vertical;
}

.vibe-ad-target .vibe-ad-v2__submit {
    min-height: 48px;
    border: 0;
    border-radius: 3px;
    background: linear-gradient(90deg, #c1006a 0%, #ff0a8c 100%);
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
}

/* FAQ */

.vibe-ad-target__faq {
    padding: 32px 0 36px;
}

.vibe-ad-target__faq-grid {
    display: grid;
    grid-template-columns: .75fr 1.45fr;
    gap: 50px;
}

.vibe-ad-target__faq-list {
    border-top: 1px solid #d9d2e4;
}

.vibe-ad-target__faq-list details {
    border-bottom: 1px solid #d9d2e4;
}

.vibe-ad-target__faq-list summary {
    min-height: 47px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    cursor: pointer;
    list-style: none;
    color: #111928;
    font-size: 13px;
    font-weight: 650;
}

.vibe-ad-target__faq-list summary::-webkit-details-marker {
    display: none;
}

.vibe-ad-target__faq-list summary b {
    color: var(--ad-pink);
    font-size: 22px;
    font-weight: 500;
}

.vibe-ad-target__faq-list details[open] summary b {
    transform: rotate(45deg);
}

.vibe-ad-target__faq-list details > div {
    padding: 0 30px 15px 0;
    color: #4d5666;
    font-size: 12px;
    line-height: 1.5;
}

/* MEDIA PACK */

.vibe-ad-target__media-pack {
    position: relative;
    min-height: 170px;
    background:
        var(--ad-purple-deep)
        var(--ad-media-image, none)
        center 48% / cover
        no-repeat;
    color: #fff;
}

.vibe-ad-target__media-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(5, 8, 20, .97) 0%,
            rgba(32, 4, 48, .90) 52%,
            rgba(55, 9, 76, .78) 100%
        );
}

.vibe-ad-target__media-inner {
    position: relative;
    min-height: 170px;
    display: grid;
    grid-template-columns: 145px 1fr auto;
    gap: 28px;
    align-items: center;
}

.vibe-ad-target__media-document {
    width: 105px;
    height: 130px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 14px;
    background: #11192c;
    border: 1px solid rgba(255,255,255,.30);
    transform: rotate(-9deg);
    box-shadow: 0 13px 24px rgba(0,0,0,.35);
}

.vibe-ad-target__media-document small {
    color: #fff;
    font-size: 11px;
    font-weight: 900;
}

.vibe-ad-target__media-document strong {
    margin-top: 15px;
    color: #fff;
    font-size: 13px;
    font-weight: 950;
}

.vibe-ad-target__media-copy h2 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 27px;
    line-height: 1;
    font-weight: 950;
    text-transform: uppercase;
}

.vibe-ad-target__media-copy p {
    max-width: 570px;
    margin: 0;
    color: rgba(255,255,255,.92);
    font-size: 13px;
    line-height: 1.4;
}

/* RESPONSIVE */

@media (max-width: 1050px) {
    .vibe-ad-target__hero-note {
        display: none;
    }

    .vibe-ad-target__hero-copy {
        width: min(700px, 82%);
    }

    .vibe-ad-target__why-grid,
    .vibe-ad-target__coverage-grid,
    .vibe-ad-target__faq-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__coverage-grid {
        gap: 16px;
    }

    .vibe-ad-target__proposal-wrap {
        padding-top: 0;
    }

    .vibe-ad-target__media-inner {
        grid-template-columns: 120px 1fr auto;
    }
}

@media (max-width: 780px) {
    .vibe-ad-target__inner {
        width: min(100% - 30px, 1180px);
    }

    .vibe-ad-target__hero,
    .vibe-ad-target__hero-inner {
        min-height: 390px;
    }

    .vibe-ad-target__hero-copy {
        width: 100%;
        padding: 44px 0;
    }

    .vibe-ad-target__hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(5, 8, 20, .95),
                rgba(24, 2, 38, .68)
            );
    }

    .vibe-ad-target__hero-copy > p {
        max-width: 540px;
        font-size: 17px;
    }

    .vibe-ad-target__stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .vibe-ad-target__stat:nth-child(3)::before {
        display: none;
    }

    .vibe-ad-target__stat:nth-child(n+3) {
        border-top: 1px solid rgba(255,255,255,.10);
    }

    .vibe-ad-target__benefits,
    .vibe-ad-target__option-grid,
    .vibe-ad-target__audio-grid {
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__process-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .vibe-ad-target__process-arrow {
        display: none;
    }

    .vibe-ad-target__audio-heading {
        align-items: start;
        flex-direction: column;
        gap: 7px;
    }

    .vibe-ad-target__logo-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .vibe-ad-target__coverage-top {
        grid-template-columns: 1fr 150px;
    }

    .vibe-ad-target__media-inner {
        grid-template-columns: 90px 1fr;
        padding: 22px 0;
    }

    .vibe-ad-target__media-inner > .vibe-ad-target__button {
        grid-column: 1 / -1;
        width: max-content;
    }

    .vibe-ad-target__media-document {
        width: 78px;
        height: 102px;
    }
}

@media (max-width: 520px) {
    .vibe-ad-target__inner {
        width: min(100% - 24px, 1180px);
    }

    .vibe-ad-target__hero,
    .vibe-ad-target__hero-inner {
        min-height: 360px;
    }

    .vibe-ad-target__hero h1 {
        font-size: clamp(42px, 14vw, 58px);
    }

    .vibe-ad-target__hero-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__button {
        width: 100%;
    }

    .vibe-ad-target__stat {
        min-height: 110px;
        padding: 18px 10px;
    }

    .vibe-ad-target__stat strong {
        font-size: 17px;
    }

    .vibe-ad-target__why {
        padding: 30px 0;
    }

    .vibe-ad-target__benefits {
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__coverage-top {
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__coverage-visual {
        display: none;
    }

    .vibe-ad-target__audience-mini {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .vibe-ad-target__logo-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .vibe-ad-target__faq-grid {
        gap: 22px;
    }

    .vibe-ad-target__media-inner {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .vibe-ad-target__media-document {
        display: none;
    }

    .vibe-ad-target__media-inner > .vibe-ad-target__button {
        width: 100%;
    }
}

/* === END ENERGY 106 ADVERTISING LANDING PAGE TARGET DESIGN === */

/* === VIBE ON AIR NOW IMAGE FILL FIX START === */

/*
 * Only fix the presenter image inside the Vibe "On Air Now" visual box.
 * Do not change any other schedule images or backgrounds.
 */

.vibe-site--inner .rl-vibe-on-air-now__image,
.vibe-site--inner .rl-vibe-on-air-card__image,
.vibe-site--inner .rl-vibe-live-now__image,
.vibe-site--inner .rl-vibe-now-playing-hero__image,
.vibe-site--inner .rl-vibe-hero-now__image {
    overflow: hidden !important;
}

.vibe-site--inner .rl-vibe-on-air-now__image picture,
.vibe-site--inner .rl-vibe-on-air-now__image a,
.vibe-site--inner .rl-vibe-on-air-now__image span,
.vibe-site--inner .rl-vibe-on-air-card__image picture,
.vibe-site--inner .rl-vibe-on-air-card__image a,
.vibe-site--inner .rl-vibe-on-air-card__image span,
.vibe-site--inner .rl-vibe-live-now__image picture,
.vibe-site--inner .rl-vibe-live-now__image a,
.vibe-site--inner .rl-vibe-live-now__image span,
.vibe-site--inner .rl-vibe-now-playing-hero__image picture,
.vibe-site--inner .rl-vibe-now-playing-hero__image a,
.vibe-site--inner .rl-vibe-now-playing-hero__image span,
.vibe-site--inner .rl-vibe-hero-now__image picture,
.vibe-site--inner .rl-vibe-hero-now__image a,
.vibe-site--inner .rl-vibe-hero-now__image span {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

.vibe-site--inner .rl-vibe-on-air-now__image img,
.vibe-site--inner .rl-vibe-on-air-card__image img,
.vibe-site--inner .rl-vibe-live-now__image img,
.vibe-site--inner .rl-vibe-now-playing-hero__image img,
.vibe-site--inner .rl-vibe-hero-now__image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center top !important;
}

/* === VIBE ON AIR NOW IMAGE FILL FIX END === */

/* === VIBE LIVE SCHEDULE IMAGE FULL HEIGHT START === */

/*
 * Actual Vibe Schedule page:
 *
 * .vibe-schedule-show.is-live
 * .vibe-schedule-show__image
 *
 * Normal schedule cards retain the existing 142 × 142 image.
 * The LIVE card alone stretches its image column to the full
 * height of the row.
 */
@media (min-width: 768px) {

    .vibe-site--inner
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image {
        position: relative !important;

        width: 142px !important;
        min-width: 142px !important;
        max-width: 142px !important;

        height: auto !important;
        min-height: 142px !important;
        max-height: none !important;

        align-self: stretch !important;

        overflow: hidden !important;
    }

    .vibe-site--inner
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image > img {
        position: absolute !important;
        inset: 0 !important;

        display: block !important;

        width: 100% !important;
        height: 100% !important;

        min-width: 100% !important;
        min-height: 100% !important;

        max-width: none !important;
        max-height: none !important;

        object-fit: cover !important;
        object-position: center top !important;
    }
}

/* === VIBE LIVE SCHEDULE IMAGE FULL HEIGHT END === */



/* === VIBE ADVERTISING PAGE REAL BRAND ALIGNMENT === */

/*
 * Advertising landing page now consumes Vibe's actual theme tokens.
 * No separate advertising colour palette.
 */

.vibe-ad-target {
    --ad-bg: var(--vibe-bg-page);
    --ad-bg-dark: var(--vibe-bg-card-deep);
    --ad-panel: var(--vibe-bg-card);
    --ad-panel-alt: var(--vibe-bg-card-alt);
    --ad-panel-soft: var(--vibe-bg-card-raised);
    --ad-border: var(--vibe-border-medium);
    --ad-navy: var(--vibe-bg-card-deep);
    --ad-navy-deep: var(--vibe-bg-header);
    --ad-purple-deep: var(--vibe-bg-card-deep);
    --ad-purple-soft: var(--vibe-bg-card);
    --ad-purple-mid: var(--vibe-bg-card-raised);
    --ad-pink: var(--vibe-brand-primary);
    --ad-pink-soft: var(--vibe-brand-primary-hover);
    --ad-text: var(--vibe-text-primary);
    --ad-text-soft: var(--vibe-text-muted);
    --ad-white: var(--vibe-text-primary);

    background: var(--vibe-bg-shell);
    color: var(--vibe-text-primary);
    font-family: var(--vibe-font-body);
}

/* ---------------------------------------------------------
   TYPE / BRAND BASICS
   --------------------------------------------------------- */

.vibe-ad-target h1,
.vibe-ad-target h2,
.vibe-ad-target h3 {
    font-family: var(--vibe-font-heading);
}

.vibe-ad-target__eyebrow,
.vibe-ad-target__section-label {
    color: var(--vibe-brand-primary-hover);
    font-family: var(--vibe-font-button);
}

.vibe-ad-target__button,
.vibe-ad-target__option > a,
.vibe-ad-target .vibe-ad-v2__submit {
    font-family: var(--vibe-font-button);
}

/* ---------------------------------------------------------
   HERO
   --------------------------------------------------------- */

.vibe-ad-target__hero {
    background-color: var(--vibe-bg-card-deep);
}

.vibe-ad-target__hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(23, 6, 33, .98) 0%,
            rgba(29, 6, 45, .91) 38%,
            rgba(37, 6, 56, .55) 68%,
            rgba(37, 6, 56, .12) 100%
        );
}

.vibe-ad-target__hero h1 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__hero h1::after {
    background: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__hero-copy > p {
    color: var(--vibe-text-secondary);
}

.vibe-ad-target__hero-note strong {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__button--pink {
    background: var(--vibe-button-bg);
    border-color: var(--vibe-button-bg);
    color: var(--vibe-button-text);
}

.vibe-ad-target__button--pink:hover {
    background: var(--vibe-button-bg-hover);
    border-color: var(--vibe-button-bg-hover);
}

.vibe-ad-target__button--outline {
    background: var(--vibe-bg-card-deep);
    border-color: var(--vibe-border-strong);
    color: var(--vibe-text-primary);
}

.vibe-ad-target__button--outline:hover {
    border-color: var(--vibe-brand-primary-hover);
}

/* ---------------------------------------------------------
   AUDIENCE STATS
   --------------------------------------------------------- */

.vibe-ad-target__stats {
    background: var(--vibe-bg-card-deep);
    border-color: var(--vibe-border-subtle);
}

.vibe-ad-target__stat + .vibe-ad-target__stat::before {
    background: var(--vibe-border-strong);
}

.vibe-ad-target__stat-icon {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__stat strong {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__stat small {
    color: var(--vibe-text-muted);
}

/* ---------------------------------------------------------
   WHY ADVERTISE
   --------------------------------------------------------- */

.vibe-ad-target__why {
    background: var(--vibe-bg-card);
}

.vibe-ad-target__why-copy h2 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__why-copy p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__benefit h3 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__benefit p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__benefit-icon svg {
    stroke: var(--vibe-brand-primary-hover);
}

/* ---------------------------------------------------------
   HOW IT WORKS
   --------------------------------------------------------- */

.vibe-ad-target__process {
    background: var(--vibe-bg-card-deep);
    color: var(--vibe-text-primary);
}

.vibe-ad-target__process-heading h2,
.vibe-ad-target__process-grid h3 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__process-grid p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__process-number {
    color: var(--vibe-text-faint);
    opacity: .34;
}

.vibe-ad-target__process-arrow {
    color: var(--vibe-brand-primary-hover);
}

/* ---------------------------------------------------------
   WAYS TO ADVERTISE
   --------------------------------------------------------- */

.vibe-ad-target__options {
    background: var(--vibe-bg-card-alt);
}

.vibe-ad-target__options h2 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__option {
    background: var(--vibe-bg-card);
    border-color: var(--vibe-border-medium);
}

.vibe-ad-target__option-body {
    background: var(--vibe-bg-card);
}

.vibe-ad-target__option h3 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__option p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__option > a {
    background: var(--vibe-button-bg);
    color: var(--vibe-button-text);
}

.vibe-ad-target__option > a:hover {
    background: var(--vibe-button-bg-hover);
}

/* ---------------------------------------------------------
   AUDIO
   --------------------------------------------------------- */

.vibe-ad-target__audio {
    background: var(--vibe-bg-card);
}

.vibe-ad-target__audio-heading p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__audio-heading > strong {
    color: var(--vibe-text-secondary);
}

.vibe-ad-target__audio-player {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-medium);
}

.vibe-ad-target__audio-player button {
    background: var(--vibe-button-bg);
    color: var(--vibe-button-text);
}

.vibe-ad-target__audio-player button:hover {
    background: var(--vibe-button-bg-hover);
}

.vibe-ad-target__audio-player strong {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__audio-player small {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__audio-line {
    background: var(--vibe-border-strong);
}

/* ---------------------------------------------------------
   TRUSTED ADVERTISERS
   --------------------------------------------------------- */

.vibe-ad-target__logos {
    background: var(--vibe-bg-card-alt);
    border-color: var(--vibe-border-subtle);
}

.vibe-ad-target__logo img {
    filter: grayscale(1) brightness(0) invert(1);
    opacity: .9;
}

.vibe-ad-target__logo-more {
    color: var(--vibe-text-muted);
}

/* ---------------------------------------------------------
   COVERAGE + AUDIENCE + PROPOSAL
   --------------------------------------------------------- */

.vibe-ad-target__coverage {
    background: var(--vibe-bg-card-deep);
    color: var(--vibe-text-primary);
}

.vibe-ad-target__coverage-content h2 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__coverage-top li {
    color: var(--vibe-text-secondary);
}

.vibe-ad-target__coverage-top li::before {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__coverage-visual::before {
    border-color: var(--vibe-border-strong);
}

.vibe-ad-target__coverage-visual strong {
    color: var(--vibe-text-faint);
    opacity: .35;
}

.vibe-ad-target__coverage-ring {
    border-color: var(--vibe-border-accent);
}

.vibe-ad-target__coverage-dot {
    background: var(--vibe-brand-primary-hover);
    box-shadow: 0 0 18px var(--vibe-brand-primary-hover-a34);
}

.vibe-ad-target__audience {
    border-color: var(--vibe-border-medium);
}

.vibe-ad-target__audience-number,
.vibe-ad-target__audience > b,
.vibe-ad-target__audience-mini strong {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__audience > p,
.vibe-ad-target__audience-mini span {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__methodology {
    color: var(--vibe-text-faint);
}

/* Existing working proposal form */

.vibe-ad-target .vibe-ad-v2__proposal {
    color: var(--vibe-text-primary);
}

.vibe-ad-target .vibe-ad-v2__proposal > h2 {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target .vibe-ad-v2__proposal p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target .vibe-ad-v2__form label {
    color: var(--vibe-text-secondary);
}

.vibe-ad-target .vibe-ad-v2__form input,
.vibe-ad-target .vibe-ad-v2__form select,
.vibe-ad-target .vibe-ad-v2__form textarea {
    background: var(--vibe-bg-card-raised);
    border-color: var(--vibe-border-strong);
    color: var(--vibe-text-primary);
}

.vibe-ad-target .vibe-ad-v2__form input::placeholder,
.vibe-ad-target .vibe-ad-v2__form textarea::placeholder {
    color: var(--vibe-text-faint);
}

.vibe-ad-target .vibe-ad-v2__form input:focus,
.vibe-ad-target .vibe-ad-v2__form select:focus,
.vibe-ad-target .vibe-ad-v2__form textarea:focus {
    outline: 0;
    border-color: var(--vibe-brand-primary-hover);
    box-shadow: 0 0 0 2px var(--vibe-brand-primary-a20);
}

.vibe-ad-target .vibe-ad-v2__submit {
    background: var(--vibe-button-bg);
    color: var(--vibe-button-text);
}

.vibe-ad-target .vibe-ad-v2__submit:hover {
    background: var(--vibe-button-bg-hover);
}

/* ---------------------------------------------------------
   FAQ
   --------------------------------------------------------- */

.vibe-ad-target__faq {
    background: var(--vibe-bg-card);
}

.vibe-ad-target__faq h2 {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__faq-intro p {
    color: var(--vibe-text-muted);
}

.vibe-ad-target__faq-list {
    border-color: var(--vibe-border-medium);
}

.vibe-ad-target__faq-list details {
    border-color: var(--vibe-border-medium);
}

.vibe-ad-target__faq-list summary {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__faq-list summary:hover {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__faq-list summary b {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__faq-list details > div {
    color: var(--vibe-text-muted);
}

/* ---------------------------------------------------------
   MEDIA PACK
   --------------------------------------------------------- */

.vibe-ad-target__media-pack {
    background-color: var(--vibe-bg-footer);
}

.vibe-ad-target__media-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(18, 0, 28, .98) 0%,
            rgba(23, 6, 33, .93) 52%,
            rgba(37, 6, 56, .86) 100%
        );
}

.vibe-ad-target__media-document {
    background: var(--vibe-bg-card);
    border-color: var(--vibe-border-strong);
}

.vibe-ad-target__media-document small {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__media-document strong {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__media-copy h2 {
    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__media-copy p {
    color: var(--vibe-text-secondary);
}

/* Mobile separators use the same Vibe system */

@media (max-width: 780px) {
    .vibe-ad-target__stat:nth-child(n+3) {
        border-color: var(--vibe-border-subtle);
    }
}

/* === END VIBE ADVERTISING PAGE REAL BRAND ALIGNMENT === */


/* === VIBE ADVERTISING FULL RESPONSIVE PASS === */

/*
 * Follows Vibe's existing responsive rhythm:
 * desktop -> 1120 -> 980 -> 768 -> 520 -> 430 -> 390 -> 360.
 */

/* ---------------------------------------------------------
   GLOBAL SAFETY
   --------------------------------------------------------- */

.vibe-ad-target,
.vibe-ad-target section,
.vibe-ad-target article,
.vibe-ad-target div {
    min-width: 0;
}

.vibe-ad-target img {
    display: block;
    max-width: 100%;
}

.vibe-ad-target h1,
.vibe-ad-target h2,
.vibe-ad-target h3,
.vibe-ad-target p,
.vibe-ad-target li,
.vibe-ad-target summary,
.vibe-ad-target a {
    overflow-wrap: break-word;
}

.vibe-ad-target__button,
.vibe-ad-target__option > a {
    text-align: center;
    white-space: normal;
}

.vibe-ad-target__option,
.vibe-ad-target__audio-player,
.vibe-ad-target__benefit,
.vibe-ad-target__process-grid article {
    min-width: 0;
}


/* =========================================================
   LARGE DESKTOP — 1280 / 1440+
   ========================================================= */

@media (min-width: 1280px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 48px), 1180px);
    }

    .vibe-ad-target__hero-copy {
        max-width: 650px;
    }

    .vibe-ad-target__coverage-grid {
        grid-template-columns:
            minmax(0, 1.18fr)
            minmax(370px, .82fr);
    }
}


/* =========================================================
   LAPTOP / SMALL DESKTOP — 1120
   ========================================================= */

@media (max-width: 1120px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 36px), 1180px);
    }

    .vibe-ad-target__hero-copy {
        width: min(700px, 72%);
    }

    .vibe-ad-target__hero h1 {
        font-size: clamp(48px, 5.2vw, 68px);
    }

    .vibe-ad-target__hero-note {
        right: 18px;
        width: 155px;
    }

    .vibe-ad-target__hero-note strong {
        font-size: 24px;
    }

    .vibe-ad-target__hero-note span {
        font-size: 17px;
    }

    .vibe-ad-target__why-grid {
        gap: 36px;
    }

    .vibe-ad-target__benefits {
        gap: 23px 27px;
    }

    .vibe-ad-target__process-grid {
        gap: 10px;
    }

    .vibe-ad-target__process-grid article {
        gap: 9px;
    }

    .vibe-ad-target__process-number {
        font-size: 40px;
    }

    .vibe-ad-target__option-grid {
        gap: 12px;
    }

    .vibe-ad-target__audio-grid {
        gap: 12px;
    }

    .vibe-ad-target__coverage-grid {
        grid-template-columns:
            minmax(0, 1.05fr)
            minmax(340px, .95fr);
        gap: 24px;
    }

    .vibe-ad-target__faq-grid {
        gap: 36px;
    }

    .vibe-ad-target__media-inner {
        grid-template-columns: 120px 1fr auto;
        gap: 22px;
    }
}


/* =========================================================
   TABLET LANDSCAPE / SMALL LAPTOP — 980
   ========================================================= */

@media (max-width: 980px) {

    .vibe-ad-target__hero,
    .vibe-ad-target__hero-inner {
        min-height: 400px;
    }

    .vibe-ad-target__hero-copy {
        width: min(720px, 82%);
    }

    .vibe-ad-target__hero-note {
        display: none;
    }

    .vibe-ad-target__why-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .vibe-ad-target__why-copy {
        max-width: 720px;
    }

    .vibe-ad-target__coverage-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .vibe-ad-target__proposal-wrap {
        width: 100%;
    }

    .vibe-ad-target .vibe-ad-v2__proposal {
        width: 100%;
    }

    .vibe-ad-target__faq-grid {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .vibe-ad-target__faq-intro {
        max-width: 680px;
    }

    .vibe-ad-target__media-inner {
        grid-template-columns: 110px 1fr auto;
    }
}


/* =========================================================
   TABLET / MOBILE SWITCH — 768
   ========================================================= */

@media (max-width: 768px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 28px), 1180px);
    }

    /* HERO */

    .vibe-ad-target__hero,
    .vibe-ad-target__hero-inner {
        min-height: 380px;
    }

    .vibe-ad-target__hero {
        background-position: center center;
    }

    .vibe-ad-target__hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(23, 6, 33, .98) 0%,
                rgba(29, 6, 45, .88) 58%,
                rgba(29, 6, 45, .52) 100%
            );
    }

    .vibe-ad-target__hero-copy {
        width: 100%;
        max-width: 650px;
        padding: 44px 0;
    }

    .vibe-ad-target__hero h1 {
        max-width: 580px;
        font-size: clamp(42px, 8.5vw, 58px);
        line-height: .91;
    }

    .vibe-ad-target__hero-copy > p {
        max-width: 540px;
        font-size: 16px;
        line-height: 1.45;
    }

    /* STATS */

    .vibe-ad-target__stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-ad-target__stat {
        min-height: 108px;
        padding: 18px 14px;
    }

    .vibe-ad-target__stat:nth-child(3)::before {
        display: none;
    }

    .vibe-ad-target__stat:nth-child(n + 3) {
        border-top: 1px solid var(--vibe-border-subtle);
    }

    /* WHY */

    .vibe-ad-target__why {
        padding: 34px 0;
    }

    .vibe-ad-target__why-copy h2,
    .vibe-ad-target__options h2,
    .vibe-ad-target__faq h2 {
        font-size: clamp(30px, 6vw, 40px);
    }

    .vibe-ad-target__benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    /* PROCESS */

    .vibe-ad-target__process {
        padding: 30px 0 32px;
    }

    .vibe-ad-target__process-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .vibe-ad-target__process-grid article {
        grid-template-columns: 52px minmax(0, 1fr);
        gap: 12px;
        align-items: start;
    }

    .vibe-ad-target__process-number {
        font-size: 42px;
    }

    .vibe-ad-target__process-arrow {
        display: none;
    }

    /* ADVERTISING OPTIONS */

    .vibe-ad-target__options {
        padding: 32px 0;
    }

    .vibe-ad-target__option-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .vibe-ad-target__option-image {
        height: 180px;
    }

    /* AUDIO */

    .vibe-ad-target__audio {
        padding: 27px 0;
    }

    .vibe-ad-target__audio-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 7px;
    }

    .vibe-ad-target__audio-grid {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    /* LOGOS */

    .vibe-ad-target__logo-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }

    /* COVERAGE */

    .vibe-ad-target__coverage {
        padding-top: 32px;
    }

    .vibe-ad-target__coverage-top {
        grid-template-columns: minmax(0, 1fr) 150px;
    }

    .vibe-ad-target__audience-number {
        font-size: clamp(38px, 8vw, 50px);
    }

    /* FORM */

    .vibe-ad-target .vibe-ad-v2__form {
        width: 100%;
        grid-template-columns: 1fr !important;
    }

    .vibe-ad-target .vibe-ad-v2__form > * {
        min-width: 0;
        grid-column: 1 / -1 !important;
    }

    .vibe-ad-target .vibe-ad-v2__form input,
    .vibe-ad-target .vibe-ad-v2__form select,
    .vibe-ad-target .vibe-ad-v2__form textarea {
        max-width: 100%;
    }

    /* FAQ */

    .vibe-ad-target__faq {
        padding: 32px 0;
    }

    .vibe-ad-target__faq-grid {
        gap: 20px;
    }

    /* MEDIA PACK */

    .vibe-ad-target__media-inner {
        grid-template-columns: 90px minmax(0, 1fr);
        gap: 20px;
        padding: 24px 0;
    }

    .vibe-ad-target__media-inner > .vibe-ad-target__button {
        grid-column: 1 / -1;
        width: max-content;
        max-width: 100%;
    }

    .vibe-ad-target__media-document {
        width: 78px;
        height: 102px;
    }
}


/* =========================================================
   LARGE MOBILE — 520
   ========================================================= */

@media (max-width: 520px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 24px), 1180px);
    }

    .vibe-ad-target__section-label,
    .vibe-ad-target__eyebrow {
        font-size: 11px;
    }

    /* HERO */

    .vibe-ad-target__hero,
    .vibe-ad-target__hero-inner {
        min-height: 350px;
    }

    .vibe-ad-target__hero-copy {
        padding: 38px 0 40px;
    }

    .vibe-ad-target__hero h1 {
        margin-top: 7px;
        font-size: clamp(39px, 12vw, 50px);
    }

    .vibe-ad-target__hero-copy > p {
        font-size: 15px;
        line-height: 1.45;
    }

    .vibe-ad-target__hero-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 22px;
    }

    .vibe-ad-target__button {
        width: 100%;
        min-height: 49px;
        padding: 0 17px;
    }

    /* STATS */

    .vibe-ad-target__stat {
        min-height: 104px;
        padding: 17px 10px;
    }

    .vibe-ad-target__stat-icon {
        font-size: 19px;
    }

    .vibe-ad-target__stat strong {
        font-size: 17px;
    }

    .vibe-ad-target__stat small {
        font-size: 11px;
    }

    /* WHY */

    .vibe-ad-target__why-copy h2,
    .vibe-ad-target__options h2,
    .vibe-ad-target__faq h2 {
        font-size: clamp(29px, 9vw, 37px);
    }

    .vibe-ad-target__why-copy p {
        font-size: 14px;
    }

    .vibe-ad-target__benefits {
        grid-template-columns: 1fr;
        gap: 19px;
    }

    /* PROCESS */

    .vibe-ad-target__process-heading h2 {
        font-size: 31px;
    }

    .vibe-ad-target__process-grid article {
        grid-template-columns: 44px minmax(0, 1fr);
    }

    .vibe-ad-target__process-number {
        font-size: 36px;
    }

    /* OPTIONS */

    .vibe-ad-target__option-image {
        height: 150px;
    }

    .vibe-ad-target__option-body {
        padding: 15px;
    }

    /* AUDIO */

    .vibe-ad-target__audio-player {
        grid-template-columns: 38px minmax(0, 1fr) 16px;
        gap: 10px;
        padding: 11px;
    }

    .vibe-ad-target__audio-player button {
        width: 34px;
        height: 34px;
    }

    /* LOGOS */

    .vibe-ad-target__logo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 17px 20px;
    }

    .vibe-ad-target__logo img {
        max-height: 50px;
    }

    /* COVERAGE */

    .vibe-ad-target__coverage-top {
        grid-template-columns: 1fr;
    }

    .vibe-ad-target__coverage-visual {
        display: none;
    }

    .vibe-ad-target__coverage-content h2 {
        font-size: 30px;
    }

    .vibe-ad-target__coverage-top li {
        padding-top: 4px;
        padding-bottom: 4px;
        font-size: 12px;
    }

    .vibe-ad-target__audience-number {
        font-size: 39px;
    }

    .vibe-ad-target__audience > b {
        font-size: 14px;
    }

    .vibe-ad-target__audience-mini {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* FORM — 16px prevents iOS zoom */

    .vibe-ad-target .vibe-ad-v2__form input,
    .vibe-ad-target .vibe-ad-v2__form select,
    .vibe-ad-target .vibe-ad-v2__form textarea {
        min-height: 47px;
        font-size: 16px;
    }

    .vibe-ad-target .vibe-ad-v2__form textarea {
        min-height: 120px;
    }

    .vibe-ad-target .vibe-ad-v2__submit {
        min-height: 50px;
    }

    /* FAQ */

    .vibe-ad-target__faq-list summary {
        min-height: 52px;
        gap: 12px;
        font-size: 12px;
        line-height: 1.35;
    }

    .vibe-ad-target__faq-list summary b {
        flex: 0 0 auto;
    }

    .vibe-ad-target__faq-list details > div {
        padding-right: 0;
    }

    /* MEDIA PACK */

    .vibe-ad-target__media-inner {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .vibe-ad-target__media-document {
        display: none;
    }

    .vibe-ad-target__media-copy h2 {
        font-size: 24px;
    }

    .vibe-ad-target__media-inner > .vibe-ad-target__button {
        width: 100%;
    }
}


/* =========================================================
   MOBILE — 430
   ========================================================= */

@media (max-width: 430px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 20px), 1180px);
    }

    .vibe-ad-target__hero h1 {
        font-size: clamp(38px, 11.5vw, 46px);
    }

    .vibe-ad-target__hero-copy > p {
        font-size: 14.5px;
    }

    .vibe-ad-target__stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .vibe-ad-target__stat {
        min-height: 100px;
        padding-left: 7px;
        padding-right: 7px;
    }

    .vibe-ad-target__stat strong {
        font-size: 16px;
    }

    .vibe-ad-target__stat small {
        font-size: 10.5px;
    }

    .vibe-ad-target__why,
    .vibe-ad-target__options,
    .vibe-ad-target__faq {
        padding-top: 28px;
        padding-bottom: 28px;
    }

    .vibe-ad-target__benefit {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 10px;
    }

    .vibe-ad-target__benefit-icon svg {
        width: 31px;
        height: 31px;
    }

    .vibe-ad-target__process-grid h3 {
        font-size: 14px;
    }

    .vibe-ad-target__process-grid p {
        font-size: 11.5px;
    }

    .vibe-ad-target__option h3 {
        font-size: 15px;
    }

    .vibe-ad-target__option p {
        font-size: 11.5px;
    }

    .vibe-ad-target__audience-number {
        font-size: 36px;
    }

    .vibe-ad-target__faq-intro p {
        font-size: 13px;
    }
}


/* =========================================================
   SMALL MOBILE — 390
   ========================================================= */

@media (max-width: 390px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 18px), 1180px);
    }

    .vibe-ad-target__hero h1 {
        font-size: 38px;
        letter-spacing: -.045em;
    }

    .vibe-ad-target__hero-copy > p {
        font-size: 14px;
    }

    .vibe-ad-target__button {
        font-size: 11px;
    }

    .vibe-ad-target__stat strong {
        font-size: 15px;
    }

    .vibe-ad-target__why-copy h2,
    .vibe-ad-target__options h2,
    .vibe-ad-target__faq h2 {
        font-size: 30px;
    }

    .vibe-ad-target__process-heading h2 {
        font-size: 29px;
    }

    .vibe-ad-target__process-number {
        font-size: 34px;
    }

    .vibe-ad-target__coverage-content h2 {
        font-size: 28px;
    }

    .vibe-ad-target__audience-number {
        font-size: 34px;
    }
}


/* =========================================================
   EXTRA SMALL MOBILE — 360
   ========================================================= */

@media (max-width: 360px) {

    .vibe-ad-target__inner {
        width: min(calc(100% - 16px), 1180px);
    }

    .vibe-ad-target__hero h1 {
        font-size: 36px;
    }

    .vibe-ad-target__hero-actions {
        gap: 8px;
    }

    .vibe-ad-target__button {
        min-height: 47px;
        padding-left: 13px;
        padding-right: 13px;
    }

    .vibe-ad-target__stat strong {
        font-size: 14px;
    }

    .vibe-ad-target__stat small {
        font-size: 10px;
    }

    .vibe-ad-target__audio-player {
        grid-template-columns: 34px minmax(0, 1fr) 14px;
        gap: 8px;
        padding: 9px;
    }

    .vibe-ad-target__audio-player button {
        width: 32px;
        height: 32px;
    }

    .vibe-ad-target__logo-grid {
        gap: 14px;
    }

    .vibe-ad-target__faq-list summary {
        font-size: 11.5px;
    }
}

/* === END VIBE ADVERTISING FULL RESPONSIVE PASS === */


/* === VIBE ADVERTISING MOBILE TYPOGRAPHY === */

@media (max-width: 520px) {

    /* Coverage list */
    .vibe-ad-target__coverage-top li {
        font-size: 14px;
        line-height: 1.45;
        padding-top: 5px;
        padding-bottom: 5px;
    }

    /* Audience supporting line */
    .vibe-ad-target__audience > p {
        font-size: 14px;
        line-height: 1.45;
    }

    /* Audience mini stats */
    .vibe-ad-target__audience-mini strong {
        font-size: 14px;
        line-height: 1.25;
    }

    .vibe-ad-target__audience-mini span {
        font-size: 12.5px;
        line-height: 1.4;
    }

    /* Audience methodology / disclaimer */
    .vibe-ad-target__methodology {
        font-size: 12px;
        line-height: 1.5;
    }

    /* Proposal introduction */
    .vibe-ad-target .vibe-ad-v2__proposal > p {
        font-size: 14px;
        line-height: 1.5;
    }

    /* Form labels */
    .vibe-ad-target .vibe-ad-v2__form label {
        font-size: 13px;
        line-height: 1.35;
    }

    /* Audio supporting copy */
    .vibe-ad-target__audio-heading p {
        font-size: 14px;
        line-height: 1.45;
    }

    /* FAQ supporting copy */
    .vibe-ad-target__faq-intro p {
        font-size: 14px;
        line-height: 1.5;
    }
}

@media (max-width: 390px) {

    .vibe-ad-target__coverage-top li {
        font-size: 13.5px;
    }

    .vibe-ad-target__audience > p {
        font-size: 13.5px;
    }

    .vibe-ad-target__audience-mini strong {
        font-size: 13.5px;
    }

    .vibe-ad-target__audience-mini span {
        font-size: 12px;
    }

    .vibe-ad-target__methodology {
        font-size: 11.5px;
    }

    .vibe-ad-target .vibe-ad-v2__proposal > p {
        font-size: 13.5px;
    }

    .vibe-ad-target .vibe-ad-v2__form label {
        font-size: 12.5px;
    }
}

/* === END VIBE ADVERTISING MOBILE TYPOGRAPHY === */


/* === VIBE ADVERTISING AUDIO PLAY BUTTON FIX === */

.vibe-ad-target__audio-player button {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;
    flex: 0 0 36px;

    padding: 0;
    border: 0;
    border-radius: 50%;

    background: var(--vibe-button-bg);
    color: transparent;

    font-size: 0;
    line-height: 0;

    appearance: none;
    -webkit-appearance: none;
}

.vibe-ad-target__audio-player button::before {
    content: "";

    display: block;

    width: 0;
    height: 0;

    margin-left: 3px;

    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-left: 9px solid #ffffff;
}

.vibe-ad-target__audio-player button:hover {
    background: var(--vibe-button-bg-hover);
}

@media (max-width: 520px) {

    .vibe-ad-target__audio-player button {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .vibe-ad-target__audio-player button::before {
        border-top-width: 6px;
        border-bottom-width: 6px;
        border-left-width: 9px;
    }
}

@media (max-width: 360px) {

    .vibe-ad-target__audio-player button {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }
}

/* === END VIBE ADVERTISING AUDIO PLAY BUTTON FIX === */

/* === VIBE ADVERTISING PROPOSAL HEADING UPPERCASE === */

.vibe-ad-target .vibe-ad-v2__proposal > h2 {
    text-transform: uppercase;
}

/* === END VIBE ADVERTISING PROPOSAL HEADING UPPERCASE === */

/* === VIBE ADVERTISING STAT SVG ICONS === */

.vibe-ad-target__stat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
}

.vibe-ad-target__stat-icon svg {
    width: 26px;
    height: 26px;
    display: block;
    color: currentColor;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* === END VIBE ADVERTISING STAT SVG ICONS === */

/* === VIBE ADVERTISING STAT ICON REPAIR === */

.vibe-ad-target__stat-icon {
    min-height: 48px;
    margin-bottom: 9px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--vibe-brand-primary-hover);
}

.vibe-ad-target__stat-icon svg {
    width: 44px;
    height: 44px;
    display: block;
    overflow: visible;

    fill: currentColor;
    stroke: none;
}

/*
 * DAB and Online are the exact shared RadioLaunch/Vibe
 * Ways to Listen icons. Do not apply stroke conversion.
 */

.vibe-ad-target__stat-icon--audience svg,
.vibe-ad-target__stat-icon--demographic svg {
    fill: currentColor;
    stroke: none;
}

@media (max-width: 520px) {
    .vibe-ad-target__stat-icon {
        min-height: 42px;
    }

    .vibe-ad-target__stat-icon svg {
        width: 38px;
        height: 38px;
    }
}

/* === END VIBE ADVERTISING STAT ICON REPAIR === */

/* === VIBE ADVERTISING SEO CONTENT === */

.vibe-ad-target__seo-content {
    padding: 38px 0;
    background: var(--vibe-bg-card-alt);
    border-top: 1px solid var(--vibe-border-subtle);
    border-bottom: 1px solid var(--vibe-border-subtle);
}

.vibe-ad-target__seo-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(320px, .8fr);
    gap: 58px;
    align-items: start;
}

.vibe-ad-target__seo-copy h2 {
    max-width: 680px;
    margin: 6px 0 14px;

    color: var(--vibe-text-primary);

    font-family: var(--vibe-font-heading);
    font-size: clamp(31px, 3vw, 43px);
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.035em;
    text-transform: uppercase;
}

.vibe-ad-target__seo-copy p {
    max-width: 720px;
    margin: 0 0 13px;

    color: var(--vibe-text-muted);

    font-size: 14px;
    line-height: 1.55;
}

.vibe-ad-target__seo-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    margin-top: 7px;

    color: var(--vibe-brand-primary-hover);

    font-family: var(--vibe-font-button);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
}

.vibe-ad-target__seo-link:hover {
    color: var(--vibe-text-primary);
}

.vibe-ad-target__radio-proof {
    padding-left: 32px;
    border-left: 1px solid var(--vibe-border-medium);
}

.vibe-ad-target__radio-proof-row {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 17px;
    align-items: center;

    padding: 15px 0;

    border-bottom: 1px solid var(--vibe-border-medium);
}

.vibe-ad-target__radio-proof-row strong {
    color: var(--vibe-brand-primary-hover);

    font-family: var(--vibe-font-heading);
    font-size: 28px;
    font-weight: 950;
    line-height: 1;
    letter-spacing: -.025em;
}

.vibe-ad-target__radio-proof-row span {
    color: var(--vibe-text-secondary);

    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
}

.vibe-ad-target__radio-source {
    margin: 13px 0 0;

    color: var(--vibe-text-faint);

    font-size: 10.5px;
    line-height: 1.45;
}

.vibe-ad-target__radio-source a {
    color: var(--vibe-text-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.vibe-ad-target__radio-source a:hover {
    color: var(--vibe-brand-primary-hover);
}


/* TABLET */

@media (max-width: 980px) {

    .vibe-ad-target__seo-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .vibe-ad-target__radio-proof {
        padding-left: 0;
        padding-top: 23px;

        border-left: 0;
        border-top: 1px solid var(--vibe-border-medium);
    }
}


/* MOBILE */

@media (max-width: 520px) {

    .vibe-ad-target__seo-content {
        padding: 30px 0;
    }

    .vibe-ad-target__seo-grid {
        gap: 25px;
    }

    .vibe-ad-target__seo-copy h2 {
        font-size: clamp(29px, 9vw, 36px);
    }

    .vibe-ad-target__seo-copy p {
        font-size: 14px;
        line-height: 1.55;
    }

    .vibe-ad-target__seo-link {
        font-size: 11px;
    }

    .vibe-ad-target__radio-proof-row {
        grid-template-columns: 76px minmax(0, 1fr);
        gap: 13px;

        padding: 14px 0;
    }

    .vibe-ad-target__radio-proof-row strong {
        font-size: 25px;
    }

    .vibe-ad-target__radio-proof-row span {
        font-size: 12.5px;
        line-height: 1.45;
    }

    .vibe-ad-target__radio-source {
        font-size: 11px;
    }
}

/* === END VIBE ADVERTISING SEO CONTENT === */

/* === VIBE ADVERTISING TESTIMONIAL === */

.vibe-ad-target__testimonial {
    padding: 54px 0 58px;

    background: var(--vibe-bg-card);
    border-top: 1px solid rgba(255, 255, 255, .06);
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.vibe-ad-target__testimonial-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    margin-bottom: 26px;
}

.vibe-ad-target__testimonial-controls {
    display: flex;
    align-items: center;
    gap: 8px;

    flex: 0 0 auto;
}

.vibe-ad-target__testimonial-controls[hidden] {
    display: none;
}

.vibe-ad-target__testimonial-controls button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    padding: 0;

    border: 1px solid rgba(255, 255, 255, .18);
    background: transparent;
    color: var(--vibe-text-primary);

    cursor: pointer;

    transition:
        background .15s ease,
        border-color .15s ease,
        color .15s ease;
}

.vibe-ad-target__testimonial-controls button:hover,
.vibe-ad-target__testimonial-controls button:focus-visible {
    background: var(--vibe-brand-primary);
    border-color: var(--vibe-brand-primary);
    color: #fff;
}

.vibe-ad-target__testimonial-controls svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.vibe-ad-target__testimonial-track {
    --testimonial-gap: 26px;

    display: flex;
    gap: var(--testimonial-gap);

    width: 100%;

    overflow-x: auto;
    overflow-y: hidden;

    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;

    overscroll-behavior-inline: contain;

    scrollbar-width: none;
}

.vibe-ad-target__testimonial-track::-webkit-scrollbar {
    display: none;
}


.vibe-ad-target__testimonial-item {
    position: relative;

    flex:
        0
        0
        calc(
            (
                100%
                - (var(--testimonial-gap) * 3)
            )
            / 4
        );

    min-width: 0;

    padding:
        22px
        20px
        21px;

    border-top:
        3px
        solid
        var(--vibe-brand-primary);

    border-bottom:
        1px
        solid
        rgba(255, 255, 255, .09);

    scroll-snap-align: start;
}

.vibe-ad-target__testimonial-quote {
    display: block;

    height: 31px;

    margin-bottom: 5px;

    color: var(--vibe-brand-primary);

    font-family: Georgia, serif;
    font-size: 54px;
    line-height: .72;
}

.vibe-ad-target__testimonial-item blockquote {
    margin: 0;

    color: var(--vibe-text-primary);

    font-family: var(--vibe-font-heading);
    font-size: 18px;
    font-weight: 720;
    line-height: 1.28;
    letter-spacing: -.012em;
}

.vibe-ad-target__testimonial-item footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    margin-top: 22px;
}

.vibe-ad-target__testimonial-item footer strong {
    color: var(--vibe-brand-primary);

    font-family: var(--vibe-font-heading);
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.vibe-ad-target__testimonial-item footer span {
    margin-top: 4px;

    color: var(--vibe-text-primary);

    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
}

.vibe-ad-target__testimonial-item footer small {
    margin-top: 9px;

    color: var(--vibe-text-muted);

    font-size: 12px;
    line-height: 1.35;
}


/* Two visible on tablet */
@media (max-width: 1000px) {

    .vibe-ad-target__testimonial-track {
        --testimonial-gap: 22px;
    }

    .vibe-ad-target__testimonial-item {
        flex-basis:
            calc(
                (
                    100%
                    - var(--testimonial-gap)
                )
                / 2
            );
    }

}


/* One visible on mobile */
@media (max-width: 650px) {

    .vibe-ad-target__testimonial {
        padding: 40px 0 44px;
    }

    .vibe-ad-target__testimonial-head {
        margin-bottom: 20px;
    }

    .vibe-ad-target__testimonial-controls button {
        width: 38px;
        height: 38px;
    }

    .vibe-ad-target__testimonial-track {
        --testimonial-gap: 16px;
    }

    .vibe-ad-target__testimonial-item {
        flex-basis: 100%;

        padding:
            20px
            18px
            20px;
    }

    .vibe-ad-target__testimonial-item blockquote {
        font-size: 19px;
    }

}

/* === END VIBE ADVERTISING TESTIMONIAL === */

/* === VIBE ADVERTISING COVERAGE LOCATION PINS === */

.vibe-ad-target__coverage-top ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.vibe-ad-target__coverage-top ul li {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 18px;
    padding: 0;
}

.vibe-ad-target__coverage-top ul li:last-child {
    margin-bottom: 0;
}

.vibe-ad-target__coverage-top ul li::before {
    content: none !important;
    display: none !important;
}

.vibe-ad-target__coverage-area-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 20px;
    height: 20px;
    min-width: 20px;
    flex: 0 0 20px;

    margin: 0;
    color: var(--vibe-brand-primary);
}

.vibe-ad-target__coverage-area-icon svg {
    display: block;
    width: 20px;
    height: 20px;
    fill: currentColor;
    stroke: none;
}

.vibe-ad-target__coverage-area-text {
    display: block;
    min-width: 0;
    line-height: 1.3;
}

/* === END VIBE ADVERTISING COVERAGE LOCATION PINS === */

/* === VIBE ADVERTISING COMPACT AUDIENCE STRIP === */

.vibe-ad-target__audience-mini {
    display: flex;
    align-items: stretch;
    justify-content: flex-start;

    width: fit-content;
    max-width: 100%;

    margin-top: 24px;
}

.vibe-ad-target__audience-mini-item {
    display: flex;
    align-items: center;
    gap: 14px;

    min-width: 0;
    padding: 0 26px;
}

.vibe-ad-target__audience-mini-item:first-child {
    padding-left: 0;
}

.vibe-ad-target__audience-mini-item:last-child {
    padding-right: 0;
}

.vibe-ad-target__audience-mini-item +
.vibe-ad-target__audience-mini-item {
    border-left: 1px solid rgba(255, 255, 255, 0.18);
}

.vibe-ad-target__audience-mini-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;
    flex: 0 0 40px;

    color: #ff1493;
}

.vibe-ad-target__audience-mini-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    fill: currentColor;
    stroke: none;
}

.vibe-ad-target__audience-mini-icon svg *,
.vibe-ad-target__audience-mini-icon svg path,
.vibe-ad-target__audience-mini-icon svg rect,
.vibe-ad-target__audience-mini-icon svg circle {
    fill: #ff1493 !important;
    stroke: none !important;
}

.vibe-ad-target__audience-mini-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.vibe-ad-target__audience-mini-copy strong {
    display: block;
    margin: 0 0 4px;

    color: var(--vibe-text-primary);

    font-family: var(--vibe-font-heading);
    font-size: 17px;
    font-weight: 850;
    line-height: 1.05;

    white-space: nowrap;
}

.vibe-ad-target__audience-mini-copy small {
    display: block;
    margin: 0;

    color: var(--vibe-text-muted);

    font-family: var(--vibe-font-body);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;

    white-space: nowrap;
}

@media (max-width: 900px) {
    .vibe-ad-target__audience-mini-item {
        padding: 0 18px;
        gap: 11px;
    }

    .vibe-ad-target__audience-mini-icon {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }

    .vibe-ad-target__audience-mini-copy strong {
        font-size: 15px;
    }

    .vibe-ad-target__audience-mini-copy small {
        font-size: 12px;
    }
}

@media (max-width: 650px) {
    .vibe-ad-target__audience-mini {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        gap: 0;
    }

    .vibe-ad-target__audience-mini-item,
    .vibe-ad-target__audience-mini-item:first-child,
    .vibe-ad-target__audience-mini-item:last-child {
        padding: 12px 0;
    }

    .vibe-ad-target__audience-mini-item +
    .vibe-ad-target__audience-mini-item {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.14);
    }

    .vibe-ad-target__audience-mini-icon {
        width: 34px;
        height: 34px;
        flex-basis: 34px;
    }
}

/* === END VIBE ADVERTISING COMPACT AUDIENCE STRIP === */

/* === VIBE ADVERTISING PROPOSAL POPUP === */

body.vibe-proposal-popup-open {
    overflow: hidden;
}

.vibe-proposal-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 30px;

    visibility: hidden;
    opacity: 0;
    pointer-events: none;

    transition:
        opacity .18s ease,
        visibility .18s ease;
}

.vibe-proposal-popup.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

.vibe-proposal-popup__backdrop {
    position: absolute;
    inset: 0;

    background: rgba(8, 0, 13, .88);
}

.vibe-proposal-popup__dialog {
    position: relative;
    z-index: 2;

    width: min(720px, 100%);
    max-height: calc(100vh - 60px);

    overflow-y: auto;

    background: var(--vibe-bg-card-deep);
    border: 1px solid rgba(236, 14, 134, .45);
}

.vibe-proposal-popup__content {
    width: 100%;
}

.vibe-proposal-popup__content
.vibe-ad-v2__proposal {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 42px;

    background: transparent;
    border: 0;
}

.vibe-proposal-popup__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 10;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    padding: 0;

    border: 1px solid rgba(255, 255, 255, .18);
    background: var(--vibe-bg-card-raised);
    color: #fff;

    font-size: 27px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;
}

.vibe-proposal-popup__close:hover,
.vibe-proposal-popup__close:focus-visible {
    background: var(--vibe-brand-primary);
    border-color: var(--vibe-brand-primary);
}

@media (max-width: 650px) {

    .vibe-proposal-popup {
        align-items: flex-end;
        padding: 0;
    }

    .vibe-proposal-popup__dialog {
        width: 100%;
        max-height: 92vh;

        border-right: 0;
        border-bottom: 0;
        border-left: 0;
    }

    .vibe-proposal-popup__content
    .vibe-ad-v2__proposal {
        padding:
            38px
            20px
            24px;
    }
}

/* === END VIBE ADVERTISING PROPOSAL POPUP === */

/* === VIBE ADVERTISING POPUP FORM BUTTON FIX === */

.vibe-proposal-popup__content
.vibe-ad-v2__form button[type="submit"],
.vibe-proposal-popup__content
.vibe-ad-v2__form input[type="submit"] {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    min-height: 56px;

    margin-top: 22px;
    padding: 16px 24px;

    border: 0;
    border-radius: 3px;

    background: var(--vibe-brand-primary, #ec0e86);
    color: #ffffff;

    font-family: var(--vibe-font-button);
    font-size: 15px;
    font-weight: 900;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;

    cursor: pointer;

    transition:
        background .18s ease,
        transform .18s ease;
}

.vibe-proposal-popup__content
.vibe-ad-v2__form button[type="submit"]:hover,
.vibe-proposal-popup__content
.vibe-ad-v2__form button[type="submit"]:focus-visible,
.vibe-proposal-popup__content
.vibe-ad-v2__form input[type="submit"]:hover,
.vibe-proposal-popup__content
.vibe-ad-v2__form input[type="submit"]:focus-visible {
    background: var(--vibe-brand-primary-hover, #ff1493);
}

/* === END VIBE ADVERTISING POPUP FORM BUTTON FIX === */

/* === VIBE TESTIMONIAL COMPACT PASS === */

/* Less empty space around the whole section */
.vibe-ad-target__testimonial {
    padding-top: 36px;
    padding-bottom: 38px;
}

/* Bring heading closer to testimonials */
.vibe-ad-target__testimonial-head {
    margin-bottom: 18px;
}

/* Slightly smaller section label */
.vibe-ad-target__testimonial-head
.vibe-ad-target__section-label {
    font-size: 13px;
}

/* Tighter individual testimonials */
.vibe-ad-target__testimonial-item {
    padding-top: 17px;
    padding-right: 17px;
    padding-bottom: 17px;
    padding-left: 17px;
}

/* Smaller quote mark */
.vibe-ad-target__testimonial-quote {
    height: 24px;
    margin-bottom: 2px;
    font-size: 43px;
}

/* Main quote */
.vibe-ad-target__testimonial-item blockquote {
    font-size: 16px;
    line-height: 1.22;
    letter-spacing: -.01em;
}

/* Less space before advertiser details */
.vibe-ad-target__testimonial-item footer {
    margin-top: 16px;
}

.vibe-ad-target__testimonial-item footer strong {
    font-size: 12px;
    line-height: 1.18;
}

.vibe-ad-target__testimonial-item footer span {
    margin-top: 2px;
    font-size: 12px;
}

.vibe-ad-target__testimonial-item footer small {
    margin-top: 6px;
    font-size: 11px;
}


/* Tablet */
@media (max-width: 1000px) {
    .vibe-ad-target__testimonial {
        padding-top: 32px;
        padding-bottom: 34px;
    }

    .vibe-ad-target__testimonial-item blockquote {
        font-size: 16px;
    }
}


/* Mobile */
@media (max-width: 650px) {
    .vibe-ad-target__testimonial {
        padding-top: 28px;
        padding-bottom: 30px;
    }

    .vibe-ad-target__testimonial-head {
        margin-bottom: 14px;
    }

    .vibe-ad-target__testimonial-item {
        padding: 15px;
    }

    .vibe-ad-target__testimonial-quote {
        height: 22px;
        font-size: 39px;
    }

    .vibe-ad-target__testimonial-item blockquote {
        font-size: 16px;
        line-height: 1.2;
    }

    .vibe-ad-target__testimonial-item footer {
        margin-top: 14px;
    }
}

/* === END VIBE TESTIMONIAL COMPACT PASS === */

.vibe-site--inner
.vibe-page-layout--advertising
.vibe-ad-target__inner {
    --vibe-ad-grid-alignment-fix: 1;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.vibe-site--inner
.vibe-page-layout--advertising
.vibe-ad-target__inner {
    --vibe-ad-content-gutter-fix: 1;
    box-sizing: border-box;
    padding-left: 16px !important;
    padding-right: 16px !important;
}

@media (max-width: 768px) {
    .vibe-site--inner
    .vibe-page-layout--advertising
    .vibe-ad-target__inner {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}


.vibe-ad-target__campaign-example {
    --vibe-campaign-example-build: 1;

    padding: 52px 0 54px;

    background: var(--vibe-bg-card-deep);
    color: var(--vibe-text-primary);

    border-top: 1px solid rgba(255, 255, 255, .07);
    border-bottom: 1px solid rgba(255, 255, 255, .07);
}

.vibe-ad-target__campaign-example-head {
    max-width: 760px;
}

.vibe-ad-target__campaign-example-head h2 {
    max-width: 720px;

    margin: 10px 0 0;

    color: var(--vibe-text-primary);

    font-family: var(--vibe-font-heading);
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 900;
    line-height: .96;
    letter-spacing: -.035em;
}

.vibe-ad-target__campaign-example-head > p {
    max-width: 690px;

    margin: 18px 0 0;

    color: var(--vibe-text-muted);

    font-size: 17px;
    line-height: 1.5;
}


.vibe-ad-target__campaign-example-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    margin-top: 34px;

    border-top: 1px solid rgba(255, 255, 255, .13);
    border-bottom: 1px solid rgba(255, 255, 255, .13);
}

.vibe-ad-target__campaign-example-grid article {
    min-width: 0;

    padding: 25px 22px 27px 0;
}

.vibe-ad-target__campaign-example-grid article + article {
    padding-left: 22px;

    border-left: 1px solid rgba(255, 255, 255, .13);
}

.vibe-ad-target__campaign-example-grid article > span {
    display: block;

    margin-bottom: 18px;

    color: var(--vibe-brand-primary);

    font-family: var(--vibe-font-heading);
    font-size: 28px;
    font-weight: 900;
    line-height: 1;
}

.vibe-ad-target__campaign-example-grid h3 {
    margin: 0;

    color: var(--vibe-text-primary);

    font-family: var(--vibe-font-heading);
    font-size: 17px;
    font-weight: 900;
    line-height: 1.08;
}

.vibe-ad-target__campaign-example-grid p {
    margin: 10px 0 0;

    color: var(--vibe-text-muted);

    font-size: 14px;
    line-height: 1.45;
}


.vibe-ad-target__campaign-example-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    margin-top: 28px;
}

.vibe-ad-target__campaign-example-footer > p {
    max-width: 650px;

    margin: 0;

    color: var(--vibe-text-secondary);

    font-size: 15px;
    line-height: 1.45;
}

.vibe-ad-target__campaign-example-footer
.vibe-ad-target__button {
    flex: 0 0 auto;
}


@media (max-width: 1000px) {

    .vibe-ad-target__campaign-example-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .vibe-ad-target__campaign-example-grid article {
        padding: 23px 20px;
    }

    .vibe-ad-target__campaign-example-grid article + article {
        padding-left: 20px;
    }

    .vibe-ad-target__campaign-example-grid article:nth-child(3) {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 255, .13);
    }

    .vibe-ad-target__campaign-example-grid article:nth-child(4) {
        border-top: 1px solid rgba(255, 255, 255, .13);
    }

}


@media (max-width: 650px) {

    .vibe-ad-target__campaign-example {
        padding: 36px 0 38px;
    }

    .vibe-ad-target__campaign-example-head h2 {
        font-size: 33px;
    }

    .vibe-ad-target__campaign-example-head > p {
        margin-top: 14px;

        font-size: 15px;
    }

    .vibe-ad-target__campaign-example-grid {
        grid-template-columns: 1fr;

        margin-top: 25px;
    }

    .vibe-ad-target__campaign-example-grid article,
    .vibe-ad-target__campaign-example-grid article + article {
        padding: 19px 0;

        border-left: 0;
    }

    .vibe-ad-target__campaign-example-grid article + article {
        border-top: 1px solid rgba(255, 255, 255, .13);
    }

    .vibe-ad-target__campaign-example-grid article > span {
        margin-bottom: 10px;

        font-size: 24px;
    }

    .vibe-ad-target__campaign-example-grid h3 {
        font-size: 16px;
    }

    .vibe-ad-target__campaign-example-footer {
        display: block;

        margin-top: 23px;
    }

    .vibe-ad-target__campaign-example-footer
    .vibe-ad-target__button {
        width: 100%;

        margin-top: 18px;
    }

}

.vibe-ad-target__options {
    --vibe-advertising-options-four-up: 1;
}

.vibe-ad-target__option-grid {
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
}

.vibe-ad-target__option {
    min-width: 0;
}

.vibe-ad-target__option-body h3 {
    font-size: 17px;
    line-height: 1.08;
}

.vibe-ad-target__option-body p {
    font-size: 14px;
    line-height: 1.45;
}

@media (max-width: 1050px) {
    .vibe-ad-target__option-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .vibe-ad-target__option-grid {
        grid-template-columns: 1fr;
    }
}

/* === VIBE TODAY ON AIR SCHEDULE STRIP === */

.vibe-today-schedule {
    width: 100%;
    margin: 0;
    padding: 30px 0 32px;
    border-top: 1px solid rgba(255, 255, 255, .09);
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    background: #170621;
    color: #fff;
}

.vibe-today-schedule__inner {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.vibe-today-schedule__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 18px;
}

.vibe-today-schedule__eyebrow {
    display: block;
    margin: 0 0 4px;
    color: #ec0e86;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .16em;
}

.vibe-today-schedule__header h2 {
    margin: 0;
    color: #fff;
    font-family: var(--vibe-font-heading, "Rubik", sans-serif);
    font-size: clamp(24px, 2.3vw, 34px);
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.03em;
}

.vibe-today-schedule__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 2px;
    color: #fff;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .035em;
    text-decoration: none;
    white-space: nowrap;
}

.vibe-today-schedule__view-all:hover {
    color: #ec0e86;
}

.vibe-today-schedule__rail {
    display: flex;
    width: 100%;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, .10);
    border-bottom: 1px solid rgba(255, 255, 255, .10);
}

.vibe-today-schedule__item {
    position: relative;
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    flex: 1 1 0;
    min-width: 0;
    gap: 13px;
    align-items: center;
    padding: 15px 16px;
    border-left: 1px solid rgba(255, 255, 255, .10);
    color: inherit;
    text-decoration: none;
    background: transparent;
    transition:
        background .18s ease,
        color .18s ease;
}

.vibe-today-schedule__item:first-child {
    border-left: 0;
}

.vibe-today-schedule__item:hover {
    background: rgba(255, 255, 255, .045);
}

.vibe-today-schedule__item.is-on-air {
    background: rgba(236, 14, 134, .07);
    box-shadow: inset 0 3px 0 #ec0e86;
}

.vibe-today-schedule__artwork {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    overflow: hidden;
    background: #250638;
    color: rgba(255, 255, 255, .55);
}

.vibe-today-schedule__artwork img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vibe-today-schedule__artwork svg {
    width: 27px;
    height: 27px;
}

.vibe-today-schedule__copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.vibe-today-schedule__status,
.vibe-today-schedule__time {
    display: inline-flex;
    align-items: center;
    min-height: 15px;
    margin: 0 0 6px;
    color: #bca8ca;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .08em;
}

.vibe-today-schedule__status {
    gap: 6px;
    color: #ec0e86;
}

.vibe-today-schedule__status i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(236, 14, 134, .15);
}

.vibe-today-schedule__copy strong {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: #fff;
    font-family: var(--vibe-font-heading, "Rubik", sans-serif);
    font-size: 15px;
    line-height: 1.15;
    font-weight: 800;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.vibe-today-schedule__presenter {
    display: block;
    overflow: hidden;
    max-width: 100%;
    margin-top: 5px;
    color: #d8cbe0;
    font-family: var(--vibe-font-subheading, "Outfit", sans-serif);
    font-size: 10px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: .04em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vibe-today-schedule__range {
    display: block;
    margin-top: 6px;
    color: #927fa1;
    font-family: var(--vibe-font-body, "Inter", sans-serif);
    font-size: 10px;
    line-height: 1;
    font-weight: 600;
}

@media (max-width: 980px) {
    .vibe-today-schedule__rail {
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .vibe-today-schedule__item {
        flex: 0 0 285px;
        scroll-snap-align: start;
    }
}

@media (max-width: 640px) {
    .vibe-today-schedule {
        padding: 24px 0 26px;
    }

    .vibe-today-schedule__inner {
        width: calc(100% - 20px);
    }

    .vibe-today-schedule__header {
        align-items: flex-start;
        margin-bottom: 16px;
    }

    .vibe-today-schedule__header h2 {
        font-size: 24px;
    }

    .vibe-today-schedule__view-all {
        padding-top: 4px;
        font-size: 10px;
    }

    .vibe-today-schedule__item {
        grid-template-columns: 68px minmax(0, 1fr);
        flex-basis: min(82vw, 285px);
        padding: 13px;
    }

    .vibe-today-schedule__artwork {
        width: 68px;
        height: 68px;
    }
}

/* =========================================================
   VIBE HOMEPAGE LISTEN AGAIN MOBILE RAIL 2026

   Homepage only.
   Desktop and dedicated Listen Again pages remain unchanged.
   ========================================================= */

@media (max-width: 768px) {

    /*
     * Turn the stacked homepage grid into
     * a horizontal touch/swipe rail.
     */

    .vibe-homepage
    .vibe-listen-again__grid,

    .vibe-homepage
    .vibe-listen-again--2
    .vibe-listen-again__grid,

    .vibe-homepage
    .vibe-listen-again--3
    .vibe-listen-again__grid,

    .vibe-homepage
    .vibe-listen-again--4
    .vibe-listen-again__grid,

    .vibe-homepage
    .vibe-listen-again--5
    .vibe-listen-again__grid {
        display: flex !important;

        grid-template-columns: none;

        width: 100%;

        gap: 10px;

        overflow-x: auto;
        overflow-y: hidden;

        padding:
            0
            0
            6px;

        scroll-snap-type: x proximity;
        scroll-padding-left: 0;

        overscroll-behavior-x: contain;

        -webkit-overflow-scrolling: touch;

        scrollbar-width: none;
    }

    .vibe-homepage
    .vibe-listen-again__grid::-webkit-scrollbar {
        display: none;
    }


    /*
     * Show a little of the next card so listeners
     * immediately understand that the section swipes.
     */

    .vibe-homepage
    .vibe-listen-again__card {
        width: auto;
        min-width: 0;

        flex:
            0
            0
            78%;

        scroll-snap-align: start;

        height: auto;
    }


    /*
     * Keep the cards reasonably compact on mobile.
     */

    .vibe-homepage
    .vibe-listen-again__artwork {
        aspect-ratio: 16 / 9;
    }

    .vibe-homepage
    .vibe-listen-again__content,
    .vibe-homepage
    .vibe-listen-again--5
    .vibe-listen-again__content {
        min-height: 105px;
        padding: 11px 12px 7px;
    }

    .vibe-homepage
    .vibe-listen-again__content h3,
    .vibe-homepage
    .vibe-listen-again--5
    .vibe-listen-again__content h3 {
        font-size: 15px;
        line-height: 1.15;
    }

    .vibe-homepage
    .vibe-listen-again__show {
        margin-bottom: 7px;
    }

    .vibe-homepage
    .vibe-listen-again__meta,
    .vibe-homepage
    .vibe-listen-again--5
    .vibe-listen-again__meta {
        padding-top: 7px;
    }

    .vibe-homepage
    .vibe-listen-again__listen,
    .vibe-homepage
    .vibe-listen-again--5
    .vibe-listen-again__listen {
        min-height: 32px;

        margin:
            2px
            12px
            11px;

        padding:
            0
            11px !important;
    }
}


/*
 * On very small phones let slightly less of the
 * next card show so the active card remains readable.
 */

@media (max-width: 390px) {

    .vibe-homepage
    .vibe-listen-again__card {
        flex-basis: 82%;
    }
}



/* =========================================================
   VIBE HOMEPAGE EVENTS MOBILE RAIL 2026

   Homepage only.
   Event cards retain their existing full mobile size.
   ========================================================= */

@media (max-width: 768px) {

    /*
     * Replace the stacked mobile Events grid
     * with a full-width horizontal swipe rail.
     */

    .vibe-homepage
    .vibe-events__grid {
        display: flex !important;

        grid-template-columns: none;

        width: 100%;

        gap: 10px;

        overflow-x: auto;
        overflow-y: hidden;

        padding:
            0
            0
            6px;

        scroll-snap-type: x mandatory;
        scroll-padding-left: 0;

        overscroll-behavior-x: contain;

        -webkit-overflow-scrolling: touch;

        scrollbar-width: none;
    }

    .vibe-homepage
    .vibe-events__grid::-webkit-scrollbar {
        display: none;
    }


    /*
     * Keep every event the same full mobile width
     * it has now — one complete event per swipe.
     */

    .vibe-homepage
    .vibe-events__grid > * {
        width: 100%;
        min-width: 100%;

        flex:
            0
            0
            100%;

        box-sizing: border-box;

        scroll-snap-align: start;
        scroll-snap-stop: always;
    }
}

/* =========================================================
   VIBE REAL MOBILE SCHEDULE 110PX IMAGE MATCH 2026

   Actual schedule component:
   .vibe-schedule-show
   .vibe-schedule-show__image

   Mobile now uses the same fixed 110 x 110 artwork sizing
   already used by the desktop Vibe schedule.
   ========================================================= */

@media (max-width: 767px) {

    /*
     * Match the image column to desktop.
     */

    .vibe-schedule-show,
    .vibe-schedule-show.is-live,
    .vibe-schedule-show.has-sponsor,
    .vibe-schedule-show.is-live.has-sponsor {
        grid-template-columns:
            110px
            minmax(0, 1fr) !important;
    }


    /*
     * Every schedule image container is exactly the
     * same size, regardless of:
     *
     * - presenter image
     * - square show artwork
     * - sponsorship
     * - Listen Again
     * - live status
     * - programme text height
     */

    .vibe-schedule-show__image,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image {
        width: 110px !important;
        min-width: 110px !important;
        max-width: 110px !important;

        height: 110px !important;
        min-height: 110px !important;
        max-height: 110px !important;

        align-self: start !important;

        overflow: hidden !important;
    }


    /*
     * Same image dimensions as desktop.
     */

    .vibe-schedule-show__image img,
    .vibe-schedule-show.is-live
    .vibe-schedule-show__image img {
        display: block !important;

        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;

        height: 110px !important;
        min-height: 110px !important;
        max-height: 110px !important;
    }
}



/* =========================================================
   VIBE MOBILE LIVE TIME MATCH 2026
   ========================================================= */

@media (max-width: 767px) {

    .vibe-schedule-show.is-live
    .vibe-schedule-show__time {
        font-size: 10px !important;
        font-weight: 950 !important;
    }
}



/* =========================================================
   VIBE DESKTOP LIVE TIME MATCH 2026
   ========================================================= */

@media (min-width: 768px) {

    .vibe-schedule-show.is-live
    .vibe-schedule-show__time {
        font-size: 10px !important;
        font-weight: 950 !important;
    }
}


/* =========================================================
   VIBE — EVENT DETAIL GET TICKETS FOOTER-SOCIAL HOVER
   ========================================================= */

.vibe-site--inner
.rl-redline-event-detail__button.is-primary {
    border-color: var(--vibe-brand-primary-hover);
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-event-detail__button.is-primary:hover,
.vibe-site--inner
.rl-redline-event-detail__button.is-primary:focus,
.vibe-site--inner
.rl-redline-event-detail__button.is-primary:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text) !important;
    outline: 0;
    box-shadow: none;
    transform: none;
}

/* === VIBE HOMEPAGE BLOCK TITLE MATCH === */

/*
 * Match Latest News + Listen Again typography
 * to the approved What's On heading.
 */
.vibe-homepage .vibe-news-blogs__header h2,
.vibe-homepage .vibe-listen-again__heading h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 20px;
    font-weight: 850;
    line-height: 1;
    letter-spacing: .01em;
    text-transform: uppercase;
}

/* === END VIBE HOMEPAGE BLOCK TITLE MATCH === */

/* === VIBE EVENTS BUTTON FOOTER-SOCIAL HOVER === */

/* View Event */
.vibe-site--inner
.rl-redline-events__card-button {
    border-color: var(--vibe-brand-primary-hover);
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__card-button:hover,
.vibe-site--inner
.rl-redline-events__card-button:focus,
.vibe-site--inner
.rl-redline-events__card-button:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text) !important;
    outline: 0;
    box-shadow: none;
    transform: none;
}

/* Submit Your Event */
.vibe-site--inner
.rl-redline-events__submit > a {
    border-color: var(--vibe-brand-primary-hover);
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__submit > a:hover,
.vibe-site--inner
.rl-redline-events__submit > a:focus,
.vibe-site--inner
.rl-redline-events__submit > a:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text) !important;
    outline: 0;
    box-shadow: none;
    transform: none;
}

/* === END VIBE EVENTS BUTTON FOOTER-SOCIAL HOVER === */

/* === VIBE FEATURED EVENT BUTTON FOOTER-SOCIAL HOVER === */

.vibe-site--inner
.rl-redline-events__featured-button {
    border-color: var(--vibe-brand-primary-hover);
    background: var(--vibe-brand-primary-hover);
    color: var(--vibe-button-text) !important;
    box-shadow: none;
}

.vibe-site--inner
.rl-redline-events__featured-button:hover,
.vibe-site--inner
.rl-redline-events__featured-button:focus,
.vibe-site--inner
.rl-redline-events__featured-button:focus-visible {
    border-color: var(--vibe-brand-primary-active-deep);
    background: var(--vibe-brand-primary-active-deep);
    color: var(--vibe-button-text) !important;
    outline: 0;
    box-shadow: none;
    transform: none;
}

/* === END VIBE FEATURED EVENT BUTTON FOOTER-SOCIAL HOVER === */

/* === VIBE BUTTON ARROW BASELINE FIX === */

/*
 * Text arrows such as › and → have font metrics that sit
 * visually lower than the button label even inside flex.
 */
.vibe-site a[class*="button"],
.vibe-site a[class*="cta"],
.vibe-site--inner a[class*="button"],
.vibe-site--inner a[class*="cta"] {
    flex-wrap: nowrap;
    white-space: nowrap;
}

.vibe-site a[class*="button"] > span[aria-hidden="true"],
.vibe-site a[class*="cta"] > span[aria-hidden="true"],
.vibe-site--inner a[class*="button"] > span[aria-hidden="true"],
.vibe-site--inner a[class*="cta"] > span[aria-hidden="true"],
.vibe-site--inner
.rl-redline-events__featured-button > span,
.vibe-site--inner
.rl-redline-event-detail__related-link > span,
.vibe-site--inner
.rl-redline-news__latest-heading a > span {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;

    font-size: 1.35em !important;
    line-height: 1 !important;
    vertical-align: middle;

    position: relative;
    top: -0.06em;
}

/* === END VIBE BUTTON ARROW BASELINE FIX === */


/* =========================================================
   VIBE HOMEPAGE TOP ROW — 2026
   Slideshow + Now Playing / Recently Played form one row.
   Full-width Page Manager modules begin immediately below.
   ========================================================= */

@media (min-width: 769px) {
    .vibe-homepage__top-row.has-slideshow {
        display: grid;
        grid-template-columns:
            minmax(0, 1fr)
            minmax(300px, 31.5%);
        grid-template-areas:
            "slideshow sidebar";
        align-items: stretch;
        gap: 22px;
        width: 100%;
        margin: 0 0 6px;
    }

    .vibe-homepage__top-row.has-slideshow
    > .vibe-homepage__slideshow {
        grid-area: slideshow;
        width: 100%;
        margin: 0;
    }

    .vibe-homepage__top-row.has-slideshow
    > .vibe-homepage__sidebar {
        grid-area: sidebar;
        float: none;
        width: auto;
        margin: 0;
    }

    /*
     * Keep stations without a slideshow compatible with the
     * existing sidebar behaviour while containing its float.
     */
    .vibe-homepage__top-row.is-sidebar-only {
        display: flow-root;
        width: 100%;
        margin: 0 0 16px;
    }
}

@media (max-width: 768px) {
    .vibe-homepage__top-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "slideshow"
            "sidebar";
        gap: 24px;
        width: 100%;
        margin: 0 0 24px;
    }

    .vibe-homepage__top-row
    > .vibe-homepage__slideshow {
        grid-area: slideshow;
        width: 100%;
        margin: 0;
    }

    .vibe-homepage__top-row
    > .vibe-homepage__sidebar {
        grid-area: sidebar;
        float: none;
        width: 100%;
        margin: 0;
    }
}



/* =========================================================
   VIBE TODAY ON ENERGY CARD RAIL 2026
   Compact horizontal programme cards using Vibe colours.
   ========================================================= */

.vibe-today-schedule {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
}

.vibe-today-schedule__inner {
    width: 100%;
    margin: 0;
    padding: 0;
}

.vibe-today-schedule__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 14px;
}

.vibe-today-schedule__header > div {
    position: relative;
    padding-left: 16px;
}

.vibe-today-schedule__header > div::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4px;
    bottom: 4px;
    width: 4px;
    border-radius: 999px;
    background: #ff0a8a;
}

.vibe-today-schedule__eyebrow {
    display: none;
}

.vibe-today-schedule__header h2 {
    margin: 0;
    color: #fff;
    font-family: var(--vibe-font-heading, "Rubik", sans-serif);
    font-size: clamp(24px, 3vw, 34px);
    line-height: .95;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: -.03em;
}

.vibe-today-schedule__view-all {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #c7b7d7;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}

.vibe-today-schedule__view-all:hover {
    color: #ffffff;
}

.vibe-today-schedule__rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 228px;
    gap: 14px;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px 0 6px;
    margin: 0;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}

.vibe-today-schedule__item {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: linear-gradient(
        180deg,
        rgba(60, 18, 92, 0.94) 0%,
        rgba(39, 10, 61, 0.98) 100%
    );
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    overflow: hidden;
    text-decoration: none;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.02);
    scroll-snap-align: start;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.vibe-today-schedule__item:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 10, 138, 0.45);
}

.vibe-today-schedule__item.is-on-air {
    border-color: #ff0a8a;
    box-shadow:
        0 0 0 2px rgba(255, 10, 138, 0.18),
        inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.vibe-today-schedule__artwork {
    display: block;
    width: 100%;
    height: 142px;
    background: linear-gradient(135deg, #ff0a8a 0%, #7c2ce7 100%);
    overflow: hidden;
}

.vibe-today-schedule__artwork img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.vibe-today-schedule__copy {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px 14px;
    min-height: 100px;
}

.vibe-today-schedule__status {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    padding: 7px 11px 6px;
    border-radius: 8px;
    background: #ff0a8a;
    color: #fff;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 12px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(255, 10, 138, 0.35);
}

.vibe-today-schedule__status i {
    display: none;
}

.vibe-today-schedule__time {
    display: block;
    color: #b8aac7;
    font-family: var(--vibe-font-button, "Rubik", sans-serif);
    font-size: 13px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: .02em;
}

.vibe-today-schedule__copy strong {
    display: block;
    color: #fff;
    font-family: var(--vibe-font-heading, "Rubik", sans-serif);
    font-size: 17px;
    line-height: 1.03;
    font-weight: 900;
    letter-spacing: -.02em;
}

.vibe-today-schedule__presenter {
    display: block;
    color: #c5b4d6;
    font-family: var(--vibe-font-body, "Inter", sans-serif);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.vibe-today-schedule__range {
    display: none;
}

@media (max-width: 980px) {
    .vibe-today-schedule__rail {
        grid-auto-columns: 220px;
    }
}

@media (max-width: 768px) {
    .vibe-today-schedule__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .vibe-today-schedule__header h2 {
        font-size: 26px;
    }

    .vibe-today-schedule__rail {
        grid-auto-columns: minmax(210px, 76vw);
        gap: 12px;
    }

    .vibe-today-schedule__artwork {
        height: 128px;
    }
}

@media (max-width: 560px) {
    .vibe-today-schedule__header > div {
        padding-left: 14px;
    }

    .vibe-today-schedule__header h2 {
        font-size: 22px;
    }

    .vibe-today-schedule__view-all {
        font-size: 11px;
    }

    .vibe-today-schedule__artwork {
        height: 118px;
    }

    .vibe-today-schedule__copy {
        padding: 11px 12px 13px;
        min-height: 92px;
    }

    .vibe-today-schedule__copy strong {
        font-size: 16px;
    }

    .vibe-today-schedule__presenter,
    .vibe-today-schedule__time {
        font-size: 12px;
    }
}


/* =========================================================
   VIBE TODAY ON ENERGY — EVENTS STYLE MATCH 2026
   Match the homepage What's On visual system.
   ========================================================= */

.vibe-homepage .vibe-today-schedule {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.vibe-homepage .vibe-today-schedule__inner {
    width: 100%;
    margin: 0;
    padding: 0;
}


/* ---------------------------------------------------------
   Heading — same scale/rhythm as What's On
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 12px;
}

.vibe-homepage .vibe-today-schedule__header > div {
    position: relative;
    padding-left: 17px;
}

.vibe-homepage
.vibe-today-schedule__header > div::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 4px;
    border-radius: 0;
    background: var(--vibe-primary);
}

.vibe-homepage .vibe-today-schedule__eyebrow {
    display: none;
}

.vibe-homepage .vibe-today-schedule__header h2 {
    margin: 0;
    color: var(--vibe-text-primary);
    font-family: var(--rl-heading-font);
    font-size: 29px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .02em;
    text-transform: uppercase;
}


/* ---------------------------------------------------------
   View full schedule — match View All Events
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__view-all {
    display: inline-flex;
    min-height: 30px;
    padding: 0 9px;
    align-items: center;
    justify-content: center;
    gap: 7px;

    border: 1px solid var(--vibe-border-medium);
    border-radius: 3px;

    background: var(--vibe-bg-card-raised);
    color: var(--vibe-text-white-a78);

    font-family: var(--rl-heading-font);
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .025em;

    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
}

.vibe-homepage .vibe-today-schedule__view-all:hover,
.vibe-homepage .vibe-today-schedule__view-all:focus-visible {
    border-color: var(--vibe-primary);
    background: var(--vibe-primary);
    color: var(--vibe-text-primary);
    outline: 0;
}


/* ---------------------------------------------------------
   Programme rail
   Five compact cards across on a wide desktop.
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns:
        calc((100% - 40px) / 5);

    gap: 10px;

    width: 100%;
    margin: 0;
    padding: 0 0 4px;

    overflow-x: auto;
    overflow-y: hidden;

    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
}


/* ---------------------------------------------------------
   Card — flatter like the What's On cards
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__item {
    position: relative;

    display: flex;
    min-width: 0;

    flex-direction: column;

    overflow: hidden;

    border: 1px solid var(--vibe-border-subtle);
    border-radius: 5px;

    background: var(--vibe-bg-card);

    color: var(--vibe-text-primary);
    text-decoration: none;

    box-shadow: none;

    scroll-snap-align: start;

    transform: none;

    transition:
        border-color .18s ease,
        background .18s ease;
}

.vibe-homepage .vibe-today-schedule__item:hover,
.vibe-homepage .vibe-today-schedule__item:focus-visible {
    border-color: var(--vibe-border-medium);
    background: var(--vibe-bg-card-raised);
    transform: none;
    outline: 0;
}


/* Live card — pink border without the oversized glow */

.vibe-homepage
.vibe-today-schedule__item.is-on-air {
    border-color: var(--vibe-primary);

    box-shadow:
        inset 0 0 0 1px
        color-mix(
            in srgb,
            var(--vibe-primary) 36%,
            transparent
        );
}


/* ---------------------------------------------------------
   Artwork
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__artwork {
    display: block;

    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;

    overflow: hidden;

    border: 0;
    border-radius: 0;

    background: var(--vibe-bg-card-raised);
}

.vibe-homepage .vibe-today-schedule__artwork img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center top;
}


/* ---------------------------------------------------------
   Copy — considerably smaller than previous pass
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__copy {
    display: flex;

    min-height: 0;

    flex-direction: column;
    gap: 4px;

    padding: 11px 12px 13px;
}

.vibe-homepage .vibe-today-schedule__time {
    display: block;

    margin: 0 0 2px;

    color: var(--vibe-text-white-a62);

    font-family: var(--vibe-font-body, "Inter", sans-serif);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .01em;
}

.vibe-homepage .vibe-today-schedule__copy strong {
    display: block;

    margin: 0;

    color: var(--vibe-text-primary);

    font-family: var(--rl-heading-font);
    font-size: 16px;
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: 0;
}

.vibe-homepage .vibe-today-schedule__presenter {
    display: block;

    margin-top: 1px;

    color: var(--vibe-text-white-a62);

    font-family: var(--vibe-font-body, "Inter", sans-serif);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;

    text-transform: none;
}


/* ---------------------------------------------------------
   On Air badge — smaller and sharper like the reference
   --------------------------------------------------------- */

.vibe-homepage .vibe-today-schedule__status {
    position: absolute;

    z-index: 3;

    top: 9px;
    left: 9px;

    display: inline-flex;

    min-height: 24px;
    padding: 0 8px;

    align-items: center;

    border-radius: 3px;

    background: var(--vibe-primary);
    color: var(--vibe-button-text);

    font-family: var(--rl-heading-font);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: .06em;

    text-transform: uppercase;

    box-shadow: none;
}

.vibe-homepage .vibe-today-schedule__status i {
    display: none;
}


/* Old duplicate range is not needed */

.vibe-homepage .vibe-today-schedule__range {
    display: none;
}


/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width: 1180px) {
    .vibe-homepage .vibe-today-schedule__rail {
        grid-auto-columns:
            calc((100% - 30px) / 4);
    }
}

@media (max-width: 900px) {
    .vibe-homepage .vibe-today-schedule__rail {
        grid-auto-columns:
            calc((100% - 20px) / 3);
    }
}

@media (max-width: 768px) {
    .vibe-homepage .vibe-today-schedule__header {
        align-items: center;
        flex-direction: row;
        gap: 12px;
    }

    .vibe-homepage
    .vibe-today-schedule__header h2 {
        font-size: 22px;
    }

    .vibe-homepage
    .vibe-today-schedule__view-all {
        min-height: 28px;
        padding: 0 8px;
        font-size: 9px;
    }

    .vibe-homepage .vibe-today-schedule__rail {
        grid-auto-columns: min(210px, 72vw);
        gap: 9px;
    }

    .vibe-homepage
    .vibe-today-schedule__copy strong {
        font-size: 15px;
    }
}

@media (max-width: 520px) {
    .vibe-homepage .vibe-today-schedule__header {
        align-items: flex-start;
        flex-direction: column;
        margin-bottom: 11px;
    }

    .vibe-homepage
    .vibe-today-schedule__header h2 {
        font-size: 20px;
    }

    .vibe-homepage .vibe-today-schedule__rail {
        grid-auto-columns: min(195px, 74vw);
    }
}

/* === VIBE FULL FORECAST TEXT HOVER === */

@media (hover: hover) {
    .vibe-sidebar-weather__forecast-link:hover > span,
    .vibe-sidebar-weather__forecast-link:focus-visible > span {
        color: var(--vibe-text-primary) !important;
    }

    .vibe-sidebar-weather__forecast-link:hover > svg,
    .vibe-sidebar-weather__forecast-link:focus-visible > svg {
        transform: none !important;
        color: var(--vibe-primary);
    }
}

/* === END VIBE FULL FORECAST TEXT HOVER === */


/* =========================================================
   VIBE TODAY ON ENERGY — COMPACT RAIL FINAL TEST 2026
   Compact programme rail matching the Vibe homepage.
   ========================================================= */

.vibe-homepage
.vibe-today-schedule {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.vibe-homepage
.vibe-today-schedule__inner {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* =========================================================
   HEADER
   Match What's On rather than hero typography
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__header {
    display: flex !important;

    align-items: center !important;
    justify-content: space-between !important;

    gap: 18px !important;

    margin: 0 0 14px !important;
    padding: 0 !important;
}

.vibe-homepage
.vibe-today-schedule__header > div {
    position: relative !important;

    padding: 0 0 0 17px !important;
}

.vibe-homepage
.vibe-today-schedule__header > div::before {
    content: "" !important;

    position: absolute !important;

    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;

    width: 4px !important;

    border-radius: 0 !important;

    background: var(--vibe-primary) !important;
}

.vibe-homepage
.vibe-today-schedule__eyebrow {
    display: none !important;
}

.vibe-homepage
.vibe-today-schedule__header h2 {
    margin: 0 !important;

    color: var(--vibe-text-primary) !important;

    font-family: var(--rl-heading-font) !important;

    font-size: 29px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .01em !important;

    text-transform: uppercase !important;
}


/* =========================================================
   VIEW FULL SCHEDULE
   Same treatment as View All Events
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__view-all {
    display: inline-flex !important;

    min-height: 34px !important;

    padding: 0 11px !important;

    align-items: center !important;
    justify-content: center !important;

    gap: 7px !important;

    border:
        1px solid
        var(--vibe-border-medium) !important;

    border-radius: 3px !important;

    background:
        var(--vibe-bg-card-raised) !important;

    color:
        var(--vibe-text-white-a78) !important;

    font-family: var(--rl-heading-font) !important;

    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .03em !important;

    text-decoration: none !important;
    text-transform: uppercase !important;

    white-space: nowrap !important;
}

.vibe-homepage
.vibe-today-schedule__view-all:hover,
.vibe-homepage
.vibe-today-schedule__view-all:focus-visible {
    border-color:
        var(--vibe-primary) !important;

    background:
        var(--vibe-primary) !important;

    color:
        var(--vibe-button-text) !important;

    outline: 0 !important;
}


/* =========================================================
   PROGRAMME RAIL
   Fixed compact card widths — do NOT stretch two cards
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__rail {
    display: flex !important;

    width: 100% !important;

    gap: 14px !important;

    margin: 0 !important;
    padding: 0 0 5px !important;

    overflow-x: auto !important;
    overflow-y: hidden !important;

    scroll-snap-type: x proximity !important;
    overscroll-behavior-x: contain !important;

    scrollbar-width: thin !important;
}


/* =========================================================
   PROGRAMME CARD
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__item {
    position: relative !important;

    display: flex !important;

    flex:
        0 0
        clamp(
            225px,
            21vw,
            270px
        ) !important;

    width:
        clamp(
            225px,
            21vw,
            270px
        ) !important;

    min-width: 0 !important;
    min-height: 0 !important;

    flex-direction: column !important;

    gap: 0 !important;

    padding: 0 !important;

    overflow: hidden !important;

    border:
        1px solid
        var(--vibe-border-subtle) !important;

    border-radius: 4px !important;

    background:
        var(--vibe-bg-card) !important;

    color:
        var(--vibe-text-primary) !important;

    text-decoration: none !important;

    box-shadow: none !important;

    transform: none !important;

    scroll-snap-align: start !important;

    transition:
        border-color .16s ease,
        background .16s ease !important;
}

.vibe-homepage
.vibe-today-schedule__item:hover,
.vibe-homepage
.vibe-today-schedule__item:focus-visible {
    border-color:
        var(--vibe-border-medium) !important;

    background:
        var(--vibe-bg-card-raised) !important;

    transform: none !important;

    outline: 0 !important;
}


/* =========================================================
   LIVE CARD
   Highlight, but keep it restrained
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__item.is-on-air {
    border-color:
        var(--vibe-primary) !important;

    box-shadow:
        inset 0 0 0 1px
        var(--vibe-primary) !important;
}


/* =========================================================
   ARTWORK
   Small 16:9 image like normal homepage cards
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__artwork {
    display: block !important;

    flex: 0 0 auto !important;

    width: 100% !important;
    height: auto !important;

    aspect-ratio: 16 / 9 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    border: 0 !important;
    border-radius: 0 !important;

    background:
        var(--vibe-bg-card-raised) !important;
}

.vibe-homepage
.vibe-today-schedule__artwork img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    max-width: none !important;

    object-fit: cover !important;
    object-position: center top !important;
}


/* =========================================================
   CARD CONTENT
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__copy {
    display: flex !important;

    min-height: 92px !important;

    flex-direction: column !important;
    align-items: flex-start !important;

    gap: 0 !important;

    padding:
        11px
        12px
        13px !important;

    text-align: left !important;
}


/* Time */

.vibe-homepage
.vibe-today-schedule__time {
    display: block !important;

    margin: 0 0 6px !important;

    color:
        var(--vibe-text-white-a62) !important;

    font-family:
        var(--vibe-font-body, "Inter", sans-serif) !important;

    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;

    letter-spacing: .015em !important;
}


/* Show */

.vibe-homepage
.vibe-today-schedule__copy strong {
    display: block !important;

    width: 100% !important;

    margin: 0 !important;

    overflow: hidden !important;

    color:
        var(--vibe-text-primary) !important;

    font-family:
        var(--rl-heading-font) !important;

    font-size: 16px !important;
    font-weight: 900 !important;
    line-height: 1.08 !important;

    letter-spacing: 0 !important;

    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}


/* Presenter */

.vibe-homepage
.vibe-today-schedule__presenter {
    display: block !important;

    width: 100% !important;

    margin: 6px 0 0 !important;

    overflow: hidden !important;

    color:
        var(--vibe-text-white-a62) !important;

    font-family:
        var(--vibe-font-body, "Inter", sans-serif) !important;

    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;

    letter-spacing: 0 !important;

    text-overflow: ellipsis !important;
    text-transform: none !important;
    white-space: nowrap !important;
}


/* =========================================================
   ON AIR
   Small overlay badge
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__status {
    position: absolute !important;

    z-index: 4 !important;

    top: 9px !important;
    left: 9px !important;

    display: inline-flex !important;

    width: auto !important;
    min-width: 0 !important;
    min-height: 25px !important;

    padding: 0 8px !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;

    border: 0 !important;
    border-radius: 3px !important;

    background:
        var(--vibe-primary) !important;

    color:
        var(--vibe-button-text) !important;

    font-family:
        var(--rl-heading-font) !important;

    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    letter-spacing: .05em !important;

    text-transform: uppercase !important;

    box-shadow: none !important;
}

.vibe-homepage
.vibe-today-schedule__status i {
    display: none !important;
}

.vibe-homepage
.vibe-today-schedule__range {
    display: none !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 980px) {
    .vibe-homepage
    .vibe-today-schedule__item {
        flex-basis: 235px !important;
        width: 235px !important;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 768px) {
    .vibe-homepage
    .vibe-today-schedule__header {
        margin-bottom: 12px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__header h2 {
        font-size: 22px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__view-all {
        min-height: 29px !important;

        padding:
            0
            8px !important;

        font-size: 9px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__rail {
        gap: 10px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__item {
        flex-basis:
            min(
                215px,
                72vw
            ) !important;

        width:
            min(
                215px,
                72vw
            ) !important;
    }

    .vibe-homepage
    .vibe-today-schedule__copy {
        min-height: 88px !important;

        padding:
            10px
            11px
            12px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__copy strong {
        font-size: 15px !important;
    }
}



/* =========================================================
   VIBE TODAY ON ENERGY — EXACT EVENTS HEADER MATCH 2026
   Use the exact same sizing as What's On.
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__header {
    position: relative !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;

    gap: 16px !important;

    margin: 0 0 14px !important;
    padding: 0 0 0 12px !important;
}


/* Remove the bar from the inner DIV */

.vibe-homepage
.vibe-today-schedule__header > div {
    position: static !important;
    padding: 0 !important;
}

.vibe-homepage
.vibe-today-schedule__header > div::before {
    content: none !important;
}


/* Put the bar on the header exactly like What's On */

.vibe-homepage
.vibe-today-schedule__header::before {
    content: "" !important;

    position: absolute !important;

    top: 1px !important;
    bottom: 1px !important;
    left: 0 !important;

    width: 3px !important;

    background: var(--vibe-primary) !important;
}


/* Exact What's On heading dimensions */

.vibe-homepage
.vibe-today-schedule__header h2 {
    margin: 0 !important;

    color: var(--vibe-text-primary) !important;

    font-family: var(--rl-heading-font) !important;

    font-size: 20px !important;
    font-weight: 850 !important;
    line-height: 1 !important;

    letter-spacing: .015em !important;

    text-transform: uppercase !important;
}


/* Exact View All style scale */

.vibe-homepage
.vibe-today-schedule__view-all {
    min-height: 30px !important;

    padding:
        0
        9px !important;

    font-size: 12px !important;
}


/* Mobile keeps the same section-heading family */

@media (max-width: 768px) {
    .vibe-homepage
    .vibe-today-schedule__header {
        gap: 12px !important;
        padding-left: 12px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__header h2 {
        font-size: 20px !important;
    }
}



/* =========================================================
   VIBE TODAY ON ENERGY — REDUCE CARD DOMINANCE 2026
   Make the cards more compact so they stop overpowering
   the homepage.
   ========================================================= */

@media (min-width: 769px) {

    /* If the module uses a grid, stop the cards stretching */
    .vibe-homepage .vibe-today-schedule__grid {
        grid-template-columns: repeat(auto-fit, 280px) !important;
        justify-content: start !important;
        gap: 18px !important;
    }

    /* If the module uses a rail/flex row */
    .vibe-homepage .vibe-today-schedule__rail,
    .vibe-homepage .vibe-today-schedule__cards {
        justify-content: flex-start !important;
        gap: 18px !important;
    }

    /* Common card selectors */
    .vibe-homepage .vibe-today-schedule__card,
    .vibe-homepage .vibe-today-schedule__item,
    .vibe-homepage .vibe-today-schedule__show {
        width: 280px !important;
        min-width: 280px !important;
        max-width: 280px !important;
        flex: 0 0 280px !important;
    }

    /* Artwork smaller */
    .vibe-homepage .vibe-today-schedule__image,
    .vibe-homepage .vibe-today-schedule__art,
    .vibe-homepage .vibe-today-schedule__artwork,
    .vibe-homepage .vibe-today-schedule__thumb {
        height: 150px !important;
        min-height: 150px !important;
        max-height: 150px !important;
        aspect-ratio: 16 / 9 !important;
        overflow: hidden !important;
    }

    .vibe-homepage .vibe-today-schedule__image img,
    .vibe-homepage .vibe-today-schedule__art img,
    .vibe-homepage .vibe-today-schedule__artwork img,
    .vibe-homepage .vibe-today-schedule__thumb img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    /* Tighter content */
    .vibe-homepage .vibe-today-schedule__content,
    .vibe-homepage .vibe-today-schedule__body,
    .vibe-homepage .vibe-today-schedule__meta {
        padding: 14px 16px 16px !important;
    }

    .vibe-homepage .vibe-today-schedule__time {
        font-size: 11px !important;
        line-height: 1.2 !important;
        margin-bottom: 8px !important;
    }

    .vibe-homepage .vibe-today-schedule__title {
        font-size: 15px !important;
        line-height: 1.15 !important;
        margin-bottom: 6px !important;
    }

    .vibe-homepage .vibe-today-schedule__presenter,
    .vibe-homepage .vibe-today-schedule__host {
        font-size: 11px !important;
        line-height: 1.2 !important;
    }

    .vibe-homepage .vibe-today-schedule__badge,
    .vibe-homepage .vibe-today-schedule__live,
    .vibe-homepage .vibe-today-schedule__on-air {
        font-size: 11px !important;
        padding: 7px 12px !important;
    }
}



/* =========================================================
   VIBE TODAY ON ENERGY — MINI CARDS 2026
   ========================================================= */

@media (min-width: 769px) {

    .vibe-homepage
    .vibe-today-schedule__rail {
        display: flex !important;

        gap: 12px !important;

        align-items: stretch !important;
        justify-content: flex-start !important;

        overflow-x: auto !important;
    }

    .vibe-homepage
    .vibe-today-schedule__item {
        flex: 0 0 210px !important;

        width: 210px !important;
        min-width: 210px !important;
        max-width: 210px !important;

        min-height: 0 !important;

        border-radius: 4px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__artwork {
        width: 100% !important;

        height: 118px !important;
        min-height: 118px !important;
        max-height: 118px !important;

        aspect-ratio: auto !important;
    }

    .vibe-homepage
    .vibe-today-schedule__artwork img {
        width: 100% !important;
        height: 100% !important;

        object-fit: cover !important;
        object-position: center top !important;
    }

    .vibe-homepage
    .vibe-today-schedule__copy {
        min-height: 76px !important;

        padding:
            9px
            10px
            11px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__time {
        margin: 0 0 5px !important;

        font-size: 10px !important;
        line-height: 1 !important;
    }

    .vibe-homepage
    .vibe-today-schedule__copy strong {
        font-size: 14px !important;
        line-height: 1.08 !important;
    }

    .vibe-homepage
    .vibe-today-schedule__presenter {
        margin-top: 5px !important;

        font-size: 11px !important;
        line-height: 1.1 !important;
    }

    .vibe-homepage
    .vibe-today-schedule__status {
        top: 7px !important;
        left: 7px !important;

        min-height: 22px !important;

        padding:
            0
            7px !important;

        font-size: 9px !important;

        border-radius: 3px !important;
    }
}

@media (max-width: 768px) {

    .vibe-homepage
    .vibe-today-schedule__item {
        flex: 0 0 190px !important;

        width: 190px !important;
        min-width: 190px !important;
        max-width: 190px !important;
    }

    .vibe-homepage
    .vibe-today-schedule__artwork {
        height: 107px !important;
    }
}



/* =========================================================
   VIBE TODAY ON ENERGY — LEFT ALIGN CARD COPY 2026
   ========================================================= */

.vibe-homepage
.vibe-today-schedule__copy {
    align-items: flex-start !important;
    justify-content: flex-start !important;

    text-align: left !important;
}

.vibe-homepage
.vibe-today-schedule__time,
.vibe-homepage
.vibe-today-schedule__copy strong,
.vibe-homepage
.vibe-today-schedule__presenter {
    display: block !important;

    width: 100% !important;

    text-align: left !important;
}

.vibe-homepage
.vibe-today-schedule__time {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.vibe-homepage
.vibe-today-schedule__presenter {
    align-self: flex-start !important;
}



/* =========================================================
   VIBE HOMEPAGE — EXPLICIT CONTENT WIDTH 2026

   Page Manager "Content Width" modules live inside
   .vibe-home-builder.

   Do not rely on the sidebar float to calculate their width.
   Explicitly match the main/slideshow column instead.

   Full-width modules are rendered outside this builder and
   therefore remain 100% width.
   ========================================================= */


/* Desktop:
   sidebar = 31.5%
   sidebar left gap = 22px
*/

@media (min-width: 1051px) {

    .vibe-homepage
    .vibe-home-builder {
        width:
            calc(
                68.5%
                - 22px
            ) !important;

        max-width:
            calc(
                68.5%
                - 22px
            ) !important;

        min-width: 0 !important;

        margin-left: 0 !important;
        margin-right: auto !important;

        box-sizing: border-box !important;
    }
}


/* Smaller desktop / tablet:
   existing Vibe sidebar = 34%
   existing left gap = 18px
*/

@media (min-width: 769px) and (max-width: 1050px) {

    .vibe-homepage
    .vibe-home-builder {
        width:
            calc(
                66%
                - 18px
            ) !important;

        max-width:
            calc(
                66%
                - 18px
            ) !important;

        min-width: 0 !important;

        margin-left: 0 !important;
        margin-right: auto !important;

        box-sizing: border-box !important;
    }
}


/* Mobile returns to a single full-width column */

@media (max-width: 768px) {

    .vibe-homepage
    .vibe-home-builder {
        width: 100% !important;
        max-width: none !important;

        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}



/* =========================================================
   VIBE HOMEPAGE — CONTINUOUS SIDEBAR WITHOUT FULL MODULE 2026

   If Page Manager contains NO full-width module, restore the
   original Vibe float flow:
     RIGHT: Now Playing → Recently Played → sidebar modules
     LEFT:  Slideshow → content-width homepage modules

   If a full-width module exists, keep the newer top-row grid
   and resume the sidebar after the full-width break.
   ========================================================= */

@media (min-width: 1051px) {

    /*
     * Suppress the top-row layout box only in the normal
     * content-width homepage flow. Its children then behave
     * like the original direct children of the homepage frame.
     */

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module {
        display: contents !important;
    }


    /*
     * Restore original Vibe desktop sidebar float.
     */

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module
    > .vibe-homepage__sidebar {
        float: right !important;

        width: 31.5% !important;

        margin:
            0
            0
            30px
            22px !important;
    }


    /*
     * Slideshow establishes a formatting context via its
     * existing overflow:hidden and therefore occupies the
     * remaining left column beside the sidebar.
     */

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module
    > .vibe-homepage__slideshow {
        width: auto !important;

        margin:
            0
            0
            26px !important;
    }
}


/* Existing Vibe breakpoint uses a 34% sidebar. */

@media (min-width: 769px) and (max-width: 1050px) {

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module {
        display: contents !important;
    }

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module
    > .vibe-homepage__sidebar {
        float: right !important;

        width: 34% !important;

        margin:
            0
            0
            30px
            18px !important;
    }

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module
    > .vibe-homepage__slideshow {
        width: auto !important;

        margin:
            0
            0
            24px !important;
    }
}


/*
 * Mobile keeps the existing stacked grid order.
 */

@media (max-width: 768px) {

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module {
        display: grid !important;
    }

    .vibe-homepage
    .vibe-homepage__top-row.no-full-home-module
    > .vibe-homepage__sidebar {
        float: none !important;

        width: 100% !important;

        margin: 0 !important;
    }
}



/* =========================================================
   VIBE EVENTS — MOBILE CASCADE REPAIR 2026

   Must stay after the later Events desktop styling passes.
   ========================================================= */

@media (max-width: 768px) {

    .vibe-site--inner
    .rl-redline-events {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow: hidden;
    }


    /* Featured event becomes a genuine mobile card */

    .vibe-site--inner
    .rl-redline-events__featured {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;

        overflow: hidden !important;
    }


    /* Do not force desktop image height on mobile */

    .vibe-site--inner
    .rl-redline-events__featured-image {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: auto !important;

        overflow: hidden !important;
    }


    /* Show the full event artwork instead of cropping it */

    .vibe-site--inner
    .rl-redline-events__featured-image img,
    .vibe-site--inner
    .rl-redline-events__featured-image
    .rl-redline-events__placeholder {
        display: block !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        min-height: 0 !important;

        object-fit: contain !important;
        object-position: center !important;
    }


    .vibe-site--inner
    .rl-redline-events__featured-copy {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        padding: 15px !important;

        box-sizing: border-box !important;
    }


    /* Filters must never make the page wider than the phone */

    .vibe-site--inner
    .rl-redline-events__toolbar,
    .vibe-site--inner
    .rl-redline-events__filters,
    .vibe-site--inner
    .rl-redline-events__categories,
    .vibe-site--inner
    .rl-redline-events__controls {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        box-sizing: border-box !important;
    }


    .vibe-site--inner
    .rl-redline-events__categories {
        overflow-x: auto !important;
        overflow-y: hidden !important;

        -webkit-overflow-scrolling: touch;
    }


    /* Event listing cards */

    .vibe-site--inner
    .rl-redline-events__grid {
        grid-template-columns: minmax(0, 1fr) !important;

        width: 100% !important;
        min-width: 0 !important;

        gap: 10px !important;
    }
}


/* Narrow phones */

@media (max-width: 480px) {

    .vibe-site--inner
    .rl-redline-events__controls {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}



/* =========================================================
   VIBE EVENT DETAIL — RELATED EVENTS TYPOGRAPHY 2026

   Match Related Event cards to the current Events index
   typography scale.
   ========================================================= */

.vibe-site--inner
.rl-redline-event-detail__related-copy h3 {
    margin: 8px 0 0 !important;

    font-size: 18px !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;

    letter-spacing: -.015em !important;
}


.vibe-site--inner
.rl-redline-event-detail__related-copy p {
    margin: 9px 0 0 !important;

    font-size: 14px !important;
    line-height: 1.5 !important;
    font-weight: 600 !important;
}


.vibe-site--inner
.rl-redline-event-detail__related-link {
    margin-top: 15px !important;

    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;

    text-transform: uppercase !important;
}


.vibe-site--inner
.rl-redline-event-detail__related-link span {
    font-size: 16px !important;
    line-height: .7 !important;
}



/* =========================================================
   VIBE WAYS TO LISTEN — EQUAL COPY ALIGNMENT
   Equal text area keeps all headings level while the
   complete content remains vertically centred.
   ========================================================= */

@media (min-width: 1051px) {
    .vibe-ways-to-listen__copy {
        height: 61px;
        justify-content: flex-start;
    }
}

/* =========================================================
   END VIBE WAYS TO LISTEN — EQUAL COPY ALIGNMENT
   ========================================================= */

/* =========================================================
   VIBE WAYS TO LISTEN — SINGLE-LINE HEADINGS
   ========================================================= */

.vibe-ways-to-listen__copy h2 {
    white-space: nowrap;
}

/* =========================================================
   END VIBE WAYS TO LISTEN — SINGLE-LINE HEADINGS
   ========================================================= */

/* =========================================================
   VIBE — FINAL STRUCTURAL CARD RADIUS
   Consistent rounded containers across the theme.

   Structural cards/panels only.
   Buttons, CTAs, pills, badges, icons and artwork retain
   their own component-specific radius.
   ========================================================= */


/* ---------------------------------------------------------
   HOMEPAGE
   --------------------------------------------------------- */

.vibe-site
.vibe-homepage__slideshow,

.vibe-site
.vibe-homepage
.vibe-event,

.vibe-site
.vibe-homepage
.vibe-news-card,

.vibe-site
.vibe-homepage
.vibe-listen-again__card,

.vibe-site
.vibe-homepage
.vibe-today-schedule__item {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   SIDEBAR MODULES
   Applies on homepage and internal pages.
   --------------------------------------------------------- */

.vibe-site
.vibe-sidebar-content-block {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   CONTROL CHART
   --------------------------------------------------------- */

.vibe-site
.vibe-control-chart-leader,

.vibe-site
.vibe-control-chart-leader__stats,

.vibe-site
.vibe-control-chart-table,

.vibe-site
.vibe-control-chart-new {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   RECENTLY PLAYED
   --------------------------------------------------------- */

.vibe-site--inner
.rl-recently-played__filters,

.vibe-site--inner
.rl-recently-played__table-head,

.vibe-site--inner
.rl-recently-played__list {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   EVENTS
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-events__featured,

.vibe-site--inner
.rl-redline-events__filters,

.vibe-site--inner
.rl-redline-events__card,

.vibe-site--inner
.rl-redline-events__empty,

.vibe-site--inner
.rl-redline-event-detail__panel,

.vibe-site--inner
.rl-redline-event-detail__map,

.vibe-site--inner
.rl-redline-event-detail__related-card {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   COMPETITIONS
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-competitions__featured,

.vibe-site--inner
.rl-redline-competitions__card,

.vibe-site--inner
.rl-redline-competitions__how,

.vibe-site--inner
.rl-redline-competitions__winners,

.vibe-site--inner
.rl-redline-competitions__terms,

.vibe-site--inner
.rl-redline-competition-detail__image,

.vibe-site--inner
.rl-redline-competition-detail__placeholder,

.vibe-site--inner
.rl-redline-competition-detail__prize-panel,

.vibe-site--inner
.rl-redline-competition-notice,

.vibe-site--inner
.rl-redline-competition-privacy,

.vibe-site--inner
.rl-redline-competition-closed,

.vibe-site--inner
.rl-redline-competition-detail__terms-copy {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   SCHEDULE
   --------------------------------------------------------- */

.vibe-site--inner
.rl-redline-schedule-card {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   NEWS / ARTICLE SURFACES
   --------------------------------------------------------- */

.vibe-site--inner
.vibe-news-card,

.vibe-site--inner
.vibe-news-article__panel,

.vibe-site--inner
.vibe-news-article__more-card {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* ---------------------------------------------------------
   PODCAST / LISTEN AGAIN SURFACES
   --------------------------------------------------------- */

.vibe-site--inner
.vibe-listen-again__card,

.vibe-site--inner
.vibe-podcast-card {
    border-radius:
        var(--vibe-card-radius)
        !important;
}


/* =========================================================
   END VIBE — FINAL STRUCTURAL CARD RADIUS
   ========================================================= */


/* =========================================================
   VIBE CONTROL CHART — MATCH THEME CARD RADIUS
   Outer container only; internal chart columns remain square.
   ========================================================= */

.vibe-site .vibe-control-chart {
    border-radius: var(--vibe-card-radius) !important;
    overflow: hidden;
}

/* =========================================================
   END VIBE CONTROL CHART — MATCH THEME CARD RADIUS
   ========================================================= */


/* =========================================================
   VIBE HOW TO LISTEN — MATCH THEME CARD RADIUS
   ========================================================= */

.vibe-site .vibe-ways-to-listen {
    border-radius: var(--vibe-card-radius) !important;
    overflow: hidden;
}

/* =========================================================
   END VIBE HOW TO LISTEN — MATCH THEME CARD RADIUS
   ========================================================= */


/* =========================================================
   VIBE ADVERTISING PAGE — MATCH THEME CARD RADIUS
   Outer advertising canvas only.
   ========================================================= */

.vibe-site--inner .vibe-ad-target {
    border-radius: var(--vibe-card-radius) !important;
    overflow: hidden !important;
}

/* =========================================================
   END VIBE ADVERTISING PAGE — MATCH THEME CARD RADIUS
   ========================================================= */


/* =========================================================
   VIBE ADVERTISING — MATCH VIBE CARD ROUNDNESS
   Actual visible card surfaces.
   ========================================================= */

.vibe-site--inner .vibe-ad-target__benefit,
.vibe-site--inner .vibe-ad-target__process-grid article,
.vibe-site--inner .vibe-ad-target__option,
.vibe-site--inner .vibe-ad-target__audio-player,
.vibe-site--inner .vibe-ad-target__logo,
.vibe-site--inner .vibe-ad-target__logo-more,
.vibe-site--inner .vibe-ad-target__radio-proof,
.vibe-site--inner .vibe-ad-target__audience,
.vibe-site--inner .vibe-ad-target__media-inner {
    border-radius: var(--vibe-card-radius) !important;
}

/* Cards containing images/content need to clip to the radius. */
.vibe-site--inner .vibe-ad-target__benefit,
.vibe-site--inner .vibe-ad-target__option,
.vibe-site--inner .vibe-ad-target__audio-player,
.vibe-site--inner .vibe-ad-target__logo,
.vibe-site--inner .vibe-ad-target__logo-more,
.vibe-site--inner .vibe-ad-target__radio-proof,
.vibe-site--inner .vibe-ad-target__audience {
    overflow: hidden;
}

/* =========================================================
   END VIBE ADVERTISING — MATCH VIBE CARD ROUNDNESS
   ========================================================= */




/* =========================================================
   VIBE CONTACT US SIDEBAR BLOCK 2026
   Matches the dark Vibe sidebar content-card system.
   ========================================================= */

.vibe-sidebar-content-block--contact {
    --vibe-primary:
        var(--vibe-brand-primary-hover);

    position: relative;
    overflow: hidden;

    margin: 0 0 18px;
    padding: 0;

    border:
        1px solid
        var(--vibe-border-white-a14);

    border-radius: 4px;

    background:
        var(--vibe-bg-card-raised);

    color:
        var(--vibe-text-primary);

    box-shadow: none;
}


.vibe-sidebar-content-block--contact
.vibe-sidebar-content-block__body {
    padding: 17px 18px 18px;

    background: transparent;

    color:
        var(--vibe-text-primary);
}


.vibe-sidebar-contact__header {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 14px;

    margin: 0;
    padding: 0 0 12px;

    border-bottom:
        1px solid
        var(--vibe-border-medium);
}


.vibe-sidebar-contact__brand {
    display: flex;

    min-width: 0;

    align-items: center;

    gap: 9px;

    color:
        var(--vibe-primary);
}


.vibe-sidebar-contact__brand > svg {
    display: block;

    width: 22px;
    height: 22px;

    flex: 0 0 22px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.vibe-sidebar-contact__brand > strong {
    min-width: 0;
    overflow: hidden;

    color:
        var(--vibe-primary)
        !important;

    font-size: 13px;
    font-weight: 900;
    line-height: 1;

    letter-spacing: .13em;

    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}


.vibe-sidebar-contact__text {
    margin: 15px 0 0
        !important;

    color:
        var(--vibe-text-white-a64)
        !important;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
}


.vibe-sidebar-contact__email {
    display: flex;

    min-width: 0;

    align-items: center;

    gap: 9px;

    margin-top: 14px;

    color:
        var(--vibe-text-primary)
        !important;

    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;

    text-decoration: none
        !important;
}


.vibe-sidebar-contact__email > svg {
    display: block;

    width: 17px;
    height: 17px;

    flex: 0 0 17px;

    fill: none;

    stroke:
        var(--vibe-primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.vibe-sidebar-contact__email > span {
    min-width: 0;
    overflow: hidden;

    text-overflow: ellipsis;
    white-space: nowrap;
}


.vibe-sidebar-contact__button {
    display: flex;

    width: 100%;
    min-height: 42px;

    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-top: 16px;

    padding: 0 14px;

    box-sizing: border-box;

    border: 0;
    border-radius: 7px;

    background:
        var(--vibe-primary);

    color:
        #fff
        !important;

    font-size: 12px;
    font-weight: 900;
    line-height: 1;

    text-decoration: none
        !important;

    transition:
        filter .16s ease,
        transform .16s ease;
}


.vibe-sidebar-contact__button > svg {
    display: block;

    width: 16px;
    height: 16px;

    flex: 0 0 16px;

    fill: none;

    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


@media (hover: hover) {

    .vibe-sidebar-contact__button:hover,
    .vibe-sidebar-contact__button:focus-visible {
        filter: brightness(1.08);

        transform:
            translateY(-1px);

        text-decoration: none
            !important;
    }

    .vibe-sidebar-contact__email:hover,
    .vibe-sidebar-contact__email:focus-visible {
        color:
            var(--vibe-primary)
            !important;

        text-decoration: none
            !important;
    }
}



/* =========================================================
   CONTACT THE STUDIO BUTTON CONVERSION 2026
   ========================================================= */

.vibe-sidebar-contact__button {
    appearance: none;

    cursor: pointer;

    font-family: inherit;
}



/* =========================================================
   VIBE — CONTACT THE STUDIO MATCH EXISTING SIDEBAR BLOCKS
   ========================================================= */

.vibe-sidebar-content-block--contact {
    margin:
        0 0 18px
        !important;

    padding:
        0
        !important;

    border:
        1px solid
        var(--vibe-border-white-a14)
        !important;

    border-top:
        1px solid
        var(--vibe-border-white-a14)
        !important;

    border-radius:
        4px
        !important;

    background:
        var(--vibe-bg-card-raised)
        !important;

    box-shadow:
        none
        !important;
}


/* remove the pink top strip from the earlier version */

.vibe-sidebar-content-block--contact::before,
.vibe-sidebar-content-block--contact::after {
    display:
        none
        !important;

    content:
        none
        !important;
}


.vibe-sidebar-content-block--contact
.vibe-sidebar-content-block__body {
    padding:
        0
        !important;

    background:
        transparent
        !important;
}


.vibe-sidebar-contact__header {
    display:
        flex
        !important;

    min-width:
        0;

    align-items:
        center
        !important;

    gap:
        10px
        !important;

    margin:
        0
        !important;

    padding:
        17px 18px 14px
        !important;

    border-bottom:
        1px solid
        var(--vibe-border-medium)
        !important;
}


.vibe-sidebar-contact__icon {
    display:
        flex
        !important;

    width:
        22px
        !important;

    height:
        22px
        !important;

    flex:
        0 0 22px
        !important;

    align-items:
        center;

    justify-content:
        center;

    color:
        var(--vibe-brand-primary-hover)
        !important;
}


.vibe-sidebar-contact__icon svg {
    display:
        block
        !important;

    width:
        22px
        !important;

    height:
        22px
        !important;

    fill:
        none
        !important;

    stroke:
        currentColor
        !important;

    stroke-width:
        1.8
        !important;
}


.vibe-sidebar-contact__header strong {
    margin:
        0
        !important;

    color:
        var(--vibe-brand-primary-hover)
        !important;

    font-family:
        var(--rl-heading-font)
        !important;

    font-size:
        13px
        !important;

    font-weight:
        900
        !important;

    line-height:
        1
        !important;

    letter-spacing:
        .13em
        !important;

    text-transform:
        uppercase;
}


.vibe-sidebar-contact__content {
    padding:
        18px
        !important;
}


.vibe-sidebar-contact__content h2 {
    max-width:
        250px;

    margin:
        0
        !important;

    color:
        var(--vibe-text-primary)
        !important;

    font-family:
        var(--rl-heading-font)
        !important;

    font-size:
        29px
        !important;

    font-weight:
        900
        !important;

    line-height:
        1.03
        !important;
}


.vibe-sidebar-contact__content p {
    max-width:
        260px;

    margin:
        12px 0 0
        !important;

    color:
        var(--vibe-text-white-a64)
        !important;

    font-size:
        13px
        !important;

    font-weight:
        600
        !important;

    line-height:
        1.45
        !important;
}


.vibe-sidebar-contact__actions {
    margin-top:
        17px
        !important;
}


.vibe-sidebar-contact__button {
    appearance:
        none;

    width:
        100%
        !important;

    min-height:
        48px
        !important;

    padding:
        0 15px
        !important;

    border:
        1px solid
        var(--vibe-brand-primary-hover)
        !important;

    border-radius:
        7px
        !important;

    background:
        var(--vibe-brand-primary-hover)
        !important;

    color:
        var(--vibe-button-text)
        !important;

    font-family:
        var(--rl-heading-font)
        !important;

    font-size:
        12px
        !important;

    font-weight:
        900
        !important;

    line-height:
        1
        !important;

    letter-spacing:
        .04em
        !important;

    text-transform:
        uppercase;

    cursor:
        pointer;
}


.vibe-sidebar-contact__button span {
    color:
        var(--vibe-button-text)
        !important;
}


.vibe-sidebar-contact__button svg {
    width:
        18px
        !important;

    height:
        18px
        !important;

    fill:
        none
        !important;

    stroke:
        currentColor
        !important;

    stroke-width:
        2
        !important;

    stroke-linecap:
        round;

    stroke-linejoin:
        round;
}



/* =========================================================
   VIBE — CONTACT THE STUDIO HEADER ALIGNMENT
   ========================================================= */

.vibe-sidebar-contact__header {
    justify-content:
        flex-start
        !important;
}



/* =========================================================
   VIBE — MESSAGE THE STUDIO ACCENT
   Use Vibe branding instead of the player button colour.
   ========================================================= */

.rlp-request-modal {
    --rlp-request-accent:
        var(--vibe-brand-primary-hover)
        !important;
}



/* =========================================================
   VIBE — MESSAGE THE STUDIO DIALOG ACCENT FIX
   The shared popup sets the accent inline on the dialog.
   ========================================================= */

.rlp-request-modal
.rlp-request-modal__dialog {
    --rlp-request-accent:
        var(--vibe-brand-primary-hover)
        !important;
}



/* =========================================================
   VIBE — LISTENER CLUB FORM FIELD COLOURS
   Inputs stay dark; pink is reserved for actions/accent.
   ========================================================= */

.vibe-club-field input {
    border:
        1px solid
        var(--vibe-border-white-a14)
        !important;

    background:
        var(--vibe-bg-card-deep)
        !important;

    color:
        var(--vibe-text-primary)
        !important;

    caret-color:
        var(--vibe-brand-primary-hover);
}


.vibe-club-field input:hover {
    border-color:
        var(--vibe-border-strong)
        !important;

    background:
        var(--vibe-bg-card-deep)
        !important;
}


.vibe-club-field input:focus {
    border-color:
        var(--vibe-brand-primary-hover)
        !important;

    background:
        var(--vibe-bg-card-deep)
        !important;

    box-shadow:
        0 0 0 2px
        var(--vibe-brand-primary-a12)
        !important;
}


/* Chrome / Safari autofill */

.vibe-club-field input:-webkit-autofill,
.vibe-club-field input:-webkit-autofill:hover,
.vibe-club-field input:-webkit-autofill:focus {
    -webkit-text-fill-color:
        var(--vibe-text-primary)
        !important;

    -webkit-box-shadow:
        0 0 0 1000px
        var(--vibe-bg-card-deep)
        inset
        !important;

    transition:
        background-color 9999s ease-out 0s;
}



/* =========================================================
   VIBE — LISTENER CLUB INPUTS MATCH SEARCH FIELD
   ========================================================= */

.vibe-club-field input {
    background:
        var(--vibe-bg-panel)
        !important;

    border-color:
        var(--vibe-border-medium)
        !important;

    color:
        var(--vibe-text-primary)
        !important;
}


.vibe-club-field input:hover {
    background:
        var(--vibe-bg-panel)
        !important;
}


.vibe-club-field input:focus {
    background:
        var(--vibe-bg-panel)
        !important;

    border-color:
        var(--vibe-brand-primary-hover-a72)
        !important;
}


/* Safari / Chrome autofill */

.vibe-club-field input:-webkit-autofill,
.vibe-club-field input:-webkit-autofill:hover,
.vibe-club-field input:-webkit-autofill:focus {
    -webkit-text-fill-color:
        var(--vibe-text-primary)
        !important;

    -webkit-box-shadow:
        0 0 0 1000px
        var(--vibe-bg-panel)
        inset
        !important;
}



/* =========================================================
   VIBE — LISTENER CLUB REMOVE INPUT FOCUS GLOW
   ========================================================= */

.vibe-club-field input:focus {
    box-shadow:
        none
        !important;
}


/* =========================================================
   VIBE — CREATE ACCOUNT MATCH JOIN LISTENER CLUB HOVER
   Exact same pink behaviour as the sidebar Join button.
   ========================================================= */

.vibe-club-form .vibe-club-submit {
    background:
        var(--vibe-brand-primary-hover)
        !important;

    color:
        var(--vibe-button-text)
        !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        color .16s ease;
}


@media (hover: hover) {

    .vibe-club-form .vibe-club-submit:hover {
        background:
            var(--vibe-brand-primary-active)
            !important;

        color:
            var(--vibe-button-text)
            !important;
    }

}


.vibe-club-form .vibe-club-submit:focus-visible {
    background:
        var(--vibe-brand-primary-active)
        !important;

    color:
        var(--vibe-button-text)
        !important;
}



/* =========================================================
   VIBE — PRIMARY PINK BUTTON STANDARD

   Approved Vibe primary CTA behaviour:

   Normal:
       #ff1493

   Hover / focus:
       #ec0e86

   Matches the approved JOIN LISTENER CLUB button.
   ========================================================= */


/* ---------------------------------------------------------
   Global semantic button tokens
   --------------------------------------------------------- */

:root {
    --vibe-button-bg:
        var(--vibe-brand-primary-hover);

    --vibe-button-bg-hover:
        var(--vibe-brand-primary);
}


/* ---------------------------------------------------------
   Solid primary pink buttons
   --------------------------------------------------------- */

.vibe-listen-live--broadcast,

.vibe-slide__button,

.vibe-homepage
.vibe-event__cta,

.vibe-homepage
.vibe-listen-again__listen,

.vibe-sidebar-content-block--search
button[type="submit"],

.vibe-sidebar-content-block--search
button.vibe-sidebar-search__submit,

.vibe-sidebar-poll__submit,

.vibe-site
.rl-recently-played__submit,

.vibe-site--inner
.rl-recently-played__submit,

.vibe-site--inner
.vibe-recently-played-2026
.rl-recently-played__submit,

.vibe-site--inner
.rl-redline-events__featured-button,

.vibe-site--inner
.rl-redline-events__card-button,

.vibe-site--inner
.rl-redline-events__submit > a,

.vibe-site--inner
.rl-redline-event-detail__button.is-primary,

.vibe-site--inner
.rl-redline-competitions__button:not(
    .rl-redline-competitions__button--secondary
),

.vibe-site--inner
.rl-redline-competition-submit,

.vibe-podcasts-featured__button,

.vibe-presenter-button--primary,

.vibe-club-intro__button,

.vibe-club-submit,

.vibe-member-feature__button,

.vibe-member-primary-button,

.vibe-schedule-show__action--primary,

.vibe-sidebar-listener-club__button--primary,

.vibe-sidebar-contact__button,

.vibe-ad-c3__submit,

.vibe-ad-c3__button,

.vibe-ad-c3__package-button,

.vibe-ad-v2__button--pink,

.vibe-ad-v2__submit,

.vibe-ad-v2__package-button,

.vibe-ad-target__button--pink,

.vibe-ad-target__audio-player button,

.vibe-proposal-popup__content
.vibe-ad-v2__form
button[type="submit"],

.vibe-proposal-popup__content
.vibe-ad-v2__form
input[type="submit"] {

    background:
        var(--vibe-brand-primary-hover)
        !important;

    border-color:
        var(--vibe-brand-primary-hover)
        !important;

    color:
        var(--vibe-button-text)
        !important;

    transition:
        background-color .16s ease,
        border-color .16s ease,
        color .16s ease;
}


/* ---------------------------------------------------------
   Mouse hover
   --------------------------------------------------------- */

@media (hover: hover) {

    .vibe-listen-live--broadcast:hover,

    .vibe-slide__button:hover,

    .vibe-homepage
    .vibe-event__cta:hover,

    .vibe-homepage
    .vibe-listen-again__listen:hover,

    .vibe-sidebar-content-block--search
    button[type="submit"]:hover,

    .vibe-sidebar-poll__submit:hover,

    .vibe-site
    .rl-recently-played__submit:hover,

    .vibe-site--inner
    .rl-recently-played__submit:hover,

    .vibe-site--inner
    .vibe-recently-played-2026
    .rl-recently-played__submit:hover,

    .vibe-site--inner
    .rl-redline-events__featured-button:hover,

    .vibe-site--inner
    .rl-redline-events__card-button:hover,

    .vibe-site--inner
    .rl-redline-events__submit > a:hover,

    .vibe-site--inner
    .rl-redline-event-detail__button.is-primary:hover,

    .vibe-site--inner
    .rl-redline-competitions__button:not(
        .rl-redline-competitions__button--secondary
    ):hover,

    .vibe-site--inner
    .rl-redline-competition-submit:hover,

    .vibe-podcasts-featured__button:hover,

    .vibe-presenter-button--primary:hover,

    .vibe-club-intro__button:hover,

    .vibe-club-submit:hover,

    .vibe-member-feature__button:hover,

    .vibe-member-primary-button:hover,

    .vibe-schedule-show__action--primary:hover,

    .vibe-sidebar-listener-club__button--primary:hover,

    .vibe-sidebar-contact__button:hover,

    .vibe-ad-c3__submit:hover,

    .vibe-ad-c3__button:hover,

    .vibe-ad-c3__package-button:hover,

    .vibe-ad-v2__button--pink:hover,

    .vibe-ad-v2__submit:hover,

    .vibe-ad-v2__package-button:hover,

    .vibe-ad-target__button--pink:hover,

    .vibe-ad-target__audio-player button:hover,

    .vibe-proposal-popup__content
    .vibe-ad-v2__form
    button[type="submit"]:hover,

    .vibe-proposal-popup__content
    .vibe-ad-v2__form
    input[type="submit"]:hover {

        background:
            var(--vibe-brand-primary)
            !important;

        border-color:
            var(--vibe-brand-primary)
            !important;

        color:
            var(--vibe-button-text)
            !important;
    }
}


/* ---------------------------------------------------------
   Keyboard focus = same visual state as hover
   --------------------------------------------------------- */

.vibe-slide__button:focus-visible,

.vibe-homepage
.vibe-event__cta:focus-visible,

.vibe-homepage
.vibe-listen-again__listen:focus-visible,

.vibe-sidebar-content-block--search
button[type="submit"]:focus-visible,

.vibe-sidebar-poll__submit:focus-visible,

.vibe-site--inner
.rl-redline-events__featured-button:focus-visible,

.vibe-site--inner
.rl-redline-events__card-button:focus-visible,

.vibe-site--inner
.rl-redline-events__submit > a:focus-visible,

.vibe-site--inner
.rl-redline-event-detail__button.is-primary:focus-visible,

.vibe-site--inner
.rl-redline-competitions__button:not(
    .rl-redline-competitions__button--secondary
):focus-visible,

.vibe-site--inner
.rl-redline-competition-submit:focus-visible,

.vibe-podcasts-featured__button:focus-visible,

.vibe-presenter-button--primary:focus-visible,

.vibe-club-intro__button:focus-visible,

.vibe-club-submit:focus-visible,

.vibe-member-feature__button:focus-visible,

.vibe-member-primary-button:focus-visible,

.vibe-schedule-show__action--primary:focus-visible,

.vibe-sidebar-listener-club__button--primary:focus-visible,

.vibe-sidebar-contact__button:focus-visible,

.vibe-ad-target__button--pink:focus-visible,

.vibe-ad-target__audio-player button:focus-visible,

.vibe-proposal-popup__content
.vibe-ad-v2__form
button[type="submit"]:focus-visible,

.vibe-proposal-popup__content
.vibe-ad-v2__form
input[type="submit"]:focus-visible {

    background:
        var(--vibe-brand-primary)
        !important;

    border-color:
        var(--vibe-brand-primary)
        !important;

    color:
        var(--vibe-button-text)
        !important;
}


/* =========================================================
   VIBE — LISTENER CLUB DESKTOP STEP BALANCE
   ========================================================= */

@media (min-width: 981px) {

    .vibe-club-step {
        padding: 17px 18px;
        gap: 12px;
        align-items: center;
    }

    .vibe-club-step > strong {
        width: 28px;
        height: 28px;
        flex: 0 0 28px;

        font-size: 11px;
        line-height: 1;
    }

    .vibe-club-step h3 {
        margin: 0 0 4px;

        font-size: 14px;
        line-height: 1.15;
        font-weight: 900;
    }

    .vibe-club-step p {
        margin: 0;

        font-size: 12px;
        line-height: 1.4;
    }
}



/* =========================================================
   VIBE — LISTENER CLUB STEP VERTICAL ALIGNMENT
   Keep all three titles on the same baseline.
   ========================================================= */

@media (min-width: 981px) {

    .vibe-club-step {
        align-items: flex-start;
    }

    .vibe-club-step > strong {
        margin-top: 1px;
    }

}



/* =========================================================
   VIBE — LISTENER CLUB DESKTOP BENEFIT CARDS
   ========================================================= */

@media (min-width: 981px) {

    .vibe-club-benefit {
        padding: 17px 18px;
        gap: 12px;
        align-items: flex-start;
    }

    .vibe-club-benefit__icon {
        width: 34px;
        height: 34px;
        flex: 0 0 34px;
    }

    .vibe-club-benefit__icon svg {
        width: 17px;
        height: 17px;
    }

    .vibe-club-benefit h3 {
        margin: 1px 0 6px;

        font-size: 14px;
        line-height: 1.15;
        font-weight: 900;
    }

    .vibe-club-benefit p {
        margin: 0;

        font-size: 12px;
        line-height: 1.45;
    }

}

