/*
Theme Name: Asphalt Pursuit
Theme URI: https://asphaltpursuit.com
Author: Asphalt Pursuit
Description: Custom theme for Asphalt Pursuit motorsport media brand.
Version: 2.87.5
*/

/* ============================================================
   CSS VARIABLES
   ============================================================ */
:root {
    --ap-red:        #c9201e;
    --ap-red-dark:   #a01816;
    --ap-black:      #0a0a0a;
    --ap-gray-dark:  #111111;
    --ap-gray-mid:   #1a1a1a;
    --ap-gray:       #242424;
    --ap-off-white:  #f2efe9;
    --ap-muted:      #888888;
    --ap-gold:       #c9a84c;
    --ap-font-display: 'Bebas Neue', sans-serif;
    --ap-font-head:    'Barlow Condensed', sans-serif;
    --ap-font-body:    'Barlow', sans-serif;
    --ap-transition:   0.3s ease;
    --ap-nav-h:        80px;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
    background-color: var(--ap-black);
    color: var(--ap-off-white);
    font-family: var(--ap-font-body);
    font-weight: 400;
    font-size: 1.05rem;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

.ap-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}
@media (max-width: 480px) {
    .ap-container { padding: 0 1.25rem; }
}

/* ============================================================
   TYPOGRAPHY UTILITIES
   ============================================================ */
.ap-eyebrow {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 0.6rem;
}
.ap-section-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1rem;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.ap-btn {
    display: inline-block;
    font-family: var(--ap-font-head);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    background: var(--ap-red);
    color: #fff;
    padding: 0.85rem 2rem;
    border: 2px solid var(--ap-red);
    cursor: pointer;
    transition: background var(--ap-transition), color var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-btn:hover  { background: transparent; color: var(--ap-red); }
.ap-btn-full   { width: 100%; text-align: center; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.ap-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(10,10,10,0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    isolation: isolate; /* prevents filter bleed from article watermarks */
}
.ap-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--ap-nav-h);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}
.ap-logo-wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
}
.ap-logo-img    { height: 74px; width: auto; filter: none !important; opacity: 1 !important; position: relative; z-index: 1; }
.ap-logo-text   { font-family: var(--ap-font-display); font-size: 1.5rem; color: var(--ap-off-white); letter-spacing: 0.05em; }
.ap-logo-tagline { font-family: var(--ap-font-head); font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ap-muted); display: block; }

.ap-nav-menu    { display: flex; align-items: center; gap: 2rem; }
.ap-nav-menu a  {
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    transition: color var(--ap-transition);
    padding: 0.5rem 0;
}
.ap-nav-menu a:hover { color: var(--ap-red); }

.ap-hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    -webkit-tap-highlight-color: transparent;
}
.ap-hamburger span { display: block; width: 24px; height: 2px; background: var(--ap-off-white); transition: var(--ap-transition); }

@media (max-width: 768px) {
    .ap-hamburger  { display: flex; }
    .ap-nav-menu   {
        display: none;
        position: fixed;
        top: var(--ap-nav-h);
        left: 0; right: 0; bottom: 0;
        background: rgba(10,10,10,0.99);
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        gap: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        z-index: 1002;
        padding: 2rem 0 4rem;
    }
    .ap-nav-menu.active { display: flex; }
    .ap-nav-menu li { width: 100%; text-align: center; }
    .ap-nav-menu a {
        font-size: 1.15rem;
        letter-spacing: 0.15em;
        display: block;
        padding: 1rem 2rem;
        width: 100%;
        box-sizing: border-box;
    }
    .ap-nav-menu a:hover { color: var(--ap-red); background: rgba(255,255,255,0.03); }
}

/* ============================================================
   EMAIL SIGNUP BAR
   ============================================================ */
.ap-signup-bar {
    background: var(--ap-red);
    padding: 0.85rem 0;
    position: relative;
    z-index: 10;
}
.ap-signup-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.ap-signup-bar-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--ap-font-head);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.95);
    flex-shrink: 0;
}
.ap-signup-bar-form {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    flex: 1;
    justify-content: flex-end;
}
.ap-signup-bar-fields { display: flex; }
.ap-signup-bar-input {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.4);
    border-right: none;
    color: #fff;
    font-family: var(--ap-font-body);
    font-size: 0.9rem;
    padding: 0.55rem 1rem;
    outline: none;
    min-width: 220px;
    transition: background var(--ap-transition);
    -webkit-appearance: none;
}
.ap-signup-bar-input::placeholder { color: rgba(255,255,255,0.65); }
.ap-signup-bar-input:focus { background: rgba(255,255,255,0.22); }
.ap-signup-bar-btn {
    background: #fff;
    color: var(--ap-red);
    border: 1px solid #fff;
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 0.55rem 1.25rem;
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--ap-transition), color var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-signup-bar-btn:hover { background: var(--ap-black); border-color: var(--ap-black); color: #fff; }
.ap-signup-bar-privacy  { font-family: var(--ap-font-head); font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.55); white-space: nowrap; }
.ap-signup-bar-msg      { font-family: var(--ap-font-head); font-size: 0.82rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.9); min-height: 1.2rem; margin-top: 0.4rem; }
.ap-signup-bar-msg.success { color: #6bcd6b !important; font-weight: 700; }
.ap-signup-bar-msg.error   { color: #ff6b6b !important; font-weight: 700; }

@media (max-width: 768px) {
    .ap-signup-bar-inner    { flex-direction: column; align-items: flex-start; gap: 0.6rem; padding: 0.85rem 0; }
    .ap-signup-bar-label    { font-size: 0.74rem; white-space: normal; }
    .ap-signup-bar-form     { width: 100%; justify-content: flex-start; gap: 0.5rem; }
    .ap-signup-bar-fields   { width: 100%; }
    .ap-signup-bar-input    { flex: 1; min-width: 0; border-right: 1px solid rgba(255,255,255,0.4); }
    .ap-signup-bar-privacy  { display: none; }
}

/* ============================================================
   HERO SLIDER
   ============================================================ */
#ap-hero {
    position: relative;
    height: calc(100vh - var(--ap-nav-h));
    min-height: 520px;
    overflow: hidden;
}
@media (max-width: 768px) {
    #ap-hero {
        height: calc(100svh - var(--ap-nav-h));
        min-height: 420px;
    }
}

.ap-hero-slider { position: relative; width: 100%; height: 100%; }

.ap-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-gray-dark);
    opacity: 0;
    transition: opacity 0.9s ease;
    pointer-events: none;
}
.ap-slide.active { opacity: 1; pointer-events: auto; }

/* Default overlay — light, shows image on slides 2 & 3 */
.ap-slide-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(10,10,10,0.28) 0%, rgba(10,10,10,0.10) 40%, rgba(10,10,10,0.55) 100%);
}

/* Slide 1 — minimal overlay, just enough for headline readability */
.ap-slide-1 .ap-slide-overlay {
    background:
        linear-gradient(
            to right,
            rgba(10,10,10,0.55) 0%,
            rgba(10,10,10,0.30) 40%,
            rgba(10,10,10,0.08) 70%,
            rgba(10,10,10,0.02) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(10,10,10,0.15) 0%,
            rgba(10,10,10,0.02) 40%,
            rgba(10,10,10,0.25) 100%
        );
}

/* Slide 3 — subtle left overlay so quality block text reads over mountain area */
.ap-slide-3 .ap-slide-overlay {
    background:
        linear-gradient(
            to right,
            rgba(10,10,10,0.82) 0%,
            rgba(10,10,10,0.68) 35%,
            rgba(10,10,10,0.18) 65%,
            rgba(10,10,10,0.05) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(10,10,10,0.30) 0%,
            rgba(10,10,10,0.05) 40%,
            rgba(10,10,10,0.50) 100%
        );
}

.ap-slide-content {
    position: absolute;
    bottom: 5rem;
    left: 2.5rem;
    max-width: 600px;
}
@media (min-width: 768px) {
    .ap-slide-content { left: 4rem; bottom: 7rem; max-width: 640px; }
}
@media (max-width: 480px) {
    .ap-slide-content { left: 1.25rem; right: 1.25rem; bottom: 4rem; max-width: 100%; }
}

.ap-slide-eyebrow {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 0.75rem;
}
/* FIXED: headline was too large, sub was too small — balanced ratio */
.ap-slide-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2.4rem, 5.5vw, 4.8rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1.25rem;
    text-shadow: 0 2px 20px rgba(0,0,0,0.5);
}
.ap-slide-sub {
    font-family: var(--ap-font-body);
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: 400;
    color: rgba(242,239,233,0.88);
    max-width: 480px;
    line-height: 1.6;
    text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}
@media (max-width: 480px) {
    .ap-slide-headline { font-size: clamp(2rem, 9vw, 3rem); }
    .ap-slide-sub      { font-size: 0.95rem; max-width: 100%; }
}

.ap-hero-nav {
    position: absolute;
    bottom: 1.5rem;
    right: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 10;
}
.ap-hero-prev,
.ap-hero-next {
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    color: var(--ap-off-white);
    width: 42px;
    height: 42px;
    cursor: pointer;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-hero-prev:hover,
.ap-hero-next:hover { background: var(--ap-red); border-color: var(--ap-red); }
.ap-hero-dots { display: flex; gap: 0.4rem; align-items: center; }
.ap-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,0.3);
    border: none;
    cursor: pointer;
    transition: background var(--ap-transition), transform var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-hero-dot.active { background: var(--ap-red); transform: scale(1.3); }

@media (max-width: 480px) {
    .ap-hero-nav { bottom: 1rem; right: 1rem; gap: 0.5rem; }
    .ap-hero-prev, .ap-hero-next { width: 36px; height: 36px; }
}

/* ============================================================
   THUMBNAIL CARDS
   ============================================================ */
#ap-cards { background: var(--ap-black); }
.ap-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
/* Hide 3-card section on mobile — sections appear directly below on mobile */
@media (max-width: 768px) { #ap-cards { display: none; } }

.ap-card {
    position: relative;
    display: block;
    height: 420px;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-gray-dark);
    overflow: hidden;
}
@media (max-width: 768px) { .ap-card { height: 300px; } }

.ap-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.3) 60%, transparent 100%);
    transition: background var(--ap-transition);
}
.ap-card:hover .ap-card-overlay {
    background: linear-gradient(to top, rgba(10,10,10,0.97) 0%, rgba(10,10,10,0.6) 60%, rgba(201,32,30,0.12) 100%);
}
.ap-card-content {
    position: absolute;
    bottom: 1.75rem;
    left: 1.5rem;
    right: 1.5rem;
}
.ap-card-tag {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 0.4rem;
}
.ap-card-label {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 3vw, 2.8rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 0.4rem;
    text-shadow: 0 2px 8px rgba(0,0,0,0.8);
}
.ap-card-sub {
    font-family: var(--ap-font-body);
    font-size: 1rem;
    font-weight: 300;
    color: rgba(242,239,233,0.85);
    line-height: 1.6;
    text-shadow: 0 1px 4px rgba(0,0,0,0.9);
}
/* ap-card-date — see final definition below */

/* Card 3 Upcoming */
.ap-card-upcoming .ap-card-overlay {
    background: linear-gradient(to top, rgba(10,10,10,0.98) 0%, rgba(10,10,10,0.94) 100%);
}
.ap-card-upcoming { height: auto; min-height: 420px; }
@media (max-width: 768px) { .ap-card-upcoming { min-height: 0; height: auto; } }

.ap-card-label-sm {
    font-family: var(--ap-font-head);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 1rem;
    line-height: 1.3;
}
.ap-upcoming-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin: 0;
    padding: 0;
}
.ap-upcoming-item {
    border-left: 2px solid var(--ap-red);
    padding-left: 0.75rem;
}
.ap-upcoming-title {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 0.2rem;
}
.ap-upcoming-desc {
    display: block;
    font-family: var(--ap-font-body);
    font-size: 0.9rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.55;
}

/* ============================================================
   REVEAL SECTION
   ============================================================ */
.ap-reveal {
    background: var(--ap-gray-dark);
    padding: 5rem 0;
}
.ap-reveal-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
@media (max-width: 768px) {
    .ap-reveal-inner { grid-template-columns: 1fr; gap: 2rem; }
    .ap-reveal       { padding: 3.5rem 0; }
}
.ap-reveal-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1.25rem;
}
.ap-reveal-body {
    font-size: 1.15rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.75;
    margin-bottom: 2rem;
}
.ap-reveal-image img { width: 100%; height: 380px; object-fit: cover; }
@media (max-width: 768px) { .ap-reveal-image img { height: 220px; } }

/* ============================================================
   ARRIVE & DRIVE
   ============================================================ */
.ap-arrive {
    position: relative;
    padding: 7rem 0;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-gray);
}
@media (max-width: 768px) { .ap-arrive { padding: 4rem 0; } }
.ap-arrive-overlay { position: absolute; inset: 0; background: rgba(10,10,10,0.72); }
.ap-arrive-content { position: relative; z-index: 1; max-width: 580px; }
.ap-arrive-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1.25rem;
}
.ap-arrive-body {
    font-size: 1.15rem;
    font-weight: 300;
    color: rgba(242,239,233,0.82);
    margin-bottom: 2rem;
    line-height: 1.7;
}

/* ============================================================
   ASPHALT HEROES SECTION
   ============================================================ */
#ap-heroes { background: var(--ap-black); padding: 5rem 0; }
@media (max-width: 768px) { #ap-heroes { padding: 3.5rem 0; } }

.ap-heroes-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3.5rem;
    align-items: start;
}
@media (max-width: 900px) {
    .ap-heroes-inner { grid-template-columns: 1fr; gap: 2.5rem; }
}
.ap-heroes-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2.5rem, 5vw, 4rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1.25rem;
}
.ap-heroes-body {
    font-size: 1.15rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.75;
    margin-bottom: 1.25rem;
}
.ap-heroes-qualities-label {
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    color: rgba(242,239,233,0.65);
    margin-bottom: 1rem;
    text-transform: uppercase;
}
.ap-heroes-note {
    font-family: var(--ap-font-head);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-top: 1.5rem;
    margin-bottom: 1.75rem;
}

/* Qualities block */
.ap-heroes-qualities {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 1.25rem;
}
@media (max-width: 480px) { .ap-heroes-qualities { grid-template-columns: 1fr; } }

.ap-hq-item {
    border-left: 2px solid var(--ap-red);
    padding-left: 0.85rem;
}
.ap-hq-label {
    font-family: var(--ap-font-head);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 0.25rem;
}
.ap-hq-desc {
    font-family: var(--ap-font-body);
    font-size: 0.88rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.55;
}
.ap-hq-sauce .ap-hq-label { color: var(--ap-gold); }
.ap-hq-sauce               { border-left-color: var(--ap-gold); }

/* Heroes image */
.ap-heroes-image-wrap   { position: relative; }
.ap-heroes-image-link   { display: block; position: relative; overflow: hidden; }
.ap-heroes-img          { width: 100%; height: 480px; object-fit: cover; object-position: center; transition: transform 0.5s ease; }
@media (max-width: 768px) { .ap-heroes-img { height: 300px; } }
.ap-heroes-image-link:hover .ap-heroes-img { transform: scale(1.03); }
.ap-heroes-image-cta {
    position: absolute;
    bottom: 1.25rem;
    right: 1.25rem;
    background: var(--ap-red);
    color: #fff;
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 0.7rem 1.15rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.ap-heroes-image-link:hover .ap-heroes-image-cta { opacity: 1; }

/* ============================================================
   COLLABORATE
   ============================================================ */
.ap-collab { background: var(--ap-gray-dark); padding: 5rem 0; }
@media (max-width: 768px) { .ap-collab { padding: 3.5rem 0; } }

.ap-collab-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}
@media (max-width: 900px) { .ap-collab-inner { grid-template-columns: 1fr; gap: 2.5rem; } }

.ap-collab-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 4vw, 3.5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1rem;
}
.ap-collab-body {
    font-size: 1.15rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.75;
    margin-bottom: 2rem;
}
.ap-collab-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
@media (max-width: 480px) { .ap-collab-options { grid-template-columns: 1fr; } }

.ap-collab-option {
    padding: 1.15rem;
    border: 1px solid rgba(255,255,255,0.07);
    border-left: 2px solid var(--ap-red);
    transition: border-color var(--ap-transition);
}
.ap-collab-option:hover { border-color: var(--ap-red); }
.ap-collab-option h4 {
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 0.35rem;
}
.ap-collab-option p {
    font-size: 0.82rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.5;
}

/* ============================================================
   CONTACT FORM
   ============================================================ */
.ap-contact-form { display: flex; flex-direction: column; gap: 1rem; }
.ap-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 900px) { .ap-form-row { grid-template-columns: 1fr; } }

.ap-input,
.ap-textarea {
    width: 100%;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    color: var(--ap-off-white);
    font-family: var(--ap-font-body);
    font-size: 0.95rem;
    padding: 0.85rem 1rem;
    outline: none;
    transition: border-color var(--ap-transition);
    -webkit-appearance: none;
    border-radius: 0;
}
.ap-input::placeholder, .ap-textarea::placeholder { color: var(--ap-muted); }
.ap-input:focus, .ap-textarea:focus { border-color: var(--ap-red); }
.ap-textarea { resize: vertical; }

.ap-form-msg { font-family: var(--ap-font-head); font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; min-height: 1.5rem; }
.ap-form-msg.success { color: #4caf50; }
.ap-form-msg.error   { color: var(--ap-red); }

/* ============================================================
   SOCIAL STRIP — single instance
   ============================================================ */
.ap-social-strip {
    background: var(--ap-gray-dark);
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 2rem 0;
}
.ap-social-strip-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.25rem;
}
.ap-social-strip-label {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-muted);
}
.ap-social-links { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.ap-social-link {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-muted);
    transition: color var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-social-link:hover { color: var(--ap-off-white); }

/* ============================================================
   FOOTER
   ============================================================ */
.ap-footer {
    background: var(--ap-black);
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 2.5rem 0;
}
.ap-footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.25rem;
}
.ap-footer-brand   { font-family: var(--ap-font-display); font-size: 1.3rem; color: var(--ap-off-white); letter-spacing: 0.05em; }
.ap-footer-tagline { font-family: var(--ap-font-head); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ap-muted); margin-top: 0.2rem; }
.ap-footer-copy    { font-size: 0.78rem; color: var(--ap-muted); text-align: right; }
@media (max-width: 600px) {
    .ap-footer-inner { flex-direction: column; align-items: flex-start; }
    .ap-footer-copy  { text-align: left; }
}

/* ============================================================
   ASPHALT HEROES PAGE
   ============================================================ */
.ap-page-banner {
    position: relative;
    height: 36vh;
    min-height: 260px;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-gray-dark);
    display: flex;
    align-items: flex-end;
    margin-top: var(--ap-nav-h);
}
.ap-page-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,10,10,0.92) 0%, rgba(201,32,30,0.15) 50%, rgba(10,10,10,0.5) 100%);
}
.ap-page-banner-content { position: relative; z-index: 1; padding: 2.5rem 2rem; max-width: 1200px; margin: 0 auto; width: 100%; }
.ap-page-banner-eyebrow {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 0.65rem;
}
.ap-page-banner-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(3rem, 8vw, 7rem);
    color: var(--ap-off-white);
    line-height: 0.92;
}
/* Sponsors page — smaller headline */
.ap-sp-banner .ap-page-banner-headline {
    font-size: clamp(2.5rem, 6vw, 5rem) !important;
}

/* Episodes */
.ap-heroes-page-intro   { background: var(--ap-black); padding: 4.5rem 0; }
.ap-heroes-page-intro-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; }
@media (max-width: 900px) { .ap-heroes-page-intro-inner { grid-template-columns: 1fr; gap: 2.5rem; } }
.ap-heroes-page-body-text { font-size: 1rem; font-weight: 300; color: var(--ap-muted); line-height: 1.8; margin-bottom: 1.25rem; }
.ap-episodes            { background: var(--ap-gray-dark); padding: 4.5rem 0; }
.ap-episodes-heading    { font-family: var(--ap-font-display); font-size: clamp(2rem, 4vw, 3.5rem); color: var(--ap-off-white); line-height: 1; margin-bottom: 2.5rem; }
.ap-episodes-empty      { text-align: center; padding: 3.5rem 2rem; border: 1px solid rgba(255,255,255,0.08); max-width: 560px; margin: 0 auto; }
.ap-episodes-empty h3   { font-family: var(--ap-font-display); font-size: 1.8rem; color: var(--ap-off-white); margin-bottom: 1rem; }
.ap-episodes-empty p    { font-size: 0.95rem; font-weight: 300; color: var(--ap-muted); line-height: 1.6; margin-bottom: 2rem; }
.ap-episode-list        { display: flex; flex-direction: column; gap: 1.5rem; }
.ap-episode-item        { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; background: var(--ap-gray-mid); border: 1px solid rgba(255,255,255,0.07); overflow: hidden; transition: border-color var(--ap-transition); }
.ap-episode-item:hover  { border-color: var(--ap-red); }
@media (max-width: 768px) { .ap-episode-item { grid-template-columns: 1fr; } }
.ap-episode-thumb       { position: relative; aspect-ratio: 16/9; background: var(--ap-black); overflow: hidden; }
.ap-episode-thumb img   { width: 100%; height: 100%; object-fit: cover; transition: transform var(--ap-transition); }
.ap-episode-item:hover .ap-episode-thumb img { transform: scale(1.04); }
.ap-episode-play-btn    { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.3); color: #fff; opacity: 0; transition: opacity var(--ap-transition); }
.ap-episode-item:hover .ap-episode-play-btn { opacity: 1; }
.ap-episode-info        { padding: 1.5rem 1.5rem 1.5rem 0; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 768px) { .ap-episode-info { padding: 1.5rem; } }
.ap-episode-num         { font-family: var(--ap-font-head); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ap-red); margin-bottom: 0.4rem; }
.ap-episode-title       { font-family: var(--ap-font-display); font-size: 1.7rem; color: var(--ap-off-white); line-height: 1; margin-bottom: 0.7rem; }
.ap-episode-desc        { font-size: 0.88rem; font-weight: 300; color: var(--ap-muted); line-height: 1.6; margin-bottom: 1.25rem; }

/* YouTube modal */
.ap-yt-modal            { display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.94); align-items: center; justify-content: center; }
.ap-yt-modal.open       { display: flex; }
.ap-yt-modal-inner      { position: relative; width: 92%; max-width: 900px; }
.ap-yt-modal-inner iframe { width: 100%; aspect-ratio: 16/9; border: none; }
.ap-yt-modal-close      { position: absolute; top: -2.75rem; right: 0; background: none; border: none; color: #fff; font-size: 1.3rem; cursor: pointer; font-family: var(--ap-font-head); letter-spacing: 0.1em; }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.ap-reveal-anim             { opacity: 0; transform: translateY(24px); transition: opacity 0.7s ease, transform 0.7s ease; }
.ap-reveal-anim.visible     { opacity: 1; transform: translateY(0); }

/* ============================================================
   WOOCOMMERCE
   ============================================================ */
.woocommerce-store-notice,
p.demo_store {
    background: var(--ap-red) !important;
    color: #fff !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.1em !important;
}

/* ============================================================
   UTILITIES
   ============================================================ */
.screen-reader-text { clip: rect(1px,1px,1px,1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }

/* ============================================================
   SLIDE 3 — 2x2 QUALITY BLOCK
   ============================================================ */
.ap-slide3-qualities {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.1rem 1.75rem;
    margin-top: 0.75rem;
    max-width: 520px;
}
.ap-slide3-quality {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
}
.ap-slide3-quality-title {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 1.05rem;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.14em;
    color: var(--ap-red);
    text-shadow: 0 1px 8px rgba(0,0,0,0.9);
    line-height: 1.1;
}
.ap-slide3-quality-desc {
    display: block;
    font-family: var(--ap-font-body);
    font-size: 0.82rem;
    font-weight: 400;
    color: rgba(242,239,233,0.90);
    line-height: 1.45;
    text-shadow: 0 1px 8px rgba(0,0,0,0.9);
}

/* Slide 3 content positioned left toward mountain area */
.ap-slide-content-left {
    left: 2.5rem;
    max-width: 560px;
}
@media (min-width: 768px) {
    .ap-slide-content-left { left: 4rem; max-width: 580px; }
}

/* Mobile — slide 3 qualities single column */
@media (max-width: 600px) {
    .ap-slide3-qualities {
        grid-template-columns: 1fr;
        gap: 0.7rem;
        max-width: 100%;
    }
    .ap-slide3-quality-title { font-size: 0.92rem; }
    .ap-slide3-quality-desc  { font-size: 0.76rem; }
}

/* ============================================================
   MOBILE IMPROVEMENTS — iPhone portrait
   ============================================================ */
@media (max-width: 480px) {
    /* Better image centering per slide on portrait mobile */
    .ap-slide-2 { background-position: center 20%; background-size: cover; }
    .ap-slide-3 { background-position: 70% center; background-size: cover; }

    /* Section headlines larger on mobile */
    .ap-reveal-headline  { font-size: clamp(1.9rem, 8vw, 2.6rem); }
    .ap-arrive-headline  { font-size: clamp(2.2rem, 9vw, 3rem); }
    .ap-heroes-headline  { font-size: clamp(2.2rem, 9vw, 3rem); }
    .ap-collab-headline  { font-size: clamp(1.9rem, 8vw, 2.6rem); }

    /* Body text more readable on mobile */
    .ap-reveal-body, .ap-arrive-body, .ap-heroes-body, .ap-collab-body { font-size: 1rem; line-height: 1.7; }

    /* Collaborate options single column on small screens */
    .ap-collab-options { grid-template-columns: 1fr; }
    .ap-collab-option h4 { font-size: 0.9rem; }
    .ap-collab-option p  { font-size: 0.88rem; }

    /* Bigger tap targets on mobile */
    .ap-input, .ap-textarea { font-size: 1rem; padding: 0.95rem 1rem; }
    .ap-btn { padding: 1rem 1.5rem; font-size: 0.88rem; }
}

/* ============================================================
   ARTICLES LISTING PAGE
   ============================================================ */
.ap-articles-banner {
    position: relative;
    background: var(--ap-gray-dark);
    padding: 5rem 0 4rem;
    overflow: hidden;
}
.ap-articles-banner-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(201,32,30,0.08) 0%, transparent 60%);
}
.ap-articles-banner-content {
    position: relative;
    z-index: 1;
}
.ap-articles-banner-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(3rem, 7vw, 6rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin-bottom: 1rem;
}
.ap-articles-banner-sub {
    font-family: var(--ap-font-body);
    font-size: 1.05rem;
    font-weight: 300;
    color: var(--ap-muted);
    max-width: 480px;
}
.ap-articles-section {
    background: var(--ap-black);
    padding: 4rem 0 6rem;
}
.ap-articles-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
@media (max-width: 900px) { .ap-articles-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .ap-articles-grid { grid-template-columns: 1fr; } }

.ap-article-card {
    display: flex;
    flex-direction: column;
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.07);
    text-decoration: none;
    transition: border-color var(--ap-transition), transform var(--ap-transition);
    overflow: hidden;
}
.ap-article-card:hover {
    border-color: var(--ap-red);
    transform: translateY(-3px);
}
.ap-article-card-image {
    position: relative;
    height: 200px;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-gray);
    overflow: hidden;
}
.ap-article-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10,10,10,0.7) 0%, transparent 60%);
}
.ap-article-card-logo-bg {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ap-font-display);
    font-size: 6rem;
    font-weight: 700;
    color: rgba(201,32,30,0.08);
    letter-spacing: 0.25em;
    user-select: none;
    background: linear-gradient(135deg, #111 0%, #1a1a1a 100%);
}
.ap-article-card-body {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    flex: 1;
}
.ap-article-card-meta {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--ap-font-head);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ap-muted);
}
.ap-article-card-dot { color: var(--ap-red); }
.ap-article-card-title {
    font-family: var(--ap-font-head);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--ap-off-white);
    line-height: 1.3;
    margin: 0;
}
.ap-article-card-excerpt {
    font-family: var(--ap-font-body);
    font-size: 0.88rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.6;
    flex: 1;
}
.ap-article-card-cta {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-top: 0.5rem;
}
.ap-articles-empty {
    text-align: center;
    padding: 5rem 2rem;
    color: var(--ap-muted);
}
.ap-articles-empty h2 {
    font-family: var(--ap-font-display);
    font-size: 2.5rem;
    color: var(--ap-off-white);
    margin: 0.75rem 0;
}

/* ============================================================
   SINGLE ARTICLE
   ============================================================ */
.ap-single-wrap {
    background: #0a0a0a !important;
    background-color: #0a0a0a !important;
    min-height: 100vh;
    color: var(--ap-off-white);
}
.ap-single-wrap * { box-sizing: border-box; }
.ap-single-header {
    position: relative;
    background: #111111 !important;
    background-color: #111111 !important;
    padding: 3.5rem 0 2.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    color: var(--ap-off-white);
}
.ap-single-watermark {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}
.ap-single-watermark img {
    width: 55%;
    max-width: 600px;
    opacity: 0.04;
    filter: grayscale(100%) brightness(5);
    object-fit: contain;
}
.ap-single-header-content {
    position: relative;
    z-index: 1;
    max-width: 820px;
}
@media (max-width: 768px) {
    .ap-single-header-content { padding: 0; }
}
.ap-single-title {
    font-family: var(--ap-font-head);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--ap-off-white);
    line-height: 1.2;
    margin: 0.75rem 0 1.25rem;
}
.ap-single-meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ap-muted);
    margin-bottom: 2rem;
}
.ap-single-meta-dot { color: var(--ap-red); }

/* SHARE BUTTONS */
.ap-share-bar {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}
.ap-share-label {
    font-family: var(--ap-font-head);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-muted);
    margin-right: 0.4rem;
}
.ap-share-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: var(--ap-font-head);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 0.5rem 0.9rem;
    border: 1px solid rgba(255,255,255,0.12);
    background: transparent;
    color: var(--ap-muted);
    cursor: pointer;
    text-decoration: none;
    transition: all var(--ap-transition);
    -webkit-tap-highlight-color: transparent;
}
.ap-share-btn:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
.ap-share-fb:hover  { background: rgba(24,119,242,0.15); border-color: rgba(24,119,242,0.4); color: #4a90d9; }
.ap-share-tw:hover  { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.3); color: #fff; }
.ap-share-li:hover  { background: rgba(10,102,194,0.15); border-color: rgba(10,102,194,0.4); color: #5ba4cf; }
.ap-share-copy:hover, .ap-share-copied { background: rgba(201,32,30,0.15); border-color: var(--ap-red); color: var(--ap-red); }

/* ARTICLE BODY */
.ap-single-body {
    max-width: 820px;
    padding-top: 4rem;
    padding-bottom: 3rem;
    font-family: Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.8;
    color: rgba(242,239,233,0.88);
}
.ap-single-body h2 {
    font-family: var(--ap-font-head);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--ap-off-white);
    margin: 2.5rem 0 1rem;
    letter-spacing: 0.05em;
}
.ap-single-body p { margin-bottom: 1.25rem; }
.ap-single-body strong { color: var(--ap-off-white); font-weight: 700; }
.ap-single-body a { color: var(--ap-red); text-decoration: underline; }

/* ARTICLE FOOTER */
.ap-single-footer {
    max-width: 820px;
    padding-bottom: 6rem;
}
.ap-single-footer-divider {
    height: 1px;
    background: rgba(255,255,255,0.08);
    margin-bottom: 2rem;
}
.ap-single-footer-label {
    font-family: var(--ap-font-head);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-muted);
    margin-bottom: 1rem;
}
.ap-share-bar-bottom { margin-top: 0; }

@media (max-width: 600px) {
    .ap-single-title { font-size: 1.6rem; }
    .ap-single-body  { font-size: 1rem; }
    .ap-share-btn span { display: none; }
    .ap-share-btn { padding: 0.55rem; }
}

/* ============================================================
   WOOCOMMERCE DARK THEME
   ============================================================ */
.woocommerce-page { background: var(--ap-black); color: var(--ap-off-white); }
.woocommerce ul.products li.product a img { border: 1px solid rgba(255,255,255,0.07); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--ap-font-head);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ap-off-white);
}
.woocommerce ul.products li.product .price {
    color: var(--ap-red);
    font-family: var(--ap-font-head);
    font-weight: 700;
}
.woocommerce ul.products li.product a.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: var(--ap-red) !important;
    color: #fff !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
    border: 2px solid var(--ap-red) !important;
    transition: background var(--ap-transition), color var(--ap-transition) !important;
}
.woocommerce ul.products li.product a.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background: transparent !important;
    color: var(--ap-red) !important;
}

/* ============================================================
   SHOP PAGE OVERRIDES
   ============================================================ */
.ap-shop-wrap { background: var(--ap-black); min-height: 100vh; }
.ap-shop-banner {
    position: relative;
    background: var(--ap-gray-dark);
    padding: 4rem 0 3rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    overflow: hidden;
}
.ap-shop-banner-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(201,32,30,0.08) 0%, transparent 60%);
}
.ap-shop-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2.5rem, 6vw, 5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin: 0.5rem 0 0;
}
.ap-shop-content {
    padding: 3rem 0 5rem;
}
/* Remove WooCommerce default white backgrounds */
.ap-shop-content .woocommerce,
.ap-shop-content .woocommerce-page {
    background: transparent !important;
    color: var(--ap-off-white);
}
.woocommerce ul.products { margin: 0 !important; }
.woocommerce ul.products li.product {
    background: var(--ap-gray-dark) !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    padding: 0 0 1.5rem !important;
    transition: border-color var(--ap-transition), transform var(--ap-transition) !important;
}
.woocommerce ul.products li.product:hover {
    border-color: var(--ap-red) !important;
    transform: translateY(-3px) !important;
}
.woocommerce ul.products li.product img {
    border: none !important;
    display: block;
    width: 100%;
}
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--ap-font-head) !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--ap-off-white) !important;
    padding: 1rem 1rem 0.25rem !important;
}
.woocommerce ul.products li.product .price {
    color: var(--ap-red) !important;
    font-family: var(--ap-font-head) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    padding: 0 1rem 0.75rem !important;
    display: block;
}
.woocommerce ul.products li.product .button {
    margin: 0 1rem !important;
    width: calc(100% - 2rem) !important;
    text-align: center !important;
    background: var(--ap-red) !important;
    color: #fff !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    border: 2px solid var(--ap-red) !important;
    border-radius: 0 !important;
    padding: 0.75rem !important;
    transition: background var(--ap-transition), color var(--ap-transition) !important;
}
.woocommerce ul.products li.product .button:hover {
    background: transparent !important;
    color: var(--ap-red) !important;
}
/* Hide WooCommerce sidebar widgets completely */
.woocommerce-page .widget-area,
.woocommerce-sidebar,
aside.woocommerce-sidebar { display: none !important; }
/* WooCommerce breadcrumb */
.woocommerce .woocommerce-breadcrumb {
    color: var(--ap-muted) !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.1em !important;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--ap-red) !important; }
/* Results count and ordering */
.woocommerce-result-count, .woocommerce-ordering select {
    font-family: var(--ap-font-head) !important;
    font-size: 0.78rem !important;
    color: var(--ap-muted) !important;
    background: var(--ap-gray-dark) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    color: var(--ap-off-white) !important;
}

/* Single article dark override — consolidated in v2.84 */

/* ============================================================
   SLIDE 2 — COUNTDOWN LAYOUT
   ============================================================ */
.ap-slide-content-center {
    left: 50% !important;
    transform: translateX(-50%);
    text-align: center;
    align-items: center;
    display: flex;
    flex-direction: column;
    max-width: 800px;
    width: 90%;
}
.ap-slide-content-center .ap-slide-sub {
    text-align: center;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
}
.ap-slide-headline-reveal {
    font-size: clamp(2.5rem, 7vw, 6rem) !important;
    letter-spacing: 0.18em !important;
    margin-bottom: 1.5rem !important;
    text-shadow: 0 2px 20px rgba(0,0,0,0.8);
}

/* COUNTDOWN TIMER */
.ap-countdown {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0 auto 1.75rem;
    flex-wrap: wrap;
}
.ap-countdown-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 80px;
}
.ap-countdown-num {
    font-family: var(--ap-font-display);
    font-size: clamp(3rem, 8vw, 6.5rem);
    line-height: 1;
    color: #ffffff;
    text-shadow: 0 2px 30px rgba(0,0,0,0.9), 0 0 60px rgba(201,32,30,0.3);
    letter-spacing: 0.02em;
    display: block;
}
.ap-countdown-label {
    font-family: var(--ap-font-head);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: rgba(242,239,233,0.65);
    margin-top: 0.3rem;
    display: block;
}
.ap-countdown-sep {
    font-family: var(--ap-font-display);
    font-size: clamp(2.5rem, 6vw, 5rem);
    color: var(--ap-red);
    line-height: 1;
    margin-bottom: 1.2rem;
    text-shadow: 0 0 20px rgba(201,32,30,0.5);
}
.ap-countdown-revealed {
    font-family: var(--ap-font-display);
    font-size: clamp(1.5rem, 4vw, 3rem);
    color: var(--ap-red);
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

/* Mobile countdown */
@media (max-width: 600px) {
    .ap-countdown-unit { min-width: 58px; }
    .ap-countdown-num  { font-size: clamp(2rem, 12vw, 3.5rem); }
    .ap-countdown-sep  { font-size: clamp(1.5rem, 8vw, 2.5rem); margin-bottom: 0.8rem; }
    .ap-countdown-label { font-size: 0.55rem; }
}

/* ============================================================
   ARRIVE & DRIVE — COMING SOON STATE
   ============================================================ */
.ap-arrive-coming-soon {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}
.ap-arrive-soon-badge {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-muted);
    border: 1px solid rgba(255,255,255,0.2);
    padding: 0.5rem 1rem;
    display: inline-block;
}
.ap-btn-outline {
    background: transparent !important;
    border: 2px solid var(--ap-red) !important;
    color: var(--ap-red) !important;
}
.ap-btn-outline:hover {
    background: var(--ap-red) !important;
    color: #fff !important;
}

/* ============================================================
   SINGLE ARTICLE — FORCE DARK OVERRIDE (v2.5)
   ============================================================ */
body.single-post,
body.single-post #page,
body.single-post .site,
body.single-post .site-content {
    background: #0a0a0a !important;
    background-color: #0a0a0a !important;
}
body.single-post .ap-single-header {
    background: #111111 !important;
    background-color: #111111 !important;
}
body.single-post .ap-single-title { color: #f2efe9 !important; }
body.single-post .ap-single-meta  { color: #888888 !important; }
body.single-post .ap-single-body  { color: rgba(242,239,233,0.88) !important; }
body.single-post .ap-eyebrow      { color: #c9201e !important; }

/* ============================================================
   SOCIAL FEED SECTION
   ============================================================ */
.ap-social-feed-section {
    background: #0d0d0d;
    padding: 4rem 0;
    border-top: 1px solid rgba(255,255,255,0.06);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-social-feed-header {
    text-align: center;
    margin-bottom: 2.5rem;
}
.ap-social-feed-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 5vw, 3.5rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin: 0.5rem 0 0.75rem;
}
.ap-social-feed-sub {
    font-family: var(--ap-font-body);
    font-size: 0.95rem;
    color: var(--ap-muted);
    font-weight: 300;
}
.ap-social-feed-embed {
    width: 100%;
    overflow: hidden;
}
/* Override Smash Balloon defaults to match AP theme */
.ap-social-feed-embed .sbi_load_btn,
.ap-social-feed-embed #sbi_load button {
    background: var(--ap-red) !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    border: 2px solid var(--ap-red) !important;
    padding: 0.75rem 2rem !important;
}
.ap-social-feed-links {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}
.ap-social-feed-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--ap-font-head);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-muted);
    text-decoration: none;
    transition: color var(--ap-transition);
    padding: 0.6rem 1.2rem;
    border: 1px solid rgba(255,255,255,0.12);
}
.ap-social-feed-link:hover { color: var(--ap-off-white); border-color: rgba(255,255,255,0.3); }

/* ============================================================
   THE REVEAL SECTION — LARGE COUNTDOWN
   ============================================================ */
.ap-countdown-large .ap-countdown-num {
    font-size: clamp(2.5rem, 6vw, 5.5rem) !important;
    text-shadow: 0 2px 40px rgba(0,0,0,0.5), 0 0 80px rgba(201,32,30,0.2) !important;
}
.ap-countdown-large .ap-countdown-label {
    font-size: 0.7rem !important;
    letter-spacing: 0.25em !important;
}
.ap-countdown-large .ap-countdown-sep {
    font-size: clamp(2rem, 5vw, 4.5rem) !important;
    color: var(--ap-red) !important;
    margin-bottom: 1.2rem !important;
}
.ap-countdown-large {
    margin: 1.5rem 0 2rem !important;
    flex-wrap: nowrap !important;
}

/* Who We Are — hide covered car image */
.ap-reveal-image-who-we-are { display: block; }
.ap-reveal-image-who-we-are img { width: 100%; height: auto; object-fit: cover; border: 1px solid rgba(255,255,255,0.07); }
.ap-reveal-inner { max-width: 680px; }

/* ============================================================
   ARTICLES — FEATURED ARTICLE (magazine layout)
   ============================================================ */
.ap-article-featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    text-decoration: none;
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.07);
    margin-bottom: 4rem;
    transition: border-color var(--ap-transition);
    min-height: 440px;
}
.ap-article-featured:hover { border-color: var(--ap-red); }
.ap-article-featured-image {
    position: relative;
    background-size: cover;
    background-position: center;
    background-color: #1a1a1a;
    min-height: 440px;
}
.ap-article-featured-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(10,10,10,0) 60%, rgba(10,10,10,0.4) 100%);
}
.ap-article-featured-logo {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--ap-font-display);
    font-size: 8rem; color: rgba(201,32,30,0.07);
    letter-spacing: 0.2em;
    background: linear-gradient(135deg, #111 0%, #1a1a1a 100%);
}
.ap-article-featured-body {
    padding: 3rem;
    display: flex; flex-direction: column; justify-content: center; gap: 1rem;
}
.ap-article-tag-pill {
    display: inline-block;
    font-family: var(--ap-font-head);
    font-size: 0.65rem; font-weight: 700;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: #fff; background: var(--ap-red);
    padding: 0.3rem 0.75rem;
}
.ap-article-featured-title {
    font-family: var(--ap-font-head);
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 700; color: var(--ap-off-white);
    line-height: 1.2; margin: 0;
}
.ap-article-featured-excerpt {
    font-family: var(--ap-font-body);
    font-size: 0.95rem; font-weight: 300;
    color: var(--ap-muted); line-height: 1.7;
}
.ap-article-featured-meta {
    display: flex; align-items: center; gap: 0.5rem;
    font-family: var(--ap-font-head);
    font-size: 0.68rem; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--ap-muted);
}
.ap-article-featured-cta {
    font-family: var(--ap-font-head);
    font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.18em; text-transform: uppercase;
    color: var(--ap-red); margin-top: 0.5rem;
}
.ap-articles-grid-header { margin-bottom: 1.5rem; padding-top: 0.5rem; border-top: 1px solid rgba(255,255,255,0.07); }
.ap-articles-grid-label {
    font-family: var(--ap-font-head);
    font-size: 0.75rem; font-weight: 700;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--ap-muted);
}
/* Mobile featured article */
@media (max-width: 768px) {
    .ap-article-featured { grid-template-columns: 1fr; }
    .ap-article-featured-image { min-height: 260px; }
    .ap-article-featured-body { padding: 2rem; }
}

/* ============================================================
   EVENTS PAGE
   ============================================================ */
.ap-events-page { background: var(--ap-black); min-height: 100vh; }
.ap-events-banner {
    position: relative;
    background: var(--ap-gray-dark);
    padding: 5rem 0 4rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    overflow: hidden;
}
.ap-events-banner-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(201,32,30,0.08) 0%, transparent 60%);
}
.ap-events-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(3rem, 7vw, 6rem);
    color: var(--ap-off-white); line-height: 1;
    margin-bottom: 0.75rem;
}
.ap-events-sub {
    font-family: var(--ap-font-body);
    font-size: 1rem; font-weight: 300; color: var(--ap-muted);
}
.ap-events-section { padding: 4rem 0 6rem; }
.ap-event-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    padding: 4rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    align-items: center;
}
.ap-event-row:first-child { padding-top: 0; }
.ap-event-row:last-child { border-bottom: none; }
.ap-event-date {
    display: block;
    font-family: var(--ap-font-head);
    font-size: 0.68rem; font-weight: 700;
    letter-spacing: 0.2em; text-transform: uppercase;
    color: var(--ap-red); margin-bottom: 0.4rem;
}
.ap-event-location {
    display: inline-flex; align-items: center; gap: 0.3rem;
    font-family: var(--ap-font-head);
    font-size: 0.68rem; font-weight: 600;
    letter-spacing: 0.15em; text-transform: uppercase;
    color: var(--ap-muted); margin-bottom: 1rem;
}
.ap-event-title {
    font-family: var(--ap-font-display);
    font-size: clamp(1.8rem, 4vw, 3rem);
    color: var(--ap-off-white); line-height: 1.1;
    margin-bottom: 1rem;
}
.ap-event-desc {
    font-family: var(--ap-font-body);
    font-size: 0.95rem; font-weight: 300;
    color: var(--ap-muted); line-height: 1.7;
    margin-bottom: 1.5rem;
}
.ap-event-main-image {
    width: 100%; height: 360px;
    background-size: cover; background-position: center;
    border: 1px solid rgba(255,255,255,0.07);
}
.ap-event-reel-placeholder, .ap-event-no-image {
    width: 100%; height: 360px;
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.07);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 1rem;
    color: var(--ap-muted);
    font-family: var(--ap-font-head);
    font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase;
}
.ap-btn-sm {
    padding: 0.6rem 1.2rem !important;
    font-size: 0.72rem !important;
}
.ap-events-empty {
    text-align: center; padding: 5rem 2rem; color: var(--ap-muted);
}
.ap-events-empty h2 {
    font-family: var(--ap-font-display);
    font-size: 2.5rem; color: var(--ap-off-white); margin: 0.75rem 0 1rem;
}
.ap-events-empty p {
    font-family: var(--ap-font-body);
    font-size: 1rem; font-weight: 300; max-width: 560px; margin: 0 auto 2rem; line-height: 1.7;
}
.ap-events-social-links { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }
@media (max-width: 768px) {
    .ap-event-row { grid-template-columns: 1fr; gap: 2rem; }
    .ap-event-main-image { height: 240px; }
}

/* ============================================================
   ARTICLE WATERMARKS — DARK BACKGROUND FIX
   ============================================================ */
/* Override inline watermark colors for dark background — Article 1 legacy system */
.ap-single-body div[style*="color: rgba(0,0,0"],
.ap-single-body div[style*="color:rgba(0,0,0"] {
    color: rgba(255,255,255,0.05) !important;
    font-family: 'Lora', Georgia, serif !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: clamp(1.5rem, 4vw, 3.8rem) !important;
    line-height: 1.25 !important;
    overflow: visible !important;
    word-break: break-word !important;
    letter-spacing: 0.01em !important;
    text-align: center !important;
    position: relative !important;
    padding-bottom: 0.5rem !important;
}
@media (max-width: 768px) {
    .ap-single-body div[style*="color: rgba(0,0,0"],
    .ap-single-body div[style*="color:rgba(0,0,0"] {
        font-size: clamp(1.1rem, 6vw, 2.4rem) !important;
        color: rgba(255,255,255,0.13) !important;
    }
}
@media (max-width: 480px) {
    .ap-single-body div[style*="color: rgba(0,0,0"],
    .ap-single-body div[style*="color:rgba(0,0,0"] {
        font-size: clamp(0.95rem, 6vw, 2rem) !important;
        color: rgba(255,255,255,0.13) !important;
    }
}

/* ============================================================
   MOBILE FIXES v2.7
   ============================================================ */

/* Logo — smaller on mobile to fit nav properly */
@media (max-width: 768px) {
    .ap-logo-img { height: 44px !important; }
}

/* Email signup bar — fix mobile padding */
@media (max-width: 600px) {
    .ap-signup-bar-inner {
        flex-direction: column;
        gap: 0.6rem;
        padding: 1rem;
    }
    .ap-signup-bar-fields { width: 100%; }
    .ap-signup-bar-privacy { display: none; }
}

/* Countdown — ensure no wrapping on mobile */
@media (max-width: 480px) {
    .ap-countdown { gap: 0.2rem; flex-wrap: nowrap; }
    .ap-countdown-unit { min-width: 46px; }
    .ap-countdown-num { font-size: clamp(1.6rem, 9vw, 2.8rem) !important; }
    .ap-countdown-sep { font-size: clamp(1.4rem, 7vw, 2.2rem); margin-bottom: 0.8rem; }
    .ap-countdown-label { font-size: 0.5rem; letter-spacing: 0.1em; }
}

/* ============================================================
   SMASH BALLOON OVERRIDES — match AP brand
   ============================================================ */
/* Hide the blue Follow on Instagram button */
#sbi_load .sbi_load_btn,
.sbi_follow_btn,
.sbi-follow-btn,
#sbi_mod_link,
.sbi_header_follow_btn { display: none !important; }

/* Hide Instagram API error notices from public view */
.sbi_notice,
.sbi-notice,
.sbi_critical_error,
.sbi-critical-error,
.sbi_error,
.sb-instagram-error,
[class*="sbi"][class*="notice"],
[class*="sbi"][class*="error"] { display: none !important; }

/* Override any Smash Balloon white backgrounds */
#sb_instagram, .sbi_header, .sbi_bio_section {
    background: transparent !important;
}
.sbi_header_text { color: var(--ap-off-white) !important; }
.sbi_header_user { color: var(--ap-muted) !important; }

/* ============================================================
   COLLABORATE OPTIONS — fix border (left only, not full box)
   ============================================================ */
.ap-collab-option {
    border: none !important;
    border-left: 3px solid var(--ap-red) !important;
    border-radius: 0 !important;
    padding: 1rem 1.25rem !important;
    background: rgba(255,255,255,0.03) !important;
}
.ap-collab-option:first-child {
    border: none !important;
    border-left: 3px solid var(--ap-red) !important;
}

/* ============================================================
   WHO WE ARE — collage image sizing
   ============================================================ */
.ap-reveal-inner {
    max-width: 100% !important;
}
.ap-reveal-image-who-we-are {
    display: block !important;
    width: 100%;
    margin-top: 2rem;
}
.ap-reveal-image-who-we-are img {
    width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,0.07);
}
@media (min-width: 769px) {
    .ap-reveal-inner {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
        align-items: center;
    }
    .ap-reveal-image-who-we-are { margin-top: 0; }
}

/* ============================================================
   BUILT FOR THE ASPHALT — countdown sizing fix
   ============================================================ */
.ap-reveal-text .ap-countdown-large {
    justify-content: flex-start;
}
@media (max-width: 768px) {
    .ap-reveal-text .ap-countdown-large {
        justify-content: center;
    }
    .ap-countdown-large .ap-countdown-num {
        font-size: clamp(2rem, 8vw, 3.5rem) !important;
    }
    .ap-countdown-large .ap-countdown-sep {
        font-size: clamp(1.5rem, 6vw, 2.5rem) !important;
        margin-bottom: 0.8rem !important;
    }
}

/* ============================================================
   WHO WE ARE — two column, collage right
   ============================================================ */
.ap-who-we-are {
    background: var(--ap-black);
    padding: 5rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-wwa-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
.ap-wwa-headline {
    font-family: var(--ap-font-head);
    font-size: clamp(1.8rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--ap-off-white);
    line-height: 1.15;
    margin: 0.5rem 0 1.25rem;
}
.ap-wwa-body {
    font-family: var(--ap-font-body);
    font-size: 1rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.8;
    margin-bottom: 2rem;
}
.ap-wwa-image img {
    width: 100%;
    height: auto;
    max-height: 500px;
    object-fit: cover;
    object-position: center top;
    border: 1px solid rgba(255,255,255,0.07);
}
@media (max-width: 768px) {
    .ap-wwa-inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
    }
    .ap-wwa-image { order: -1; }
    .ap-wwa-image img { max-height: 260px; }
}

/* ============================================================
   THE REVEAL — full width background, centered like slide 2
   ============================================================ */
.ap-the-reveal {
    position: relative;
    background-size: cover;
    background-position: center;
    background-color: #0d0d0d;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    padding: 6rem 0;
}
.ap-the-reveal-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(10,10,10,0.45) 0%, rgba(10,10,10,0.65) 100%);
}
.ap-the-reveal-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 800px;
}
.ap-the-reveal-headline {
    font-family: var(--ap-font-display);
    font-size: clamp(3rem, 8vw, 7rem);
    color: var(--ap-off-white);
    line-height: 1;
    margin: 0.5rem 0 1rem;
    letter-spacing: 0.12em;
    text-shadow: 0 2px 20px rgba(0,0,0,0.8);
}
.ap-the-reveal-sub {
    font-family: var(--ap-font-body);
    font-size: 1rem;
    font-weight: 300;
    color: rgba(242,239,233,0.85);
    line-height: 1.7;
    margin-top: 1.5rem;
    max-width: 560px;
    text-shadow: 0 1px 8px rgba(0,0,0,0.8);
}
.ap-the-reveal-content .ap-countdown-large {
    justify-content: center;
}
/* Make the "Coming July 4, 2026" date eyebrow much more prominent in the reveal section */
.ap-the-reveal-content .ap-eyebrow {
    font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
    letter-spacing: 0.22em !important;
    color: var(--ap-red) !important;
    margin-bottom: 0.6rem !important;
    font-weight: 700 !important;
    text-shadow: 0 2px 12px rgba(0,0,0,0.9) !important;
}
@media (max-width: 600px) {
    .ap-the-reveal { min-height: 480px; padding: 4rem 0; }
    .ap-the-reveal-headline { font-size: clamp(2.5rem, 10vw, 4rem); }
}

/* ============================================================
   INSTAGRAM FEED — remove excess padding/whitespace
   ============================================================ */
.ap-social-feed-embed { padding: 0; margin: 0; }
.ap-social-feed-embed #sb_instagram,
.ap-social-feed-embed .sbi_header,
.ap-social-feed-embed .sbi-header,
#sb_instagram { padding: 0 !important; margin: 0 !important; }
#sb_instagram #sbi_images { padding: 0 !important; margin: 0 !important; }
#sb_instagram .sbi_header { display: none !important; }
#sb_instagram #sbi_load { padding: 0.5rem 0 0 !important; }
/* Remove any white background Smash Balloon adds */
#sb_instagram, .sbi-feed-container {
    background: transparent !important;
    border: none !important;
}
/* Tighten image gaps */
#sb_instagram .sbi_item { padding: 2px !important; }

/* Articles banner — taller to show collage properly */
.ap-articles-banner {
    min-height: 340px !important;
    display: flex;
    align-items: flex-end;
}
.ap-articles-banner-content { padding-bottom: 3rem; }

/* ============================================================
   PAGE BANNER — SHARED SUB LINE (used by First Pursuit + Sponsors)
   ============================================================ */
.ap-fp-banner-sub,
.ap-sp-banner-sub {
    font-family: var(--ap-font-body);
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-weight: 300;
    color: rgba(242,239,233,0.85);
    line-height: 1.6;
    margin-top: 0.75rem;
    letter-spacing: 0.02em;
}

/* ============================================================
   GLOBAL BTN-LG
   ============================================================ */
.ap-btn-lg {
    padding: 1rem 2.5rem !important;
    font-size: 0.88rem !important;
}

/* Old First Pursuit CSS removed — see v2 below *//* ============================================================
   FIRST PURSUIT PAGE v2 — complete CSS
   ============================================================ */

/* HERO */
.ap-fp-hero {
    position: relative;
    min-height: 68vh;
    background: #050508;
    display: flex;
    align-items: flex-end;
    padding-bottom: 4rem;
    overflow: hidden;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-fp-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(201,32,30,0.2) 0%, rgba(5,5,8,0) 50%),
                radial-gradient(ellipse 70% 50% at 50% 100%, rgba(201,32,30,0.1) 0%, transparent 70%);
    pointer-events: none;
}
.ap-fp-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(5,5,8,0.15) 0%, rgba(5,5,8,0.9) 85%);
    pointer-events: none;
}
.ap-fp-hero-content { position: relative; z-index: 1; padding-top: 6rem; }
.ap-fp-hero-title {
    font-family: var(--ap-font-display);
    font-size: clamp(2.8rem, 7vw, 5.5rem);
    color: var(--ap-off-white);
    line-height: 0.88;
    letter-spacing: 0.04em;
    margin: 0.75rem 0 1.25rem;
}
.ap-fp-hero-tag {
    font-family: var(--ap-font-head);
    font-size: clamp(1rem, 1.8vw, 1.35rem);
    font-weight: 300;
    color: rgba(242,239,233,0.65);
    letter-spacing: 0.1em;
    margin-bottom: 3.5rem;
}

/* Hero stats strip */
.ap-fp-hero-stats {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 2rem;
    gap: 0;
}
.ap-fp-hero-stat {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding-right: 3rem;
}
.ap-fp-hero-stat-div {
    width: 1px;
    height: 3.5rem;
    background: rgba(255,255,255,0.12);
    margin-right: 3rem;
    flex-shrink: 0;
    align-self: center;
}
.ap-fp-hs-num {
    font-family: var(--ap-font-display);
    font-size: clamp(2.2rem, 4.5vw, 3.5rem);
    color: var(--ap-off-white);
    line-height: 1;
}
.ap-fp-hs-num small { font-size: 55%; color: var(--ap-red); vertical-align: super; }
.ap-fp-hs-lbl {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-muted);
}
@media (max-width: 900px) {
    .ap-fp-hero { min-height: auto; padding: 8rem 0 4rem; }
    .ap-fp-hero-stat-div { display: none; }
    .ap-fp-hero-stats { gap: 2rem; row-gap: 1.5rem; }
    .ap-fp-hero-stat { padding-right: 0; }
}

/* MISSION */
.ap-fp-mission {
    padding: 4.5rem 0;
    background: var(--ap-gray-dark);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-fp-mission-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 5rem;
    align-items: start;
}
@media (max-width: 900px) { .ap-fp-mission-grid { grid-template-columns: 1fr; gap: 2.5rem; } }
.ap-fp-mission-quote {
    font-style: italic;
    font-weight: 500;
    color: var(--ap-off-white);
    border-left: 3px solid var(--ap-red);
    padding-left: 1.25rem;
    margin-top: 1.5rem;
}

/* ROUTE STOPS */
.ap-fp-route {
    padding: 6rem 0;
    background: var(--ap-black);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-fp-route-header { margin-bottom: 3rem; }

.ap-fp-route-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border: 1px solid rgba(255,255,255,0.08);
    margin-bottom: 3rem;
    overflow: hidden;
}
@media (max-width: 700px) { .ap-fp-route-list { grid-template-columns: 1fr; } }

.ap-fp-route-stop {
    display: grid;
    grid-template-columns: 3.5rem 1px 1fr auto auto;
    align-items: center;
    gap: 0 1.25rem;
    padding: 1.5rem 2rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    background: var(--ap-gray-dark);
    transition: background 0.2s;
}
.ap-fp-route-stop:hover { background: var(--ap-gray-mid); }
.ap-fp-route-stop:last-child,
.ap-fp-route-stop:nth-last-child(2):nth-child(odd) { border-bottom: none; }

.ap-fp-stop-origin {
    background: var(--ap-gray-mid) !important;
    border-left: 3px solid var(--ap-red);
}
.ap-fp-rs-num {
    font-family: var(--ap-font-display);
    font-size: 2.2rem;
    color: var(--ap-red);
    opacity: 0.4;
    line-height: 1;
    flex-shrink: 0;
}
.ap-fp-rs-line {
    width: 1px;
    height: 2.5rem;
    background: rgba(255,255,255,0.08);
    flex-shrink: 0;
}
.ap-fp-rs-city {
    font-family: var(--ap-font-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    white-space: nowrap;
}
.ap-fp-rs-state {
    color: var(--ap-muted);
    font-weight: 400;
}
.ap-fp-rs-dates {
    font-family: var(--ap-font-head);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ap-red);
    letter-spacing: 0.06em;
    white-space: nowrap;
    text-align: right;
}
.ap-fp-rs-note {
    font-family: var(--ap-font-body);
    font-size: 0.8rem;
    font-weight: 300;
    color: var(--ap-muted);
    white-space: nowrap;
    text-align: right;
    min-width: 90px;
}

@media (max-width: 700px) {
    .ap-fp-route-stop {
        grid-template-columns: 2.5rem 1px 1fr;
        grid-template-rows: auto auto;
        gap: 0 1rem;
        padding: 1.25rem 1.25rem;
    }
    .ap-fp-rs-dates { grid-column: 3; text-align: left; font-size: 0.78rem; }
    .ap-fp-rs-note  { grid-column: 3; text-align: left; font-size: 0.75rem; min-width: 0; }
    .ap-fp-rs-line  { grid-row: 1 / 3; }
    .ap-fp-rs-num   { grid-row: 1 / 3; font-size: 1.8rem; }
}

.ap-fp-scenic-strip {
    padding: 2rem 2.5rem;
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.07);
}
.ap-fp-scenic-roads {
    font-family: var(--ap-font-body);
    font-size: 0.92rem;
    color: rgba(242,239,233,0.6);
    font-style: italic;
    line-height: 1.8;
}

/* WHAT TO EXPECT */
.ap-fp-expect {
    padding: 6rem 0;
    background: var(--ap-gray-dark);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-fp-expect-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    background: rgba(255,255,255,0.05);
    margin-bottom: 3rem;
}
@media (max-width: 768px) { .ap-fp-expect-row { grid-template-columns: 1fr; } }
.ap-fp-expect-card {
    background: var(--ap-gray-dark);
    padding: 3rem 2.5rem;
    border-right: 1px solid rgba(255,255,255,0.07);
    position: relative;
}
.ap-fp-expect-card:last-child { border-right: none; }
.ap-fp-ec-num {
    font-family: var(--ap-font-display);
    font-size: 5rem;
    color: var(--ap-red);
    opacity: 0.18;
    line-height: 1;
    margin-bottom: 1.5rem;
}
.ap-fp-ec-title {
    font-family: var(--ap-font-head);
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 1rem;
}
.ap-fp-ec-desc {
    font-family: var(--ap-font-body);
    font-size: 1rem;
    font-weight: 300;
    color: rgba(242,239,233,0.72);
    line-height: 1.75;
}
.ap-fp-quote-bar {
    text-align: center;
    font-family: var(--ap-font-head);
    font-size: clamp(1rem, 2.5vw, 1.5rem);
    font-weight: 300;
    font-style: italic;
    color: rgba(242,239,233,0.5);
    letter-spacing: 0.04em;
    padding: 2rem 0 0;
    border-top: 1px solid rgba(255,255,255,0.07);
}

/* MAP */
.ap-fp-map {
    padding: 6rem 0;
    background: var(--ap-black);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-fp-map-wrap {
    margin: 0 0 1rem;
    border: 1px solid rgba(255,255,255,0.08);
    overflow: hidden;
}
.ap-fp-map-img { width: 100%; height: auto; display: block; }
.ap-fp-map-disclaimer {
    font-size: 0.82rem;
    color: var(--ap-muted);
    font-style: italic;
    text-align: center;
    margin-top: 1rem;
}

/* SPONSOR CTA */
.ap-fp-cta {
    position: relative;
    padding: 7rem 0;
    background: var(--ap-gray-dark);
}
.ap-fp-cta-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(201,32,30,0.08) 0%, transparent 60%);
    pointer-events: none;
}
.ap-fp-cta-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
}
@media (max-width: 768px) {
    .ap-fp-cta-inner { grid-template-columns: 1fr; gap: 2.5rem; }
}
.ap-fp-trust-line {
    font-family: var(--ap-font-head);
    font-size: 0.8rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-gold);
    margin: 1.25rem 0 0;
}
.ap-fp-cta-buttons {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.ap-fp-cta-buttons .ap-btn {
    display: block;
    text-align: center;
    padding: 1rem 2rem !important;
    font-size: 0.85rem !important;
}

/* ============================================================
   CITY STOPS — horizontal flow, no numbers
   ============================================================ */
.ap-fp-route-sub {
    font-family: var(--ap-font-body);
    font-size: 1.1rem;
    font-weight: 300;
    color: var(--ap-muted);
    margin-top: 0.5rem;
}
.ap-fp-cities {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    gap: 0;
    margin: 3rem 0 1rem;
    padding-bottom: 1rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.ap-fp-cities::-webkit-scrollbar { display: none; }
.ap-fp-city-stop {
    flex: 1;
    min-width: 140px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    padding: 0 0.5rem;
}
/* Connecting line between stops */
.ap-fp-city-stop::before {
    content: '';
    position: absolute;
    top: 7px;
    left: 0;
    right: 50%;
    height: 2px;
    background: rgba(201,32,30,0.3);
}
.ap-fp-city-stop::after {
    content: '';
    position: absolute;
    top: 7px;
    left: 50%;
    right: 0;
    height: 2px;
    background: rgba(201,32,30,0.3);
}
.ap-fp-city-first::before { display: none; }
.ap-fp-city-last::after   { display: none; }

.ap-fp-city-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--ap-red);
    border: 2px solid var(--ap-off-white);
    flex-shrink: 0;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
    box-shadow: 0 0 0 4px rgba(201,32,30,0.2);
}
.ap-fp-city-first .ap-fp-city-dot {
    background: var(--ap-red);
    box-shadow: 0 0 0 6px rgba(201,32,30,0.25);
    width: 18px;
    height: 18px;
}
.ap-fp-city-name {
    font-family: var(--ap-font-head);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 0.2rem;
    line-height: 1.2;
}
.ap-fp-city-state {
    font-family: var(--ap-font-head);
    font-size: 0.7rem;
    font-weight: 400;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ap-muted);
    margin-bottom: 0.4rem;
}
.ap-fp-city-dates {
    font-family: var(--ap-font-head);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ap-red);
    letter-spacing: 0.04em;
    margin-bottom: 0.2rem;
}
.ap-fp-city-note {
    font-family: var(--ap-font-body);
    font-size: 0.72rem;
    font-weight: 300;
    color: var(--ap-muted);
    font-style: italic;
}
@media (max-width: 900px) {
    .ap-fp-cities { flex-wrap: wrap; overflow-x: visible; }
    .ap-fp-city-stop { min-width: calc(50% - 1rem); flex: 0 0 calc(50% - 1rem); margin-bottom: 2rem; }
    .ap-fp-city-stop::before,
    .ap-fp-city-stop::after { display: none; }
}

/* ============================================================
   SLIDE 2 DATE — make much larger
   ============================================================ */
/* ============================================================
   SLIDE 2 DATE — FINAL DEFINITIVE (no conflicts above)
   ============================================================ */
.ap-slide-eyebrow-date {
    font-family: var(--ap-font-head) !important;
    font-size: clamp(2rem, 5vw, 4rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    color: var(--ap-red) !important;
    margin-bottom: 1.25rem !important;
    text-shadow: 0 2px 20px rgba(0,0,0,1) !important;
    display: block !important;
    line-height: 1 !important;
}
@media (max-width: 768px) {
    .ap-slide-eyebrow-date { font-size: clamp(1.6rem, 7vw, 2.8rem) !important; }
}
@media (max-width: 480px) {
    .ap-slide-eyebrow-date { font-size: clamp(1.3rem, 8vw, 2rem) !important; }
}

/* ============================================================
   CARD 1 DATE — FINAL DEFINITIVE (no conflicts above)
   ============================================================ */
.ap-card-date {
    display: block !important;
    font-family: var(--ap-font-head) !important;
    font-size: clamp(1.6rem, 2.5vw, 2.2rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    color: var(--ap-red) !important;
    margin-bottom: 0.6rem !important;
    text-shadow: 0 0 20px rgba(0,0,0,1), 0 2px 8px rgba(0,0,0,1) !important;
    line-height: 1 !important;
}

/* ============================================================
   SOCIAL FEED — tighten dead space
   ============================================================ */
.ap-social-feed-section {
    padding: 2.5rem 0 !important;
    background: var(--ap-gray-dark) !important;
    border-top: 1px solid rgba(255,255,255,0.06) !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
}
.ap-social-feed-cta {
    text-align: center;
    margin-top: 1.25rem;
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--ap-muted);
}
.ap-social-feed-cta a {
    color: var(--ap-red);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ap-social-feed-cta a:hover { color: var(--ap-off-white); }

/* ============================================================
   DEAD SPACE — tighten gaps between sections
   ============================================================ */
#ap-cards { margin-bottom: 0 !important; }
.ap-social-feed-section { margin-top: 0 !important; }
.ap-the-reveal { margin-top: 0 !important; }

/* ============================================================
   INSTAGRAM ERROR — aggressive hide for public
   ============================================================ */
.sbi_notice, .sbi-notice,
.sbi_critical_error, .sbi-critical-error,
.sbi_error, .sb-instagram-error,
[class*="sbi"][class*="error"],
[class*="sbi"][class*="notice"],
#sb_instagram .sbi_error,
.sbi-container > div:not(#sb_instagram):not(.sbi_follow_btn_outside),
.sb-instagram-notice { display: none !important; height: 0 !important; overflow: hidden !important; }


/* ============================================================
   v2.80 FORCE OVERRIDES — cache bust + definitive fixes
   ============================================================ */

/* Slide 2 date — FORCE RED, FORCE LARGE */
.ap-slide-eyebrow-date {
    color: #c9201e !important;
    font-size: clamp(2rem, 5vw, 4rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    display: block !important;
    margin-bottom: 1.25rem !important;
    text-shadow: 0 2px 20px rgba(0,0,0,1) !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    line-height: 1 !important;
}

/* Reveal section eyebrow — FORCE LARGE RED */
.ap-the-reveal-content .ap-eyebrow {
    color: #c9201e !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    margin-bottom: 0.75rem !important;
    text-shadow: 0 2px 20px rgba(0,0,0,1) !important;
    display: block !important;
}

/* Card 1 date — FORCE VISIBLE */
.ap-card-date {
    color: #c9201e !important;
    font-size: clamp(1.5rem, 2.5vw, 2rem) !important;
    font-weight: 700 !important;
    display: block !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-shadow: 0 0 20px rgba(0,0,0,1), 0 2px 8px rgba(0,0,0,1) !important;
    margin-bottom: 0.5rem !important;
    line-height: 1 !important;
}

/* Cities horizontal layout — FORCE FLEX */
.ap-fp-cities {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    overflow-x: auto !important;
    gap: 0 !important;
    margin: 3rem 0 1rem !important;
    padding-bottom: 1rem !important;
    width: 100% !important;
}
.ap-fp-city-stop {
    flex: 1 1 140px !important;
    min-width: 130px !important;
    max-width: 200px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    padding: 0 0.5rem !important;
    position: relative !important;
}
@media (max-width: 768px) {
    .ap-fp-cities { flex-wrap: wrap !important; }
    .ap-fp-city-stop { flex: 0 0 calc(50% - 1rem) !important; min-width: 0 !important; max-width: none !important; margin-bottom: 1.5rem !important; }
}

/* ============================================================
   GAP FIX — collapse Instagram empty space + tighten sections
   ============================================================ */
/* Kill all space from failed Instagram feed container */
#sb_instagram:empty,
.sbi-feed-container:empty,
.sbi_mod_error,
.sb-instagram-notice,
#sbi_mod_error,
[id^="sb_instagram"] > div:first-child:empty { 
    display: none !important; 
    height: 0 !important; 
    margin: 0 !important; 
    padding: 0 !important; 
}
/* When feed fails entirely, collapse the embed wrapper */
.ap-social-feed-embed > div:only-child:not(#sb_instagram) {
    display: none !important;
}
/* Tighten section gaps */
.ap-social-feed-section + .ap-who-we-are,
.ap-social-feed-section + * { margin-top: 0 !important; }
.ap-who-we-are { padding: 4rem 0 !important; }
#ap-cards { padding-bottom: 0 !important; }
.ap-social-feed-section { padding: 2rem 0 !important; }

/* Asphalt Heroes image placeholder — hide empty image tag */
.ap-heroes-img:not([src]), .ap-heroes-img[src=""] { display: none !important; }
.ap-heroes-image-link:not(:has(img[src])) { display: none !important; }

/* ============================================================
   FIRST PURSUIT — TIGHTEN ALL SECTION PADDING
   ============================================================ */
.ap-fp-hero         { min-height: 60vh !important; padding-bottom: 3rem !important; }
.ap-fp-hero-content { padding-top: 4rem !important; }
.ap-fp-mission      { padding: 3.5rem 0 !important; }
.ap-fp-route        { padding: 3.5rem 0 !important; }
.ap-fp-expect       { padding: 3.5rem 0 !important; }
.ap-fp-map          { padding: 3rem 0 !important; }
.ap-fp-cta          { padding: 4rem 0 !important; }
.ap-fp-route-header { margin-bottom: 1.5rem !important; }
.ap-fp-hero-stats   { padding-top: 1.5rem !important; margin-top: 1rem !important; }
.ap-fp-cities       { margin: 1.5rem 0 0.5rem !important; }
.ap-fp-ec-num       { font-size: 3.5rem !important; margin-bottom: 0.75rem !important; }
.ap-fp-expect-card  { padding: 2rem 1.75rem !important; }
.ap-fp-quote-bar    { padding: 1.25rem 0 0 !important; }
.ap-fp-map-wrap     { margin-bottom: 0.5rem !important; }
.ap-fp-scenic-strip { margin-top: 1rem !important; padding: 1.25rem 2rem !important; }
.ap-fp-mission-grid { gap: 3rem !important; }

/* ============================================================
   SPONSORS PAGE — COMPLETE STYLES
   ============================================================ */

/* Banner */
.ap-sp-banner { background-color: var(--ap-gray-dark); }
.ap-sp-banner-sub {
    font-family: var(--ap-font-body);
    font-size: 1.1rem;
    font-weight: 300;
    color: rgba(242,239,233,0.75);
    margin-top: 0.75rem;
}
/* Reduce banner headline size */
.ap-sp-banner .ap-page-banner-headline {
    font-size: clamp(3rem, 8vw, 6rem) !important;
}

/* Overview */
.ap-sp-overview {
    padding: 4rem 0;
    background: var(--ap-black);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-sp-overview-inner {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 4rem;
    align-items: center;
}
@media (max-width: 900px) { .ap-sp-overview-inner { grid-template-columns: 1fr; gap: 2.5rem; } }

.ap-sp-overview-stats {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(255,255,255,0.08);
    background: var(--ap-gray-dark);
}
.ap-sp-stat {
    padding: 1.5rem 2rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.ap-sp-stat:last-child { border-bottom: none; }
.ap-sp-stat-num {
    font-family: var(--ap-font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--ap-off-white);
    line-height: 1;
}
.ap-sp-stat-label {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-muted);
}

/* Benefits */
.ap-sp-benefits {
    padding: 4rem 0;
    background: var(--ap-gray-dark);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-sp-benefits-header { margin-bottom: 2.5rem; }
.ap-sp-benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    background: rgba(255,255,255,0.05);
}
@media (max-width: 900px) { .ap-sp-benefits-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .ap-sp-benefits-grid { grid-template-columns: 1fr; } }
.ap-sp-benefit {
    background: var(--ap-gray-dark);
    padding: 2rem 1.75rem;
    transition: background 0.2s;
}
.ap-sp-benefit:hover { background: var(--ap-gray-mid); }
.ap-sp-benefit-icon { margin-bottom: 1rem; }
.ap-sp-benefit-title {
    font-family: var(--ap-font-head);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 0.5rem;
}
.ap-sp-benefit-desc {
    font-family: var(--ap-font-body);
    font-size: 0.92rem;
    font-weight: 300;
    color: rgba(242,239,233,0.7);
    line-height: 1.65;
}

/* Tiers */
.ap-sp-tiers {
    padding: 4rem 0;
    background: var(--ap-black);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ap-sp-tiers-header { margin-bottom: 2.5rem; }
.ap-sp-tiers-sub {
    font-family: var(--ap-font-body);
    font-size: 0.98rem;
    font-weight: 300;
    color: var(--ap-muted);
    line-height: 1.65;
    max-width: 580px;
    margin-top: 0.75rem;
}
.ap-sp-tiers-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem !important;
}
@media (max-width: 640px) { .ap-sp-tiers-grid { grid-template-columns: 1fr !important; } }

.ap-sp-tier {
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.07);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    transition: border-color 0.2s;
}
.ap-sp-tier:hover { border-color: rgba(201,32,30,0.35); }
.ap-sp-tier-featured {
    border-color: var(--ap-red) !important;
    background: var(--ap-gray-mid);
}
.ap-sp-tier-badge {
    display: inline-block;
    background: var(--ap-red);
    color: #fff;
    font-family: var(--ap-font-head);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 0.3rem 0.75rem;
    margin-bottom: 1.25rem;
    align-self: flex-start;
}
.ap-sp-tier-name {
    font-family: var(--ap-font-head);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin-bottom: 0.4rem;
}
.ap-sp-tier-placement {
    font-family: var(--ap-font-body);
    font-size: 0.88rem;
    font-weight: 300;
    color: var(--ap-red);
    margin-bottom: 1.25rem;
}
.ap-sp-tier-list {
    list-style: none;
    margin: 0 0 1.75rem;
    padding: 0;
    flex: 1;
}
.ap-sp-tier-list li {
    font-family: var(--ap-font-body);
    font-size: 0.88rem;
    font-weight: 300;
    color: rgba(242,239,233,0.72);
    padding: 0.4rem 0 0.4rem 1rem;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    position: relative;
    line-height: 1.5;
}
.ap-sp-tier-list li::before {
    content: '—';
    position: absolute;
    left: 0;
    color: var(--ap-red);
    font-size: 0.7rem;
}
.ap-sp-tier-list li:last-child { border-bottom: none; }
.ap-sp-tier-btn {
    display: block !important;
    text-align: center !important;
    margin-top: auto;
    padding: 0.75rem 1rem !important;
    font-size: 0.78rem !important;
}

/* Form section */
.ap-sp-form-section {
    position: relative;
    padding: 4rem 0;
    background: var(--ap-gray-dark);
    border-top: 1px solid rgba(255,255,255,0.06);
}
.ap-sp-form-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(201,32,30,0.06) 0%, transparent 55%);
    pointer-events: none;
}
.ap-sp-form-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}
@media (max-width: 900px) { .ap-sp-form-inner { grid-template-columns: 1fr; gap: 2.5rem; } }
.ap-sp-trust-line {
    font-family: var(--ap-font-head);
    font-size: 0.78rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--ap-gold);
    margin: 1rem 0 0.75rem;
}
.ap-sp-contact-direct {
    font-family: var(--ap-font-body);
    font-size: 0.88rem;
    color: var(--ap-muted);
    margin-top: 0.5rem;
}
.ap-sp-contact-direct a { color: var(--ap-red); text-decoration: underline; }
.ap-sp-contact-direct a:hover { color: var(--ap-off-white); }
.ap-sponsor-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    background: var(--ap-gray-dark);
    border: 1px solid rgba(255,255,255,0.08);
    padding: 2rem;
}
.ap-select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    cursor: pointer;
}
.ap-sp-submit-btn {
    margin-top: 0.5rem;
    padding: 1rem 2rem !important;
    font-size: 0.85rem !important;
}
#apSponsorMsg { min-height: 1.4rem; margin-top: 0.25rem; font-size: 0.88rem; }

/* ============================================================
   v2.81 SPONSORS — FORCE ALL LAYOUT GRIDS
   ============================================================ */
.ap-sp-overview-inner {
    display: grid !important;
    grid-template-columns: 1.4fr 1fr !important;
    gap: 4rem !important;
    align-items: center !important;
}
@media (max-width: 900px) {
    .ap-sp-overview-inner { grid-template-columns: 1fr !important; gap: 2rem !important; }
}
.ap-sp-overview-stats {
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid rgba(255,255,255,0.12) !important;
    background: var(--ap-gray-dark) !important;
}
.ap-sp-stat {
    padding: 1.5rem 2rem !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
}
.ap-sp-stat:last-child { border-bottom: none !important; }
.ap-sp-stat-num {
    font-family: var(--ap-font-display) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    color: var(--ap-off-white) !important;
    line-height: 1 !important;
}
.ap-sp-stat-label {
    font-family: var(--ap-font-head) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: var(--ap-muted) !important;
}
.ap-sp-benefits-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2px !important;
    background: rgba(255,255,255,0.05) !important;
}
@media (max-width: 900px) {
    .ap-sp-benefits-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
    .ap-sp-benefits-grid { grid-template-columns: 1fr !important; }
}
.ap-sp-benefit {
    background: var(--ap-gray-dark) !important;
    padding: 2rem 1.75rem !important;
}
.ap-sp-benefit-title {
    font-family: var(--ap-font-head) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--ap-off-white) !important;
    margin-bottom: 0.5rem !important;
    display: block !important;
}
.ap-sp-benefit-desc {
    font-family: var(--ap-font-body) !important;
    font-size: 0.92rem !important;
    color: rgba(242,239,233,0.7) !important;
    line-height: 1.65 !important;
}
.ap-sp-benefit-icon {
    margin-bottom: 1rem !important;
    display: block !important;
}
.ap-sp-tiers-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem !important;
}
@media (max-width: 640px) {
    .ap-sp-tiers-grid { grid-template-columns: 1fr !important; }
}
.ap-sp-tier {
    background: var(--ap-gray-dark) !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    padding: 2rem 1.75rem !important;
    display: flex !important;
    flex-direction: column !important;
}
.ap-sp-tier-featured {
    border-color: var(--ap-red) !important;
    background: var(--ap-gray-mid) !important;
}
.ap-sp-tier-badge {
    display: inline-block !important;
    background: var(--ap-red) !important;
    color: #fff !important;
    font-family: var(--ap-font-head) !important;
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    padding: 0.3rem 0.75rem !important;
    margin-bottom: 1.25rem !important;
}
.ap-sp-tier-name {
    font-family: var(--ap-font-head) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: var(--ap-off-white) !important;
    margin-bottom: 0.4rem !important;
}
.ap-sp-tier-placement {
    color: var(--ap-red) !important;
    font-size: 0.88rem !important;
    margin-bottom: 1.25rem !important;
}
.ap-sp-form-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4rem !important;
    align-items: start !important;
    position: relative !important;
    z-index: 1 !important;
}
@media (max-width: 900px) {
    .ap-sp-form-inner { grid-template-columns: 1fr !important; gap: 2rem !important; }
}

/* ============================================================
   ARTICLE HEADER — MOBILE PADDING FIX
   ============================================================ */
@media (max-width: 600px) {
    .ap-single-title { font-size: 1.45rem !important; }
    .ap-single-meta { font-size: 0.65rem; flex-wrap: wrap; gap: 0.3rem; }
}

/* Share buttons — proper touch targets on mobile */
@media (max-width: 600px) {
    .ap-share-btn { min-height: 44px; min-width: 44px; padding: 0.6rem; }
    .ap-share-bar { gap: 0.5rem; flex-wrap: wrap; }
}

/* ============================================================
   LYRIC WATERMARK SYSTEM — Article 2+ (new class-based)
   ============================================================ */
.ap-lyric-section {
    position: relative;
    padding: 3rem 0 4rem;
    border-top: 1px solid rgba(255,255,255,0.05);
    overflow: visible;
}
.ap-lyric-section:first-of-type { border-top: none; }

.ap-lyric-wm {
    position: absolute;
    bottom: 0.6rem;
    top: auto;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    pointer-events: none;
    z-index: 0;
    overflow: visible;
    gap: 0.2rem;
    padding: 0 2rem;
}
.ap-lyric-wm-text {
    font-family: 'Lora', Georgia, 'Times New Roman', serif;
    font-size: clamp(1.1rem, 2vw, 2.8rem);
    font-style: italic;
    font-weight: 400;
    color: rgba(255,255,255,0.05);
    letter-spacing: 0.01em;
    line-height: 1.3;
    text-align: center;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: break-word;
    max-width: 88%;
    display: block;
}
@media (max-width: 768px) {
    .ap-lyric-wm-text   { font-size: clamp(0.95rem, 3.5vw, 2rem); color: rgba(255,255,255,0.13); }
    .ap-lyric-wm-credit { color: rgba(255,255,255,0.25); }
}
@media (max-width: 480px) {
    .ap-lyric-wm-text   { font-size: clamp(0.85rem, 3.5vw, 1.5rem); color: rgba(255,255,255,0.13); }
    .ap-lyric-wm-credit { color: rgba(255,255,255,0.25); }
}
.ap-lyric-wm-credit {
    font-family: 'Lora', Georgia, serif;
    font-size: 0.82rem;
    font-style: italic;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.13);
    text-align: center;
    display: block;
    margin-top: 0.25rem;
}
.ap-lyric-section-content {
    position: relative;
    z-index: 1;
}
.ap-lyric-section-label {
    font-family: var(--ap-font-head);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--ap-red);
    margin-bottom: 1.25rem;
    display: block;
}
.ap-lyric-section-content p {
    font-family: var(--ap-font-body);
    font-size: clamp(1rem, 1.5vw, 1.1rem);
    font-weight: 300;
    color: rgba(242,239,233,0.88);
    line-height: 1.85;
    margin-bottom: 1rem;
}
.ap-lyric-section-content p:last-child { margin-bottom: 0; }
.ap-lyric-section-content strong {
    color: var(--ap-off-white);
    font-weight: 600;
}

/* ============================================================
   AUDIO PLAYER — slim mute strip
   ============================================================ */
.ap-audio-player {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0 0.6rem 0 0;
    background: rgba(255,255,255,0.03);
    border-left: 2px solid var(--ap-red);
    margin-bottom: 2rem;
    min-height: 38px;
    position: relative;
}
.ap-audio-mute-btn {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    min-width: 44px;
    min-height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    color: rgba(255,255,255,0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
    -webkit-tap-highlight-color: transparent;
    padding: 0;
}
.ap-audio-mute-btn:hover { color: var(--ap-off-white); }
.ap-audio-mute-btn.ap-unmuted { color: var(--ap-red); }
/* Pulse ring when muted — signals to user to tap */
@keyframes ap-mute-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(192,57,43,0.45); }
    70%  { box-shadow: 0 0 0 7px rgba(192,57,43,0); }
    100% { box-shadow: 0 0 0 0 rgba(192,57,43,0); }
}
.ap-audio-mute-btn:not(.ap-unmuted) {
    animation: ap-mute-pulse 2.2s ease-out infinite;
    border-radius: 50%;
}
.ap-audio-track-info {
    font-family: var(--ap-font-head);
    font-size: 0.68rem;
    letter-spacing: 0.1em;
    color: rgba(242,239,233,0.45);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}
.ap-audio-track-info strong {
    color: rgba(242,239,233,0.75);
    font-weight: 600;
}
.ap-audio-progress-wrap {
    flex: 1;
    max-width: 180px;
    height: 1px;
    background: rgba(255,255,255,0.08);
    flex-shrink: 0;
}
@media (max-width: 480px) { .ap-audio-progress-wrap { display: none; } }
.ap-audio-progress-fill {
    height: 100%;
    width: 0%;
    background: var(--ap-red);
    transition: width 1s linear;
}
#ap-yt-hidden { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; overflow: hidden; }

/* ============================================================
   ARTICLE HERO IMAGE
   ============================================================ */
.ap-single-hero {
    position: relative;
    width: 100%;
    height: 180px;
    background-size: cover;
    background-position: center 60%;
    background-repeat: no-repeat;
    background-color: #0a0a0a;
    overflow: hidden;
    flex-shrink: 0;
}
.ap-single-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(10,10,10,0.1) 0%, rgba(10,10,10,0.5) 100%);
    pointer-events: none;
}
@media (max-width: 768px) {
    .ap-single-hero { height: 145px; }
}
@media (max-width: 480px) {
    .ap-single-hero { height: 125px; background-position: center 55%; }
}

/* ============================================================
   SHARE IMAGE SECTION — improved layout
   ============================================================ */
.ap-share-img-wrap {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.ap-share-img-heading {
    font-family: var(--ap-font-head);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--ap-off-white);
    margin: 0 0 0.3rem;
}
.ap-share-img-subtext {
    font-family: var(--ap-font-body);
    font-size: 0.8rem;
    color: var(--ap-muted);
    margin: 0 0 1rem;
}
.ap-share-img-btns {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.ap-share-img-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.15);
    color: rgba(242,239,233,0.65);
    font-family: var(--ap-font-head);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 0.6rem 1rem;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
    -webkit-tap-highlight-color: transparent;
    min-height: 44px;
}
.ap-share-img-btn:hover { border-color: var(--ap-red); color: var(--ap-off-white); }
@media (max-width: 480px) { .ap-share-img-btns { flex-direction: column; } .ap-share-img-btn { width: 100%; justify-content: center; } }
