/*
Theme Name: Dub From The Ground
Author: UHL Hosting
Description: A bold, atmospheric WordPress block theme for the Dub From The Ground sound system collective. Grey, black, and khaki — underground military dub aesthetic.
Version: 0.1.9
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: dub-from-the-ground
Tags: block-theme, full-site-editing, dark, music

Dub From The Ground - Music From The Foundation Up
*/

/* Equal-height card system */
.equal-cards > .wp-block-column {
    display: flex;
    flex-direction: column;
    flex-grow: 0;
}
.equal-cards > .wp-block-column > .wp-block-group {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.equal-cards .cta-bottom {
    margin-top: auto;
    justify-content: center;
}

/* Footer margin reset */
.wp-site-blocks > footer {
    margin-block-start: 0;
}

/* Heading background styling */
.wp-block-heading {
    background: var(--wp--preset--color--warm-brown);
    padding: 0.35em 0.6em;
    border-left: 3px solid var(--wp--preset--color--harvest-gold);
    display: inline-block;
    width: auto;
    font-weight: 500;
    text-transform: uppercase;
}

/* Reset heading background for headings inside dark cards/groups that already have backgrounds */
.wp-block-group[class*="has-background"] > .wp-block-heading,
.wp-block-cover .wp-block-heading,
.wp-block-group[style*="background"] > .wp-block-heading,
.crew-card .wp-block-heading,
.dftg-events-sidebar .wp-block-heading,
.dftg-sidebar-latest .wp-block-heading,
.merch-band .wp-block-heading,
.dftg-product-card .wp-block-heading,
.strip-bar .wp-block-heading,
.sidebar-event-item .wp-block-heading {
    background: transparent;
    padding: 0;
    border-left: none;
    display: block;
    width: auto;
}

/* Heading inside hero covers — no background */
.hero-vignette .wp-block-heading,
.has-noise-overlay .wp-block-heading {
    background: transparent;
    padding: 0;
    border-left: none;
}

/* Caption styling */
figcaption,
.wp-block-image figcaption,
.wp-block-gallery figcaption,
.wp-block-embed figcaption,
.wp-block-audio figcaption,
.wp-block-video figcaption,
.wp-element-caption {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.8rem;
    font-style: italic;
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--burnt-sienna);
    margin-top: 0.75rem;
    padding-left: 0.75rem;
    border-left: 2px solid var(--wp--preset--color--harvest-gold);
    line-height: 1.5;
}

/* Noise texture overlay utility */
.has-noise-overlay {
    position: relative;
}
.has-noise-overlay::after {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.025;
    background-image: repeating-conic-gradient(
        var(--wp--preset--color--harvest-gold) 0% 25%,
        transparent 0% 50%
    );
    background-size: 3px 3px;
    mix-blend-mode: overlay;
    pointer-events: none;
    z-index: 1;
}

/* Ghost text behind hero */
.hero-ghost-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: var(--wp--preset--font-family--heading);
    font-size: clamp(6rem, 18vw, 16rem);
    letter-spacing: 0.08em;
    line-height: 0.85;
    color: var(--wp--preset--color--harvest-gold);
    opacity: 0.03;
    white-space: nowrap;
    pointer-events: none;
    text-align: center;
    user-select: none;
    z-index: 1;
}

/* Warm vignette overlay for hero cover */
.hero-vignette::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 70% 60% at 50% 45%,
        transparent 0%,
        hsla(0, 0%, 4%, 0.8) 100%
    );
    pointer-events: none;
    z-index: 1;
}

/* Hero embedded video styling */
.hero-vignette .wp-block-embed {
    position: relative;
    z-index: 2;
    border: 1px solid var(--wp--preset--color--harvest-gold);
    box-shadow: 0 4px 30px hsla(0, 0%, 0%, 0.5), 0 0 20px hsla(80, 25%, 45%, 0.1);
}
.hero-vignette .wp-block-embed iframe {
    display: block;
}

/* Registration band accent */
.registration-band {
    position: relative;
    display: inline-block;
}
.registration-band::before {
    content: '';
    position: absolute;
    top: -3px;
    left: -3px;
    right: -3px;
    bottom: -3px;
    border: 1px solid var(--wp--preset--color--deep-vermillion);
    pointer-events: none;
}
.registration-band::after {
    content: '';
    position: absolute;
    top: -6px;
    left: -6px;
    right: -6px;
    bottom: -6px;
    border: 1px solid var(--wp--preset--color--vermillion-tint);
    pointer-events: none;
}

/* Primary button with offset shadow */
.wp-block-button.btn-ritual .wp-block-button__link {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.2em;
    font-size: 1rem;
    padding: 0.85rem 2.2rem;
    box-shadow: 4px 4px 0 var(--wp--preset--color--deep-vermillion);
    border: none;
    transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
.wp-block-button.btn-ritual .wp-block-button__link:hover {
    background: var(--wp--preset--color--neon-green-bright) !important;
    color: var(--wp--preset--color--tobacco-black) !important;
    box-shadow: 2px 2px 0 var(--wp--preset--color--deep-vermillion), 0 0 15px hsla(80, 25%, 45%, 0.2);
}
.wp-block-button.btn-ritual .wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Secondary / outline button */
.wp-block-button.btn-outline .wp-block-button__link {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.2em;
    font-size: 1rem;
    padding: 0.85rem 2.2rem;
    box-shadow: 3px 3px 0 hsla(0, 0%, 30%, 0.4);
    transition: background 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.wp-block-button.btn-outline .wp-block-button__link:hover {
    background: hsla(80, 25%, 45%, 0.08) !important;
    border-color: var(--wp--preset--color--harvest-gold) !important;
    box-shadow: 2px 2px 0 hsla(0, 0%, 30%, 0.4), 0 0 10px hsla(80, 25%, 45%, 0.1);
}
.wp-block-button.btn-outline .wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Decorative rule lines */
.gold-rule {
    width: 60px;
    height: 2px;
    border: none;
    background: var(--wp--preset--color--harvest-gold);
}
.gold-rule-wide {
    width: 100px;
    height: 2px;
    border: none;
    background: var(--wp--preset--color--harvest-gold);
}

/* Section divider strip */
.strip-bar {
    display: flex;
    align-items: stretch;
    border-top: 1px solid hsla(0, 0%, 90%, 0.06);
}
.strip-bar > div {
    flex: 1;
    padding: 1rem 1.5rem;
    border-right: 1px solid hsla(0, 0%, 90%, 0.06);
}
.strip-bar > div:last-child {
    border-right: none;
}

/* Crew cards hover effect */
.crew-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.crew-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px hsla(0, 0%, 0%, 0.5), 0 0 20px hsla(80, 25%, 45%, 0.06);
}

/* Italic accent text — WCAG AA compliant on dark backgrounds */
.accent-italic {
    font-style: italic;
    color: var(--wp--preset--color--accent-text);
}

/* Album card vinyl decoration */
.vinyl-decoration {
    position: relative;
    overflow: hidden;
}
.vinyl-decoration::before {
    content: '';
    position: absolute;
    top: 50%;
    right: -40px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 2px solid hsla(80, 25%, 45%, 0.12);
    transform: translateY(-50%);
    pointer-events: none;
}
.vinyl-decoration::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -20px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: 1px solid hsla(80, 25%, 45%, 0.08);
    transform: translateY(-50%);
    pointer-events: none;
}

/* Side stripe accents */
.side-stripe-gold {
    border-left: 3px solid var(--wp--preset--color--harvest-gold);
}
.side-stripe-green {
    border-left: 3px solid var(--wp--preset--color--forest-green);
}
.side-stripe-red {
    border-left: 3px solid var(--wp--preset--color--deep-vermillion);
}

/* Scanline texture for atmosphere */
.has-scanlines::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        hsla(80, 25%, 45%, 0.01) 2px,
        hsla(80, 25%, 45%, 0.01) 4px
    );
    pointer-events: none;
    z-index: 2;
}

/* Fade-in animation */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.animate-fade-in {
    animation: fadeInUp 0.8s ease forwards;
}
.animate-delay-1 { animation-delay: 0.1s; }
.animate-delay-2 { animation-delay: 0.2s; }
.animate-delay-3 { animation-delay: 0.3s; }
.animate-delay-4 { animation-delay: 0.4s; }

/* Facebook event button */
.fb-event-btn .wp-block-button__link {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.15em;
    font-size: 0.8rem;
    padding: 0.6rem 1.5rem;
    background: var(--wp--preset--color--facebook-blue) !important;
    color: var(--wp--preset--color--white) !important;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    box-shadow: 3px 3px 0 hsla(221, 44%, 31%, 0.3);
    border: none;
}
.fb-event-btn .wp-block-button__link:hover {
    background: hsla(221, 40%, 50%, 1) !important;
    transform: translateY(-1px);
    box-shadow: 4px 4px 0 hsla(221, 44%, 31%, 0.4);
}
.fb-event-btn .wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Event notification banner */
.dftg-event-banner {
    position: relative;
    z-index: 100;
}
.dftg-event-banner a {
    transition: opacity 0.2s ease;
}
.dftg-event-banner a:hover {
    opacity: 0.7;
}
.dftg-event-banner a:focus-visible {
    outline: 2px solid var(--wp--preset--color--tobacco-black);
    outline-offset: 2px;
}

/* Text ticker / marquee */
.dftg-ticker-wrap {
    overflow: hidden;
    position: relative;
}
.dftg-ticker-track {
    animation: tickerScroll 30s linear infinite;
    width: max-content;
}
@keyframes tickerScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}
.dftg-ticker-wrap:hover .dftg-ticker-track {
    animation-play-state: paused;
}

/* Events sidebar */
.dftg-events-sidebar .sidebar-event-item {
    transition: background 0.2s ease;
}
.dftg-events-sidebar .sidebar-event-item:hover {
    background: var(--wp--preset--color--gold-tint);
}

/* Single post content styling */
.single-post-content p {
    margin-bottom: 1.5rem;
}
.single-post-content h2,
.single-post-content h3 {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.06em;
    color: var(--wp--preset--color--cream);
    margin-top: 2.5rem;
    font-weight: 500;
    text-transform: uppercase;
}
.single-post-content blockquote {
    border-left: 3px solid var(--wp--preset--color--harvest-gold);
    padding-left: 1.5rem;
    margin: 2rem 0;
    font-style: italic;
    color: var(--wp--preset--color--harvest-gold);
}
.single-post-content a {
    color: var(--wp--preset--color--harvest-gold);
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.2s ease;
}
.single-post-content a:hover {
    color: var(--wp--preset--color--neon-green-bright);
}
.single-post-content a:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}
.single-post-content img {
    border-radius: 0;
}

/* Blog post cards on home.html */
.wp-block-query .wp-block-post-featured-image img {
    border-radius: 0;
}

/* Sidebar latest posts styling */
.dftg-sidebar-latest .wp-block-latest-posts {
    padding-left: 0;
    list-style: none;
}
.dftg-sidebar-latest .wp-block-latest-posts li {
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--wp--preset--color--warm-brown);
}
.dftg-sidebar-latest .wp-block-latest-posts li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.dftg-sidebar-latest .wp-block-latest-posts__post-date {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--wp--preset--color--label-brown);
    display: block;
    margin-top: 0.25rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .hero-ghost-text {
        font-size: clamp(4rem, 22vw, 8rem);
    }
    .strip-bar {
        flex-direction: column;
    }
    .strip-bar > div {
        border-right: none;
        border-bottom: 1px solid hsla(0, 0%, 90%, 0.06);
    }
    .strip-bar > div:last-child {
        border-bottom: none;
    }
    .dftg-event-banner .wp-block-group {
        flex-wrap: wrap;
        gap: 0.25rem;
    }
}

/* =============================================
   Gravity Forms Custom Styling
   ============================================= */

/* Form wrapper */
.gform_wrapper.gravity-theme {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--cream-dim);
}

/* Form labels */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme .gsection_title {
    font-family: var(--wp--preset--font-family--heading);
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    color: var(--wp--preset--color--accent-text);
    text-transform: uppercase;
    font-weight: 400;
}

/* Section breaks */
.gform_wrapper.gravity-theme .gsection {
    border-bottom: 1px solid var(--wp--preset--color--warm-brown);
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
}
.gform_wrapper.gravity-theme .gsection_title {
    font-size: 1.25rem;
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--harvest-gold);
}

/* Sub-labels and descriptions */
.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper.gravity-theme .gf_page_steps,
.gform_wrapper.gravity-theme .ginput_complex label,
.gform_wrapper.gravity-theme .gfield_label_before_complex {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--label-brown);
    text-transform: uppercase;
}

/* Text inputs, textareas, selects */
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="password"],
.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gravity-theme select {
    background: var(--wp--preset--color--tobacco-black);
    border: none;
    border-bottom: 1px solid var(--wp--preset--color--mid-brown);
    color: var(--wp--preset--color--cream);
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.9rem;
    padding: 0.75rem 1rem;
    border-radius: 0;
    transition: border-color 0.2s ease, background-color 0.2s ease;
    width: 100%;
}

.gform_wrapper.gravity-theme input[type="text"]:focus,
.gform_wrapper.gravity-theme input[type="email"]:focus,
.gform_wrapper.gravity-theme input[type="tel"]:focus,
.gform_wrapper.gravity-theme input[type="url"]:focus,
.gform_wrapper.gravity-theme input[type="number"]:focus,
.gform_wrapper.gravity-theme input[type="password"]:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gravity-theme select:focus {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: -2px;
    border-bottom-color: var(--wp--preset--color--harvest-gold);
    background: var(--wp--preset--color--deep-char);
}

.gform_wrapper.gravity-theme textarea {
    min-height: 120px;
    resize: vertical;
}

/* Placeholder text */
.gform_wrapper.gravity-theme input::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder {
    color: var(--wp--preset--color--label-brown);
    font-style: italic;
}

/* Checkboxes and radio buttons */
.gform_wrapper.gravity-theme .gfield_checkbox label,
.gform_wrapper.gravity-theme .gfield_radio label {
    font-family: var(--wp--preset--font-family--heading);
    font-size: 0.8rem;
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--cream-dim);
    cursor: pointer;
}

.gform_wrapper.gravity-theme input[type="checkbox"],
.gform_wrapper.gravity-theme input[type="radio"] {
    accent-color: var(--wp--preset--color--harvest-gold);
}
.gform_wrapper.gravity-theme input[type="checkbox"]:focus-visible,
.gform_wrapper.gravity-theme input[type="radio"]:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}

/* File upload */
.gform_wrapper.gravity-theme .gform_fileupload_multifile .gform_drop_area,
.gform_wrapper.gravity-theme .ginput_container_fileupload {
    border: 1px dashed var(--wp--preset--color--mid-brown);
    padding: 1.5rem;
    text-align: center;
    transition: border-color 0.2s ease;
}
.gform_wrapper.gravity-theme .gform_fileupload_multifile .gform_drop_area:hover {
    border-color: var(--wp--preset--color--harvest-gold);
}

/* Submit button */
.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme input[type="submit"],
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme .gform_previous_button {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.2em;
    font-size: 1rem;
    padding: 0.85rem 2.2rem;
    background: var(--wp--preset--color--harvest-gold);
    color: var(--wp--preset--color--tobacco-black);
    border: none;
    border-radius: 0;
    cursor: pointer;
    box-shadow: 4px 4px 0 var(--wp--preset--color--deep-vermillion);
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
    text-transform: uppercase;
}

.gform_wrapper.gravity-theme .gform_button:hover,
.gform_wrapper.gravity-theme input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_next_button:hover {
    background: var(--wp--preset--color--neon-green-bright);
    color: var(--wp--preset--color--tobacco-black);
    box-shadow: 2px 2px 0 var(--wp--preset--color--deep-vermillion), 0 0 15px hsla(80, 25%, 45%, 0.2);
    transform: translateY(1px);
}

.gform_wrapper.gravity-theme .gform_button:focus-visible,
.gform_wrapper.gravity-theme input[type="submit"]:focus-visible,
.gform_wrapper.gravity-theme .gform_next_button:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

.gform_wrapper.gravity-theme .gform_previous_button {
    background: transparent;
    color: var(--wp--preset--color--cream-dim);
    border: 2px solid var(--wp--preset--color--mid-brown);
    box-shadow: none;
}
.gform_wrapper.gravity-theme .gform_previous_button:hover {
    border-color: var(--wp--preset--color--harvest-gold);
    color: var(--wp--preset--color--cream);
}

/* Footer / button container */
.gform_wrapper.gravity-theme .gform_footer,
.gform_wrapper.gravity-theme .gform_page_footer {
    padding-top: 1.5rem;
    border-top: 1px solid var(--wp--preset--color--warm-brown);
    margin-top: 2rem;
}

/* Validation / error messages */
.gform_wrapper.gravity-theme .gfield_error .gfield_label {
    color: var(--wp--preset--color--deep-vermillion);
}

.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper.gravity-theme .gfield_error select {
    border-bottom-color: var(--wp--preset--color--deep-vermillion);
}

.gform_wrapper.gravity-theme .validation_message,
.gform_wrapper.gravity-theme .gform_validation_errors {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    color: hsla(0, 60%, 55%, 1);
    background: var(--wp--preset--color--vermillion-tint);
    border: 1px solid var(--wp--preset--color--vermillion-tint);
    padding: 0.75rem 1rem;
    border-radius: 0;
}
.gform_wrapper.gravity-theme .gform_validation_errors h2 {
    font-family: var(--wp--preset--font-family--heading);
    color: hsla(0, 60%, 55%, 1);
    letter-spacing: 0.1em;
}

/* Confirmation message */
.gform_confirmation_message {
    font-family: var(--wp--preset--font-family--body);
    font-size: 1.1rem;
    font-style: italic;
    line-height: 1.7;
    color: var(--wp--preset--color--harvest-gold);
    background: var(--wp--preset--color--gold-tint);
    border-left: 3px solid var(--wp--preset--color--harvest-gold);
    padding: 1.5rem 2rem;
}

/* Required field asterisk */
.gform_wrapper.gravity-theme .gfield_required {
    color: hsla(0, 60%, 55%, 1);
}

/* Progress bar (multi-page forms) */
.gform_wrapper.gravity-theme .gf_progressbar {
    background: var(--wp--preset--color--tobacco-black);
    border-radius: 0;
    overflow: hidden;
}
.gform_wrapper.gravity-theme .gf_progressbar_percentage {
    background: var(--wp--preset--color--harvest-gold);
    font-family: var(--wp--preset--font-family--heading);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    padding: 0.4rem 1rem;
    border-radius: 0;
}

/* List field styling */
.gform_wrapper.gravity-theme .gfield_list_header,
.gform_wrapper.gravity-theme .gfield_list_cell {
    border-color: var(--wp--preset--color--warm-brown);
}

/* Consent field */
.gform_wrapper.gravity-theme .ginput_container_consent label {
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.85rem;
    color: var(--wp--preset--color--cream-dim);
    font-style: italic;
}

/* Honeypot / hidden fields */
.gform_wrapper.gravity-theme .gform_validation_container {
    display: none !important;
}

/* Dark variant - for forms inside dark containers */
.gf-dark .gform_wrapper.gravity-theme .gfield_label {
    color: var(--wp--preset--color--accent-text);
}

/* Newsletter form compact styling */
.gf-newsletter .gform_wrapper.gravity-theme .gform_body {
    margin-bottom: 0;
}
.gf-newsletter .gform_wrapper.gravity-theme .gfield {
    margin-bottom: 0.5rem;
}
.gf-newsletter .gform_wrapper.gravity-theme .gform_footer {
    padding-top: 0.75rem;
    border-top: none;
    margin-top: 0.75rem;
}

/* Neon glow effect for footer text — khaki pulse */
@keyframes neonPulseKhaki {
    0%, 100% {
        text-shadow:
            0 0 4px var(--wp--preset--color--harvest-gold),
            0 0 11px var(--wp--preset--color--harvest-gold),
            0 0 19px var(--wp--preset--color--harvest-gold),
            0 0 40px hsla(80, 25%, 45%, 0.3),
            0 0 80px hsla(80, 25%, 45%, 0.15);
    }
    50% {
        text-shadow:
            0 0 2px var(--wp--preset--color--harvest-gold),
            0 0 6px var(--wp--preset--color--harvest-gold),
            0 0 12px hsla(80, 25%, 45%, 0.4),
            0 0 24px hsla(80, 25%, 45%, 0.2),
            0 0 50px hsla(80, 25%, 45%, 0.1);
    }
}
@keyframes neonPulseKhakiDim {
    0%, 100% {
        text-shadow:
            0 0 3px hsla(80, 25%, 45%, 0.5),
            0 0 8px hsla(80, 25%, 45%, 0.25),
            0 0 16px hsla(80, 25%, 45%, 0.12);
    }
    50% {
        text-shadow:
            0 0 2px hsla(80, 25%, 45%, 0.35),
            0 0 5px hsla(80, 25%, 45%, 0.15),
            0 0 10px hsla(80, 25%, 45%, 0.08);
    }
}
.footer-neon {
    animation: neonPulseKhaki 3s ease-in-out infinite;
    color: var(--wp--preset--color--harvest-gold) !important;
}
.footer-neon-dim {
    animation: neonPulseKhakiDim 4s ease-in-out infinite;
    animation-delay: 0.5s;
}
.footer-neon-dim a {
    text-shadow: inherit;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}
.footer-neon-dim a:hover {
    color: var(--wp--preset--color--neon-green-bright) !important;
}
.footer-neon-dim a:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Navigation link styling */
.dftg-nav {
    gap: 0 !important;
}
.dftg-nav .wp-block-navigation__container {
    gap: 0;
}
.dftg-nav a {
    font-family: var(--wp--preset--font-family--heading);
    font-weight: 400;
    letter-spacing: 0.2em;
    padding: 0.5rem 0.9rem;
    transition: color 0.25s ease, background-color 0.25s ease;
    position: relative;
    text-transform: uppercase;
}
.dftg-nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--wp--preset--color--harvest-gold);
    transition: width 0.3s ease, left 0.3s ease;
}
.dftg-nav a:hover {
    color: var(--wp--preset--color--harvest-gold) !important;
}
.dftg-nav a:hover::after {
    width: 60%;
    left: 20%;
}
.dftg-nav a:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}
.dftg-nav .current-menu-item > a,
.dftg-nav .wp-block-navigation-item.current-menu-item > a {
    color: var(--wp--preset--color--harvest-gold) !important;
}
.dftg-nav .current-menu-item > a::after,
.dftg-nav .wp-block-navigation-item.current-menu-item > a::after {
    width: 60%;
    left: 20%;
}

/* Mobile overlay navigation improvements */
.dftg-nav .wp-block-navigation__responsive-container.is-menu-open {
    padding: 2rem;
}
.dftg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
    padding: 0.75rem 0;
    font-size: 1.25rem;
    letter-spacing: 0.25em;
    border-bottom: 1px solid var(--wp--preset--color--warm-brown);
}
.dftg-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child a {
    border-bottom: none;
}

/* Logo subtitle styling */
.logo-subtitle {
    font-family: var(--wp--preset--font-family--body);
    font-size: 0.55rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--wp--preset--color--harvest-gold);
    margin-top: 2px;
    display: block;
}

/* Merch band diagonal stripes */
.merch-band {
    position: relative;
    overflow: hidden;
}
.merch-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 20px,
        hsla(0, 0%, 0%, 0.06) 20px,
        hsla(0, 0%, 0%, 0.06) 22px
    );
    pointer-events: none;
}

/* =============================================
   WooCommerce Product Blocks - DFTG Styling
   ============================================= */

/* Product grid layout */
.dftg-product-grid .wc-block-product-template {
    gap: 1.5rem;
}

/* Product card base */
.dftg-product-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.dftg-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px hsla(0, 0%, 0%, 0.5), 0 0 15px hsla(80, 25%, 45%, 0.06);
}

/* Product images */
.wc-block-components-product-image,
.wp-block-woocommerce-product-image {
    border-radius: 0 !important;
    overflow: hidden;
}
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img {
    border-radius: 0 !important;
    object-fit: cover;
    width: 100%;
    transition: transform 0.4s ease;
}
.dftg-product-card:hover .wc-block-components-product-image img,
.dftg-product-card:hover .wp-block-woocommerce-product-image img {
    transform: scale(1.03);
}

/* Product titles */
.wc-block-components-product-name,
.wp-block-post-title a {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--cream);
    text-decoration: none;
    transition: color 0.2s ease;
}
.wc-block-components-product-name:hover {
    color: var(--wp--preset--color--harvest-gold) !important;
}
.wc-block-components-product-name:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}

/* Product prices */
.wc-block-components-product-price,
.wp-block-woocommerce-product-price {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.06em;
    color: var(--wp--preset--color--forest-green);
}
.wc-block-components-product-price .wc-block-components-product-price__regular {
    color: var(--wp--preset--color--mid-brown);
    text-decoration: line-through;
}
.wc-block-components-product-price ins {
    text-decoration: none;
    color: var(--wp--preset--color--forest-green);
}
.wc-block-components-product-price del {
    color: var(--wp--preset--color--mid-brown);
    opacity: 0.7;
}

/* Sale badge */
.wc-block-components-product-sale-badge,
.wp-block-woocommerce-product-on-sale-badge {
    background: var(--wp--preset--color--deep-vermillion) !important;
    color: var(--wp--preset--color--cream) !important;
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.15em;
    font-size: 0.7rem;
    border-radius: 0 !important;
    padding: 0.25rem 0.75rem;
    border: none !important;
}

/* Star ratings */
.wc-block-components-product-rating .wc-block-components-product-rating__stars,
.star-rating {
    color: var(--wp--preset--color--forest-green);
}
.wc-block-components-product-rating .wc-block-components-product-rating__stars span::before,
.star-rating span::before {
    color: var(--wp--preset--color--forest-green);
}

/* Add to cart button */
.wc-block-components-product-button .wc-block-components-product-button__button,
.wp-block-woocommerce-product-button .wc-block-components-product-button__button,
.wc-block-grid__product .wp-block-button__link,
.add_to_cart_button,
.single_add_to_cart_button {
    font-family: var(--wp--preset--font-family--heading) !important;
    letter-spacing: 0.15em !important;
    font-size: 0.85rem !important;
    background: var(--wp--preset--color--harvest-gold) !important;
    color: var(--wp--preset--color--tobacco-black) !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0.65rem 1.25rem !important;
    box-shadow: 3px 3px 0 var(--wp--preset--color--deep-vermillion);
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease;
    cursor: pointer;
    text-transform: uppercase;
}
.wc-block-components-product-button .wc-block-components-product-button__button:hover,
.wp-block-woocommerce-product-button .wc-block-components-product-button__button:hover,
.add_to_cart_button:hover,
.single_add_to_cart_button:hover {
    background: var(--wp--preset--color--neon-green-bright) !important;
    color: var(--wp--preset--color--tobacco-black) !important;
    box-shadow: 2px 2px 0 var(--wp--preset--color--deep-vermillion), 0 0 15px hsla(80, 25%, 45%, 0.2);
    transform: translateY(1px);
}
.wc-block-components-product-button .wc-block-components-product-button__button:focus-visible,
.add_to_cart_button:focus-visible,
.single_add_to_cart_button:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Loading spinner on add-to-cart */
.wc-block-components-product-button .wc-block-components-product-button__button--loading {
    opacity: 0.7;
}

/* Product category badges in grid */
.wc-block-components-product-tag-list,
.wc-block-components-product-category-list {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.6rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}
.wc-block-components-product-tag-list a,
.wc-block-components-product-category-list a {
    color: var(--wp--preset--color--harvest-gold);
    text-decoration: none;
}
.wc-block-components-product-tag-list a:hover,
.wc-block-components-product-category-list a:hover {
    color: var(--wp--preset--color--neon-green-bright);
}

/* WooCommerce notices */
.wc-block-components-notice-banner,
.woocommerce-message,
.woocommerce-info {
    background: var(--wp--preset--color--warm-brown) !important;
    color: var(--wp--preset--color--cream) !important;
    border-left: 3px solid var(--wp--preset--color--harvest-gold) !important;
    border-radius: 0 !important;
    font-family: var(--wp--preset--font-family--body);
}
.wc-block-components-notice-banner.is-error,
.woocommerce-error {
    border-left-color: hsla(0, 60%, 55%, 1) !important;
}
.wc-block-components-notice-banner.is-success {
    border-left-color: var(--wp--preset--color--harvest-gold) !important;
}

/* Cart and checkout blocks */
.wc-block-cart,
.wc-block-checkout {
    color: var(--wp--preset--color--cream);
}
.wc-block-cart .wc-block-components-product-name,
.wc-block-checkout .wc-block-components-product-name {
    color: var(--wp--preset--color--cream);
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.06em;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
    border-radius: 0 !important;
}
.wc-block-components-quantity-selector input {
    background: var(--wp--preset--color--tobacco-black) !important;
    color: var(--wp--preset--color--cream) !important;
    border: 1px solid var(--wp--preset--color--mid-brown) !important;
    border-radius: 0 !important;
    font-family: var(--wp--preset--font-family--heading);
}
.wc-block-components-quantity-selector button {
    background: var(--wp--preset--color--warm-brown) !important;
    color: var(--wp--preset--color--cream) !important;
    border: 1px solid var(--wp--preset--color--mid-brown) !important;
    border-radius: 0 !important;
}

/* Cart totals and summary */
.wc-block-components-totals-wrapper,
.wc-block-components-order-summary {
    border-color: var(--wp--preset--color--warm-brown) !important;
}
.wc-block-components-totals-item__label {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--cream-dim);
}
.wc-block-components-totals-item__value {
    font-family: var(--wp--preset--font-family--heading);
    color: var(--wp--preset--color--forest-green);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    color: var(--wp--preset--color--cream);
    font-size: 1.25rem;
    letter-spacing: 0.1em;
}

/* Checkout form fields */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox input,
.wc-block-checkout select {
    background: var(--wp--preset--color--tobacco-black) !important;
    border: none !important;
    border-bottom: 1px solid var(--wp--preset--color--mid-brown) !important;
    color: var(--wp--preset--color--cream) !important;
    font-family: var(--wp--preset--font-family--body) !important;
    border-radius: 0 !important;
    padding: 0.75rem 1rem !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-combobox input:focus {
    border-bottom-color: var(--wp--preset--color--harvest-gold) !important;
    outline: 2px solid var(--wp--preset--color--harvest-gold) !important;
    outline-offset: -2px;
    box-shadow: none !important;
}
.wc-block-checkout .wc-block-components-text-input label {
    font-family: var(--wp--preset--font-family--heading) !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.2em !important;
    color: var(--wp--preset--color--accent-text) !important;
    text-transform: uppercase;
}

/* Checkout place-order button */
.wc-block-components-checkout-place-order-button,
.wc-block-cart .wc-block-cart__submit-button {
    font-family: var(--wp--preset--font-family--heading) !important;
    letter-spacing: 0.2em !important;
    font-size: 1rem !important;
    background: var(--wp--preset--color--harvest-gold) !important;
    color: var(--wp--preset--color--tobacco-black) !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: 4px 4px 0 var(--wp--preset--color--deep-vermillion);
    transition: background 0.2s ease, box-shadow 0.2s ease;
    text-transform: uppercase;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart .wc-block-cart__submit-button:hover {
    background: var(--wp--preset--color--neon-green-bright) !important;
    color: var(--wp--preset--color--tobacco-black) !important;
    box-shadow: 2px 2px 0 var(--wp--preset--color--deep-vermillion);
}
.wc-block-components-checkout-place-order-button:focus-visible,
.wc-block-cart .wc-block-cart__submit-button:focus-visible {
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* Mini cart / cart drawer */
.wc-block-mini-cart__drawer {
    background: var(--wp--preset--color--deep-char) !important;
}
.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--cream);
}
.wc-block-mini-cart__badge {
    background: var(--wp--preset--color--deep-vermillion) !important;
    color: var(--wp--preset--color--cream) !important;
    font-family: var(--wp--preset--font-family--heading);
    border-radius: 0 !important;
}

/* Product SKU */
.wc-block-components-product-sku {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.6rem;
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--mid-brown);
    text-transform: uppercase;
}

/* WooCommerce pagination */
.wc-block-product-results-count {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    color: var(--wp--preset--color--mid-brown);
    text-transform: uppercase;
}

/* Product tabs on single product */
.wc-tabs li a,
.woocommerce-tabs .tabs li a {
    font-family: var(--wp--preset--font-family--heading) !important;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--cream-dim) !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.wc-tabs li.active a,
.woocommerce-tabs .tabs li.active a {
    color: var(--wp--preset--color--harvest-gold) !important;
    border-bottom-color: var(--wp--preset--color--harvest-gold) !important;
}

/* Related and upsell products */
.related.products h2,
.upsells.products h2,
.cross-sells h2 {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.1em;
    color: var(--wp--preset--color--cream);
}

/* WooCommerce filter blocks */
.wc-block-attribute-filter,
.wc-block-price-filter,
.wc-block-stock-filter,
.wc-block-rating-filter {
    color: var(--wp--preset--color--cream-dim);
}
.wc-block-attribute-filter .wc-block-components-chip,
.wc-block-active-filters .wc-block-components-chip {
    background: var(--wp--preset--color--warm-brown) !important;
    color: var(--wp--preset--color--cream) !important;
    border-radius: 0 !important;
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.08em;
}
.wc-block-price-filter .wc-block-components-price-slider__range-input-wrapper {
    background: var(--wp--preset--color--warm-brown);
}
.wc-block-price-filter .wc-block-components-price-slider__range-input-progress {
    background: var(--wp--preset--color--harvest-gold) !important;
}

/* Single product page adjustments */
.woocommerce div.product .product_title,
.wp-block-woocommerce-product-details .product_title {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.06em;
    color: var(--wp--preset--color--cream);
}
.woocommerce div.product .price,
.wp-block-woocommerce-product-details .price {
    font-family: var(--wp--preset--font-family--heading);
    color: var(--wp--preset--color--forest-green);
    font-size: 1.5rem;
    letter-spacing: 0.06em;
}
.woocommerce div.product .woocommerce-product-details__short-description {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--cream-dim);
    font-style: italic;
    line-height: 1.7;
}

/* Reviews section */
.woocommerce #reviews .comment-text {
    background: var(--wp--preset--color--warm-brown);
    border: none;
    border-left: 3px solid var(--wp--preset--color--harvest-gold);
    padding: 1.5rem;
    border-radius: 0;
}
.woocommerce #reviews .comment-text .meta {
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--cream-dim);
}
.woocommerce #reviews .comment-text .description p {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--cream-dim);
    font-style: italic;
}

/* WooCommerce breadcrumbs */
.woocommerce-breadcrumb {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 0.65rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--wp--preset--color--mid-brown);
}
.woocommerce-breadcrumb a {
    color: var(--wp--preset--color--harvest-gold);
    text-decoration: none;
}
.woocommerce-breadcrumb a:hover {
    color: var(--wp--preset--color--neon-green-bright);
}
.woocommerce-breadcrumb a:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}

/* =============================================
   Skip to Content Link (Accessibility)
   ============================================= */
.skip-link {
    position: absolute;
    top: -100%;
    left: 0;
    z-index: 9999;
    padding: 0.75rem 1.5rem;
    background: var(--wp--preset--color--harvest-gold);
    color: var(--wp--preset--color--tobacco-black);
    font-family: var(--wp--preset--font-family--heading);
    letter-spacing: 0.15em;
    text-decoration: none;
    font-size: 0.9rem;
    text-transform: uppercase;
    transition: top 0.15s ease;
}
.skip-link:focus {
    top: 0;
    outline: 2px solid var(--wp--preset--color--cream);
    outline-offset: 2px;
}

/* =============================================
   Focus Visible Styles (Global)
   ============================================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}

/* Navigation focus visible */
.wp-block-navigation a:focus-visible {
    outline: 2px solid var(--wp--preset--color--harvest-gold);
    outline-offset: 2px;
}

/* Separator decorative — hide from screen readers */
.wp-block-separator[aria-hidden="true"] {
    display: block;
}

/* =============================================
   Reduced Motion Preferences
   ============================================= */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    .dftg-ticker-track {
        animation: none;
    }
    .footer-neon {
        animation: none;
        text-shadow: none;
    }
    .footer-neon-dim {
        animation: none;
        text-shadow: none;
    }
    .animate-fade-in {
        animation: none;
        opacity: 1;
    }
    .crew-card {
        transition: none;
    }
    .dftg-product-card {
        transition: none;
    }
}

/* =============================================
   High Contrast Mode Support
   ============================================= */
@media (forced-colors: active) {
    .wp-block-button__link {
        border: 1px solid ButtonText;
    }
    .gold-rule,
    .gold-rule-wide {
        background: CanvasText;
    }
    .skip-link {
        background: Highlight;
        color: HighlightText;
    }
}

/* =============================================
   White Style Variation Overrides
   ============================================= */

/* Heading background resets for white style */
.is-style-variation--white .wp-block-heading,
body[class*="is-style-white"] .wp-block-heading {
    background: hsla(0, 0%, 93%, 1);
    border-left-color: hsla(80, 30%, 38%, 1);
}

/* Hero vignette adjustments for white style */
.is-style-variation--white .hero-vignette::after {
    background: radial-gradient(
        ellipse 70% 60% at 50% 45%,
        transparent 0%,
        hsla(0, 0%, 98%, 0.8) 100%
    );
}

/* Noise overlay toned down for white */
.is-style-variation--white .has-noise-overlay::after {
    opacity: 0.015;
    background-image: repeating-conic-gradient(
        hsla(80, 30%, 38%, 1) 0% 25%,
        transparent 0% 50%
    );
}

/* Strip bar borders for white */
.is-style-variation--white .strip-bar {
    border-top-color: hsla(0, 0%, 88%, 1);
}
.is-style-variation--white .strip-bar > div {
    border-right-color: hsla(0, 0%, 90%, 1);
}

/* Card shadow for white style */
.is-style-variation--white .crew-card:hover {
    box-shadow: 0 8px 30px hsla(0, 0%, 0%, 0.08), 0 0 20px hsla(80, 25%, 45%, 0.04);
}
.is-style-variation--white .dftg-product-card:hover {
    box-shadow: 0 8px 30px hsla(0, 0%, 0%, 0.08), 0 0 15px hsla(80, 25%, 45%, 0.04);
}

/* Scanlines toned down for white */
.is-style-variation--white .has-scanlines::before {
    background: repeating-linear-gradient(
        0deg,
        transparent,
        transparent 2px,
        hsla(80, 25%, 45%, 0.008) 2px,
        hsla(80, 25%, 45%, 0.008) 4px
    );
}

/* Neon effects softened for white */
.is-style-variation--white .footer-neon {
    animation: neonPulseWhiteKhaki 3s ease-in-out infinite;
}
.is-style-variation--white .footer-neon-dim {
    animation: neonPulseWhiteKhakiDim 4s ease-in-out infinite;
    animation-delay: 0.5s;
}

@keyframes neonPulseWhiteKhaki {
    0%, 100% {
        text-shadow:
            0 0 4px hsla(80, 30%, 38%, 0.4),
            0 0 11px hsla(80, 30%, 38%, 0.2),
            0 0 19px hsla(80, 30%, 38%, 0.1);
    }
    50% {
        text-shadow:
            0 0 2px hsla(80, 30%, 38%, 0.3),
            0 0 6px hsla(80, 30%, 38%, 0.15),
            0 0 12px hsla(80, 30%, 38%, 0.08);
    }
}
@keyframes neonPulseWhiteKhakiDim {
    0%, 100% {
        text-shadow:
            0 0 3px hsla(80, 30%, 38%, 0.3),
            0 0 8px hsla(80, 30%, 38%, 0.15);
    }
    50% {
        text-shadow:
            0 0 2px hsla(80, 30%, 38%, 0.2),
            0 0 5px hsla(80, 30%, 38%, 0.1);
    }
}

/* Ticker border for white */
.is-style-variation--white .dftg-ticker-wrap {
    border-top-color: hsla(80, 25%, 45%, 0.08) !important;
    border-bottom-color: hsla(80, 25%, 45%, 0.08) !important;
}

/* Merch band on white */
.is-style-variation--white .merch-band::before {
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 20px,
        hsla(0, 0%, 0%, 0.04) 20px,
        hsla(0, 0%, 0%, 0.04) 22px
    );
}

/* Vinyl decoration on white */
.is-style-variation--white .vinyl-decoration::before {
    border-color: hsla(80, 25%, 45%, 0.1);
}
.is-style-variation--white .vinyl-decoration::after {
    border-color: hsla(80, 25%, 45%, 0.06);
}

/* Ghost text for white style */
.is-style-variation--white .hero-ghost-text {
    color: hsla(80, 25%, 45%, 1);
    opacity: 0.02;
}

/* Button offset shadow for white style */
.is-style-variation--white .wp-block-button.btn-ritual .wp-block-button__link {
    box-shadow: 4px 4px 0 hsla(0, 0%, 30%, 0.6);
}
.is-style-variation--white .wp-block-button.btn-ritual .wp-block-button__link:hover {
    box-shadow: 2px 2px 0 hsla(0, 0%, 30%, 0.6), 0 0 15px hsla(80, 25%, 45%, 0.1);
}

/* Outline button on white */
.is-style-variation--white .wp-block-button.btn-outline .wp-block-button__link {
    box-shadow: 3px 3px 0 hsla(0, 0%, 30%, 0.2);
}
.is-style-variation--white .wp-block-button.btn-outline .wp-block-button__link:hover {
    box-shadow: 2px 2px 0 hsla(0, 0%, 30%, 0.2), 0 0 10px hsla(80, 25%, 45%, 0.06);
}

/* Facebook event button on white */
.is-style-variation--white .fb-event-btn .wp-block-button__link {
    box-shadow: 3px 3px 0 hsla(221, 44%, 31%, 0.2);
}

/* Sidebar event item hover for white */
.is-style-variation--white .dftg-events-sidebar .sidebar-event-item:hover {
    background: hsla(80, 25%, 45%, 0.04);
}

/* Single post content links for white */
.is-style-variation--white .single-post-content a {
    color: hsla(80, 30%, 38%, 1);
}
.is-style-variation--white .single-post-content a:hover {
    color: hsla(80, 30%, 30%, 1);
}

/* Sidebar latest posts border for white */
.is-style-variation--white .dftg-sidebar-latest .wp-block-latest-posts li {
    border-bottom-color: hsla(0, 0%, 90%, 1);
}

/* WooCommerce adjustments for white style */
.is-style-variation--white .wc-block-components-product-price {
    color: hsla(80, 30%, 38%, 1);
}
.is-style-variation--white .wc-block-components-product-sale-badge {
    background: hsla(0, 0%, 30%, 1) !important;
    color: hsla(0, 0%, 100%, 1) !important;
}

/* Gravity Forms on white */
.is-style-variation--white .gform_wrapper.gravity-theme input[type="text"],
.is-style-variation--white .gform_wrapper.gravity-theme input[type="email"],
.is-style-variation--white .gform_wrapper.gravity-theme input[type="tel"],
.is-style-variation--white .gform_wrapper.gravity-theme input[type="url"],
.is-style-variation--white .gform_wrapper.gravity-theme input[type="number"],
.is-style-variation--white .gform_wrapper.gravity-theme input[type="password"],
.is-style-variation--white .gform_wrapper.gravity-theme textarea,
.is-style-variation--white .gform_wrapper.gravity-theme select {
    background: hsla(0, 0%, 100%, 1);
    border-bottom-color: hsla(0, 0%, 82%, 1);
    color: hsla(0, 0%, 12%, 1);
}
.is-style-variation--white .gform_wrapper.gravity-theme input:focus,
.is-style-variation--white .gform_wrapper.gravity-theme textarea:focus,
.is-style-variation--white .gform_wrapper.gravity-theme select:focus {
    border-bottom-color: hsla(80, 30%, 38%, 1);
    background: hsla(0, 0%, 98%, 1);
}
.is-style-variation--white .gform_wrapper.gravity-theme input::placeholder,
.is-style-variation--white .gform_wrapper.gravity-theme textarea::placeholder {
    color: hsla(0, 0%, 60%, 1);
}

/* Registration band on white */
.is-style-variation--white .registration-band::before {
    border-color: hsla(0, 0%, 30%, 0.25);
}
.is-style-variation--white .registration-band::after {
    border-color: hsla(0, 0%, 30%, 0.12);
}

/* WooCommerce notices on white */
.is-style-variation--white .wc-block-components-notice-banner,
.is-style-variation--white .woocommerce-message,
.is-style-variation--white .woocommerce-info {
    background: hsla(0, 0%, 96%, 1) !important;
    color: hsla(0, 0%, 12%, 1) !important;
    border-left-color: hsla(80, 30%, 38%, 1) !important;
}

/* Card borders / shadows for white */
.is-style-variation--white .wp-block-group[style*="border-left"] {
    box-shadow: 0 1px 3px hsla(0, 0%, 0%, 0.04);
}