/*
Theme Name: Niffty Witchy Supplies
Author: WordPress Telex
Description: A dark, mystical WooCommerce-ready block theme for witchy and pagan supplies. Inspired by the Chaos Sigil Grimoire aesthetic with deep void blacks, tarnished golds, ritual crimsons, and sacred geometry motifs.
Version: 0.1.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: niffty-witchy-supplies
Tags: block-theme, full-site-editing, e-commerce, dark, custom-colors, custom-fonts

Niffty Witchy Supplies — Where Magick Meets the Mundane
*/

/* Scattered stars animation */
@keyframes starPulse {
    0%, 100% { opacity: 0.2; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.5); }
}

@keyframes candleFlicker {
    0%, 100% { opacity: 0.85; }
    25% { opacity: 1; }
    50% { opacity: 0.75; }
    75% { opacity: 0.95; }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes runeGlow {
    0%, 100% { text-shadow: 0 0 4px rgba(184,150,62,0.3); }
    50% { text-shadow: 0 0 12px rgba(184,150,62,0.6), 0 0 24px rgba(184,150,62,0.2); }
}

/* Global overrides */
body {
    background-color: #0a0507 !important;
}

.wp-site-blocks > * + * {
    margin-block-start: 0 !important;
}

.wp-site-blocks > footer {
    margin-block-start: 0;
}

/* Header styles */
.nws-header {
    position: relative;
    z-index: 100;
}

.nws-header::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184,150,62,0.2), transparent);
}

.nws-header .wp-block-navigation a {
    font-family: "Cinzel", serif !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    transition: color 0.3s ease;
}

.nws-header .wp-block-navigation a:hover {
    color: #b8963e !important;
}

/* Hero section */
.nws-hero {
    position: relative;
    overflow: hidden;
}

.nws-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 50% at 20% 30%, rgba(74,25,66,0.4) 0%, transparent 70%),
        radial-gradient(ellipse 40% 60% at 80% 70%, rgba(139,26,26,0.2) 0%, transparent 60%);
    z-index: 1;
    pointer-events: none;
}

.nws-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    opacity: 0.04;
    background-image: repeating-conic-gradient(#e8dcc8 0% 25%, transparent 0% 50%);
    background-size: 3px 3px;
    mix-blend-mode: overlay;
    pointer-events: none;
}

.nws-hero .wp-block-cover__inner-container {
    position: relative;
    z-index: 10;
}

/* Hero kicker line */
.nws-hero-kicker {
    position: relative;
    padding-left: 3rem !important;
}

.nws-hero-kicker::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2rem;
    height: 1px;
    background: #c45e2c;
}

/* Hero title outline effect */
.nws-title-outline {
    color: transparent !important;
    -webkit-text-stroke: 1.5px #b8963e;
    text-stroke: 1.5px #b8963e;
}

/* Primary CTA button */
.nws-btn-primary .wp-block-button__link {
    font-family: "Cinzel", serif !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    background: linear-gradient(135deg, #b8963e 0%, #c45e2c 100%) !important;
    color: #0a0507 !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 1rem 2.2rem !important;
    position: relative;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nws-btn-primary .wp-block-button__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px rgba(184,150,62,0.4), 0 0 40px rgba(184,150,62,0.15);
}

/* Secondary CTA */
.nws-btn-secondary .wp-block-button__link {
    font-family: "Cinzel", serif !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    background: transparent !important;
    color: #b8963e !important;
    border: none !important;
    border-bottom: 1px solid rgba(184,150,62,0.3) !important;
    border-radius: 0 !important;
    padding: 0.5rem 0 0.3rem !important;
    transition: border-color 0.3s ease;
}

.nws-btn-secondary .wp-block-button__link:hover {
    border-bottom-color: #b8963e !important;
}

/* Product cards */
.nws-product-card {
    position: relative;
    border: 1px solid rgba(184,150,62,0.12) !important;
    background: linear-gradient(180deg, rgba(26,14,46,0.4) 0%, rgba(10,5,7,0.8) 100%) !important;
    transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s ease;
    overflow: hidden;
}

.nws-product-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, #b8963e, transparent);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.nws-product-card:hover {
    border-color: rgba(184,150,62,0.35) !important;
    box-shadow: 0 0 30px rgba(184,150,62,0.08), inset 0 0 30px rgba(74,25,66,0.1);
    transform: translateY(-4px);
}

.nws-product-card:hover::before {
    opacity: 1;
}

.nws-product-card img {
    transition: transform 0.6s ease;
}

.nws-product-card:hover img {
    transform: scale(1.05);
}

/* Category cards */
.nws-category-card {
    position: relative;
    border: 1px solid rgba(184,150,62,0.08) !important;
    background: rgba(26,14,46,0.2) !important;
    transition: all 0.4s ease;
    text-align: center;
}

.nws-category-card:hover {
    border-color: rgba(139,26,26,0.4) !important;
    background: rgba(26,14,46,0.4) !important;
    box-shadow: 0 0 40px rgba(139,26,26,0.1);
}

/* Section divider ornament */
.nws-divider {
    position: relative;
    text-align: center;
}

.nws-divider::before,
.nws-divider::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 30%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184,150,62,0.25));
}

.nws-divider::before {
    left: 5%;
}

.nws-divider::after {
    right: 5%;
    background: linear-gradient(270deg, transparent, rgba(184,150,62,0.25));
}

/* Testimonial grimoire cards */
.nws-grimoire-card {
    border: 1px solid rgba(184,150,62,0.1) !important;
    background: linear-gradient(135deg, rgba(26,14,46,0.3) 0%, rgba(10,5,7,0.6) 100%) !important;
    position: relative;
}

.nws-grimoire-card::after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 20%;
    right: 20%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184,150,62,0.3), transparent);
}

/* Coven signup section */
.nws-coven-section {
    position: relative;
    overflow: hidden;
}

.nws-coven-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(74,25,66,0.3) 0%, transparent 70%);
    pointer-events: none;
}

/* Rune strip */
.nws-rune-strip {
    animation: runeGlow 4s ease-in-out infinite;
}

/* Corner ornaments for sections */
.nws-corner-ornament {
    position: relative;
}

.nws-corner-ornament::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 60px;
    height: 60px;
    border-top: 1px solid rgba(184,150,62,0.12);
    border-left: 1px solid rgba(184,150,62,0.12);
    pointer-events: none;
}

.nws-corner-ornament::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    width: 60px;
    height: 60px;
    border-bottom: 1px solid rgba(184,150,62,0.12);
    border-right: 1px solid rgba(184,150,62,0.12);
    pointer-events: none;
}

/* Equal cards layout */
.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;
}

/* Moon phase decorative dots */
.nws-moon-phases {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    justify-content: center;
}

/* Footer styles */
.nws-footer {
    position: relative;
}

.nws-footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(184,150,62,0.2), transparent);
}

.nws-footer a {
    transition: color 0.3s ease;
}

.nws-footer a:hover {
    color: #b8963e !important;
}

/* Scroll animation classes */
.nws-fade-in {
    animation: fadeInUp 0.8s ease forwards;
}

.nws-fade-in-delay-1 {
    animation: fadeInUp 0.8s ease 0.15s forwards;
    opacity: 0;
}

.nws-fade-in-delay-2 {
    animation: fadeInUp 0.8s ease 0.3s forwards;
    opacity: 0;
}

.nws-fade-in-delay-3 {
    animation: fadeInUp 0.8s ease 0.45s forwards;
    opacity: 0;
}

/* Star pulse for decorative elements */
.nws-star-pulse {
    animation: starPulse 3s ease-in-out infinite;
}

.nws-star-pulse:nth-child(2) { animation-delay: 0.5s; }
.nws-star-pulse:nth-child(3) { animation-delay: 1s; }
.nws-star-pulse:nth-child(4) { animation-delay: 1.5s; }

/* Candle flicker for glowing elements */
.nws-candle-glow {
    animation: candleFlicker 2s ease-in-out infinite;
}

/* WooCommerce integration styles */
.wc-block-grid__product {
    border: 1px solid rgba(184,150,62,0.1) !important;
    background: linear-gradient(180deg, rgba(26,14,46,0.3) 0%, rgba(10,5,7,0.6) 100%) !important;
    transition: all 0.4s ease;
    padding: 1.5rem;
}

.wc-block-grid__product:hover {
    border-color: rgba(184,150,62,0.3) !important;
    transform: translateY(-3px);
    box-shadow: 0 0 30px rgba(184,150,62,0.08);
}

.wc-block-grid__product .wc-block-grid__product-title {
    font-family: "Cinzel", serif !important;
    color: #e8dcc8 !important;
}

.wc-block-grid__product .wc-block-grid__product-price {
    color: #b8963e !important;
    font-family: "Cinzel", serif !important;
}

.wc-block-grid__product .wp-block-button__link {
    background: linear-gradient(135deg, #b8963e 0%, #c45e2c 100%) !important;
    color: #0a0507 !important;
    font-family: "Cinzel", serif !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    border-radius: 0 !important;
}