/*
Theme Name:  Lone Star Arms
Description: Child theme for Lone Star Arms. Requires the dpa-theme parent theme and dpa-webinar plugin.
Version:     1.1.0
Author:      DPA Branding
Author URI:  https://dpabranding.com
Template:    dpa-theme
Text Domain: lonestar-arms-theme
*/

/*
 * â”€â”€ DPA Webinar plugin: seat-map color overrides â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
 * Map the plugin's default neutral/gold palette to LSA's red/navy scheme.
 */
:root {
    /* Available seat â€” keep money-green (same across all brands) */
    --dpa-color-available-bg:       rgba(26,122,60,0.15);
    --dpa-color-available-border:   #1A7A3C;
    --dpa-color-available-text:     #4ade80;

    /* Selected seat â€” LSA primary red */
    --dpa-color-selected-bg:        #A3040B;
    --dpa-color-selected-border:    #D60008;
    --dpa-color-selected-text:      #ffffff;

    /* Temporarily held â€” neutral silver (brand-neutral) */
    --dpa-color-held-bg:            rgba(202,138,4,0.15);
    --dpa-color-held-border:        #ca8a04;
    --dpa-color-held-text:          #fbbf24;

    /* Booked â€” near-black (brand-neutral) */
    --dpa-color-booked-bg:          #000e28;
    --dpa-color-booked-border:      #00163d;
    --dpa-color-booked-text:        #374151;

    /* Seat map grid background — transparent inside dark .dpa-sp__map-area */
    --dpa-seat-map-bg:              transparent;
    --dpa-seat-map-border:          transparent;

    /* Sidebar / single-page panels */
    --dpa-sidebar-bg:               #000e28;
    --dpa-sidebar-border:           #00163d;

    /* Archive cards */
    --dpa-card-bg:                  #000e28;
    --dpa-card-border:              #00163d;
}

/*
 * â”€â”€ Reservation bar overrides â€” navy + red theme â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
 */
:root {
    --dpa-bar-bg:                   #002466;
    --dpa-bar-text:                 #f9fafb;
    --dpa-bar-checkout-bg:          #d60008;
    --dpa-bar-checkout-hover-bg:    #a3040b;
    --dpa-bar-checkout-text:        #ffffff;
    --dpa-bar-timer-text:           #86efac;
    --dpa-bar-timer-urgent-text:    #fca5a5;
    --dpa-bar-pill-bg:              #003080;
    --dpa-bar-pill-text:            #e2e8f0;
    --dpa-bar-item-first-bg:        #001a52;
    --dpa-bar-panel-bg:             #001440;
    --dpa-bar-panel-border:         #003080;
    --dpa-bar-expand-border:        #003080;
    --dpa-bar-expand-text:          #94a3b8;
    --dpa-bar-back-link-text:       #93c5fd;
}

/* =============================================================================
   LSA Child Theme â€” Visual overrides to match prototype exactly
   ============================================================================= */

/* --- Global mobile overflow prevention ---------------------------------------
   overflow-x:clip is used instead of overflow-x:hidden throughout.
   The difference matters:
     • overflow:hidden  creates a scroll container — Chrome DevTools touch
       emulation (and JS scrollLeft) can still drag-scroll into the clipped
       region, making the page appear horizontally scrollable even when no
       layout overflow exists.
     • overflow:clip    truly clips with NO scroll container. Nothing — touch,
       JS, or keyboard — can reveal the clipped content. Supported in all
       modern browsers (Chrome 90+, Firefox 81+, Safari 16+).

   width:100% anchors html+body to the viewport so that child percentages
   resolve against the viewport width, not an auto-expanding content box.  */
html { overflow-x: clip; width: 100%; }
body { overflow-x: clip; width: 100%; }
#page.dpa-page { overflow-x: clip; max-width: 100%; }

/* Ensure all replaced elements stay within their containers by default. */
img, video, iframe { max-width: 100%; }


/* â”€â”€ Hero: dark navy bg, full-viewport, red accents â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-hero {
    background: #002466 !important;
    min-height: 100vh;
    padding: 4rem 0; /* matches prototype inner wrapper padding-top:4rem */
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center; /* vertically centre content within 100vh, matching prototype */
}
/* Red gradient bar â€” left edge */
.dpa-hero::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, transparent, #D60008 30%, #D60008 70%, transparent);
    opacity: 0.8;
    z-index: 1;
}
/* Red radial glow â€” bottom right */
.dpa-hero::after {
    content: '';
    position: absolute;
    bottom: 0; right: 0;
    width: 500px; height: 350px;
    background: radial-gradient(ellipse, #D60008 0%, transparent 70%);
    opacity: 0.15;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}
.dpa-hero__inner { position: relative; z-index: 2; }

/* ── Animation initial states ────────────────────────────────────────────────
   Set opacity:0 in CSS so elements are invisible from the very first paint.
   anime.js (home-animations.js) animates them to opacity:1 when they enter
   the viewport. Without this the browser paints them visible, THEN the footer
   JS sets opacity:0, which creates a visible "pop" flash.
   will-change hints the compositor to create layers upfront, keeping the
   fade smooth without a repaint.
───────────────────────────────────────────────────────────────────────────── */
[data-hero] {
    opacity: 0;
    will-change: opacity, transform;
}
.scroll-reveal {
    opacity: 0;
    will-change: opacity, transform;
}

/* Three.js particle canvas — fills hero behind all content */
#hero-canvas {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;            /* above decorative ::before/::after, below __inner (z-index:2) */
}

/* Hero heading: matches prototype font-bold + tracking-tight + leading-none */
.dpa-hero__heading {
    font-size:      clamp(3.8rem, 9vw, 7rem) !important;
    color:          #ffffff !important;
    font-weight:    700 !important;          /* prototype: font-bold */
    letter-spacing: -0.025em !important;     /* prototype: tracking-tight */
    line-height:    1 !important;            /* prototype: leading-none */
}
/* "ARMS." â€” red, not italic (prototype uses upright condensed font) */
.dpa-hero__tagline-em {
    font-style: normal !important; /* defeat parent theme italic rule */
    color: #D60008;
}
/* Hero lead text: blue-100 tint like prototype */
.dpa-hero__lead { color: #dbeafe; }

/* Eyebrow inside hero: prototype uses gray #d1d5db, not the gold/red default */
.dpa-hero .dpa-eyebrow {
    color: #d1d5db !important;
    letter-spacing: 0.1em !important; /* prototype: tracking-widest */
}
/* Hide the decorative eyebrow line — prototype hero has plain text only */
.dpa-hero .dpa-eyebrow__line { display: none !important; }

/* Scroll-hint bouncing chevron anchored at bottom-center of hero */
.lsa-scroll-hint {
    position: absolute;
    bottom: 1.75rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
}
.lsa-scroll-hint a {
    color: #93c5fd;
    text-decoration: none;
    display: block;
    transition: color 0.2s ease;
}
.lsa-scroll-hint a:hover { color: #ffffff; }
.lsa-scroll-hint i {
    display: block;
    font-size: 1.125rem; /* text-lg */
    animation: lsa-bounce 1s infinite;
}
@keyframes lsa-bounce {
    0%, 100% {
        transform: translateY(0);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: translateY(-6px);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}


/* Hero "How It Works" ghost button â€” white, not red outline */
/* ── Hero CTA buttons ────────────────────────────────────────────────────────
   Match prototype btn-armor btn-lg px-8: display font, 1rem/2rem padding,
   0.875rem text, tracking-wider (0.05em).
────────────────────────────────────────────────────────────────────────────── */
.dpa-hero .dpa-btn {
    font-family: var(--dpa-font-display);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 1rem 2rem;
}
/* Primary: armor red, dark-red on hover (matches prototype hover:bg-armor-600) */
.dpa-hero .dpa-btn--gold {
    background: #d60008;
    border-color: #d60008;
    color: #ffffff;
}
.dpa-hero .dpa-btn--gold:hover {
    background: #a3040b;
    border-color: #a3040b;
    color: #ffffff;
}
/* Secondary: ghost white border/bg, solid white on hover (prototype hover:bg-white hover:text-gray-900) */
.dpa-hero .dpa-btn--outline {
    border-color: rgba(255, 255, 255, 0.4);
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
}
.dpa-hero .dpa-btn--outline:hover {
    background: #ffffff;
    color: #111827;
    border-color: #ffffff;
}

/* â”€â”€ Hero inline stats row â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/* dpa-hero__cta-row adds margin-bottom:36px via parent; zero it so the stats
   row controls the gap cleanly with mt-12 (3rem) like the prototype. */
.dpa-hero .dpa-hero__cta-row { margin-bottom: 0; }
.lsa-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    max-width: 28rem;           /* prototype max-w-md */
    margin-top: 3rem;           /* prototype mt-12 */
}
.lsa-hero-stat {
    padding-left: 1rem;
    border-left: 1px solid #1e40af;  /* prototype: border-l border-blue-800 */
}
.lsa-hero-stat--primary {
    border-left-color: #D60008;      /* prototype: border-armor-500 */
    border-left-width: 2px;          /* prototype: border-l-2 */
}
.lsa-hero-stat__value {
    font-family: var(--dpa-font-display);
    font-size: 1.875rem;
    font-weight: 500;                /* prototype: no weight set → lightest loaded Barlow weight */
    color: #ffffff;
    line-height: 1;
}
.lsa-hero-stat__value--red { color: #D60008; }
.lsa-hero-stat__label {
    font-size: 0.6875rem;
    color: #93c5fd;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-top: 3px;
}

/* â”€â”€ Section text colors on dark bg â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-section-heading__title { color: var(--dpa-text) !important; }
.dpa-section-heading__lead  { color: var(--dpa-text-mid) !important; }

/* HIW cards: on dark navy card bg, body text should be readable */
.dpa-hiw-card__title { color: var(--dpa-text) !important; }
.dpa-hiw-card__body  { color: var(--dpa-text-mid) !important; }
.dpa-hiw-card__number { background: transparent; }

/* â”€â”€ CTA banner: armor-600 dark red background â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-section--gold { background: #A3040B !important; }
/* All text inside the CTA banner must be white */
.dpa-alert-cta__icon,
.dpa-alert-cta__heading,
.dpa-alert-cta__lead { color: #ffffff !important; }

/* â”€â”€ Reviews grid: 4 columns on large screens (matches prototype) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (min-width: 1024px) {
    .dpa-reviews__grid { grid-template-columns: repeat(4, 1fr); }
}

/* â”€â”€ Webinar card: "View All" styled as outline button â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-link-all {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border: 2px solid #d60008;
    border-radius: 6px;
    color: #d60008;
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}
.dpa-link-all:hover { background: #d60008; color: #ffffff; }


/*
 * Suppress WooCommerce demo store notice — LSA is a live store, not a demo.
 * The action hook is also removed in functions.php; this CSS is a belt-and-
 * suspenders guard in case any JS re-shows the element.
 */
.woocommerce-store-notice,
p.demo_store { display: none !important; }


/* â”€â”€ Nav: navy-900 bg + navy-800 bottom border (matches prototype exactly) â”€â”€ */
/*
 * wp_body_open() outputs a <noscript> (e.g. GTM iframe) directly after <body>
 * before <div id="#page">. In Chrome/Safari the <noscript> element inherits
 * display:inline from the UA stylesheet even when scripting is enabled, so the
 * browser wraps it in an anonymous block box whose height equals the body's
 * computed line-height (16px × 1.6 = 25.6px) — creating the dark gap above the
 * nav.  Forcing display:none on body-level noscript elements is semantically
 * correct (they only need to be visible when JS is OFF) and removes the
 * anonymous box entirely.
 */
body > noscript {
    display: none;
}

/*
 * Keep a Block Formatting Context on #page so any future child margins cannot
 * collapse upward into the body and create a new gap.
 */
#page, .dpa-page {
    display: flow-root;
}

.dpa-nav {
    background: #000714 !important;
    border-bottom-color: #000e28 !important;
    margin-top: 0 !important; /* guard: prevent margin-collapse gap above nav */
}

/*
 * Nav height: the prototype uses DaisyUI .navbar with min-height:96px and
 * padding:0.5rem (8px top/bottom). With the 88px logo, the effective height
 * is 88px + 8px + 8px = 104px. Override the parent theme's fixed 96px height
 * to match the prototype exactly.
 */
.dpa-nav__inner {
    height: 104px;
}
@media (max-width: 900px) {
    .dpa-nav__inner {
        height: 72px;
    }
    /* The logo is 88 px tall from brand-config, but the mobile nav is only 72 px.
       Cap the rendered height so the logo fits and doesn't crowd the hamburger. */
    .dpa-logo { max-height: 52px !important; }
}

/*
 * WordPress admin bar: when logged in, WP injects a 32px fixed bar at the
 * top of the viewport and shifts <html> down by 32px. Without this rule the
 * sticky nav (top:0) overlaps the admin bar during scroll.
 * 46px = admin bar height on mobile screens (max-width: 782px).
 * NOTE: the 32px admin bar only shows to logged-in admins — site visitors
 * never see it and see the nav height matching the prototype exactly.
 *
 * overflow-x:hidden prevents the .display-name span inside the admin bar from
 * extending past the viewport edge on narrow screens. Because the bar is
 * position:fixed it doesn't affect document layout (scrollWidth stays equal
 * to the viewport width) but on mobile Chrome the fixed element's visual
 * overflow still triggers a horizontal scroll — this clips it.
 */
/* WordPress admin bar: narrow-screen fixes.
   WP core sets min-width:600px, making the bar wider than any phone viewport.
   On screens narrower than 600px we:
     1. Kill min-width so the bar collapses to the viewport width.
     2. Use overflow:clip (not hidden) — clip creates no scroll container so
        Chrome DevTools touch emulation cannot drag-scroll into clipped content.
     3. Hide .display-name — WP's own styles intend to hide it below 600px but
        the WP Mail SMTP plugin's admin-bar CSS re-shows it, leaving it
        geometrically beyond the bar's right edge.                           */
@media screen and (max-width: 600px) {
    #wpadminbar {
        min-width: 0 !important;
        overflow: clip;
    }
    #wpadminbar .display-name {
        display: none !important;
    }
}
.admin-bar .dpa-nav {
    top: 32px;
}
@media screen and (max-width: 782px) {
    .admin-bar .dpa-nav {
        top: 46px;
    }
}

/*
 * Sticky filter bars: must sit directly below the sticky nav.
 * Desktop nav = 104px; mobile nav = 72px.
 * With admin bar add 32px (desktop) or 46px (mobile <= 782px).
 */
.dpa-archive-cats,
.lsa-webinar-filters {
    top: 104px;
}
.admin-bar .dpa-archive-cats,
.admin-bar .lsa-webinar-filters {
    top: 136px; /* 32px admin bar + 104px nav */
}
@media (max-width: 900px) {
    .dpa-archive-cats,
    .lsa-webinar-filters {
        top: 72px;
    }
    .admin-bar .dpa-archive-cats,
    .admin-bar .lsa-webinar-filters {
        top: 104px; /* 32px admin bar + 72px nav */
    }
}
@media screen and (max-width: 782px) {
    .admin-bar .dpa-archive-cats,
    .admin-bar .lsa-webinar-filters {
        top: 118px; /* 46px admin bar + 72px nav */
    }
}


/* ── Nav links: add horizontal padding + border-radius so hover bg has room ──
   DaisyUI .menu links have px-4 py-2 + rounded corners. We match that shape
   here and reduce the li gap to compensate for the added horizontal padding. */
.dpa-nav__menu { gap: 4px !important; }   /* was 36px; padding on <a> now owns spacing */
.dpa-nav__menu li a {
    padding: 6px 12px !important;          /* was 4px 0; matches DaisyUI menu link feel */
    border-radius: 6px !important;
    transition: color 0.2s, background-color 0.15s, border-color 0.2s !important;
}

/* ── Nav active + hover — match prototype text-armor-500 + hover bg pill ─────
   Active: red text only, no underline, no background (prototype: text-armor-500 only).
   Hover:  red text + faint white bg pill (DaisyUI oklch(bc/0.1) ≈ rgba(255,255,255,0.1)).
   Ancestor classes intentionally excluded — nav is flat and WP adds
   current-menu-ancestor to Home on every page, which would falsely highlight it.

   Home fix: WP incorrectly marks .menu-item-home as current-menu-item on WC
   shop pages. We suppress that with body:not(.home) and let WC's own
   body.woocommerce-shop class drive the Shop highlight via lsa-nav-shop-item. */

/* Suppress incorrect Home highlight on every page except the actual front page */
body:not(.home) .dpa-nav__menu li.menu-item-home.current-menu-item > a,
body:not(.home) .dpa-nav__menu li.menu-item-home.current_page_item > a {
    color: inherit !important;
    border-bottom-color: transparent !important;
}

/* Standard active state */
.dpa-nav__menu li.current-menu-item > a,
.dpa-nav__menu li.current_page_item > a {
    color: #D60008 !important;
    border-bottom-color: transparent !important;
}

/* Shop active state — WC adds body.woocommerce-shop; WP always adds menu-item-209 to that <li> */
body.woocommerce-shop .dpa-nav__menu li.menu-item-209 > a {
    color: #D60008 !important;
    border-bottom-color: transparent !important;
}

.dpa-nav__menu li a:hover {
    color: #D60008 !important;
    border-bottom-color: transparent !important;
    background: rgba(255, 255, 255, 0.10) !important;
}

/* Mobile utility links — My Account & Cart (appended below primary mobile menu) */
.dpa-nav__mobile-utils { margin-top: 0; }
.dpa-nav__mobile-utils li a i {
    width: 1.125rem;
    text-align: center;
    margin-right: 8px;
    opacity: 0.75;
}
/* Inline cart item count badge */
.dpa-nav__mobile-cart-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 4px;
    margin-left: 8px;
    background: #D60008;
    color: #ffffff;
    font-size: 0.6875rem;
    font-weight: 700;
    border-radius: 9999px;
    line-height: 1;
    vertical-align: middle;
}

/* Mobile active: prototype uses text-armor-500 + font-bold */
body:not(.home) .dpa-nav__mobile-menu li.menu-item-home.current-menu-item > a,
body:not(.home) .dpa-nav__mobile-menu li.menu-item-home.current_page_item > a {
    color: inherit !important;
    font-weight: inherit !important;
}

.dpa-nav__mobile-menu li.current-menu-item > a,
.dpa-nav__mobile-menu li.current_page_item > a {
    color: #D60008 !important;
    font-weight: 700 !important;
}

body.woocommerce-shop .dpa-nav__mobile-menu li.menu-item-209 > a {
    color: #D60008 !important;
    font-weight: 700 !important;
}

.dpa-nav__mobile-menu li a:hover {
    color: #D60008 !important;
}

/* ── Desktop dropdown / sub-menu ─────────────────────────────────────────── */
/* Parent li needs a positioning context */
.dpa-nav__menu li.menu-item-has-children { position: relative !important; }

/* Chevron after parent link text */
.dpa-nav__menu li.menu-item-has-children > a::after {
    content: '\f078';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 0.6em;
    margin-left: 5px;
    vertical-align: middle;
    display: inline-block;
    transition: transform 0.2s;
}
.dpa-nav__menu li.menu-item-has-children:hover > a::after {
    transform: rotate(-180deg);
}

/* Sub-menu panel — hidden by default */
.dpa-nav__menu .sub-menu {
    position: absolute !important;
    top: calc(100% + 4px) !important;
    left: 0 !important;
    min-width: 220px !important;
    background: #000714 !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 28px rgba(0,0,0,0.55) !important;
    padding: 6px 0 !important;
    margin: 0 !important;
    list-style: none !important;
    flex-direction: column !important;
    gap: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-6px) !important;
    transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease !important;
    z-index: 9999 !important;
}

/* Show on hover */
.dpa-nav__menu li.menu-item-has-children:hover > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

/* Sub-menu link items */
.dpa-nav__menu .sub-menu li { display: block !important; width: 100% !important; }
.dpa-nav__menu .sub-menu li a {
    display: block !important;
    padding: 8px 18px !important;
    border-radius: 0 !important;
    color: rgba(255,255,255,0.85) !important;
    font-size: 0.9rem !important;
    white-space: nowrap !important;
    background: transparent !important;
    border-bottom: none !important;
}
.dpa-nav__menu .sub-menu li a:hover {
    color: #D60008 !important;
    background: rgba(255,255,255,0.07) !important;
}

/* Nested sub-sub-menus fly out to the right */
.dpa-nav__menu .sub-menu .sub-menu {
    top: 0 !important;
    left: calc(100% + 4px) !important;
}
.dpa-nav__menu .sub-menu li.menu-item-has-children { position: relative !important; }
.dpa-nav__menu .sub-menu li.menu-item-has-children > a::after {
    content: '\f054';
}
.dpa-nav__menu .sub-menu li.menu-item-has-children:hover > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}

/* ── Mobile accordion sub-menu ───────────────────────────────────────────── */
/* Toggle chevron button injected by JS next to the parent link */
.dpa-submenu-toggle {
    background: transparent;
    border: none;
    cursor: pointer;
    color: rgba(255,255,255,0.6);
    padding: 4px 12px;
    font-size: 0.8rem;
    line-height: 1;
    flex-shrink: 0;
    transition: color 0.2s, transform 0.2s;
}
.dpa-submenu-toggle:hover { color: #D60008; }
.is-open > .dpa-submenu-toggle {
    color: #D60008;
    transform: rotate(-180deg);
}

/* Parent li becomes a flex row so link + toggle sit side-by-side */
.dpa-nav__mobile-menu li.menu-item-has-children {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}
.dpa-nav__mobile-menu li.menu-item-has-children > a {
    flex: 1 1 auto !important;
}

/* Mobile sub-menu: collapsed by default */
.dpa-nav__mobile-menu .sub-menu {
    display: none !important;
    width: 100% !important;
    padding: 4px 0 4px 16px !important;
    margin: 0 !important;
    list-style: none !important;
    border-left: 2px solid rgba(214,0,8,0.45) !important;
}
/* Revealed when parent gains .is-open */
.dpa-nav__mobile-menu li.menu-item-has-children.is-open > .sub-menu {
    display: block !important;
}
/* Deeper levels get a subtler accent */
.dpa-nav__mobile-menu .sub-menu .sub-menu {
    padding-left: 14px !important;
    border-left-color: rgba(255,255,255,0.15) !important;
}
.dpa-nav__mobile-menu .sub-menu li a {
    font-size: 0.9rem !important;
    color: rgba(255,255,255,0.78) !important;
}

/* â”€â”€ Footer: links hover to red instead of gold â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-footer__menu li a:hover,
.dpa-footer__website:hover { color: #d60008; }

/* ══ LSA Footer — prototype-matching 4-col navy-500 layout ══════════════════
   Background : #002466 (navy-500)
   Brand col  : spans 2 of 4 columns — logo (white filter) + desc + social
   Navigate   : nav links column
   Contact    : phone / email / address / hours with armor-400 icons
   Bottom bar : 1px rgba border, copyright + Privacy & Terms
   ═══════════════════════════════════════════════════════════════════════════ */

.lsa-footer {
    background: #002466;
    color: #fff;
}
.lsa-footer__inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* Main grid */
.lsa-footer__grid {
    display: grid;
    gap: 2.5rem;
    padding: 3.5rem 0;
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .lsa-footer__grid {
        grid-template-columns: 2fr 1fr 1fr;
    }
}

/* Brand column */
.lsa-footer__logo-link { display: inline-block; margin-bottom: 1rem; }
.lsa-footer__logo-link img {
    height: 80px;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
    opacity: 0.85;
}
.lsa-footer__desc {
    font-size: 0.875rem;
    line-height: 1.65;
    color: #bfdbfe;
    max-width: 26rem;
    margin: 0 0 1.5rem;
}

/* Social icons */
.lsa-footer__social { display: flex; gap: 1rem; }
.lsa-footer__social-link {
    color: #93c5fd;
    font-size: 1.25rem;
    text-decoration: none;
    transition: color 0.2s;
}
.lsa-footer__social-link:hover { color: #fff; }

/* Column headings */
.lsa-footer__col-title {
    color: #fff;
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin: 0 0 1rem;
}

/* Navigate menu */
.lsa-footer__menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.lsa-footer__menu li { margin-bottom: 0.5rem; }
.lsa-footer__menu li a {
    color: #bfdbfe;
    font-size: 0.875rem;
    text-decoration: none;
    transition: color 0.2s;
}
.lsa-footer__menu li a:hover { color: #fff; }

/* Contact list */
.lsa-footer__contact {
    list-style: none;
    margin: 0;
    padding: 0;
}
.lsa-footer__contact li {
    color: #bfdbfe;
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}
.lsa-footer__contact li i {
    color: #A3040B;
    margin-top: 0.15em;
    flex-shrink: 0;
    width: 1rem;
    text-align: center;
}

/* Bottom bar — full-width wrapper carries the border so it spans edge-to-edge */
.lsa-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}
/* Inner wrapper re-applies the same container centering as lsa-footer__inner */
.lsa-footer__bottom-inner {
    max-width: 72rem;
    margin: 0 auto;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 0.75rem;
    color: #93c5fd;
}
@media (min-width: 768px) {
    .lsa-footer__bottom-inner {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}
.lsa-footer__legal-link a {
    color: #93c5fd;
    text-decoration: none;
    transition: color 0.2s;
}
.lsa-footer__legal-link a:hover { color: #fff; }


/* ══ LSA Webinar Archive ══════════════════════════════════════════════════════
   Hero · filter bar · card grid · how-it-works mini
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Hero ──────────────────────────────────────────────────────────────── */
.lsa-webinar-hero {
    position: relative;
    background: #002466;
    padding: 5rem 1.5rem;
    overflow: hidden;
    border-bottom: 1px solid #e5e7eb; /* matches prototype border-b (Tailwind gray-200) */
}
.lsa-webinar-hero__bg {
    position: absolute; inset: 0;
    background: url('https://images.unsplash.com/photo-1614935151651-0bea6508db6b?auto=format&fit=crop&w=1400&q=60') center/cover no-repeat;
    opacity: 0.08;
    pointer-events: none;
}
.lsa-webinar-hero__inner { position: relative; max-width: 72rem; margin: 0 auto; }
.lsa-webinar-hero__eyebrow {
    color: #A3040B; font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.25em; margin: 0 0 0.5rem;
}
.lsa-webinar-hero__heading {
    font-family: var(--dpa-font-display); font-size: clamp(2.5rem, 6vw, 3.75rem);
    color: #fff; margin: 0 0 1rem; line-height: 1.1;
}
.lsa-webinar-hero__lead {
    color: #d1d5db; font-size: 1.125rem; max-width: 38rem; margin: 0; line-height: 1.6;
}

/* ── Filter bar ────────────────────────────────────────────────────────── */
.lsa-webinar-filters {
    background: #000714;
    border-bottom: 1px solid #000e28;
    position: sticky; z-index: 40;
    /* top is set in the consolidated sticky-filter-bars block above */
}
.lsa-webinar-filters .dpa-container { max-width: 72rem; margin: 0 auto; padding: 0 1.5rem; }
.lsa-webinar-filters__tabs {
    display: flex; gap: 1.5rem;
    border-bottom: 1px solid #000e28;
}
.lsa-webinar-filters__tab {
    padding: 1rem 0; font-size: 0.875rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.05em;
    color: #6b7280; background: none; border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer; transition: color 0.2s, border-color 0.2s;
}
.lsa-webinar-filters__tab:hover { color: #fff; }
.lsa-webinar-filters__tab--active { color: #fff; border-bottom-color: #D60008; }

.lsa-webinar-filters__pills { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0.75rem 0; }
.lsa-cat-pill {
    padding: 0.375rem 1rem; border-radius: 9999px;
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em;
    background: #000e28; color: #9ca3af; border: 1px solid #00163d;
    cursor: pointer; transition: all 0.2s;
}
.lsa-cat-pill:hover { border-color: #D60008; color: #fff; }
.lsa-cat-pill--active { background: #D60008; color: #fff; border-color: #D60008; }

/* ── Grid section ──────────────────────────────────────────────────────── */
.lsa-webinar-section {
    background: #000714;
    padding: 3rem 1.5rem;
    min-height: 60vh;
}
.lsa-webinar-section .dpa-container { max-width: 72rem; margin: 0 auto; }
.lsa-webinar-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .lsa-webinar-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .lsa-webinar-grid { grid-template-columns: repeat(3, 1fr); } }

.lsa-webinar-empty { text-align: center; padding: 4rem 0; color: #6b7280; }
.lsa-webinar-empty i { font-size: 2.5rem; display: block; margin-bottom: 1rem; }
.lsa-webinar-empty__msg { text-align: center; padding: 4rem 0; color: #6b7280; font-family: 'Inter', sans-serif; }

/* ── Webinar archive pagination ──────────────────────────────────────────── */
.lsa-webinar-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 2rem 0 1rem;
    flex-wrap: wrap;
}
.lsa-page-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 1.25rem;
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 2px;
    color: #d1d5db;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9375rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.lsa-page-btn:hover:not(:disabled) {
    background: #D60008;
    border-color: #D60008;
    color: #fff;
}
.lsa-page-btn:disabled { opacity: 0.35; cursor: not-allowed; }
.lsa-page-indicator {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #6b7280;
    text-align: center;
    min-width: 10rem;
}
.lsa-page-count { color: #4b5563; }

/* ── Webinar card ──────────────────────────────────────────────────────── */
.lsa-webinar-card {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 0.75rem;
    overflow: hidden;
    display: flex; flex-direction: column;
    transition: border-color 0.3s;
    /* scroll reveal initial state */
    opacity: 0; transform: translateY(24px);
    transition: opacity 0.55s ease, transform 0.55s ease, border-color 0.3s;
}
.lsa-webinar-card.is-visible { opacity: 1; transform: none; }
.lsa-webinar-card:hover { border-color: rgba(214, 0, 8, 0.4); }

/* Image wrap */
.lsa-webinar-card__img-wrap {
    position: relative; height: 12rem; background: #000714; overflow: hidden;
}
.lsa-webinar-card__img {
    width: 100%; height: 100%; object-fit: cover;
    opacity: 0.5; transition: opacity 0.5s;
}
.lsa-webinar-card:hover .lsa-webinar-card__img { opacity: 0.7; }
.lsa-webinar-card--ended .lsa-webinar-card__img { opacity: 0.3; filter: grayscale(1); }

.lsa-webinar-card__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.6), transparent);
    pointer-events: none;
}

/* Badges */
.lsa-webinar-card__status-badge {
    position: absolute; top: 0.75rem; left: 0.75rem;
    padding: 0.25rem 0.625rem; border-radius: 9999px;
    font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
}
.lsa-badge--upcoming { background: rgba(245,158,11,0.2); color: #fbbf24; }
.lsa-badge--ended    { background: #00163d;              color: #4b5563; }

.lsa-webinar-card__cat-badge {
    position: absolute; top: 0.75rem; right: 0.75rem;
    background: rgba(0,14,40,0.8); border: 1px solid #00163d;
    padding: 0.2rem 0.5rem; border-radius: 0.25rem;
    font-size: 0.7rem; color: #9ca3af;
}

/* Price overlay */
.lsa-webinar-card__price-area { position: absolute; bottom: 0.75rem; left: 0.75rem; }
.lsa-webinar-card__price {
    font-family: var(--dpa-font-display); font-size: 1.5rem; color: #A3040B;
}
.lsa-webinar-card__price-sub { font-family: var(--dpa-font-body); font-size: 0.8rem; color: #6b7280; font-weight: 400; }

/* Card body */
.lsa-webinar-card__body { padding: 1.25rem; display: flex; flex-direction: column; flex: 1; }
.lsa-webinar-card__title {
    font-family: var(--dpa-font-display); font-size: 1.125rem; font-weight: 600;
    color: #fff; line-height: 1.3; margin: 0 0 0.25rem;
}
.lsa-webinar-card__title a { color: inherit; text-decoration: none; }
.lsa-webinar-card__title a:hover { color: #D60008; }
.lsa-webinar-card__subtitle { color: #6b7280; font-size: 0.75rem; margin: 0 0 0.5rem; }
.lsa-webinar-card__date {
    display: flex; align-items: center; gap: 0.5rem;
    font-size: 0.75rem; color: #6b7280; margin: 0.5rem 0 1rem;
}
.lsa-webinar-card__seat-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: auto; margin-bottom: 0.5rem;
}
.lsa-webinar-card__urgency   { font-size: 0.75rem; }
.lsa-webinar-card__seat-count { font-size: 0.75rem; color: #6b7280; }
.lsa-urgency--hot  { color: #f87171; font-weight: 700; }
.lsa-urgency--warm { color: #fbbf24; font-weight: 600; }
.lsa-urgency--muted { color: #4b5563; }

/* Seat progress bar */
.lsa-seat-bar {
    width: 100%; background: #001d52; border-radius: 9999px; height: 0.5rem; margin-bottom: 1rem;
}
.lsa-seat-bar__fill { height: 100%; border-radius: 9999px; transition: width 0.4s; }

/* CTA */
.lsa-webinar-card__cta-wrap { margin-top: 0; }
.lsa-webinar-card__btn {
    display: flex; align-items: center; justify-content: center; gap: 0.4rem;
    width: 100%; padding: 0.5rem 1rem;
    background: #D60008; color: #fff;
    border: none; border-radius: 0.375rem;
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em;
    text-decoration: none; cursor: pointer; transition: background 0.2s;
}
.lsa-webinar-card__btn:hover { background: #A3040B; color: #fff; }
.lsa-webinar-card__btn--disabled {
    background: #00163d; color: #4b5563; cursor: not-allowed;
    display: flex; align-items: center; justify-content: center; width: 100%;
    padding: 0.5rem 1rem; border-radius: 0.375rem;
    font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em;
}

/* ── How it works mini ─────────────────────────────────────────────────── */
.lsa-webinar-hiw {
    background: #000e28;
    border-top: 1px solid #00163d;
    padding: 4rem 1.5rem;
}
.lsa-webinar-hiw__inner { max-width: 48rem; margin: 0 auto; text-align: center; }
.lsa-webinar-hiw__heading {
    font-family: var(--dpa-font-display); font-size: 1.875rem; color: #fff;
    margin: 0.5rem 0 1rem;
}
.lsa-webinar-hiw__body { color: #9ca3af; margin: 0 0 2rem; line-height: 1.6; }
.lsa-webinar-hiw__body a { color: #A3040B; text-decoration: underline; text-underline-offset: 2px; }
.lsa-webinar-hiw__body a:hover { color: #f87171; }




/* â”€â”€ Webinar archive page header: dark bg â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-archive-header { background: #002466; border-bottom-color: #00163d; }

/* â”€â”€ Trust grid separator color â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-trust__grid { background: #00163d; }

/* â”€â”€ CTA section button: white bg, red text (high contrast on dark red) â”€â”€â”€â”€ */
#home-alert-cta .dpa-btn--ink {
    background: #ffffff;
    border-color: #ffffff;
    color: #A3040B;
    font-weight: 700;
}
#home-alert-cta .dpa-btn--ink:hover {
    background: transparent;
    border-color: #ffffff;
    color: #ffffff;
}

/* â”€â”€ Webinar cards: ensure text readable on dark navy card bg â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-webinar-card__date    { color: var(--dpa-text-muted) !important; }
.dpa-webinar-card__fine    { color: var(--dpa-text-muted) !important; }
.dpa-webinar-card__subtitle{ color: var(--dpa-text-mid) !important; }

/* â”€â”€ Section heading link (HIW "What is a Webinar?" link) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-link-cta { color: #d60008; }
.dpa-link-cta:hover { border-bottom-color: #d60008; color: #a3040b; }

/* â”€â”€ Single webinar page: dark bg inherited from site bg â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.dpa-single-wrap { background: var(--dpa-bg); }

/* How the Webinar Model Works — prototype-matched dark card grid */
.dpa-single-how {
    background: #000e28;
    border-top: 1px solid #00163d;
    padding: 3rem 1rem;
}
.dpa-single-how__inner { max-width: 56rem; margin: 0 auto; }
.dpa-single-how__heading {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff;
    text-align: center;
    margin-bottom: 1.5rem;
    letter-spacing: 0.01em;
}

/* 2-column on mobile, 5-column on md+ */
.dpa-single-how__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    text-align: center;
}
@media (min-width: 768px) {
    .dpa-single-how__grid { grid-template-columns: repeat(5, 1fr); }
}

/* Card */
.dpa-how-step {
    background: #00163d;
    border: 1px solid #001d52;
    border-radius: 0.75rem;
    padding: 1rem;
    text-align: center;
}
/* Last card: spans 2 cols on mobile so it centres in the 2-col grid */
.dpa-how-step:last-child { grid-column: span 2; }
@media (min-width: 768px) {
    .dpa-how-step:last-child { grid-column: span 1; }
}

/* Icon */
.dpa-how-step__icon {
    color: #A3040B;
    font-size: 1.25rem;
    display: block;
    margin-bottom: 0.5rem;
}

/* Title (replaces the circular num badge) */
.dpa-how-step__title {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 0.25rem;
    line-height: 1.3;
}

/* Body */
.dpa-how-step__body {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6b7280;
    line-height: 1.4;
    margin: 0;
}

/* Hide the old circular step-number badge if parent theme renders it */
.dpa-how-step__num { display: none !important; }


/* =============================================================================
   Seat Picker — Dark Theater Layout (matches prototype)
   ============================================================================= */

/* Outer container */
.dpa-seat-picker-wrap {
    border: 1px solid #00163d;
    border-radius: 1rem;
    overflow: hidden;
}

/* Header panel (navy-800) */
.dpa-sp__header {
    background: #000e28;
    border-bottom: 1px solid #00163d;
    padding: 1.5rem 1.5rem 1.25rem;
}
.dpa-sp__title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 0.25rem;
    letter-spacing: 0.01em;
}
.dpa-sp__meta { color: #9ca3af; font-size: 0.875rem; margin: 0; }
.dpa-sp__remaining--urgent { color: #f87171; font-weight: 600; }
@keyframes dpa-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.35; }
}
.dpa-sp__fire {
    color: #f87171;
    font-weight: 700;
    font-style: normal;
    display: inline-block;
    animation: dpa-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Pick For Me bar (navy-900) */
.dpa-sp__pick-row {
    background: #000714;
    border-bottom: 1px solid #00163d;
    padding: 1rem 1.5rem;
    display: flex;
    gap: 0.75rem;
    align-items: center;
}
.dpa-sp__pick-input {
    flex: 1;
    background: #000e28;
    border: 1px solid #00163d;
    color: #ffffff;
    border-radius: 0.5rem;
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
    font-family: inherit;
    outline: none;
    transition: border-color 0.15s;
    -moz-appearance: textfield;
}
.dpa-sp__pick-input::placeholder { color: #4b5563; }
.dpa-sp__pick-input:focus { border-color: #D60008; }
.dpa-sp__pick-input::-webkit-inner-spin-button,
.dpa-sp__pick-input::-webkit-outer-spin-button { opacity: 0.4; }
.dpa-sp__pick-btn {
    background: #D60008;
    color: #ffffff;
    border: none;
    border-radius: 0.25rem;
    padding: 0.625rem 1.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s;
    font-family: inherit;
}
.dpa-sp__pick-btn:hover { background: #A3040B; }
.dpa-sp__pick-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* Legend (navy-900) */
.dpa-sp__legend {
    background: #000714;
    border-bottom: 1px solid #00163d;
    padding: 0.75rem 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem 1.5rem;
    font-size: 0.75rem;
    color: #9ca3af;
    align-items: center;
}
.dpa-sp__legend-item { display: flex; align-items: center; gap: 0.5rem; }
.dpa-sp__legend-swatch {
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 0.25rem;
    border: 1px solid transparent;
    flex-shrink: 0;
}
.dpa-sp__legend-swatch--available { background: rgba(26,122,60,0.15); border-color: #1A7A3C; }
.dpa-sp__legend-swatch--held      { background: rgba(202,138,4,0.15);  border-color: #ca8a04; }
.dpa-sp__legend-swatch--booked    { background: #000e28; border-color: #00163d; opacity: 0.5; }
.dpa-sp__legend-swatch--selected  { background: #A3040B; border-color: #D60008; }

/* Seat map area (navy-900) */
.dpa-sp__map-area {
    background: #000714;
    padding: 2rem 1.5rem;
}
/* Override the plugin's CSS-grid to flex-wrap (prototype style) */
.dpa-sp__map-area .dpa-seat-map {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    justify-content: center;
    max-width: 48rem;
    margin: 0 auto;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    min-height: 60px;
}
/* Individual seat buttons */
.dpa-sp__map-area .dpa-seat {
    width: 44px !important;
    height: 40px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    font-family: ui-monospace, 'Courier New', monospace !important;
    border-radius: 0.375rem !important;
    border-width: 1px !important;
    flex: 0 0 auto !important;
}

/* Claim bar / Add-to-cart form (navy-800, shown by JS when seats are selected) */
.dpa-sp__claim-bar {
    background: #000e28;
    border-top: 1px solid #00163d;
    padding: 1.25rem 1.5rem;
    margin: 0;
}
.dpa-sp__claim-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.dpa-sp__claim-info { flex: 1; min-width: 0; }
.dpa-sp__claim-info .dpa-selected-summary {
    color: #d1d5db;
    font-size: 0.875rem;
    margin: 0;
    line-height: 1.4;
}
.dpa-sp__claim-action { display: flex; align-items: center; gap: 1rem; flex-shrink: 0; }
.dpa-sp__disclaimer {
    color: #6b7280;
    font-size: 0.75rem;
    text-align: right;
    margin: 0;
    line-height: 1.4;
}
.dpa-sp__claim-btn {
    background: #D60008;
    color: #ffffff;
    border: none;
    border-radius: 0.25rem;
    padding: 0.75rem 2rem;
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: background 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: inherit;
    white-space: nowrap;
}
.dpa-sp__claim-btn:hover { background: #A3040B; }

/* Responsive: narrow screens — stack claim bar vertically */
@media (max-width: 540px) {
    .dpa-sp__claim-inner { flex-direction: column; align-items: flex-start; }
    .dpa-sp__claim-action { width: 100%; justify-content: space-between; }
    .dpa-sp__disclaimer { text-align: left; }
}


/* =============================================================================
   LSA Hero Webinar Card â€” matches prototype home.js card exactly
   ============================================================================= */

/* "Featured Webinar" label above the card */
.lsa-hero-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}
.lsa-hero-card__label {
    font-family: var(--dpa-font-body);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: #6b7280; /* night-500 */
}

/* Card shell: navy-700 bg, red-tinted border, ambient red glow */
.lsa-hero-card {
    background: #00163d; /* navy-700 */
    border: 1px solid rgba(214, 0, 8, 0.3);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 0 40px rgba(214, 0, 8, 0.15), 0 8px 40px rgba(0, 0, 0, 0.5);
}

/* Image section: fixed 260px, image dims to 70%, gradient overlay on top */
.lsa-hero-card__img-section {
    position: relative;
    height: 260px;
    background: #000e28; /* navy-800 fallback */
    overflow: hidden;
}
.lsa-hero-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.7;
    display: block;
}
/* Bottom-to-top gradient so text at the bottom is readable */
.lsa-hero-card__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, #000e28 0%, rgba(0, 14, 40, 0.3) 60%, transparent 100%);
    pointer-events: none;
}

/* Category badge â€” top-right corner, overlaid on image */
.lsa-hero-card__cat-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: rgba(0, 14, 40, 0.8);
    backdrop-filter: blur(4px);
    padding: 3px 12px;
    border-radius: 999px;
    font-family: var(--dpa-font-body);
    font-size: 0.75rem;
    color: #9ca3af; /* night-400 */
    border: 1px solid #00163d;
}

/* Date + Title + Subtitle â€” bottom-left overlay */
.lsa-hero-card__img-copy {
    position: absolute;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
}
.lsa-hero-card__date {
    font-family: var(--dpa-font-body);
    font-size: 0.75rem;
    color: #9ca3af;
    margin-bottom: 0.25rem;
}
.lsa-hero-card__date .fa-calendar { margin-right: 4px; }
.lsa-hero-card__title {
    font-family: var(--dpa-font-display);
    font-size: 1.75rem;
    font-weight: 600;
    color: #ffffff;
    line-height: 1.15;
    margin-bottom: 0.2rem;
}
.lsa-hero-card__subtitle {
    font-family: var(--dpa-font-body);
    font-size: 0.875rem;
    color: #9ca3af;
}

/* Body section */
.lsa-hero-card__body { padding: 1.5rem; }

/* Price row: price left, remaining right */
.lsa-hero-card__price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.lsa-hero-card__price-left {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
}
.lsa-hero-card__price {
    font-family: var(--dpa-font-display);
    font-size: 2.25rem;
    font-weight: 700;
    color: #a3040b; /* armor-400 â€” matches prototype text-armor-400 */
    line-height: 1;
}
.lsa-hero-card__per-seat {
    font-family: var(--dpa-font-body);
    font-size: 0.875rem;
    color: #6b7280;
}
.lsa-hero-card__remaining-right { text-align: right; }
.lsa-hero-card__remaining-urgent {
    font-family: var(--dpa-font-body);
    font-size: 0.875rem;
    font-weight: 700;
    color: #f87171; /* red-400 */
    animation: lsa-pulse 1.5s ease-in-out infinite;
}
.lsa-hero-card__remaining {
    font-family: var(--dpa-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: #d1d5db;
}
.lsa-hero-card__of-total {
    font-family: var(--dpa-font-body);
    font-size: 0.75rem;
    color: #4b5563; /* night-600 â€” very muted */
}
@keyframes lsa-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }

/* Progress bar overrides inside the hero card */
.lsa-hero-card__bar-wrap { margin-bottom: 1.5rem; }
.lsa-hero-card .dpa-seat-bar {
    height: 8px;
    border-radius: 999px;
    background: #001d52; /* navy-600 */
    margin-bottom: 0;
}
.lsa-hero-card .dpa-seat-bar__fill { border-radius: 999px; }

/* Fine print */
.lsa-hero-card__fine {
    font-family: var(--dpa-font-body);
    font-size: 0.75rem;
    color: #4b5563;
    text-align: center;
    margin-top: 0.75rem;
}




/* =============================================================================
   LSA Eyebrow — global override to match prototype
   Prototype: .eyebrow { text-armor-400 text-sm font-bold uppercase tracking-[0.25em] }
   armor-400 = #A3040B · text-sm = 0.875rem · tracking-[0.25em]
   ============================================================================= */

.dpa-eyebrow {
    color: #A3040B;           /* armor-400 — all prototype eyebrows use this color */
    font-size: 0.875rem;      /* text-sm (14px); parent theme was 0.6875rem (11px) */
    letter-spacing: 0.25em;   /* tracking-[0.25em]; parent theme was 0.3em */
}
/* Prototype never renders the decorative gold line before the text */
.dpa-eyebrow__line { display: none; }


/* =============================================================================
   LSA Interior Page Heroes — #002466 navy-500 bg, py-20 padding
   Matches all prototype page heroes (shop, webinars, transfers, faq, contact).
   ============================================================================= */

/* .dpa-page-header used in page-transfers.php and page-faq.php */
.dpa-page-header {
    background: #002466 !important;
    padding: 80px 0 !important;
    overflow: hidden;
    position: relative;
    border-bottom: 1px solid #e5e7eb; /* matches prototype border-b (Tailwind gray-200) */
}

/* Remove browser-default <p> margins on the eyebrow; match prototype's mt-2 gap before h1 */
.dpa-page-header .dpa-eyebrow { margin: 0 0 8px; line-height: 1; }
/* Title: match prototype text-4xl md:text-6xl (2.25rem → 3.75rem).
   Tailwind's text-6xl sets line-height:1 alongside font-size — we must do the same.
   !important guards against the parent theme's h1 { line-height:1.1 } and any
   WordPress block/plugin stylesheet that loads after ours and resets heading line-height. */
.dpa-page-header .dpa-page-header__title { margin: 0; font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 1 !important; }

/* Lead paragraph beneath the page title.
   Prototype: <p class="mt-4 text-gray-600 max-w-2xl"> — no explicit font-size or line-height,
   so it inherits 1rem / 1.5 (Tailwind Preflight html rule) and max-w-2xl = 42rem = 672px.
   Our previous values (1.0625rem / 1.7 / 580px) wrapped a 1-line prototype lead onto 2 lines,
   adding ~34px of extra height. */
.dpa-page-header__lead {
    font-size: 1rem;         /* matches prototype's inherited 16px default */
    color: #4b5563;          /* text-gray-600 */
    max-width: 42rem;        /* max-w-2xl = 672px — wide enough for 1-line leads */
    line-height: 1.5;        /* matches Tailwind Preflight html { line-height: 1.5 } */
    margin-top: 16px;        /* mt-4 */
    margin-bottom: 0;        /* suppress browser-default <p> bottom margin */
}

/* .lsa-page-hero used in page-what-is-a-webinar.php hero section */
.lsa-page-hero {
    background: #002466;
    padding: 80px 0;
    overflow: hidden;
    position: relative;
    border-bottom: 1px solid #e5e7eb; /* matches prototype border-b (Tailwind gray-200) */
}

/* "What Is a Webinar?" hero heading */
.wiw-hero__title {
    font-family: var(--dpa-font-display);
    font-size: clamp(2.5rem, 6vw, 4rem);
    font-weight: 700;
    color: #ffffff;
    line-height: 1.1;
    margin: 12px 0 16px;
}
.wiw-hero__title em {
    font-style: normal;
    color: #D60008;
}
.wiw-hero__lead {
    font-size: 1.0625rem;
    color: #d1d5db;
    max-width: 580px;
    line-height: 1.7;
    margin-bottom: 28px;
}


/* =============================================================================
   HIW — 5-step grid on desktop (parent default is repeat(3,1fr))
   ============================================================================= */
@media (min-width: 769px) {
    .dpa-hiw__grid { grid-template-columns: repeat(5, 1fr); }
}


/* =============================================================================
   Transfer alert boxes — dark-theme compatible
   Replaces hardcoded light backgrounds with translucent dark versions.
   ============================================================================= */
.lsa-alert--info    { background: rgba(59, 130, 246, 0.12) !important; border-color: #3b82f6 !important; }
.lsa-alert--warn    { background: rgba(245, 158, 11, 0.12) !important; border-color: #f59e0b !important; }
.lsa-alert--storage { background: rgba(239, 68, 68, 0.12)  !important; border-color: #ef4444 !important; }
.lsa-alert__text    { color: #d1d5db !important; }
.lsa-alert--info .lsa-alert__icon    { color: #60a5fa !important; }
.lsa-alert--warn .lsa-alert__icon    { color: #fbbf24 !important; }
.lsa-alert--storage .lsa-alert__icon { color: #f87171 !important; }


/* =============================================================================
   FAQ accordion — body text readable on dark card backgrounds
   Overrides the hardcoded color:#4b5563 in page-faq.php's <style> block.
   ============================================================================= */
.lsa-faq-item__body p { color: #d1d5db !important; }


/* =============================================================================
   wiw-step — vertical timeline component
   Used in page-transfers.php (process steps) and page-what-is-a-webinar.php
   ============================================================================= */
.wiw-step {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}
.wiw-step__icon-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
}
.wiw-step__circle {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: #00163d;
    border: 2px solid #D60008;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wiw-step__circle i {
    color: #D60008;
    font-size: 1.125rem;
}
.wiw-step__connector {
    width: 2px;
    flex: 1;
    min-height: 32px;
    background: #00163d;
    margin: 6px 0;
}
.wiw-step__content {
    flex: 1;
    padding-bottom: 2rem;
}
.wiw-step__label {
    font-size: 0.6875rem;
    font-weight: 700;
    color: #D60008;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 4px;
}
.wiw-step__title {
    font-family: var(--dpa-font-display);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--dpa-text);
    margin-bottom: 6px;
    line-height: 1.2;
}
.wiw-step__body {
    font-size: 0.9375rem;
    color: var(--dpa-text-mid);
    line-height: 1.7;
    margin: 0;
}


/* =============================================================================
   wiw-step — horizontal variant (What Is a Webinar page)
   ============================================================================= */

/* Remove the 640px cap set by .wiw-steps-wrap */
.wiw-steps-wrap--horiz { max-width: none; }

/* Step row — horizontal on tablet+ */
@media (min-width: 640px) {
    .wiw-steps-wrap--horiz .wiw-step-list {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        gap: 0;
    }

    /* Each step is a centred column */
    .wiw-steps-wrap--horiz .wiw-step {
        flex: 1;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 0;
        position: relative;
    }

    /* Icon col: just hosts the circle (connector hidden below) */
    .wiw-steps-wrap--horiz .wiw-step__icon-col {
        flex-direction: row;
        justify-content: center;
        width: 100%;
    }

    /* Hide the old vertical connector bar */
    .wiw-steps-wrap--horiz .wiw-step__connector { display: none; }

    /* Circle sits above the pseudo-element lines */
    .wiw-steps-wrap--horiz .wiw-step__circle {
        position: relative;
        z-index: 1;
    }

    /* Horizontal line: right half (this step → next step) */
    .wiw-steps-wrap--horiz .wiw-step:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 24px; /* half of 48px circle */
        left: 50%;
        right: 0;
        height: 2px;
        background: #00163d;
        transform: translateY(-50%);
        z-index: 0;
    }

    /* Horizontal line: left half (previous step → this step) */
    .wiw-steps-wrap--horiz .wiw-step:not(:first-child)::before {
        content: '';
        position: absolute;
        top: 24px;
        left: 0;
        right: 50%;
        height: 2px;
        background: #00163d;
        transform: translateY(-50%);
        z-index: 0;
    }

    /* Text area below icon */
    .wiw-steps-wrap--horiz .wiw-step__content {
        padding: 1rem 0.75rem 0;
        text-align: center;
    }
}

/* Stack back to vertical on narrow screens */
@media (max-width: 639px) {
    .wiw-step-list { display: block; }
}

/* =============================================================================
   What Is a Webinar? — page-specific components
   ============================================================================= */

/* Registration section: 2-col split */
.wiw-vr-grid {
    display: grid;
    gap: 3rem;
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .wiw-vr-grid { grid-template-columns: 1fr 1fr; align-items: start; }
}

/* Grid item fix: CSS Grid's default min-width:auto on a grid item containing a
   replaced element (<video>) resolves to the element's intrinsic size. A 1080p
   video's intrinsic width (1920 px) would then force the track — and the entire
   page body — to be 1920 px wide, causing full-page horizontal overflow on
   mobile. Setting min-width:0 on the grid items allows them to shrink below the
   video's intrinsic size so that width:100% on the video takes effect. */
.wiw-vr-grid__video,
.wiw-vr-grid__form { min-width: 0; }

/* Concept video */
.wiw-concept-video {
    display: block;
    width: 100%;
    max-width: 100%; /* belt-and-suspenders: cap at container width */
    min-width: 0;    /* allow shrinking below intrinsic width in grid context */
    margin-top: 1.75rem;
    border-radius: 6px;
    border: 1px solid var(--dpa-border);
    background: #000;
}

.wiw-form-heading {
    font-family: var(--dpa-font-display);
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    color: var(--dpa-text);
    margin: 8px 0 12px;
    line-height: 1.15;
}
.wiw-form-lead {
    font-size: 0.9375rem;
    color: var(--dpa-text-mid);
    margin-bottom: 1.5rem;
    line-height: 1.65;
}

/* Dark card for the registration form */
.wiw-parchment-card {
    background: var(--dpa-parchment);
    border: 1px solid var(--dpa-parchment-border);
    border-radius: 12px;
    padding: 2rem;
}
.wiw-loggedin-msg {
    font-size: 0.9375rem;
    color: var(--dpa-text-mid);
    line-height: 1.65;
    margin-bottom: 1.5rem;
}

/* Form fields */
.wiw-name-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
@media (max-width: 480px) { .wiw-name-row { grid-template-columns: 1fr; } }

.wiw-field { margin-bottom: 1rem; }

.wiw-label {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--dpa-text-mid);
    margin-bottom: 6px;
}

.wiw-input {
    width: 100%;
    background: var(--dpa-bg-dark);
    border: 1.5px solid var(--dpa-parchment-border);
    color: var(--dpa-text);
    border-radius: 6px;
    padding: 10px 14px;
    font-family: var(--dpa-font-body);
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
}
.wiw-input:focus { border-color: #D60008; }

.wiw-submit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px 24px;
    background: #D60008;
    color: #ffffff;
    border: 2px solid #D60008;
    border-radius: 6px;
    font-family: var(--dpa-font-body);
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
    margin-top: 0.5rem;
}
.wiw-submit-btn:hover { background: #A3040B; border-color: #A3040B; }

.wiw-signin-link {
    text-align: center;
    font-size: 0.8125rem;
    color: var(--dpa-text-muted);
    margin-top: 1rem;
    margin-bottom: 0;
}
.wiw-signin-link a       { color: #D60008; text-decoration: none; }
.wiw-signin-link a:hover { color: #f87171; }

/* Feature tile grid */
.wiw-concept-grid__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}
@media (min-width: 768px) {
    .wiw-concept-grid__cards { grid-template-columns: repeat(4, 1fr); }
}
.wiw-feature-card {
    background: var(--dpa-parchment);
    border: 1px solid var(--dpa-parchment-border);
    border-radius: 10px;
    padding: 1.5rem 1.25rem;
    text-align: center;
}
.wiw-feature-card i {
    font-size: 1.5rem;
    color: #D60008;
    margin-bottom: 0.75rem;
    display: block;
}
.wiw-feature-card__title {
    font-family: var(--dpa-font-display);
    font-size: 1.125rem;
    color: var(--dpa-text);
    margin-bottom: 0.4rem;
}
.wiw-feature-card__body {
    font-size: 0.8375rem;
    color: var(--dpa-text-mid);
    line-height: 1.65;
    margin: 0;
}

/* Step-by-step and FAQ sections: constrained width */
.wiw-steps-wrap,
.wiw-faq-wrap { max-width: 640px; }

/* FAQ highlights */
.wiw-faq-item {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--dpa-parchment-border);
}
.wiw-faq-item:last-of-type { border-bottom: none; margin-bottom: 0; }
.wiw-faq-item__q {
    font-family: var(--dpa-font-display);
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--dpa-text);
    margin-bottom: 0.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    line-height: 1.3;
}
.wiw-faq-item__q i { color: #D60008; margin-top: 0.15em; flex-shrink: 0; }
.wiw-faq-item__a {
    font-size: 0.9375rem;
    color: var(--dpa-text-mid);
    line-height: 1.7;
    margin: 0;
    padding-left: 1.625rem;
}


/* =============================================================================
   LSA HIW — prototype-style cards with icon + step badge
   ============================================================================= */

/* Top border matching prototype border-t border-navy-700 */
.lsa-hiw-section {
    border-top: 1px solid #00163d;
}

/* Hide the decorative gold line that dpa_eyebrow() renders — prototype eyebrow has no line */
.lsa-hiw-section .dpa-eyebrow__line {
    display: none;
}

/* Eyebrow: prototype uses text-sm (0.875rem), font-bold (700), tracking-[0.25em], text-armor-400 (#a3040b) */
.lsa-hiw-section .dpa-eyebrow {
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.25em !important;
    color: #a3040b !important;   /* rgb(163 4 11) — prototype's text-armor-400, darker than our primary #d60008 */
}

/* HIW section heading: prototype heading-lg = text-3xl md:text-5xl font-bold tracking-tight font-display */
.lsa-hiw-section .dpa-section-heading__title {
    font-family: var(--dpa-font-display);
    font-size: 1.875rem;          /* text-3xl */
    font-weight: 700;             /* font-bold */
    letter-spacing: -0.025em;    /* tracking-tight */
    line-height: 1.25;            /* leading-tight */
    color: #ffffff;
}
@media (min-width: 768px) {
    .lsa-hiw-section .dpa-section-heading__title {
        font-size: 3rem;          /* text-5xl */
    }
}

/* HIW lead: night-400 (#9ca3af), max-w-2xl (42rem) matching prototype */
.lsa-hiw-section .dpa-section-heading__lead {
    color: #9ca3af !important;   /* text-night-400 — !important beats var(--dpa-text-mid) cascade */
    max-width: 42rem !important; /* max-w-2xl */
}

/* Grid gap override — parent uses 2px, prototype uses gap-6 (1.5rem) */
.dpa-hiw__grid {
    gap: 1.5rem;
}

/* "to Selection" — red span in section heading */
.lsa-hiw__heading-em {
    color: #D60008;
}

/* Card */
.lsa-hiw-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: #000e28;                       /* navy-800 */
    border: 1px solid #00163d;                 /* navy-700 */
    border-radius: 12px;
    padding: 1.5rem;
    transition: border-color 0.2s;
}
.lsa-hiw-card:hover {
    border-color: rgba(214, 0, 8, 0.4);
}

/* Icon wrapper — positions circle + badge together */
.lsa-hiw-card__icon-wrap {
    position: relative;
    margin-bottom: 1rem;
    flex-shrink: 0;
}

/* Icon circle: 56px, navy-900 bg, faint red border */
.lsa-hiw-card__icon-circle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #000714;                       /* navy-900 */
    border: 1px solid rgba(214, 0, 8, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
}
.lsa-hiw-card__icon-circle i {
    color: #D60008;
    font-size: 1.25rem;                        /* text-xl */
}

/* Step badge: 20px red circle top-right of icon */
.lsa-hiw-card__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #D60008;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

/* Title: Barlow Condensed, 16px, white */
.lsa-hiw-card__title {
    font-family: var(--dpa-font-display);
    font-size: 1rem;                           /* text-base */
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 0.375rem;                   /* mb-1.5 */
    line-height: 1.3;
}

/* Body: night-500 (#6b7280), 12px, relaxed leading */
.lsa-hiw-card__body {
    font-size: 0.75rem;                        /* text-xs */
    color: #6b7280;                            /* night-500 */
    line-height: 1.625;                        /* leading-relaxed */
    margin: 0;
}

/* Mobile: single column */
@media (max-width: 768px) {
    .dpa-hiw__grid { grid-template-columns: 1fr; }
}


/* =============================================================================
   LSA Active Webinars section — prototype alignment
   ============================================================================= */

/* 1. Eyebrow: hide decorative line, match prototype text-sm / font-bold / armor-400 */
.lsa-webinars-section .dpa-eyebrow__line {
    display: none;
}
.lsa-webinars-section .dpa-eyebrow {
    font-size: 0.875rem !important;   /* text-sm */
    font-weight: 700 !important;      /* font-bold */
    letter-spacing: 0.25em !important;
    color: #a3040b !important;        /* text-armor-400 */
}

/* 2. Heading: prototype heading-md = text-2xl md:text-3xl font-bold */
.lsa-webinars-heading {
    font-size: 1.5rem !important;     /* text-2xl */
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
@media (min-width: 768px) {
    .lsa-webinars-heading {
        font-size: 1.875rem !important; /* text-3xl */
    }
}

/* 3. "View All" — outline button matching prototype btn-armor-outline btn-sm */
.lsa-webinars-section .dpa-link-all {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 1rem;
    border: 2px solid #d60008;
    border-radius: 4px;
    color: #a3040b;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    background: transparent;
    transition: background 0.2s, color 0.2s;
    /* hide on mobile, matching prototype's hidden md:inline-flex */
}
.lsa-webinars-section .dpa-link-all:hover {
    background: #d60008;
    color: #ffffff;
}
@media (max-width: 767px) {
    .lsa-webinars-section .dpa-link-all { display: none; }
}

/* 4. Card layout: title+date grow to fill space, pushing footer to bottom */
.lsa-webinars-section .dpa-webinar-card__top {
    flex: 1;
}

/* 5. "Reserve Your Seat →" text link */
.lsa-reserve-link-wrap {
    margin-top: 1rem;
}
.lsa-reserve-link {
    color: #d60008;               /* text-armor-500 */
    font-size: 0.875rem;          /* text-sm */
    font-weight: 600;             /* font-semibold */
    text-transform: uppercase;
    letter-spacing: 0.05em;       /* tracking-wide */
    text-decoration: none;
    transition: color 0.2s;
    display: inline-block;
}
.lsa-reserve-link:hover {
    color: #a3040b;
}


/* =============================================================================
   LSA Trust Strip — prototype alignment
   ============================================================================= */

/* Webinars section gets same border-top as prototype (border-t border-navy-800) */
.lsa-webinars-section {
    border-top: 1px solid #000e28;
}

/* Section: bg-navy-900 (#000714), border-top border-navy-800 (#000e28) */
.lsa-trust-section {
    background: #000714 !important;
    border-top: 1px solid #000e28;
}

/* Grid: open gap layout, no separator lines (prototype uses gap-8 md:grid-cols-4) */
.lsa-trust-section .dpa-trust__grid {
    gap: 2rem;
    background: transparent;
    border-radius: 0;
    overflow: visible;
}

/* Pillar: transparent bg, simple padding matching prototype px-4 */
.lsa-trust-section .dpa-trust__pillar {
    background: transparent;
    padding: 0 1rem;
}

/* Icon circle: 56px (w-14 h-14), bg-navy-700 (#00163d), no border */
.lsa-trust-section .dpa-trust__icon {
    width: 56px;
    height: 56px;
    background: #00163d;
    border: none;
    margin-bottom: 1rem;
}
.lsa-trust-section .dpa-trust__icon i {
    color: #a3040b;      /* text-armor-400 */
    font-size: 1.5rem;   /* text-2xl */
}

/* Title: font-display text-base font-bold text-white mb-2 */
.lsa-trust-section .dpa-trust__pillar-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin-bottom: 0.5rem !important;
}

/* Body: text-night-400 (#9ca3af) text-xs leading-relaxed */
.lsa-trust-section .dpa-trust__pillar-body {
    font-size: 0.75rem !important;
    color: #9ca3af !important;
    line-height: 1.625 !important;
}

/* Responsive overrides */
@media (max-width: 900px) {
    .lsa-trust-section .dpa-trust__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .lsa-trust-section .dpa-trust__grid { grid-template-columns: 1fr; }
}


/* =============================================================================
   LSA Recent Participant section — prototype alignment
   ============================================================================= */

/* Section: bg-navy-900, border-t border-navy-800, py-14 px-4 md:px-8 */
.lsa-participant-section {
    background: #000714;                /* navy-900 */
    border-top: 1px solid #000e28;      /* navy-800 */
    padding: 3.5rem 1rem;               /* py-14 px-4 */
}
@media (min-width: 768px) {
    .lsa-participant-section {
        padding-left: 2rem;             /* md:px-8 */
        padding-right: 2rem;
    }
}

/* Inner: max-w-4xl mx-auto flex flex-col md:flex-row items-center gap-8 */
.lsa-participant-section__inner {
    max-width: 56rem;                   /* max-w-4xl */
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;                          /* gap-8 */
    text-align: center;
}
@media (min-width: 768px) {
    .lsa-participant-section__inner {
        flex-direction: row;
        text-align: left;
    }
}

/* Trophy icon circle: w-16 h-16 rounded-full flex items-center justify-center flex-shrink-0 */
.lsa-participant-section__icon {
    width: 4rem;                        /* w-16 */
    height: 4rem;                       /* h-16 */
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(214, 0, 8, 0.2);
    border: 2px solid rgba(214, 0, 8, 0.5);
}
.lsa-participant-section__icon i {
    font-size: 1.5rem;                  /* text-2xl */
    color: #d60008;                     /* armor-500 */
}

/* Eyebrow: text-xs font-bold uppercase tracking-[0.25em] mb-1 color:armor-500 */
.lsa-participant-section__eyebrow {
    font-size: 0.75rem;                 /* text-xs */
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: #d60008;                     /* armor-500 */
    margin: 0 0 0.25rem;
}

/* Winner name: text-white font-display text-2xl font-bold */
.lsa-participant-section__name {
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 1.5rem;                  /* text-2xl */
    font-weight: 700;
    color: #ffffff;
    margin: 0;
    line-height: 1.2;
}

/* "from TX" — same display font/weight/color as the name (prototype: one unified line) */
.lsa-participant-section__location {
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 1.5rem;                  /* matches .lsa-participant-section__name */
    font-weight: 700;
    color: #ffffff;
}

/* Detail line: text-blue-200 text-sm mt-1 */
.lsa-participant-section__detail {
    font-size: 0.875rem;                /* text-sm */
    color: #bfdbfe;                     /* blue-200 */
    margin: 0.25rem 0 0;
    line-height: 1.5;
}
.lsa-participant-section__webinar-title {
    color: #ffffff;
    font-weight: 600;
}

/* CTA: pushed to right on md+ */
.lsa-participant-section__cta {
    flex-shrink: 0;
}
@media (min-width: 768px) {
    .lsa-participant-section__cta {
        margin-left: auto;
    }
}

/* Button: reuse dpa-btn--gold but ensure uppercase + tracking-wide */
.lsa-participant-section__btn {
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.8125rem;
    white-space: nowrap;
}


/* =============================================================================
   LSA Reviews section — prototype alignment
   bg-navy-800 (#000e28), border-t border-navy-700 (#00163d)
   ============================================================================= */

/* Section shell */
.lsa-reviews-section {
    background: #000e28;                /* bg-navy-800 */
    border-top: 1px solid #00163d;     /* border-t border-navy-700 */
    padding: 5rem 1rem;                 /* section py-20 px-4 */
}
@media (min-width: 768px) {
    .lsa-reviews-section { padding-left: 1.5rem; padding-right: 1.5rem; }
}

/* Centered header block */
.lsa-reviews-section__header {
    text-align: center;
    margin-bottom: 3rem;               /* mb-12 */
}

/* Eyebrow: text-xs / font-bold / uppercase / tracking-[0.25em] / armor-500 */
.lsa-reviews-section__eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    color: #d60008;                    /* armor-500 */
    margin: 0 0 0.5rem;
}

/* Heading: heading-md = font-display text-2xl md:text-3xl font-bold white */
.lsa-reviews-section__heading {
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 1.5rem;                 /* text-2xl */
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 0.75rem;
    line-height: 1.2;
}
@media (min-width: 768px) {
    .lsa-reviews-section__heading { font-size: 1.875rem; } /* text-3xl */
}

/* Star row below heading */
.lsa-reviews-section__stars {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 0.25rem;                      /* gap-1 */
    margin-top: 0.75rem;               /* mt-3 */
}
.lsa-reviews-section__stars .fa-star {
    color: #fbbf24;                    /* amber-400 */
    font-size: 1.25rem;                /* text-xl */
}

/* "4.9 on Google" aggregate label */
.lsa-reviews-section__score {
    font-size: 0.875rem;               /* text-sm */
    color: #6b7280;                    /* night-500 */
    margin-left: 0.5rem;               /* ml-2 */
    line-height: 1;
    align-self: flex-end;
}

/* Card grid: gap-5, 1→2→4 cols */
.lsa-reviews-section__grid {
    display: grid;
    gap: 1.25rem;                      /* gap-5 */
    grid-template-columns: 1fr;
}
@media (min-width: 768px)  { .lsa-reviews-section__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .lsa-reviews-section__grid { grid-template-columns: repeat(4, 1fr); } }

/* Card shell: bg-navy-700, faint border, rounded-xl, padding */
.lsa-review-card {
    background: #00163d;               /* navy-700 */
    border: 1px solid #001d52;         /* navy-600 */
    border-radius: 0.75rem;            /* rounded-xl */
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    transition: border-color 0.2s;
}
.lsa-review-card:hover { border-color: rgba(214, 0, 8, 0.35); }

/* Per-card star row */
.lsa-review-card__stars {
    display: flex;
    gap: 0.2rem;
}
.lsa-review-card__stars .fa-star {
    color: #fbbf24;                    /* amber-400 */
    font-size: 0.875rem;               /* text-sm */
}

/* Quote text: night-300 (#d1d5db), relaxed leading */
.lsa-review-card__text {
    font-size: 0.875rem;               /* text-sm */
    color: #d1d5db;                    /* night-300 */
    line-height: 1.65;
    margin: 0;
    flex: 1;
}

/* Author row */
.lsa-review-card__author {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-top: auto;
}

/* Avatar circle with first-letter initial */
.lsa-review-card__avatar {
    width: 2rem;                       /* w-8 */
    height: 2rem;                      /* h-8 */
    border-radius: 50%;
    background: #a3040b;               /* armor-600 */
    color: #ffffff;
    font-size: 0.875rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
}

/* Reviewer name */
.lsa-review-card__name {
    font-size: 0.875rem;
    font-weight: 600;
    color: #ffffff;
    flex: 1;
}

/* "Google Review" source label — right-aligned, muted */
.lsa-review-card__source {
    font-size: 0.6875rem;
    color: #4b5563;                    /* night-600 */
    white-space: nowrap;
}


/* =============================================================================
   LSA Text Alert CTA section — prototype py-14 px-4 md:px-8 bg-navy-800 border-t border-navy-700
   ============================================================================= */

.lsa-text-alert-section {
    background: #000e28;               /* bg-navy-800 */
    border-top: 1px solid #00163d;    /* border-t border-navy-700 */
    padding: 3.5rem 1rem;             /* py-14 px-4 */
}
@media (min-width: 768px) {
    .lsa-text-alert-section { padding-left: 2rem; padding-right: 2rem; } /* md:px-8 */
}

/* Inner: max-w-3xl mx-auto text-center */
.lsa-text-alert-section__inner {
    max-width: 48rem;                  /* max-w-3xl */
    margin: 0 auto;
    text-align: center;
}

/* Bell icon: text-3xl block mb-4 armor-500 */
.lsa-text-alert-section__icon {
    font-size: 1.875rem;              /* text-3xl */
    display: block;
    margin-bottom: 1rem;              /* mb-4 */
    color: #d60008;                   /* armor-500 */
}

/* Heading: font-display text-2xl md:text-3xl font-bold white mb-2 */
.lsa-text-alert-section__heading {
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 1.5rem;                /* text-2xl */
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 0.5rem;
    line-height: 1.2;
}
@media (min-width: 768px) {
    .lsa-text-alert-section__heading { font-size: 1.875rem; } /* text-3xl */
}

/* Body copy: text-night-400 text-sm mb-6 max-w-lg mx-auto */
.lsa-text-alert-section__body {
    font-size: 0.875rem;              /* text-sm */
    color: #9ca3af;                   /* night-400 */
    max-width: 32rem;                 /* max-w-lg */
    margin: 0 auto 1.5rem;           /* mb-6 */
    line-height: 1.65;
}

/* CTA button: red fill, btn-lg sizing, uppercase, tracking-widest */
.lsa-text-alert-section__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #d60008;             /* armor-500 */
    border-color: #d60008;
    color: #ffffff;
    padding: 1rem 2.5rem;            /* btn-lg */
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;          /* tracking-widest */
    font-weight: 700;
}
.lsa-text-alert-section__btn:hover {
    background: #a3040b;
    border-color: #a3040b;
    color: #ffffff;
}

/* Fine print: text-night-600 text-xs mt-4 */
.lsa-text-alert-section__disclaimer {
    font-size: 0.75rem;               /* text-xs */
    color: #4b5563;                   /* night-600 */
    margin: 1rem 0 0;
}


/* =============================================================================
   LSA CTA Banner — prototype py-24 px-4 md:px-8 relative overflow-hidden bg-armor-600
   ============================================================================= */

.lsa-cta-banner {
    position: relative;
    overflow: hidden;
    background: #a3040b;               /* armor-600 */
    padding: 6rem 1rem;               /* py-24 px-4 */
}
@media (min-width: 768px) {
    .lsa-cta-banner { padding-left: 2rem; padding-right: 2rem; } /* md:px-8 */
}

/* Background image overlay at 10% opacity */
.lsa-cta-banner__bg {
    position: absolute;
    inset: 0;
    opacity: 0.10;
    pointer-events: none;
}
.lsa-cta-banner__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Inner: relative max-w-4xl mx-auto text-center */
.lsa-cta-banner__inner {
    position: relative;
    max-width: 56rem;                  /* max-w-4xl */
    margin: 0 auto;
    text-align: center;
}

/* Heading: heading-lg = font-display text-3xl md:text-5xl font-bold leading-tight white */
.lsa-cta-banner__heading {
    font-family: var(--dpa-font-display, 'Barlow Condensed', sans-serif);
    font-size: 1.875rem;              /* text-3xl */
    font-weight: 700;
    line-height: 1.25;               /* leading-tight */
    color: #ffffff;
    margin: 0 0 1rem;
}
@media (min-width: 768px) {
    .lsa-cta-banner__heading { font-size: 3rem; } /* text-5xl */
}

/* Lead: text-blue-100 (#dbeafe) max-w-xl mx-auto mt-4 */
.lsa-cta-banner__lead {
    color: #dbeafe;                   /* blue-100 */
    max-width: 36rem;                 /* max-w-xl */
    margin: 0 auto 2rem;             /* mt-4 → mb-8 for spacing before btn */
    font-size: 1rem;
    line-height: 1.65;
}

/* =============================================================================
   WooCommerce Notices — dark-themed site-wide override
   Applies to .woocommerce-info (div), .woocommerce-message (div),
   .woocommerce-error (ul). All three get the same base card; accent colour
   differs per type.
   ============================================================================= */

/* ── Base card ── */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    background: #000f2e !important;
    border: 1px solid rgba(255,255,255,0.07) !important;
    border-left-width: 3px !important;
    border-top-width: 1px !important; /* override WC's border-top accent */
    border-radius: 0.5rem !important;
    padding: 1rem 1.25rem !important;
    margin: 0 0 1rem !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.9rem !important;
    line-height: 1.6 !important;
    list-style: none !important;
    overflow: visible !important;
}

/* ── Kill the WooCommerce icon-font glyph — it floats left and overlaps text ── */
.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before { display: none !important; content: none !important; }

/* ── Type accent colours ── */
.woocommerce-info    { border-left-color: #3b82f6 !important; }
.woocommerce-message { border-left-color: #22c55e !important; }
.woocommerce-error   { border-left-color: #ef4444 !important; }

/* ── Error is a <ul> — kill default left padding / list-item bullets ── */
ul.woocommerce-error { padding: 1rem 1.25rem !important; flex-direction: column !important; }
ul.woocommerce-error li { list-style: none !important; padding: 0 !important; margin: 0 !important; }
ul.woocommerce-error li + li { margin-top: 0.25rem !important; }
ul.woocommerce-error li::before { display: none !important; content: none !important; }
ul.woocommerce-error li::marker { display: none !important; content: none !important; }

/* ── Links inside notices ── */
.woocommerce-info    a { color: #93c5fd !important; }
.woocommerce-message a { color: #86efac !important; }
.woocommerce-error   a { color: #fca5a5 !important; }
.woocommerce-info a:hover, .woocommerce-message a:hover, .woocommerce-error a:hover { text-decoration: underline !important; }

/* ── Action buttons inside notices (.wc-forward, .button) ── */
.woocommerce-info .button,
.woocommerce-info .wc-forward,
.woocommerce-message .button,
.woocommerce-message .wc-forward,
.woocommerce-error .button,
.woocommerce-error .wc-forward {
    flex-shrink: 0;
    display: inline-block !important;
    padding: 0.35rem 1rem !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 0.25rem !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
    background: transparent !important;
    float: none !important; /* WC floats these right by default */
    margin: 0 0 0 auto !important; /* push to far right of the flex row */
}
.woocommerce-info    .button, .woocommerce-info    .wc-forward { color: #93c5fd !important; border: 1px solid rgba(59,130,246,0.4) !important; }
.woocommerce-message .button, .woocommerce-message .wc-forward { color: #86efac !important; border: 1px solid rgba(34,197,94,0.4) !important; }
.woocommerce-error   .button, .woocommerce-error   .wc-forward { color: #fca5a5 !important; border: 1px solid rgba(239,68,68,0.4) !important; }

.woocommerce-info    .button:hover, .woocommerce-info    .wc-forward:hover { background: rgba(59,130,246,0.12) !important; }
.woocommerce-message .button:hover, .woocommerce-message .wc-forward:hover { background: rgba(34,197,94,0.12) !important; }
.woocommerce-error   .button:hover, .woocommerce-error   .wc-forward:hover { background: rgba(239,68,68,0.12) !important; }

/* ── Notices wrapper: constrain to site container width ── */
/* Mirrors .dpa-container (max-width 1200px, centred, 32px side padding) so   */
/* notices never escape the content column regardless of where WooCommerce    */
/* renders them — single product, shop, checkout, account, etc.               */
.woocommerce-notices-wrapper {
    max-width: 1200px;
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 1.5rem;
    padding-left: 32px;
    padding-right: 32px;
    box-sizing: border-box;
}
.woocommerce-notices-wrapper:empty { margin: 0; }

/* WooCommerce password-strength meter: WC sets pastel backgrounds (salmon,
   green, yellow) but no text colour, so it inherits the site's light text
   and becomes unreadable. Force dark text on all strength states.         */
.woocommerce-password-strength { color: #1a1a1a !important; }

/* Button: armor red fill, btn-lg sizing, uppercase, tracking-widest, mt-8 */
.lsa-cta-banner__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #d60008;             /* armor-500 — pops on dark-red bg */
    border-color: #d60008;
    color: #ffffff;
    text-transform: uppercase;
    letter-spacing: 0.15em;          /* tracking-widest */
    font-weight: 700;
    font-size: 1rem;
    padding: 1rem 2.5rem;            /* btn-lg */
}
.lsa-cta-banner__btn:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: #a3040b;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE
   Dark two-column layout mirroring the Single Webinar hero style.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Outer wrapper ─────────────────────────────────────────────────────── */
.lsa-product-single {
    background: #000714;
    min-height: 60vh;
    padding: 2.5rem 0 4rem;
}
.lsa-product-single .dpa-container {
    max-width: 72rem;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* ── Back link ─────────────────────────────────────────────────────────── */
.lsa-product-single__back {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #6b7280;
    text-decoration: none;
    margin-bottom: 2rem;
    transition: color 0.15s;
}
.lsa-product-single__back:hover { color: #d1d5db; }
.lsa-product-single__back .fa-arrow-left { font-size: 0.75rem; }

/* ── Two-column hero grid ──────────────────────────────────────────────── */
.lsa-product-single__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    margin-bottom: 3rem;
}
@media (max-width: 767px) {
    .lsa-product-single__cols {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

/* ── Gallery column ────────────────────────────────────────────────────── */
.lsa-product-single__gallery {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 12px;
    overflow: hidden;
}

/* WooCommerce gallery reset — remove default white/light backgrounds */
.lsa-product-single__gallery .woocommerce-product-gallery {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
    opacity: 1 !important;
}
.lsa-product-single__gallery .woocommerce-product-gallery__wrapper {
    margin: 0;
    padding: 0;
}
.lsa-product-single__gallery .woocommerce-product-gallery__image {
    background: #000e28;
}
.lsa-product-single__gallery .woocommerce-product-gallery__image a {
    display: block;
}
.lsa-product-single__gallery .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

/* Thumbnail strip */
.lsa-product-single__gallery .flex-control-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    padding: 0.5rem;
    border-top: 1px solid #00163d;
    margin: 0;
    list-style: none;
    background: #000e28;
}
.lsa-product-single__gallery .flex-control-thumbs li {
    flex: none;
    width: 72px;
    margin: 0;
}
.lsa-product-single__gallery .flex-control-thumbs img {
    display: block;
    width: 72px;
    height: 54px;
    object-fit: cover;
    border-radius: 4px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color 0.15s;
    opacity: 0.65;
}
.lsa-product-single__gallery .flex-control-thumbs img:hover,
.lsa-product-single__gallery .flex-control-thumbs img.flex-active {
    border-color: #d60008;
    opacity: 1;
}

/* Zoom icon */
.lsa-product-single__gallery .woocommerce-product-gallery__trigger {
    display: none !important;
}

/* Sale flash badge */
.lsa-product-single__gallery .onsale {
    background: #d60008 !important;
    color: #fff !important;
    border-radius: 2px !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    padding: 4px 10px !important;
    top: 0.75rem !important;
    left: 0.75rem !important;
    right: auto !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.4 !important;
}

/* ── Info column ───────────────────────────────────────────────────────── */
.lsa-product-single__info {
    display: flex;
    flex-direction: column;
}

/* Category eyebrow */
.lsa-product-single__cat {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #6b7280;
    margin-bottom: 0.75rem;
}

/* Product title */
.lsa-product-single__info .product_title.entry-title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
    margin: 0 0 1rem !important;
    text-transform: uppercase !important;
}

/* Star rating row */
.lsa-product-single__info .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.lsa-product-single__info .star-rating {
    color: #d60008;
    font-size: 0.875rem;
}
.lsa-product-single__info .woocommerce-review-link {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #6b7280;
    text-decoration: none;
}
.lsa-product-single__info .woocommerce-review-link:hover { color: #9ca3af; }

/* Price */
.lsa-product-single__info .price {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
    color: #d60008 !important;
    line-height: 1 !important;
    margin-bottom: 1.25rem !important;
    display: block;
}
.lsa-product-single__info .price del {
    color: #4b5563 !important;
    font-size: 1.25rem !important;
    margin-right: 0.5rem;
    font-weight: 500 !important;
}
.lsa-product-single__info .price ins {
    text-decoration: none !important;
    color: #d60008 !important;
}

/* Short description */
.lsa-product-single__info .woocommerce-product-details__short-description {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    color: #9ca3af;
    line-height: 1.75;
    margin-bottom: 1.5rem;
}
.lsa-product-single__info .woocommerce-product-details__short-description p { margin: 0; }

/* ── Add to Cart form ──────────────────────────────────────────────────── */
.lsa-product-single__info .cart {
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}
.lsa-product-single__info .cart .quantity {
    display: flex;
    align-items: center;
}
.lsa-product-single__info .cart .qty {
    width: 4.5rem;
    height: 3rem;
    background: #000e28;
    border: 1px solid #00163d;
    color: #f9fafb;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    border-radius: 2px;
    -moz-appearance: textfield;
    appearance: textfield;
    outline: none;
    transition: border-color 0.15s;
}
.lsa-product-single__info .cart .qty:focus { border-color: #d60008; }
.lsa-product-single__info .cart .qty::-webkit-outer-spin-button,
.lsa-product-single__info .cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.lsa-product-single__info .cart .single_add_to_cart_button {
    flex: 1;
    min-width: 10rem;
    height: 3rem;
    background: #d60008 !important;
    border: none !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    cursor: pointer;
    transition: background 0.15s !important;
    padding: 0 1.75rem !important;
}
.lsa-product-single__info .cart .single_add_to_cart_button:hover {
    background: #a3040b !important;
}
.lsa-product-single__info .cart .single_add_to_cart_button.loading {
    opacity: 0.7;
}

/* ── Product meta (SKU / Categories / Tags) ────────────────────────────── */
.lsa-product-single__info .product_meta {
    border-top: 1px solid #00163d;
    padding-top: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.lsa-product-single__info .product_meta .sku_wrapper,
.lsa-product-single__info .product_meta .posted_in,
.lsa-product-single__info .product_meta .tagged_as {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #6b7280;
}
.lsa-product-single__info .product_meta span.label,
.lsa-product-single__info .product_meta span.sku_wrapper > span:first-child {
    color: #4b5563;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    margin-right: 0.25rem;
}
.lsa-product-single__info .product_meta a {
    color: #9ca3af;
    text-decoration: none;
}
.lsa-product-single__info .product_meta a:hover { color: #f9fafb; }

/* Stock status */
.lsa-product-single__info .stock {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
}
.lsa-product-single__info .in-stock  { color: #4ade80; }
.lsa-product-single__info .out-of-stock { color: #ef4444; }

/* ── Tabs section (Description / Reviews) ──────────────────────────────── */
.lsa-product-single__tabs {
    border-top: 1px solid #00163d;
    padding-top: 2.5rem;
}
.lsa-product-single__tabs .woocommerce-tabs {
    margin-bottom: 3rem;
}

/* Tab nav */
.lsa-product-single__tabs .wc-tabs {
    display: flex;
    gap: 0;
    list-style: none;
    margin: 0 0 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #00163d !important;
}
.lsa-product-single__tabs .wc-tabs::before,
.lsa-product-single__tabs .wc-tabs::after { display: none !important; }
.lsa-product-single__tabs .wc-tabs li {
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
}
.lsa-product-single__tabs .wc-tabs li a {
    display: block;
    padding: 0.875rem 1.5rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.15s, border-color 0.15s;
}
.lsa-product-single__tabs .wc-tabs li a:hover { color: #d1d5db; }
.lsa-product-single__tabs .wc-tabs li.active a {
    color: #f9fafb;
    border-bottom-color: #d60008;
}

/* Tab panels */
.lsa-product-single__tabs .woocommerce-Tabs-panel {
    background: #000e28;
    border: 1px solid #00163d;
    border-top: none;
    padding: 2rem;
    border-radius: 0 0 8px 8px;
}
.lsa-product-single__tabs .woocommerce-Tabs-panel h2 {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.375rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #f9fafb;
    margin-bottom: 1.25rem;
}
.lsa-product-single__tabs .woocommerce-Tabs-panel p,
.lsa-product-single__tabs .woocommerce-Tabs-panel li {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    color: #9ca3af;
    line-height: 1.75;
}

/* Reviews tab */
.lsa-product-single__tabs #reviews #comments .woocommerce-Reviews-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #f9fafb;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
}
.lsa-product-single__tabs #reviews .comment-text {
    background: #00163d;
    border-radius: 6px;
    padding: 1.25rem;
    border: 1px solid #00204d;
}
.lsa-product-single__tabs #reviews .comment-text p.meta { color: #6b7280; font-size: 0.8125rem; }
.lsa-product-single__tabs #reviews .comment-text .description p { color: #9ca3af; font-size: 0.9375rem; }
.lsa-product-single__tabs #reviews .star-rating { color: #d60008; margin-bottom: 0.5rem; }

/* Review form */
.lsa-product-single__tabs #review_form .comment-reply-title {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.25rem;
    font-weight: 700;
    color: #f9fafb;
    text-transform: uppercase;
    margin-bottom: 1rem;
}
.lsa-product-single__tabs #review_form input[type="text"],
.lsa-product-single__tabs #review_form input[type="email"],
.lsa-product-single__tabs #review_form textarea {
    background: #000714;
    border: 1px solid #00163d;
    color: #f9fafb;
    border-radius: 2px;
    padding: 0.625rem 0.875rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    width: 100%;
    transition: border-color 0.15s;
}
.lsa-product-single__tabs #review_form input[type="text"]:focus,
.lsa-product-single__tabs #review_form input[type="email"]:focus,
.lsa-product-single__tabs #review_form textarea:focus {
    outline: none;
    border-color: #d60008;
}
.lsa-product-single__tabs #review_form .submit {
    background: #d60008;
    border: none;
    border-radius: 2px;
    color: #fff;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.9375rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0.75rem 2rem;
    cursor: pointer;
    transition: background 0.15s;
}
.lsa-product-single__tabs #review_form .submit:hover { background: #a3040b; }

/* ── Related Products & Upsells ────────────────────────────────────────── */
.lsa-product-single__tabs .related.products,
.lsa-product-single__tabs .up-sells.products {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #00163d;
}

.lsa-product-single__tabs .related.products > h2,
.lsa-product-single__tabs .up-sells.products > h2 {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: #f9fafb !important;
    letter-spacing: 0.03em !important;
    margin-bottom: 1.5rem !important;
}

/* Product grid */
.lsa-product-single__tabs .related.products ul.products,
.lsa-product-single__tabs .up-sells.products ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.25rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (min-width: 768px) {
    .lsa-product-single__tabs .related.products ul.products,
    .lsa-product-single__tabs .up-sells.products ul.products {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* Product cards */
.lsa-product-single__tabs .related.products ul.products li.product,
.lsa-product-single__tabs .up-sells.products ul.products li.product {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: border-color 0.2s !important;
}
.lsa-product-single__tabs .related.products ul.products li.product:hover,
.lsa-product-single__tabs .up-sells.products ul.products li.product:hover {
    border-color: #d60008 !important;
}

/* Product card image */
.lsa-product-single__tabs ul.products li.product a img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
}

/* Product card content */
.lsa-product-single__tabs ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    text-transform: uppercase !important;
    padding: 0.75rem 0.875rem 0 !important;
    line-height: 1.2 !important;
}
.lsa-product-single__tabs ul.products li.product .price {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: #d60008 !important;
    padding: 0.375rem 0.875rem !important;
    display: block !important;
}
.lsa-product-single__tabs ul.products li.product .button {
    display: block !important;
    margin: auto 0.875rem 0.875rem !important;
    background: transparent !important;
    border: 1px solid #00163d !important;
    border-radius: 2px !important;
    color: #9ca3af !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
    padding: 0.5rem 1rem !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}
.lsa-product-single__tabs ul.products li.product .button:hover {
    background: #d60008 !important;
    border-color: #d60008 !important;
    color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CART PAGE
   Scoped under body.woocommerce-cart — dark card layout matching site aesthetic.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page / section shell ──────────────────────────────────────────────── */
/* The top .dpa-page-header hero is styled by the global .dpa-page-header rule
   (#002466 bg, 80px padding) — no override needed; it already matches other
   secondary pages (Transfers, FAQs, etc.).

   The parent theme's woocommerce_before_cart hook injects a *second*
   .dpa-page-header inside the WooCommerce content area. Hide that duplicate. */
.woocommerce-cart .woocommerce > .dpa-page-header {
    display: none !important;
}

.woocommerce-cart .dpa-section {
    background: #000714;
    padding: 2.5rem 0 4rem;
}

/* Prose container: full-width for cart layout (override the 780px max-width) */
.woocommerce-cart .dpa-prose {
    max-width: 72rem;
    width: 100%;
}

/* ── WooCommerce notices (scoped to cart) ──────────────────────────────── */
.woocommerce-cart .woocommerce-notices-wrapper { margin-bottom: 1.5rem; }

/* ── Cart layout: table top, collaterals bottom ────────────────────────── */
.woocommerce-cart .woocommerce {
    width: 100%;
}
.woocommerce-cart .woocommerce-cart-form {
    margin-bottom: 2rem;
}

/* ── Cart items table ──────────────────────────────────────────────────── */
.woocommerce-cart table.shop_table.cart {
    width: 100% !important;
    table-layout: fixed !important;   /* browser respects explicit column widths */
    border-collapse: collapse !important;
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    overflow: hidden;
    margin: 0;
    display: table !important;        /* prevent WC responsive CSS from overriding */
}

/* thead — column widths are read from here with table-layout:fixed */
.woocommerce-cart table.shop_table.cart thead {
    display: table-header-group !important;
}
.woocommerce-cart table.shop_table.cart thead tr {
    display: table-row !important;
}
.woocommerce-cart table.shop_table.cart thead tr th {
    display: table-cell !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #4b5563;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid #00163d;
    background: #000e28;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
}
/* Fixed-width columns: remove, thumbnail, price, qty, subtotal */
.woocommerce-cart table.shop_table.cart thead .product-remove    { width: 44px !important;  padding: 0.875rem 0.5rem !important; }
.woocommerce-cart table.shop_table.cart thead .product-thumbnail { width: 96px !important;  padding: 0.875rem 0.5rem !important; }
.woocommerce-cart table.shop_table.cart thead .product-price     { width: 90px !important;  text-align: center !important; }
.woocommerce-cart table.shop_table.cart thead .product-quantity  { width: 90px !important;  text-align: center !important; }
.woocommerce-cart table.shop_table.cart thead .product-subtotal  { width: 110px !important; text-align: right !important; padding-right: 1.25rem !important; }
/* product-name gets all remaining width automatically */

/* tbody */
.woocommerce-cart table.shop_table.cart tbody {
    display: table-row-group !important;
}
.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
    display: table-row !important;
    border-bottom: 1px solid #00163d;
    transition: background 0.15s;
}
.woocommerce-cart table.shop_table.cart tbody tr.cart_item:last-child {
    border-bottom: none;
}
.woocommerce-cart table.shop_table.cart tbody tr.cart_item:hover {
    background: rgba(0,22,61,0.4);
}
.woocommerce-cart table.shop_table.cart tbody td {
    display: table-cell !important;
    width: auto !important;
    padding: 1.125rem 1rem;
    vertical-align: middle;
    background: transparent;
    border: none;
    color: #f9fafb;
    overflow: hidden;
    text-align: left;
}

/* Remove column — tight, matches thead width */
.woocommerce-cart table.shop_table.cart td.product-remove {
    padding: 1.125rem 0.5rem !important;
}
.woocommerce-cart table.shop_table.cart .product-remove a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.75rem !important;
    height: 1.75rem !important;
    border-radius: 2px !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
    color: #374151 !important;
    text-decoration: none !important;
    transition: color 0.15s, background 0.15s !important;
    background: transparent !important;
}
.woocommerce-cart table.shop_table.cart .product-remove a.remove:hover {
    color: #ffffff !important;
    background: #d60008 !important;
}

/* Thumbnail — td */
.woocommerce-cart table.shop_table.cart td.product-thumbnail {
    padding: 1.125rem 0.5rem !important;
}
.woocommerce-cart table.shop_table.cart .product-thumbnail img {
    display: block;
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid #00163d;
}
.woocommerce-cart table.shop_table.cart .product-thumbnail a {
    display: block;
    line-height: 0;
}

/* Product name */
.woocommerce-cart table.shop_table.cart td.product-name,
.woocommerce-cart table.shop_table.cart td.product-thumbnail {
    text-align: left;
}
.woocommerce-cart table.shop_table.cart .product-name a {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.0625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #f9fafb;
    text-decoration: none;
    transition: color 0.15s;
}
.woocommerce-cart table.shop_table.cart .product-name a:hover {
    color: #d60008;
}
.woocommerce-cart table.shop_table.cart .product-name .variation {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6b7280;
    margin-top: 0.25rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

/* Unit price */
.woocommerce-cart table.shop_table.cart td.product-price {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.0625rem;
    font-weight: 600;
    color: #9ca3af;
    text-align: center !important;
}
.woocommerce-cart table.shop_table.cart .product-price .amount { color: #9ca3af; }

/* Quantity input */
.woocommerce-cart table.shop_table.cart td.product-quantity {
    text-align: center !important;
}
.woocommerce-cart .product-quantity .qty {
    width: 4rem;
    height: 2.5rem;
    background: #000714;
    border: 1px solid #00163d;
    color: #f9fafb;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    border-radius: 2px;
    -moz-appearance: textfield;
    appearance: textfield;
    outline: none;
    transition: border-color 0.15s;
}
.woocommerce-cart .product-quantity .qty:focus { border-color: #d60008; }
.woocommerce-cart .product-quantity .qty::-webkit-outer-spin-button,
.woocommerce-cart .product-quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Subtotal (right column) */
.woocommerce-cart table.shop_table.cart td.product-subtotal {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.125rem;
    font-weight: 700;
    color: #d60008;
    text-align: right !important;
    padding-right: 1.25rem !important;
}
.woocommerce-cart table.shop_table.cart .product-subtotal .amount { color: #d60008; }

/* ── Actions row (coupon + update cart) ────────────────────────────────── */
.woocommerce-cart table.shop_table.cart .actions {
    background: #000e28;
    border-top: 1px solid #00163d;
    padding: 1.25rem 1rem !important;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
}

/* Coupon input + button */
.woocommerce-cart .coupon {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.woocommerce-cart .coupon #coupon_code {
    height: 2.5rem;
    padding: 0 0.875rem;
    background: #000714;
    border: 1px solid #00163d;
    border-radius: 2px;
    color: #f9fafb;
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.15s;
    min-width: 10rem;
}
.woocommerce-cart .coupon #coupon_code::placeholder { color: #4b5563; }
.woocommerce-cart .coupon #coupon_code:focus { border-color: #d60008; }

.woocommerce-cart .coupon .button[name="apply_coupon"] {
    height: 2.5rem;
    padding: 0 1.25rem;
    background: transparent;
    border: 1px solid #00163d;
    border-radius: 2px;
    color: #9ca3af;
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.woocommerce-cart .coupon .button[name="apply_coupon"]:hover {
    border-color: #9ca3af;
    color: #f9fafb;
}

/* Update cart button */
.woocommerce-cart .button[name="update_cart"] {
    height: 2.5rem;
    padding: 0 1.25rem;
    background: transparent;
    border: 1px solid #374151;
    border-radius: 2px;
    color: #d1d5db;
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.woocommerce-cart .button[name="update_cart"]:not([disabled]):hover {
    border-color: #9ca3af;
    color: #f9fafb;
    background: rgba(255,255,255,0.05);
}
.woocommerce-cart .button[name="update_cart"][disabled] {
    opacity: 0.25;
    cursor: default;
}

/* ── Cart collaterals layout ───────────────────────────────────────────── */
.woocommerce-cart .cart-collaterals {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.woocommerce-cart .cross-sells {
    flex: 1 1 400px;
    min-width: 0;
}
.woocommerce-cart .cart_totals {
    flex: 0 0 320px;
    width: 320px;
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.25rem 1.25rem 1.25rem 1.5rem;
}
@media (max-width: 767px) {
    .woocommerce-cart .cart_totals {
        flex: 1 1 100%;
        width: 100%;
    }
    .woocommerce-cart .cross-sells { flex: 1 1 100%; }
    /* Stack totals first on mobile so users see it before cross-sells */
    .woocommerce-cart .cart-collaterals { flex-direction: column-reverse; }
}

/* ── Cart totals panel ─────────────────────────────────────────────────── */
.woocommerce-cart .cart_totals h2 {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: #f9fafb !important;
    letter-spacing: 0.03em !important;
    margin: 0 0 1.25rem !important;
    padding-bottom: 0.875rem !important;
    border-bottom: 1px solid #00163d !important;
}

.woocommerce-cart .cart_totals .shop_table {
    width: 100%;
    border-collapse: collapse !important;
    border: none !important;           /* kill WC's shop_table outer border */
    border-radius: 0 !important;
    margin-bottom: 1.25rem;
}
.woocommerce-cart .cart_totals .shop_table tr {
    border: none !important;           /* kill WC's per-row top borders */
}
.woocommerce-cart .cart_totals .shop_table tr th,
.woocommerce-cart .cart_totals .shop_table tr td {
    padding: 0.625rem 0;
    border: none !important;           /* kill WC's td border-top */
    background: transparent !important;
    vertical-align: middle;
}
.woocommerce-cart .cart_totals .shop_table tr th {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
    width: 40%;
}
.woocommerce-cart .cart_totals .shop_table tr td {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #d1d5db;
    text-align: right;
}

/* Discount / coupon rows */
.woocommerce-cart .cart_totals .cart-discount td { color: #4ade80; }
.woocommerce-cart .cart_totals .cart-discount a.woocommerce-remove-coupon {
    font-size: 0.7rem;
    color: #6b7280;
    margin-left: 0.5rem;
    text-decoration: none;
}
.woocommerce-cart .cart_totals .cart-discount a.woocommerce-remove-coupon:hover { color: #d60008; }

/* Shipping row */
.woocommerce-cart .cart_totals .shipping td {
    font-size: 0.875rem;
    color: #9ca3af;
}
.woocommerce-cart .shipping-calculator-button {
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #6b7280;
    text-decoration: none;
    border-bottom: 1px dashed #374151;
}
.woocommerce-cart .shipping-calculator-button:hover { color: #9ca3af; }

/* Order total row — emphasised */
.woocommerce-cart .cart_totals .order-total {
    border-top: 1px solid #00163d !important;
    border-bottom: none !important;
}
.woocommerce-cart .cart_totals .order-total th {
    font-size: 0.8125rem !important;
    color: #9ca3af !important;
}
.woocommerce-cart .cart_totals .order-total td {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
}
.woocommerce-cart .cart_totals .order-total td .amount {
    color: #f9fafb !important;
}

/* Proceed to checkout button */
.woocommerce-cart .wc-proceed-to-checkout {
    margin-top: 1.25rem;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    padding: 0.875rem 1.5rem !important;
    background: #d60008 !important;
    border: none !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
    background: #a3040b !important;
}

/* ── Cross-sells ───────────────────────────────────────────────────────── */
.woocommerce-cart .cross-sells > h2 {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    color: #f9fafb !important;
    letter-spacing: 0.03em !important;
    margin: 0 0 1.25rem !important;
}
.woocommerce-cart .cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1rem !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
@media (min-width: 640px) {
    .woocommerce-cart .cross-sells ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* Cross-sell cards — same as single-product related cards */
.woocommerce-cart .cross-sells ul.products li.product {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: border-color 0.2s !important;
}
.woocommerce-cart .cross-sells ul.products li.product:hover {
    border-color: #d60008 !important;
}
.woocommerce-cart .cross-sells ul.products li.product a img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
}
.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    text-transform: uppercase !important;
    padding: 0.75rem 0.875rem 0 !important;
    line-height: 1.2 !important;
}
.woocommerce-cart .cross-sells ul.products li.product .price {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    color: #d60008 !important;
    padding: 0.375rem 0.875rem !important;
    display: block !important;
}
.woocommerce-cart .cross-sells ul.products li.product .button {
    display: block !important;
    margin: auto 0.875rem 0.875rem !important;
    background: transparent !important;
    border: 1px solid #00163d !important;
    border-radius: 2px !important;
    color: #9ca3af !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
    padding: 0.5rem 1rem !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}
.woocommerce-cart .cross-sells ul.products li.product .button:hover {
    background: #d60008 !important;
    border-color: #d60008 !important;
    color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CHECKOUT PAGE
   Two-column layout: billing/shipping form (left) | order summary (right).
   Scoped under body.woocommerce-checkout.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page wrapper — match cart page ──────────────────────────────────────── */
.woocommerce-checkout .dpa-section {
    background: #000714;
    padding: 2.5rem 0 4rem;
}
.woocommerce-checkout .dpa-prose {
    max-width: 72rem;
    width: 100%;
}
/* Hide the parent-theme's duplicate page-header injected inside woocommerce */
.woocommerce-checkout .woocommerce > .dpa-page-header { display: none !important; }

/* ── Block Checkout: coupon panel — always expanded ──────────────────────── */
/* WooCommerce renders a panel with a toggle button. We hide the button and  */
/* force the content area visible so the coupon input is always shown.       */
/* The [hidden] attribute override is needed because React may set it inline. */
.wc-block-components-totals-coupon .wc-block-components-panel__button {
    display: none !important;
}
.wc-block-components-totals-coupon .wc-block-components-panel__content,
.wc-block-components-totals-coupon .wc-block-components-panel__content[hidden] {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
    padding-bottom: 0.75rem !important;
}

/* ── Block Checkout: order summary card ──────────────────────────────────── */
/* Override WooCommerce's default light border + radius with site dark theme  */
.wp-block-woocommerce-checkout-order-summary-block {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    overflow: hidden;
    font-family: 'Inter', sans-serif !important;
    color: #d1d5db !important;
}

/* "Order summary" heading */
.wc-block-components-checkout-order-summary__title,
.wc-block-components-checkout-order-summary__title-text {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
}

/* Quantity badge — overlaid on the product thumbnail top-right corner.
   WC uses background:currentColor which goes invisible on dark themes.     */
.wc-block-components-order-summary-item__quantity {
    background: #D60008 !important;
    color: #ffffff !important;
}
.wc-block-components-order-summary-item__quantity span {
    color: #ffffff !important;
}

/* Product item rows */
.wc-block-components-order-summary-item {
    border-bottom: 1px solid #00163d !important;
    padding: 0.875rem 0 !important;
}
.wc-block-components-order-summary-item:last-child { border-bottom: none !important; }

.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary-item__individual-price {
    color: #9ca3af !important;
    font-size: 0.8125rem !important;
}
.wc-block-components-order-summary-item__full-price,
.wc-block-components-order-summary-item__full-price .wc-block-components-product-price {
    color: #f9fafb !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}
.wc-block-components-product-name {
    color: #f3f4f6 !important;
    font-weight: 600 !important;
    font-size: 0.875rem !important;
}
.wc-block-components-product-metadata { color: #9ca3af !important; font-size: 0.75rem !important; }

/* Totals rows (subtotal, shipping, etc.) */
.wc-block-components-totals-wrapper {
    border-color: #00163d !important;
}
.wc-block-components-totals-item {
    color: #9ca3af !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.8125rem !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
}
.wc-block-components-totals-item__label { color: #9ca3af !important; }
.wc-block-components-totals-item__value,
.wc-block-components-totals-item__value * { color: #d1d5db !important; }

/* Grand total row */
.wc-block-components-totals-footer-item {
    border-top: 1px solid #00163d !important;
    padding-top: 0.875rem !important;
    padding-bottom: 0.875rem !important;
    margin: 0 !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #6b7280 !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    line-height: 1 !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value * {
    color: #f9fafb !important;
}

/* ── Block Checkout: coupon field styling ─────────────────────────────────── */
/* Label injected via ::before so no PHP override needed */
.wc-block-components-totals-coupon .wc-block-components-panel__content::before {
    content: "Have a coupon?";
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

/* Coupon form row */
.wc-block-components-totals-coupon__form {
    gap: 0.5rem !important;
    align-items: center !important;
}

/* Input wrapper — WC uses .wc-block-components-text-input with floating-label
   padding built in. We strip that entirely so the wrapper is exactly the same
   height as the button next to it.                                            */
.wc-block-components-totals-coupon__form .wc-block-components-text-input,
.wc-block-components-totals-coupon__input.wc-block-components-text-input {
    height: 2.25rem !important;
    min-height: 2.25rem !important;
    line-height: 2.25rem !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #000714 !important;
    border: 1px solid #00163d !important;
    border-radius: 4px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    white-space: normal !important;
}
/* The inner __wrapper div — flatten it too */
.wc-block-components-totals-coupon__form .wc-block-components-text-input .wc-block-components-text-input__wrapper {
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
/* The actual <input> element inside the wrapper */
.wc-block-components-totals-coupon__form .wc-block-components-text-input input,
.wc-block-components-totals-coupon__input input {
    height: 100% !important;
    width: 100% !important;
    padding: 0 0.75rem !important;
    margin: 0 !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    line-height: 2.25rem !important;
    box-sizing: border-box !important;
}
.wc-block-components-totals-coupon__form .wc-block-components-text-input input::placeholder {
    color: #374151 !important;
}
/* Focus ring on the wrapper */
.wc-block-components-totals-coupon .wc-block-components-text-input:focus-within {
    border-color: #D60008 !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Floating label inside the WC text-input wrapper — hide it entirely */
.wc-block-components-totals-coupon__form .wc-block-components-text-input label {
    display: none !important;
}

/* Apply button */
.wc-block-components-totals-coupon__button {
    height: 2.25rem !important;
    min-height: 2.25rem !important;
    flex: 0 0 auto !important;
    padding: 0 1.125rem !important;
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}
.wc-block-components-totals-coupon__button:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}
/* Kill WC's loading-state overrides that dim the button text */
.wc-block-components-totals-coupon__button .wc-block-components-button__text { color: inherit !important; }

/* ── Block Checkout: form left column — dark card steps ─────────────────── */
/* Each section (Contact, Shipping, Billing, Payment) is a                    */
/* .wc-block-components-checkout-step. We wrap each in a dark card.           */

/* Step card */
.wc-block-components-checkout-step {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    padding: 1.5rem !important;
    margin: 0 0 1.25rem !important;
}

/* Step heading row */
.wc-block-components-checkout-step__heading {
    margin-bottom: 1.25rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 1px solid #00163d !important;
    position: relative;
}
.wc-block-components-checkout-step__title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    margin: 0 !important;
}
/* WC injects a counter badge — hide it so we just use the card title */
.wc-block-components-checkout-step__heading::before {
    display: none !important;
}

/* Text inputs — floating-label style ─────────────────────────────────────── */
/* WC: .wc-block-components-text-input > .__wrapper > input (has border) + label (absolute) */
.wc-block-checkout__main .wc-block-components-text-input input[type="email"],
.wc-block-checkout__main .wc-block-components-text-input input[type="text"],
.wc-block-checkout__main .wc-block-components-text-input input[type="tel"],
.wc-block-checkout__main .wc-block-components-text-input input[type="number"],
.wc-block-checkout__main .wc-block-components-text-input input[type="password"],
.wc-block-checkout__main .wc-block-components-text-input input {
    background: #000714 !important;
    border: 1px solid #00163d !important;
    border-radius: 4px !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
}
.wc-block-checkout__main .wc-block-components-text-input input:focus {
    border-color: #D60008 !important;
    outline: none !important;
    box-shadow: none !important;
}
/* Floating label color */
.wc-block-checkout__main .wc-block-components-text-input label {
    color: #6b7280 !important;
    font-family: 'Inter', sans-serif !important;
}

/* Country / state select dropdowns ─────────────────────────────────────── */
/* WC: .wc-blocks-components-select > .__container > select + label         */
.wc-block-checkout__main .wc-blocks-components-select__container {
    background: #000714 !important;
    border: 1px solid #00163d !important;
    border-radius: 4px !important;
}
.wc-block-checkout__main .wc-blocks-components-select__container:focus-within {
    border-color: #D60008 !important;
    outline: none !important;
}
.wc-block-checkout__main .wc-blocks-components-select__select {
    background: transparent !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    border: none !important;
}
.wc-block-checkout__main .wc-blocks-components-select label,
.wc-block-checkout__main .wc-blocks-components-select__label {
    color: #6b7280 !important;
    font-family: 'Inter', sans-serif !important;
}

/* "Use same address for billing" checkbox in shipping block */
.wc-block-checkout__main .wc-block-components-checkbox label {
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
}
.wc-block-checkout__main .wc-block-components-checkbox input[type="checkbox"] {
    accent-color: #D60008;
}

/* Place Order button (Block Checkout) ─────────────────────────────────── */
.wc-block-components-checkout-place-order-button {
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border-radius: 2px !important;
    width: 100% !important;
    padding: 0.875rem 1.5rem !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
    line-height: 1 !important;
    margin-top: 0.5rem !important;
}
.wc-block-components-checkout-place-order-button:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}
.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}

/* Terms & conditions line below the button */
.wc-block-checkout__terms,
.wc-block-checkout__terms * {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.75rem !important;
    color: #6b7280 !important;
}
.wc-block-checkout__terms a { color: #9ca3af !important; }
.wc-block-checkout__terms input[type="checkbox"] { accent-color: #D60008; }

/* Validation error messages */
.wc-block-checkout__main .wc-block-components-validation-error {
    color: #ef4444 !important;
}

/* Coupon — always-visible card above the form ─────────────────────────────── */
/* The toggle div is gone; form is rendered directly via our template override */
.woocommerce-checkout .lsa-coupon-wrap {
    margin-bottom: 1.25rem;
}
.woocommerce-checkout .lsa-coupon-form {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin: 0 !important;
}
.woocommerce-checkout .lsa-coupon-inner { width: 100%; }
.woocommerce-checkout .lsa-coupon-label {
    display: block;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    color: #6b7280 !important;
    margin-bottom: 0.5rem !important;
}
.woocommerce-checkout .lsa-coupon-row {
    display: flex;
    gap: 0.625rem;
    align-items: stretch;
}
.woocommerce-checkout .lsa-coupon-input {
    flex: 1;
    height: 2.625rem !important;
    padding: 0 0.875rem !important;
    background: #000714 !important;
    border: 1px solid #00163d !important;
    border-radius: 4px !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s !important;
    margin: 0 !important;
    width: auto !important;
}
.woocommerce-checkout .lsa-coupon-input:focus {
    border-color: #D60008 !important;
    outline: none !important;
    box-shadow: none !important;
}
.woocommerce-checkout .lsa-coupon-input::placeholder { color: #374151 !important; }

/* Apply coupon button — matches site red style */
.woocommerce-checkout .lsa-btn-coupon {
    flex-shrink: 0;
    height: 2.625rem;
    padding: 0 1.25rem !important;
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
}
.woocommerce-checkout .lsa-btn-coupon:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}

/* Login form */
.woocommerce-checkout form.login {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    padding: 1.25rem 1.5rem !important;
    margin-bottom: 1.25rem !important;
}
/* Login form button — match site red style */
.woocommerce-checkout form.login .button,
.woocommerce-checkout form.login [type="submit"] {
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 2px !important;
    padding: 0.5rem 1.25rem !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
}
.woocommerce-checkout form.login .button:hover,
.woocommerce-checkout form.login [type="submit"]:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}

/* ── Two-column form grid ────────────────────────────────────────────────── */
/* The checkout <form> is the grid container. Known direct children are:      */
/*   .col2-set (billing + shipping) → left column, full height               */
/*   h3#order_review_heading        → right column, top                      */
/*   div#order_review               → right column, below heading             */
.woocommerce-checkout form.checkout {
    display: grid !important;
    grid-template-columns: 1fr 360px;
    grid-template-rows: auto 1fr;
    gap: 0 2rem;
    align-items: start;
}
.woocommerce-checkout form.checkout .col2-set {
    grid-column: 1;
    grid-row: 1 / 99;  /* span all rows so right column can stack freely */
}
.woocommerce-checkout form.checkout #order_review_heading {
    grid-column: 2;
    grid-row: 1;
}
.woocommerce-checkout form.checkout #order_review {
    grid-column: 2;
    grid-row: 2;
    position: sticky;
    top: 5.5rem;
}

/* ── col2-set: kill WooCommerce floats ───────────────────────────────────── */
.woocommerce-checkout .col2-set::before,
.woocommerce-checkout .col2-set::after { display: none !important; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    float: none !important;
    width: 100% !important;
}

/* ── Billing & shipping section cards ────────────────────────────────────── */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}
.woocommerce-checkout .woocommerce-account-fields {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}

/* Card headings */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    margin: 0 0 1.25rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 1px solid #00163d !important;
}

/* "Ship to a different address?" toggle */
.woocommerce-checkout .woocommerce-shipping-fields h3 label {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    cursor: pointer;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}
.woocommerce-checkout .woocommerce-shipping-fields h3 input[type="checkbox"] {
    accent-color: #D60008;
    width: 1rem;
    height: 1rem;
}

/* ── Field wrapper: two-column grid within each card ─────────────────────── */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}
.woocommerce-checkout .form-row-wide { grid-column: 1 / -1; }
.woocommerce-checkout .form-row-first { grid-column: 1; }
.woocommerce-checkout .form-row-last  { grid-column: 2; }

/* ── Form labels ─────────────────────────────────────────────────────────── */
.woocommerce-checkout .form-row label {
    display: block;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    color: #6b7280 !important;
    margin-bottom: 0.375rem !important;
}
.woocommerce-checkout .form-row label .required {
    color: #D60008 !important;
    font-weight: 700 !important;
}

/* ── Form inputs ─────────────────────────────────────────────────────────── */
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select {
    width: 100% !important;
    height: 2.625rem !important;
    padding: 0 0.875rem !important;
    background: #000714 !important;
    border: 1px solid #00163d !important;
    border-radius: 4px !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s !important;
    margin: 0 !important;
}
.woocommerce-checkout .form-row .input-text:focus,
.woocommerce-checkout .form-row select:focus {
    border-color: #D60008 !important;
    outline: none !important;
    box-shadow: none !important;
}
.woocommerce-checkout .form-row .input-text::placeholder { color: #374151 !important; }
.woocommerce-checkout .form-row textarea.input-text {
    height: auto !important;
    padding: 0.625rem 0.875rem !important;
    resize: vertical;
    min-height: 6rem;
}

/* Select — override WC's default light arrow with a dark-themed one */
.woocommerce-checkout .form-row select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-size: 16px !important;
    background-position: calc(100% - 0.75rem) center !important;
    padding-right: 2.5rem !important;
    cursor: pointer !important;
}

/* Validation states */
.woocommerce-checkout .form-row.woocommerce-invalid .input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
    border-color: #ef4444 !important;
}
.woocommerce-checkout .form-row.woocommerce-validated .input-text,
.woocommerce-checkout .form-row.woocommerce-validated select {
    border-color: #22c55e !important;
}

/* ── Order review heading (above the right-column card) ───────────────────── */
.woocommerce-checkout #order_review_heading {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    margin: 0 0 0.875rem !important;
    padding: 0 !important;
    border: none !important;
}

/* ── Order review card ───────────────────────────────────────────────────── */
.woocommerce-checkout #order_review {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    overflow: hidden;
}

/* Review-order table */
.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
}
.woocommerce-checkout-review-order-table thead th {
    font-family: 'Inter', sans-serif;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #6b7280;
    padding: 0.75rem 1.25rem;
    border-top: none !important;
    border-bottom: 1px solid #00163d !important;
    background: rgba(0,0,0,0.2);
}
.woocommerce-checkout-review-order-table thead th.product-total { text-align: right; }

/* Product rows */
.woocommerce-checkout-review-order-table tbody td {
    padding: 0.875rem 1.25rem;
    border-top: none !important;
    border-bottom: 1px solid #00163d !important;
    color: #d1d5db;
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    vertical-align: middle;
}
.woocommerce-checkout-review-order-table tbody td.product-total {
    text-align: right;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.0625rem;
    font-weight: 700;
    color: #f9fafb;
    white-space: nowrap;
    vertical-align: middle;
}

/* Thumbnail + info layout (from our review-order.php override) */
.lsa-review-product {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.lsa-review-thumb {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 4px;
    background-size: cover;
    background-position: center;
    background-color: #000714;
    border: 1px solid #00163d;
}
.lsa-review-info {
    display: flex;
    flex-direction: column;
    gap: 0.125rem;
    min-width: 0;
}
.lsa-review-name {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #f3f4f6;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lsa-review-qty {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6b7280;
}

/* tfoot rows — subtotal, shipping, coupons */
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
    padding: 0.4375rem 1.25rem;
    border: none !important;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    color: #9ca3af;
}
.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
.woocommerce-checkout-review-order-table tfoot tr:first-child th,
.woocommerce-checkout-review-order-table tfoot tr:first-child td {
    padding-top: 0.875rem;
}

/* Coupon/discount row */
.woocommerce-checkout-review-order-table tfoot .cart-discount th,
.woocommerce-checkout-review-order-table tfoot .cart-discount td { color: #22c55e; }

/* Order total row */
.woocommerce-checkout-review-order-table tfoot .order-total th,
.woocommerce-checkout-review-order-table tfoot .order-total td {
    border-top: 1px solid #00163d !important;
    padding: 1rem 1.25rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #6b7280;
}
.woocommerce-checkout-review-order-table tfoot .order-total td {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
.woocommerce-checkout-review-order-table tfoot .order-total .amount { color: #f9fafb !important; }

/* ── Payment section (inside #order_review card) ─────────────────────────── */
#payment {
    background: transparent !important;
    border-radius: 0 !important;
    border-top: 1px solid #00163d !important;
    padding: 1.25rem !important;
}
#payment ul.payment_methods,
#payment ul.wc_payment_methods {
    list-style: none !important;
    margin: 0 0 0.75rem !important;
    padding: 0 !important;
    border-bottom: none !important;
}
#payment ul.payment_methods li,
#payment ul.wc_payment_methods li {
    padding: 0.625rem 0;
    border-bottom: 1px solid #00163d;
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    color: #d1d5db;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.375rem 0.5rem;
}
#payment ul.payment_methods li:last-child,
#payment ul.wc_payment_methods li:last-child { border-bottom: none; }
#payment ul.payment_methods li input[type="radio"],
#payment ul.wc_payment_methods li input[type="radio"] { accent-color: #D60008; margin: 0; }
#payment ul.payment_methods li label,
#payment ul.wc_payment_methods li label { color: #d1d5db; cursor: pointer; margin: 0; }

#payment div.payment_box {
    background: #000714 !important;
    color: #9ca3af !important;
    border-radius: 4px;
    font-family: 'Inter', sans-serif;
    font-size: 0.8125rem;
    padding: 0.75rem 1rem !important;
    margin-top: 0.5rem !important;
    width: 100%;
}
/* Kill WC's default triangle pointer on payment box */
#payment div.payment_box::before { display: none !important; }

/* Place Order button */
#place_order {
    display: block !important;
    width: 100% !important;
    padding: 0.875rem 1.5rem !important;
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    transition: background 0.15s, border-color 0.15s !important;
    margin-top: 0 !important;
    line-height: 1 !important;
}
#place_order:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}

/* Terms & conditions text */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6b7280;
    margin-bottom: 0.875rem;
}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a { color: #9ca3af; }

/* "Place order" row */
.woocommerce-checkout #payment .place-order { padding: 0 !important; margin: 0 !important; }

/* ── Secure checkout trust line ──────────────────────────────────────────── */
.woocommerce-checkout .lsa-checkout-secure {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.75rem;
    color: #6b7280;
    margin-top: 0.875rem;
    justify-content: center;
}
.woocommerce-checkout .lsa-checkout-secure i { color: #4b5563; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 860px) {
    .woocommerce-checkout form.checkout {
        grid-template-columns: 1fr !important;
    }
    .woocommerce-checkout form.checkout .col2-set {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }
    .woocommerce-checkout form.checkout #order_review_heading {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
    .woocommerce-checkout form.checkout #order_review {
        grid-column: 1 !important;
        grid-row: 3 !important;
        position: static !important;
    }
    .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr !important;
    }
    .woocommerce-checkout .form-row-first,
    .woocommerce-checkout .form-row-last { grid-column: 1 !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ORDER CONFIRMATION (THANK YOU) PAGE
   Scoped under body.woocommerce-order-received.
   Classic WooCommerce templates — no blocks involved.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page wrapper — matches checkout ─────────────────────────────────────── */
.woocommerce-order-received .dpa-section {
    background: #000714;
    padding: 2.5rem 0 4rem;
}
.woocommerce-order-received .dpa-prose {
    max-width: 72rem;
    width: 100%;
}
.woocommerce-order-received .woocommerce > .dpa-page-header { display: none !important; }

/* ── Success / error notice ───────────────────────────────────────────────── */
.woocommerce-thankyou-order-received {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(34, 197, 94, 0.08);
    border: 1px solid rgba(34, 197, 94, 0.25);
    border-radius: 8px;
    padding: 1rem 1.5rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    color: #86efac;
    margin-bottom: 1.5rem !important;
}
.woocommerce-thankyou-order-received::before {
    content: "✓";
    flex-shrink: 0;
    font-weight: 700;
    font-size: 1.125rem;
    color: #22c55e;
}
.woocommerce-thankyou-order-failed {
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.25);
    border-radius: 8px;
    padding: 1rem 1.5rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    color: #fca5a5;
    margin-bottom: 1.25rem !important;
}
/* "Pay" / "My account" buttons on failed order */
.woocommerce-thankyou-order-failed-actions .button {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.25rem;
    background: #D60008 !important;
    border: 2px solid #D60008 !important;
    color: #ffffff !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    border-radius: 2px !important;
    text-decoration: none !important;
    margin-right: 0.5rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.woocommerce-thankyou-order-failed-actions .button:hover {
    background: #A3040B !important;
    border-color: #A3040B !important;
}

/* ── Order overview stats bar ─────────────────────────────────────────────── */
/* Horizontal strip of stat chips: Order #, Date, Email, Total, Payment method */
ul.woocommerce-order-overview {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    padding: 0 !important;
    margin: 0 0 1.5rem !important;
    display: flex !important;
    flex-wrap: wrap !important;
    list-style: none !important;
    overflow: hidden;
}
ul.woocommerce-order-overview li {
    flex: 1 1 auto;
    padding: 1.125rem 1.375rem !important;
    border-right: 1px solid #00163d !important;
    border-bottom: none !important;
    margin: 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    color: #6b7280 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.3rem !important;
}
ul.woocommerce-order-overview li:last-child { border-right: none !important; }
ul.woocommerce-order-overview li strong {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.1 !important;
}

/* ── Order details card ───────────────────────────────────────────────────── */
.woocommerce-order-details {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.woocommerce-order-details__title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    margin: 0 0 1.25rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 1px solid #00163d !important;
}

/* Product table */
table.woocommerce-table--order-details {
    width: 100% !important;
    border-collapse: collapse !important;
    border: none !important;
    margin: 0 !important;
}
table.woocommerce-table--order-details thead th {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    color: #6b7280 !important;
    padding: 0 0 0.75rem !important;
    border-bottom: 1px solid #00163d !important;
    border-top: none !important;
    background: none !important;
}
table.woocommerce-table--order-details thead th.product-total { text-align: right !important; }

table.woocommerce-table--order-details tbody td {
    padding: 0.875rem 0 !important;
    border-bottom: 1px solid #00163d !important;
    border-top: none !important;
    color: #d1d5db !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    vertical-align: middle !important;
    background: none !important;
}
table.woocommerce-table--order-details tbody tr:last-child td { border-bottom: none !important; }
table.woocommerce-table--order-details tbody td.product-name { color: #f3f4f6 !important; font-weight: 500 !important; }
table.woocommerce-table--order-details tbody td.product-name a { color: #f3f4f6 !important; text-decoration: none !important; }
table.woocommerce-table--order-details tbody td.product-name a:hover { color: #D60008 !important; }
table.woocommerce-table--order-details tbody td.product-name .product-quantity { color: #6b7280 !important; font-weight: 400 !important; }
table.woocommerce-table--order-details tbody td.product-total {
    text-align: right !important;
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
}

/* Totals rows */
table.woocommerce-table--order-details tfoot th,
table.woocommerce-table--order-details tfoot td {
    padding: 0.4375rem 0 !important;
    border: none !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 0.8125rem !important;
    color: #9ca3af !important;
    background: none !important;
}
table.woocommerce-table--order-details tfoot td { text-align: right !important; }
table.woocommerce-table--order-details tfoot tr:first-child th,
table.woocommerce-table--order-details tfoot tr:first-child td {
    padding-top: 0.875rem !important;
    border-top: 1px solid #00163d !important;
}
/* Discount / coupon row */
table.woocommerce-table--order-details tfoot .cart-discount th,
table.woocommerce-table--order-details tfoot .cart-discount td { color: #22c55e !important; }
/* Grand total row */
table.woocommerce-table--order-details tfoot .order-total th {
    font-size: 0.6875rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #6b7280 !important;
    border-top: 1px solid #00163d !important;
    padding-top: 0.875rem !important;
}
table.woocommerce-table--order-details tfoot .order-total td {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    color: #f9fafb !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    border-top: 1px solid #00163d !important;
    padding-top: 0.875rem !important;
}
table.woocommerce-table--order-details tfoot .order-total .amount { color: #f9fafb !important; }

/* ── Customer address section ─────────────────────────────────────────────── */
.woocommerce-customer-details {
    margin-bottom: 1.5rem;
}

/* Billing-only state: the h2 + address are direct children of the section */
.woocommerce-customer-details > .woocommerce-column__title,
.woocommerce-customer-details > address {
    display: block;
}
/* Wrap billing-only in a card by styling the parent section itself */
.woocommerce-customer-details:not(:has(.woocommerce-columns--addresses)) {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 8px;
    padding: 1.5rem;
}

/* Two-column grid when both billing + shipping present */
.woocommerce-columns--addresses {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.25rem !important;
    float: none !important;
    width: 100% !important;
}
.woocommerce-column {
    background: #000e28 !important;
    border: 1px solid #00163d !important;
    border-radius: 8px !important;
    padding: 1.5rem !important;
    float: none !important;
    width: auto !important;
}

/* Section headings — shared by both billing-only and column layouts */
.woocommerce-column__title {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    color: #ffffff !important;
    margin: 0 0 1rem !important;
    padding-bottom: 0.75rem !important;
    border-bottom: 1px solid #00163d !important;
}
.woocommerce-customer-details address {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.875rem !important;
    color: #d1d5db !important;
    font-style: normal !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}
.woocommerce-customer-details--phone,
.woocommerce-customer-details--email {
    font-family: 'Inter', sans-serif !important;
    font-size: 0.8125rem !important;
    color: #9ca3af !important;
    margin: 0.375rem 0 0 !important;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 700px) {
    ul.woocommerce-order-overview { flex-direction: column !important; }
    ul.woocommerce-order-overview li {
        border-right: none !important;
        border-bottom: 1px solid #00163d !important;
        padding: 0.875rem 1.25rem !important;
    }
    ul.woocommerce-order-overview li:last-child { border-bottom: none !important; }
    .woocommerce-columns--addresses { grid-template-columns: 1fr !important; }
}

/* ── Empty cart state ──────────────────────────────────────────────────── */
.lsa-empty-cart {
    background: #000e28;
    border: 1px solid #00163d;
    border-radius: 16px;
    padding: 4rem 2rem;
    text-align: center;
    width: 100%;
}

.lsa-empty-cart__icon {
    display: block;
    font-size: 3rem;
    color: #374151;
    margin-bottom: 1rem;
}

.lsa-empty-cart__heading {
    font-family: 'Barlow Condensed', sans-serif !important;
    font-size: 1.875rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin: 0 0 0.5rem !important;
    letter-spacing: -0.01em;
}

.lsa-empty-cart__heading span {
    color: #D60008;
}

.lsa-empty-cart__sub {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    color: #9ca3af;
    margin: 0 0 2rem !important;
    line-height: 1.6;
}

.lsa-empty-cart__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

/* Shared button base */
.lsa-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.375rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    border-radius: 2px;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration: none !important;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

/* Solid red button */
.lsa-btn--solid {
    background: #D60008;
    border-color: #D60008;
    color: #ffffff !important;
}
.lsa-btn--solid:hover {
    background: #A3040B;
    border-color: #A3040B;
    color: #ffffff !important;
}

/* Outline red button */
.lsa-btn--outline {
    background: transparent;
    border-color: #D60008;
    color: #D60008 !important;
}
.lsa-btn--outline:hover {
    background: #D60008;
    border-color: #D60008;
    color: #ffffff !important;
}

/* ── Responsive: stack table columns on small screens ──────────────────── */
@media (max-width: 600px) {
    .lsa-empty-cart { padding: 2.5rem 1.25rem; }

    .woocommerce-cart table.shop_table.cart          { display: block !important; width: 100% !important; }
    .woocommerce-cart table.shop_table.cart thead    { display: none !important; }
    .woocommerce-cart table.shop_table.cart tbody    { display: block !important; width: 100% !important; }
    .woocommerce-cart table.shop_table.cart tbody tr { display: block !important; width: 100% !important; padding: 1rem; }
    .woocommerce-cart table.shop_table.cart tbody td {
        display: block !important;
        width: 100% !important;
        padding: 0.25rem 0 !important;
        text-align: left !important;
        overflow: visible !important;
    }
    .woocommerce-cart table.shop_table.cart tbody td::before {
        content: attr(data-title) ": ";
        font-family: 'Inter', sans-serif;
        font-size: 0.65rem;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: #4b5563;
        margin-right: 0.25rem;
    }
    .woocommerce-cart table.shop_table.cart .product-subtotal { text-align: left !important; }
}
