/*
Theme Name: Rhuarc's Pet Supplies
Description: A modern, responsive WordPress theme for Rhuarc's Pet Supplies - an independently owned pet store providing quality products and services.
Version: 1.5.2
Author: Custom Theme
*/

/* stylelint-disable media-feature-name-disallowed-list, media-feature-range-notation -- Phase 9 (D9-02/D9-03): style.css de-grandfathered into the locked @layer order; strict-value/!important/keyframes/order/duplicate-selector cleaned. max-width media queries retained; mobile-first conversion deferred (D-08). See .planning/phases/09-ui-audit-fixes-site-title-clamp-consolidation-1a-contact-bar/09-CONTEXT.md. */

/* ===========================================
   CSS RESET & OVERFLOW PREVENTION
   Targeted approach without cascade-breaking priority flags
   ===========================================
   De-grandfathered into @layer reset (Phase 9, D9-02/D9-03). The
   box-sizing:border-box on *,::before,::after and the body margin/padding
   reset are already owned by css/reset.css @layer reset (Phase 6 D-03) and
   were DELETED here to avoid double-ownership (Anti-Pattern L1). What remains
   are the load-bearing overflow guards (html/body x-overflow + 100vw clamp,
   media max-width, pre/code/table overflow) that reset.css does NOT own —
   wrapped in @layer reset so they sit at the lowest precedence. */

@layer reset {
    /* Root + body horizontal-overflow protection (unique guard — reset.css
       owns box-sizing + margin/padding only, not these overflow clamps). */
    html {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }

    body {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }

    /* Media elements - standard responsive behavior */
    img, video, canvas, svg, audio, iframe, embed, object {
        max-width: 100%;
        height: auto;
    }

    /* Text content overflow handling */
    pre, code {
        max-width: 100%;
        overflow-wrap: break-word;
    }

    /* Table overflow handling */
    table {
        max-width: 100%;
        table-layout: fixed;
    }
}

@layer components {
/* Gallery exception - needs to exceed container width for horizontal scrolling */
.pet-gallery-container {
    overflow: hidden;
    max-width: 1200px;
}

.pet-gallery-track,
.pet-gallery-track *,
.gallery-item {
    max-width: none;
}

.pet-gallery-track {
    width: auto;
    overflow: visible;
}

/* ===========================================
   ACCESSIBILITY: SKIP TO CONTENT LINK
   =========================================== */
.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    z-index: 10000;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 12px 20px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 16px;
    font-weight: 600;
    color: var(--text-on-purple);
    background: var(--primary-color, #5C1F71);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 0 0 8px;
    transition: top 0.3s ease;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
    outline: 3px solid #fff;
    outline-offset: 2px;
}

/* ===========================================
   BREADCRUMBS (global - used by rhuarcs_breadcrumbs())
   =========================================== */

.breadcrumbs {
    margin-bottom: var(--space-4);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.75rem 0;
    font-size: var(--font-size-sm, 0.875rem);
}

.breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-1);
    padding: 0;
    margin: 0;
    list-style: none;
}

.breadcrumbs li {
    display: inline;
}

.breadcrumbs a {
    color: var(--primary-color, #7c3aed);
    text-decoration: none;
    transition: color 0.2s ease;
}

.breadcrumbs a:hover {
    color: var(--secondary-color, #5b21b6);
    text-decoration: underline;
}

.breadcrumbs .breadcrumb-separator {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0 0.25rem;
    color: var(--text-muted, #9ca3af);
}

/* Discounts Section - Enhanced with Vibrant Colors */
.discounts-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 5rem 2rem;
    background: linear-gradient(135deg, rgb(248 249 250 / 90%) 0%, rgb(233 236 239 / 80%) 100%);
    margin-top: var(--space-8);
    overflow: hidden;
}

.discounts-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="discount-grain" width="60" height="60" patternUnits="userSpaceOnUse"><circle cx="15" cy="15" r="0.8" fill="rgba(92, 31, 113, 0.04)"/><circle cx="45" cy="30" r="1.2" fill="rgba(255, 107, 107, 0.03)"/><circle cx="30" cy="50" r="0.6" fill="rgba(78, 205, 196, 0.03)"/></pattern></defs><rect width="100" height="100" fill="url(%23discount-grain)"/></svg>');
    opacity: 0.7;
    animation: discount-float 20s ease-in-out infinite;
    pointer-events: none;
}
}



@keyframes discount-float {
    0%, 100% { transform: translateX(0) translateY(0) scale(1); }
    25% { transform: translateX(-2px) translateY(-3px) scale(1.01); }
    50% { transform: translateX(3px) translateY(-1px) scale(0.99); }
    75% { transform: translateX(-1px) translateY(2px) scale(1.01); }
}

@layer components {
.discounts-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 3rem;
    margin: 0 auto;
    background: linear-gradient(135deg, rgb(255 255 255 / 95%) 0%, rgb(248 249 250 / 90%) 100%);
    border: 1px solid rgb(255 255 255 / 30%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 25px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 50px rgb(92 31 113 / 15%), 0 32px 100px rgb(0 0 0 / 10%);
    backdrop-filter: blur(15px);
    text-align: center;
    overflow: hidden;
}

.discounts-content::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7, #DDA0DD);
    animation: discount-shimmer 4s ease-in-out infinite;
    background-size: 300% 100%;
}
}



@keyframes discount-shimmer {
    0%, 100% { background-position: 0% 0; }
    50% { background-position: 100% 0; }
}

@layer components {
.discounts-content h2 {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--purple-700);
    margin-bottom: var(--space-6);
    text-shadow: 0 2px 4px rgb(92 31 113 / 10%);
}

.discounts-content h2::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    width: 100px;
    height: 3px;
    background: linear-gradient(90deg, #5C1F71, #7B2B85, #9B3FA0);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 2px;
    transform: translateX(-50%);
}

.discounts-content p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--text-secondary);
    margin-bottom: var(--space-6);
}

.discount-list {
    max-width: 500px;
    padding: 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 2rem 0;
    list-style: none;
    text-align: left;
    margin-left: auto;
    margin-right: auto;
}

.discount-list li {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.8rem 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--text-secondary);
    padding-left: var(--space-8);
    border-bottom: 1px solid rgb(92 31 113 / 10%);
}

.discount-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    font-weight: var(--font-bold);
    color: var(--success-color);
}

.discount-list li:last-child {
    border-bottom: none;
}

.sponsored-clubs {
    padding: var(--space-8);
    background: rgb(92 31 113 / 5%);
    border: 2px solid var(--primary-color);
    border-radius: var(--border-radius-md);
    margin-top: var(--space-12);
}

.sponsored-clubs h3 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: var(--space-8);
    text-align: center;
}

.club-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    gap: 1.2rem;
    margin-top: var(--space-4);
}

.club-item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4);
    background: white;
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-sm);
    transition: var(--transition-base);
}

.club-item:hover {
    background: rgb(92 31 113 / 5%);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.club-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 45px;
    height: 45px;
    background: var(--primary-color);
    border-radius: var(--radius-circle);
    flex-shrink: 0;
}

.club-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.3rem;
    color: var(--text-on-purple);
}

.club-name {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-secondary);
    text-align: left;
}

/* Responsive Design for Discounts Section */
@media (max-width: 768px) {
    .discounts-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 3rem 1rem;
    }
    
    .discounts-content {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    .discounts-content h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.8rem;
    }
    
    .club-grid {
        grid-template-columns: 1fr;
        gap: var(--space-4);
    }
    
    .sponsored-clubs {
        padding: var(--space-6);
    }
}

@media (max-width: 480px) {
    .discounts-content {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 1.5rem 1rem;
    }
    
    .discounts-content h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.6rem;
    }
    
    .club-item {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 0.8rem;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.8rem;
    }
    
    .club-logo {
        width: 40px;
        height: 40px;
    }
    
    .club-icon {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.1rem;
    }
    
    .club-name {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.9rem;
    }
}

/* Featured Products Section - Compact Design */
.featured-products-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.5rem 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0.3rem 0;
    background: linear-gradient(180deg, rgb(248 249 250 / 80%) 0%, rgb(233 236 239 / 60%) 100%);
    overflow: hidden;
}

.featured-products-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="products-grain" width="80" height="80" patternUnits="userSpaceOnUse"><circle cx="20" cy="20" r="0.8" fill="rgba(92, 31, 113, 0.03)"/><circle cx="60" cy="40" r="1.2" fill="rgba(123, 43, 133, 0.02)"/><circle cx="40" cy="70" r="0.6" fill="rgba(155, 63, 160, 0.04)"/></pattern></defs><rect width="100" height="100" fill="url(%23products-grain)"/></svg>');
    opacity: 0.6;
    pointer-events: none;
}

.featured-products-header {
    position: relative;
    z-index: 2;
    max-width: 700px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0 1rem;
    text-align: center;
    margin-bottom: var(--space-8);
    margin-left: auto;
    margin-right: auto;
}

.featured-products-header h2 {
    position: relative;
    font-family: var(--font-family-secondary, 'Filson Pro', serif);
    font-size: clamp(1.8rem, 3.5vw, 2.2rem);
    font-weight: 700;
    line-height: 1.3;
    background: linear-gradient(135deg, 
        #5C1F71 0%, 
        #7B2B85 50%, 
        #9B3FA0 100%);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: var(--space-4);
    letter-spacing: -0.02em;
    text-shadow: 0 4px 8px rgb(92 31 113 / 15%);
}

.featured-products-header h2::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, 
        transparent, 
        #9B3FA0, 
        #5C1F71, 
        #9B3FA0, 
        transparent);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 2px;
    transform: translateX(-50%);
    animation: underline-shimmer 2s ease-in-out infinite;
}
}


@keyframes underline-shimmer {
    0%, 100% {
        width: 60px;
        opacity: 0.7;
    }

    50% {
        width: 90px;
        opacity: 1;
    }
}

@layer components {
.featured-products-header p {
    max-width: 500px;
    font-size: clamp(0.9rem, 2vw, 1.1rem);
    font-weight: 500;
    line-height: 1.5;
    color: var(--text-secondary);
    opacity: 0.9;
    margin-bottom: var(--space-2);
    margin-left: auto;
    margin-right: auto;
}

.view-all-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1rem 2rem;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #5C1F71, #7B2B85, #9B3FA0);
    border: none;
    border-radius: var(--radius-full);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(92 31 113 / 30%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none;
    overflow: hidden;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.view-all-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 20%), transparent);
    transition: left 0.6s ease;
}

.view-all-btn:hover::before {
    left: 100%;
}

.view-all-btn:hover {
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #7B2B85, #9B3FA0, #8E44AD);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(92 31 113 / 40%), 0 16px 60px rgb(123 43 133 / 20%);
    transform: translateY(-3px) scale(1.05);
    text-decoration: none;
}

.btn-arrow {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    font-weight: var(--font-bold);
    transition: all 0.3s ease;
}

.view-all-btn:hover .btn-arrow {
    transform: translateX(5px) scale(1.2);
}

.featured-products-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); /* Use auto-fit to prevent overflow */
    place-content: start center;
    gap: var(--space-6);
    width: 100%; /* Ensure full width usage */
    max-width: 1200px;
    min-height: 120px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0 1rem;
    margin: 0 auto;
    justify-items: center;
    overflow: hidden; /* Prevent horizontal overflow */
    box-sizing: border-box; /* Include padding in width calculation */
}

/* Placeholder for empty product slots */
.featured-products-grid .empty-product-slot {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    color: rgb(108 117 125 / 60%);
    background: linear-gradient(135deg, rgb(255 255 255 / 30%) 0%, rgb(248 249 250 / 20%) 100%);
    border: 2px dashed rgb(92 31 113 / 20%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 8px;
    transition: all 0.3s ease;
}

.featured-products-grid .empty-product-slot:hover {
    border-color: rgb(92 31 113 / 40%);
    background: linear-gradient(135deg, rgb(255 255 255 / 40%) 0%, rgb(248 249 250 / 30%) 100%);
}

.empty-product-slot .empty-icon {
    font-size: var(--text-5xl);
    margin-bottom: var(--space-2);
    opacity: 0.4;
}

.empty-product-slot .empty-text {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.4;
}

/* Compact product cards - FIXED: Equal container sizes with better flexibility */
.featured-products-section .product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Better content distribution */
    width: 100%; /* Use full width of grid cell */
    max-width: 200px; /* Max width to prevent stretching too much */
    height: 280px; /* Increased height to accommodate 3-line titles */
    min-height: 280px;
    max-height: 280px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 12px; /* Increased padding */
    margin: 0 auto; /* Center within grid cell */
    background: linear-gradient(135deg, rgb(255 255 255 / 95%) 0%, rgb(248 249 250 / 90%) 100%);
    border: 2px solid rgb(233 213 255 / 40%);
    border-radius: var(--radius-md); /* Slightly larger radius */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 12px rgb(92 31 113 / 12%);
    transition: all 0.3s ease;
    backdrop-filter: blur(15px);
    overflow: hidden;
}

.featured-products-section .product-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7, #DDA0DD);
    opacity: 0;
    transition: opacity 0.3s ease;
    animation: product-shimmer 4s ease-in-out infinite;
    background-size: 200% 100%;
}
}



@keyframes product-shimmer {
    0%, 100% { background-position: 200% 0; }
    50% { background-position: -200% 0; }
}

@layer components {
.featured-products-section .product-card:hover::before {
    opacity: 1;
}

.featured-products-section .product-card:hover {
    z-index: 10;
    background: linear-gradient(135deg, rgb(255 255 255 / 100%) 0%, rgb(248 249 250 / 98%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 20px rgb(92 31 113 / 20%), 0 4px 10px rgb(0 0 0 / 10%);
    transform: translateY(-5px) scale(1.02);
    border-color: rgb(123 43 133 / 30%);
}

/* Hide all elements except thumbnail, title and price */
.featured-products-section .product-card .quick-actions {
    display: none;
}

.featured-products-section .product-card .availability-badge {
    display: none;
}

.featured-products-section .product-card .product-brand {
    display: none;
}

.featured-products-section .product-card .product-description {
    display: none;
}

.featured-products-section .product-card .product-tags {
    display: none;
}

/* Style the product image/thumbnail - FIXED: Better proportioned thumbnails */
.featured-products-section .product-card .product-image {
    position: relative;
    width: 140px; /* Optimized size */
    max-width: 140px;
    height: 140px; /* Optimized size */
    max-height: 140px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0 auto 12px; /* Center the image with proper margin */
    border: 2px solid rgb(255 255 255 / 80%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 10px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 2px 8px rgb(92 31 113 / 8%);
    opacity: 0.95;
    transition: var(--transition-base);
    overflow: hidden;
    aspect-ratio: 1/1;
    flex-shrink: 0; /* Prevent image from shrinking */
}

.featured-products-section .product-card:hover .product-image {
    opacity: 1;
}

.featured-products-section .product-card .product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 8px;
}

.featured-products-section .product-card .product-image .placeholder-image {
    width: 100%;
    height: 100%;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 8px;
}

.featured-products-section .product-card .placeholder-image {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.8rem;
    color: var(--text-secondary);
    background: rgb(92 31 113 / 5%);
}

.featured-products-section .product-card .placeholder-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2rem;
    margin-bottom: var(--space-2);
    opacity: 0.5;
}

/* Style the minimal product info */
.featured-products-section .product-card .product-info {
    display: flex;
    flex: 1; /* Take remaining space */
    flex-direction: column;
    justify-content: space-between; /* Space between title and price */
    align-items: center;
    min-height: 80px; /* Ensure minimum height for content */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 8px;
    text-align: center;
}

.featured-products-section .product-card .product-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    gap: 0.1rem;
}

.featured-products-section .product-card .product-title-section {
    width: 100%;
}

.featured-products-section .product-card .product-title {
    display: -webkit-box;
    width: 100%; /* Ensure full width */
    max-height: 3.6rem; /* Increased to 3 lines to accommodate longer titles */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0 2px; /* Small padding to prevent edge clipping */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0 0 4px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.8rem; /* Slightly larger for better readability */
    line-height: 1.2;
    opacity: 0.95;
    overflow-wrap: break-word; /* Allow text to wrap */
    hyphens: auto; /* Add hyphens for better text breaking */
    overflow: hidden;
    -webkit-line-clamp: 3; /* Allow up to 3 lines */
    -webkit-box-orient: vertical;
    box-sizing: border-box; /* Include padding in width */
}

.featured-products-section .product-card .product-title a {
    font-weight: 500;
    color: var(--primary-color);
    transition: var(--transition-base);
    text-decoration: none;
}

.featured-products-section .product-card .product-title a:hover {
    color: var(--secondary-color);
    text-decoration: none;
    text-shadow: 0 1px 3px rgb(92 31 113 / 10%);
}

.featured-products-section .product-card .product-price {
    display: inline-block;
    max-width: 100%; /* Prevent overflow */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4px 8px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 4px 0 8px; /* Added bottom margin to prevent clipping */
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.95rem;
    font-weight: 700;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #28a745;
    background: rgb(40 167 69 / 8%);
    border-radius: var(--radius-sm);
    opacity: 1;
    overflow-wrap: break-word; /* Handle long prices */
    white-space: nowrap; /* Keep price on one line */
    text-overflow: ellipsis; /* Add ... if needed */
    overflow: hidden; /* Hide overflow */
    box-sizing: border-box;
    flex-shrink: 0; /* Prevent price from being compressed */
}

.featured-products-section .product-card:hover .product-price {
    background: rgb(40 167 69 / 12%);
    opacity: 1;
    transform: scale(1.05);
}

.no-featured-products {
    grid-column: 1 / -1;
    text-align: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 2rem;
    background: white;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.no-featured-products .no-products-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 4rem;
    margin-bottom: var(--space-4);
    opacity: 0.5;
}

.no-featured-products h3 {
    font-size: var(--text-2xl);
    color: var(--primary-color);
    margin-bottom: var(--space-2);
}

.no-featured-products p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--text-secondary);
}

/* Responsive Design - Compact */
@media (max-width: 1200px) {
    .featured-products-grid {
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); /* Better auto-fit for tablets */
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 1.2rem;
        width: 100%;
        min-height: 100px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0 0.75rem;
        overflow: hidden;
        box-sizing: border-box;
    }
    
    .empty-product-slot {
        min-height: 40px;
    }
    
    .empty-product-slot .empty-icon {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .featured-products-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.5rem 1rem;
    }
    
    .featured-products-header {
        margin-bottom: var(--space-6);
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0 0.5rem;
    }
    
    /* Let clamp() handle responsive sizing, just adjust spacing */
    .featured-products-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-bottom: 0.8rem;
    }
    
    .featured-products-header p {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-bottom: 0.3rem;
    }
    
    .featured-products-grid {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); /* Better auto-fit for mobile tablets */
        gap: var(--space-4);
        width: 100%;
        min-height: 80px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0 0.5rem;
        overflow: hidden;
        box-sizing: border-box;
    }
    
    .empty-product-slot {
        min-height: 35px;
    }
    
    .empty-product-slot .empty-icon {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }
    
    .empty-product-slot .empty-text {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.8rem;
    }
    
    .view-all-btn {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.6rem 1.2rem;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.9rem;
    }
    
    .featured-products-section .product-card {
        width: 100%;
        max-width: 180px;

        /* Hug content instead of a fixed 240px box — removes the dead space
           below the price on the front-page featured grid. */
        height: auto;
        min-height: 0;
        max-height: none;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 10px;
    }
    
    .featured-products-section .product-card .product-image {
        width: 120px; /* Better size for tablets */
        max-width: 120px;
        height: 120px;
        max-height: 120px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin: 0 auto 10px;
    }
    
    .featured-products-section .product-card .product-info {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.1rem;
    }
    
    .featured-products-section .product-card .product-header {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 0.05rem;
    }
    
    .featured-products-section .product-card .product-title {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.6rem;
    }
    
    .featured-products-section .product-card .product-price {
        font-size: var(--text-xs); /* Larger price font for tablets */
    }
}

@media (max-width: 480px) {
    .featured-products-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.2rem 1rem;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin: 0.2rem 0;
    }
    
    /* Let clamp() handle responsive sizing, just adjust spacing for very small screens */
    .featured-products-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-bottom: 0.6rem;
    }
    
    .featured-products-header p {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-bottom: 0.2rem;
    }
    
    .featured-products-grid {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); /* Auto-fit for mobile */
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 0.8rem;
        width: 100%;
        min-height: 60px;
        padding: 0;
        overflow: hidden;
        box-sizing: border-box;
    }
    
    .empty-product-slot {
        min-height: 30px;
    }
    
    .empty-product-slot .empty-icon {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.8rem;
    }
    
    .empty-product-slot .empty-text {
        font-size: var(--text-xs);
    }
    
    .featured-products-section .product-card {
        width: 100%;
        max-width: 160px;

        /* Hug content instead of a fixed 220px box — removes the ~81px dead
           space below the price at phone width. */
        height: auto;
        min-height: 0;
        max-height: none;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 8px;
    }
    
    .featured-products-section .product-card .product-image {
        width: 80px; /* Larger images for mobile - still visible */
        max-width: 80px;
        height: 80px; /* Larger images for mobile - still visible */
        max-height: 80px;
    }
    
    .featured-products-section .product-card .product-info {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.08rem;
    }
    
    .featured-products-section .product-card .product-header {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 0.03rem;
    }
    
    .featured-products-section .product-card .product-title {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.55rem;
        line-height: 1.0;
    }
    
    .featured-products-section .product-card .product-price {
        max-width: 100%;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2px 4px; /* Smaller padding on mobile */
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.7rem; /* Larger price font for mobile */
        overflow-wrap: break-word;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .no-featured-products {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 1.5rem 1rem;
    }
    
    .no-featured-products h3 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.2rem;
    }
    
    .no-featured-products p {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.9rem;
    }
}

/* Container class for consistent width constraints */
.container {
    width: 100%;
    max-width: var(--container-max-width);
    padding: 0 var(--container-padding);
    margin: 0 auto;
    box-sizing: border-box;
    overflow-x: hidden;
}

/* CSS Custom Properties for Consistent Theming */
:root {
    --primary-color: #5C1F71;
    --secondary-color: #7B2B85;
    --tertiary-color: #A855B8;
    --accent-color: #9C4A9D;
    --success-color: #28a745;
    --warning-color: #ffc107;
    --danger-color: #dc3545;
    --info-color: #17a2b8;
    --text-primary: #2c2c2c;
    --text-secondary: #666;
    --text-light: #999;
    --background-primary: #fff;
    --background-secondary: #f8f9fa;
    --background-tertiary: #f0f0f5;
    --border-color: #e9ecef;
    --border-radius-sm: 8px;
    --border-radius-md: 12px;
    --border-radius-lg: 15px;
    --border-radius-xl: 20px;
    --border-radius-full: 50px;
    --shadow-sm: 0 2px 10px rgb(0 0 0 / 5%);
    --shadow-md: 0 5px 25px rgb(0 0 0 / 10%);
    --shadow-lg: 0 10px 30px rgb(0 0 0 / 15%);
    --transition-base: all 0.3s ease;
    --transition-fast: all 0.15s ease;
    --transition-slow: all 0.6s ease;
    
    /* ====================================
       COMPREHENSIVE FONT STANDARDIZATION
       ==================================== */
    
    /* Primary Font Stack - Poppins for modern, clean typography */
    --font-family-primary: 'Poppins', -apple-system, blinkmacsystemfont, 'Segoe UI', 'Helvetica Neue', arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
    
    /* Secondary Font Stack - Filson Pro for headings and special elements */
    --font-family-secondary: 'Filson Pro', 'Montserrat', 'Avenir Next', 'Avenir', 'Trebuchet MS', 'Segoe UI', 'Helvetica Neue', arial, sans-serif;
    
    /* Monospace Font Stack - For code and technical content */
    --font-family-mono: 'SF Mono', monaco, 'Cascadia Code', 'Roboto Mono', consolas, 'Courier New', monospace;
    
    /* Serif Font Stack - For decorative elements */
    --font-family-serif: georgia, 'Times New Roman', times, serif;
    
    /* Base font family (used throughout the site) */
    --font-family-base: var(--font-family-primary);
    
    /* Responsive Font Sizes using clamp() for fluid typography */
    --font-size-xs: clamp(0.7rem, 0.8vw, 0.75rem);
    --font-size-sm: clamp(0.8rem, 0.9vw, 0.875rem);
    --font-size-base: clamp(0.95rem, 1vw, 1rem);
    --font-size-lg: clamp(1.05rem, 1.1vw, 1.125rem);
    --font-size-xl: clamp(1.15rem, 1.25vw, 1.25rem);
    --font-size-2xl: clamp(1.4rem, 1.6vw, 1.5rem);
    --font-size-3xl: clamp(1.75rem, 2.2vw, 2rem);
    --font-size-4xl: clamp(2.2rem, 2.8vw, 2.5rem);
    --font-size-5xl: clamp(2.5rem, 3.5vw, 3rem);
    
    /* Font Weights */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    
    /* Line Heights */
    --line-height-tight: 1.25;
    --line-height-snug: 1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.625;
    --line-height-loose: 2;
    
    /* Letter Spacing */
    --letter-spacing-tighter: -0.05em;
    --letter-spacing-tight: -0.025em;
    --letter-spacing-normal: 0em;
    --letter-spacing-wide: 0.025em;
    --letter-spacing-wider: 0.05em;
    --letter-spacing-widest: 0.1em;
    --container-max-width: 1200px;
    --container-padding: 20px;
}
}


/* The aggressive universal reset (*{margin:0;padding:0;box-sizing:border-box})
   that lived here was relocated to css/reset.css @layer reset in Phase 6 (D-03),
   discharging the project-wide CASCADE-LAYER TRAP. The box-sizing-only universal
   block near the top of this file (CSS RESET & OVERFLOW PREVENTION) is a separate
   overflow guard and stays. */

/* ====================================
   UNIVERSAL FONT STANDARDIZATION → split: @layer base (typography metrics)
   + UNLAYERED font-family enforcement (Phase 9, D9-02/D9-03)
   ====================================
   SPLIT RATIONALE (proven by the cold Playwright gate, 09-01 Task 2): the
   element-level font-SIZE / weight / line-height / margin / color defaults are
   safely layered into @layer base (style.css loads after css/base.css, so they
   win by source order — live render preserved). BUT the element font-FAMILY
   enforcement carried a priority flag specifically to force the brand fonts onto
   component descendants (product-card text, etc.) that set their own font-family
   in (partly-unlayered) products.css. Moving that font-family enforcement into
   @layer base and dropping the flag let those component fonts win, shrinking
   product-card / archive / taxonomy heights ~14px+ — a real diff. So the
   font-family enforcement is LEFT UNLAYERED verbatim with its priority flags
   (it is override-grade, not base-grade); Plan 02 relocates it into
   @layer components alongside the class-level enforcement once component owners
   are reconciled. The :root token block above stays UNLAYERED (tokens — D9-03). */

@layer base {
    body {
        position: relative;
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-normal);
        line-height: var(--line-height-normal);
        color: var(--text-secondary);
        background-color: var(--background-primary);
        letter-spacing: var(--letter-spacing-normal);

        /* Enhanced font rendering */
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizelegibility;
        font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
        font-kerning: normal;
        font-variant-ligatures: common-ligatures;
        font-optical-sizing: auto;
    }

    /* Headings — size/weight/line-height/spacing/color metrics (the Filson Pro
       font-family enforcement stays unlayered below). */
    h1, h2, h3, h4, h5, h6 {
        font-weight: var(--font-weight-bold);
        line-height: var(--line-height-tight);
        letter-spacing: var(--letter-spacing-tight);
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-bottom: 0.5em;
        color: var(--text-primary);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-rendering: optimizelegibility;
    }

    h1 {
        font-size: var(--font-size-5xl);
        font-weight: var(--font-weight-bold);
    }

    h2 {
        font-size: var(--font-size-4xl);
        font-weight: var(--font-weight-bold);
    }

    h3 {
        font-size: var(--font-size-3xl);
        font-weight: var(--font-weight-semibold);
    }

    h4 {
        font-size: var(--font-size-2xl);
        font-weight: var(--font-weight-semibold);
    }

    h5 {
        font-size: var(--font-size-xl);
        font-weight: var(--font-weight-medium);
    }

    h6 {
        font-size: var(--font-size-lg);
        font-weight: var(--font-weight-medium);
    }

    /* Paragraph — size/weight/line-height/margin metrics. */
    p {
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-normal);
        line-height: var(--line-height-relaxed);
        margin-bottom: var(--space-4);
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        font-feature-settings: "kern" 1;
        font-kerning: normal;
    }

    /* Links — color/decoration/transition (the font-family: inherit enforcement
       stays unlayered below). */
    a {
        color: var(--primary-color);
        text-decoration: none;
        transition: var(--transition-base);
    }

    a:hover {
        color: var(--secondary-color);
    }

    /* Button element typography — weight/letter-spacing metrics. */
    button,
    input[type="submit"], input[type="button"], input[type="reset"] {
        font-weight: var(--font-weight-semibold);
        letter-spacing: var(--letter-spacing-wide);
    }

    /* Form Elements — size/weight/line-height metrics. */
    input, textarea, select {
        font-size: var(--font-size-base);
        font-weight: var(--font-weight-normal);
        line-height: var(--line-height-normal);
    }

    /* Code Elements — size metric. */
    code, pre, kbd, samp, var {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.9em;
    }

    /* Small Text (element only; .small utility deferred to @layer utilities) */
    small {
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-normal);
    }
}

@layer components {
/* ====================================
   ELEMENT + CLASS FONT-FAMILY ENFORCEMENT — UNLAYERED (override-grade)
   ====================================
   Left UNLAYERED with priority flags verbatim from the pre-Phase-9 file. These
   force the brand font families onto element AND component descendants and MUST
   keep beating the (partly-unlayered) component sheets (products.css etc.) for a
   byte-identical render — proven load-bearing by the 09-01 Task-2 cold gate.
   Plan 02 relocates them into @layer components once the component owners are
   reconciled (D9-03/D9-04). Held verbatim until then. */

/* Universal element font standardisation (was the mixed element+class list). */
h1, h2, h3, h4, h5, h6,
p, span, div, section, article, aside, header, footer, nav, main,
a, button, input, textarea, select, label, legend,
table, th, td, caption,
ul, ol, li, dl, dt, dd,
blockquote, cite, q,
code, pre, kbd, samp, var,
figure, figcaption,
time, mark, small, strong, em, b, i, u, s,
.wp-block-quote, .wp-block-paragraph, .wp-block-heading,
.widget, .widget-title, .widget-content,
.menu, .menu-item, .nav-menu,
.breadcrumbs, .pagination,
.comment, .comment-content, .comment-meta,
.entry-content, .entry-header, .entry-meta, .entry-footer,
.site-header, .site-footer, .site-content, .site-title, .site-description,
.search-form, .search-field, .search-submit {
    font-family: var(--font-family-base);
}

/* Headings font-family enforcement — Filson Pro (Secondary Font). */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--font-family-secondary);
}

/* Heading utility-class metrics (element heading metrics live in @layer base
   above; fonts.css also owns .h1–.h6 — kept verbatim until Plan-02 dedup). */
.h1, .h2, .h3, .h4, .h5, .h6 {
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    letter-spacing: var(--letter-spacing-tight);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin-bottom: 0.5em;
    color: var(--text-primary);
}

.h1 {
    font-size: var(--font-size-5xl);
    font-weight: var(--font-weight-bold);
}

.h2 {
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
}

.h3 {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-semibold);
}

.h4 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-semibold);
}

.h5 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-medium);
}

.h6 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-medium);
}

/* Paragraph font-family enforcement. */
p {
    font-family: var(--font-family-base);
}

/* Link font-family enforcement. */
a {
    font-family: inherit;
}

/* Button/input font-family enforcement (.btn/.button class shapes are deduped
   into button.css in Plan 02; the font-family enforcement stays here). */
button, .button, .btn,
input[type="submit"], input[type="button"], input[type="reset"] {
    font-family: var(--font-family-base);
}

/* Form element font-family enforcement. */
input, textarea, select {
    font-family: var(--font-family-base);
}

/* Code font-family enforcement. */
code, pre, kbd, samp, var {
    font-family: var(--font-family-mono);
}

/* Large Text */
.lead {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-relaxed);
}

/* Small Text utility */
.small {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
}

/* WordPress Specific Elements */
.wp-block-heading h1,
.wp-block-heading h2,
.wp-block-heading h3,
.wp-block-heading h4,
.wp-block-heading h5,
.wp-block-heading h6 {
    font-family: var(--font-family-secondary);
}

.wp-block-paragraph p {
    font-family: var(--font-family-base);
}

/* Navigation Menu Standardization */
.nav-menu, .nav-menu a, .nav-menu li,
.navigation, .navigation a, .navigation li,
.menu, .menu a, .menu li {
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-medium);
}

/* Widget Standardization */
.widget, .widget-title, .widget-content,
.sidebar .widget, .footer-widget {
    font-family: var(--font-family-base);
}

.widget-title {
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-semibold);
}

/* Override Plugin Font Declarations */
.woocommerce *, .woocommerce-page *,
.contact-form *, .contact-form-7 *,
.ninja-forms *, .wpforms *,
.elementor *, .elementor-widget *,
.vc_row *, .vc_column *,
.fusion-builder *, .fusion-element *,
.et_pb_module *, .et_pb_section *,
.beaver-builder *, .fl-module *,
.siteorigin-panels-builder *, .so-panel *,
.themify_builder *, .module *,
.divi-builder *, .et_pb_text *,
.gutenberg *, .wp-block-*,
.yoast *, .rank-math *,
.mailchimp *, .mc4wp-form *,
.jetpack *, .jp-relatedposts *,
.wpcf7 *, .wpcf7-form-control * {
    font-family: var(--font-family-base);
}

/* Force font inheritance for dynamic content */
[class*="wp-"], [class*="widget"], [class*="menu"],
[id*="wp-"], [id*="widget"], [id*="menu"] {
    font-family: inherit;
}
}


/* ====================================
   PRODUCTS PAGE SCROLL-TO-TOP ENFORCEMENT
   ==================================== */

/* Force products page to always start at top */

@layer overrides {
.products-catalog-page {
    /* Disable any smooth scrolling that might interfere */
    scroll-behavior: auto;
}
}


/* Ensure page content starts at viewport top */

@layer overrides {
body.page-template-archive-products {
    /* Disable browser scroll restoration */
    overflow-anchor: none;
}
}

@layer components {
/* Global Logo Background - Appears on all pages */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100vw;
    height: 100vh;

    /* Purple gradient background for cohesive site-wide design */
    background: linear-gradient(135deg, #f3e8ff 0%, #ede9fe 25%, #ddd6fe 50%, #c4b5fd 75%, #a78bfa 100%);
    opacity: 1;
    pointer-events: none;
}

/* @keyframes logoFloat {
    0%, 100% {
        transform: translateY(0px) scale(1);
        opacity: 0.33;
    }
    50% {
        transform: translateY(-20px) scale(1.05);
        opacity: 0.33;
    }
} */

/* Container System */

/* Container styles moved to utilities.css for consistency */

/* Header Styles
   SYNCED SLICE: css/critical.css .site-header (L49) is the source-of-truth
   front-page inline render; this is the canonical SITE-WIDE owner and consumes
   the SAME token values where they overlap (D9-04 / 09-10). Leveled UP to the
   front-page treatment: sticky + token 3-stop gradient + elevation + --space-4
   padding so every ~9 page types render the one single-owner header. */
.site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
    padding: var(--space-4) 0;
    color: var(--text-on-purple);
    background: var(--gradient-purple);
    box-shadow: var(--shadow-md);
}

.header-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
}

.site-logo {
    display: flex;
    align-items: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    gap: 10px;
}

.logo-container {
    display: flex;
    align-items: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    gap: 12px;
}

.logo-icon {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
    border: 2px solid rgb(255 255 255 / 30%);
    border-radius: var(--radius-md);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 
        0 4px 12px rgb(0 0 0 / 15%),
        inset 0 1px 0 rgb(255 255 255 / 80%);
    transition: var(--transition-base);
    overflow: hidden;
}

.logo-icon:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 
        0 6px 20px rgb(0 0 0 / 20%),
        inset 0 1px 0 rgb(255 255 255 / 90%);
    transform: scale(1.05);
}

.logo-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4px;
    transition: var(--transition-base);
}

.logo-icon:hover .logo-image {
    transform: scale(1.05);
}

.logo-design {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

.logo-text {
    display: flex;
    align-items: baseline;
    font-family: var(--font-family-secondary);
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.logo-r {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--primary-color);
    text-shadow: 0 1px 2px rgb(0 0 0 / 10%);
}

.logo-ps {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--secondary-color);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin-left: 1px;
    text-shadow: 0 1px 2px rgb(0 0 0 / 10%);
}

.logo-paws {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.paw {
    position: absolute;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.5rem;
    opacity: 0.3;
    animation: paw-float 4s ease-in-out infinite;
}

.paw-1 {
    top: 8px;
    right: 6px;
    animation-delay: 0s;
    color: var(--tertiary-color);
}

.paw-2 {
    bottom: 8px;
    left: 6px;
    animation-delay: 2s;
    color: var(--info-color);
}
}



@keyframes paw-float {
    0%, 100% {
        opacity: 0.3;
        transform: scale(1) rotate(0deg);
    }

    50% {
        opacity: 0.6;
        transform: scale(1.1) rotate(10deg);
    }
}

@layer components {
.site-title {
    font-family: var(--font-family-secondary);

    /* Single clamp source site-wide — cap synced to critical.css L94
       (var(--text-xl)=1.25rem), completing the 1A single-sourcing
       (quick 260612-1iw / f512f85) per CONS-01 (D9-04 / 09-10). */
    font-size: clamp(1.125rem, 5vw, var(--text-xl));
    font-weight: var(--font-bold);
    color: var(--text-on-purple);
    text-decoration: none;
    letter-spacing: var(--letter-spacing-tight);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
}



/* Hero Section - Enhanced with Vibrant Colors */

/* The front-page hero box-metrics (padding + min-height) were re-folded into
   css/components/hero.css .hero (@layer components) in Phase 6 (D-03), once the
   aggressive *{margin:0;padding:0} reset moved into @layer reset. The redundant
   unlayered .hero-section copy that lived here was deleted: on the front page
   (the only page using .hero-section), critical.css already supplies the
   identical base min-height:600px/padding plus the unlayered responsive
   min-height:350/280px overrides, so the layered .hero base computes the desktop
   value and critical.css's unlayered @media still wins on tablet/mobile. */


@keyframes hero-float {
    0%, 100% { transform: translateX(0) translateY(0) scale(1); }
    33% { transform: translateX(-3px) translateY(-2px) scale(1.01); }
    66% { transform: translateX(2px) translateY(-3px) scale(0.99); }
}

@layer components {
/* Horizontal Layout - Force Two Column Layout */
.hero-layout {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-8);
    max-width: 900px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0 2rem;
    margin: 0 auto;
    text-align: center;
}

/* Main Content - centered single column */
.hero-main-content {
    flex: 1;
    max-width: 100%;
    text-align: center;
    padding-right: 0;
}

/* Right Side - Pet Categories (Takes 40% width) */
.hero-pet-categories {
    display: flex;
    flex: 0 0 40%;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-left: var(--space-8);
    border-left: 1px solid rgb(255 255 255 / 20%);
}

/* Products Hero Variant */
.products-hero .hero-content {
    grid-template-columns: 1fr;
    max-width: 800px;
    text-align: center;
}

.hero-main-content h1 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.2;
    background: linear-gradient(45deg, #FFF, #F8F9FA, #E9ECEF);
    animation: text-shimmer 3s ease-in-out infinite;
    margin-bottom: var(--space-6);
    text-shadow: 0 4px 8px rgb(0 0 0 / 30%);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.hero-description {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    line-height: 1.6;
    opacity: 0.95;
    margin-bottom: var(--space-8);
    text-shadow: 0 1px 2px rgb(0 0 0 / 20%);
}

/* Pet Categories Header */
.pet-categories-header {
    margin-bottom: var(--space-8);
}

.pet-categories-header h3 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2rem;
    margin-bottom: var(--space-2);
    font-weight: 700;
    text-shadow: 0 2px 4px rgb(0 0 0 / 30%);
}

.pet-categories-header p {
    margin: 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    opacity: 0.9;
}

/* Pet Categories Grid - Compact for horizontal layout */
.pet-categories-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
    width: 100%;
    max-width: 350px;
}

.pet-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    min-height: 80px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1rem 0.8rem;
    color: var(--text-on-purple);
    background: rgb(255 255 255 / 15%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
    cursor: pointer;
    text-decoration: none;
}

.pet-card:hover {
    background: rgb(255 255 255 / 25%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(0 0 0 / 20%);
    transform: translateY(-5px) scale(1.05);
}

.pet-icon {
    display: block;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2rem;
    animation: pet-icon-bounce 2s ease-in-out infinite;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin-bottom: 0.3rem;
}

.pet-card:nth-child(1) .pet-icon { animation-delay: 0.1s; }
.pet-card:nth-child(2) .pet-icon { animation-delay: 0.2s; }
.pet-card:nth-child(3) .pet-icon { animation-delay: 0.3s; }
.pet-card:nth-child(4) .pet-icon { animation-delay: 0.4s; }
.pet-card:nth-child(5) .pet-icon { animation-delay: 0.5s; }
}



@keyframes pet-icon-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@layer components {
.pet-card h4 {
    margin: 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.9rem;
    font-weight: 600;
    text-shadow: 0 1px 2px rgb(0 0 0 / 20%);
}

/* Button enhancements */
.btn-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    margin-right: var(--space-2);
}

/* Mobile Sidebar Arrow Close Button - Hidden on Desktop */
.mobile-sidebar-arrow-close {
    display: none;
}

/* Hero Section Divider */
.hero-divider {
    position: relative;
    height: 6px;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgb(92 31 113 / 30%) 20%, 
        rgb(155 63 160 / 60%) 40%, 
        rgb(181 95 191 / 80%) 50%, 
        rgb(208 128 208 / 80%) 60%, 
        rgb(155 63 160 / 60%) 80%, 
        transparent 100%);
    overflow: hidden;
}

.hero-divider::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 40%), transparent);
    animation: divider-shimmer 3s ease-in-out infinite;
}
}



@keyframes divider-shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

@layer components {
/* Hero decoration components consolidated in utilities.css */

/* Hero Stats - Enhanced with Colorful Cards */
.hero-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-8);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 2rem 0;
}

.stat-item {
    position: relative;
    min-width: 140px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1.5rem 1rem;
    background: linear-gradient(135deg, rgb(255 255 255 / 15%) 0%, rgb(255 255 255 / 5%) 100%);
    border: 1px solid rgb(255 255 255 / 20%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 16px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(0 0 0 / 10%), 0 8px 32px rgb(92 31 113 / 20%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.stat-item::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #FF6B6B, #4ECDC4, #45B7D1, #96CEB4, #FFEAA7);
    animation: stat-shimmer 3s ease-in-out infinite;
    background-size: 200% 100%;
}
}



@keyframes stat-shimmer {
    0%, 100% { background-position: 200% 0; }
    50% { background-position: -200% 0; }
}

@layer components {
.stat-item:hover {
    background: linear-gradient(135deg, rgb(255 255 255 / 25%) 0%, rgb(255 255 255 / 10%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(0 0 0 / 15%), 0 16px 60px rgb(92 31 113 / 30%);
    transform: translateY(-5px) scale(1.05);
}

.stat-item:nth-child(1) { --stat-color: #FF6B6B; }
.stat-item:nth-child(2) { --stat-color: #4ECDC4; }
.stat-item:nth-child(3) { --stat-color: #45B7D1; }

.stat-number {
    display: block;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    font-weight: var(--font-bold);
    background: linear-gradient(45deg, #fff, #f8f9ff);
    text-shadow: 0 2px 4px rgb(0 0 0 / 20%);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.stat-label {
    font-size: var(--font-size-sm);
    font-weight: 600;
    opacity: 0.9;
    text-shadow: 0 1px 2px rgb(0 0 0 / 10%);
    margin-top: var(--space-2);
}

/* Product Count & Delivery Notice */
.product-count,
.delivery-notice {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--font-size-lg);
    font-weight: 600;
}

.product-count::before {
    content: "📦";
    font-size: var(--text-2xl);
}

.delivery-notice::before {
    content: "🚚";
    font-size: var(--text-2xl);
}

/* Button System - Consolidated in utilities.css */

.hero-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-6);
}

/* Hero-specific button overrides for purple background */
.hero-section .hero-buttons .btn {
    height: auto;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.625rem 1.25rem;
    font-size: var(--text-sm);
    align-self: center;
}

/* Fix SVG icon height in hero buttons - override CSS reset that uses */
.hero-section .hero-buttons .btn svg.icon,
.hero-section .hero-buttons .btn .icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.hero-section .hero-buttons .btn-primary {
    color: var(--purple-700);
    background: rgb(255 255 255 / 95%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(0 0 0 / 20%);
}

.hero-section .hero-buttons .btn-primary:hover {
    background: #fff;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 6px 20px rgb(0 0 0 / 25%);
    transform: translateY(-2px);
}

.hero-section .hero-buttons .btn-secondary {
    color: var(--text-on-purple);
    background: transparent;
    border: 2px solid rgb(255 255 255 / 80%);
    box-shadow: none;
}

.hero-section .hero-buttons .btn-secondary:hover {
    color: var(--text-on-purple);
    background: rgb(255 255 255 / 15%);
    transform: translateY(-2px);
    border-color: var(--text-on-purple);
}

/* Community Values Section */
.community-values-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 50%, #dee2e6 100%);
}

.community-header {
    text-align: center;
    margin-bottom: var(--space-12);
}

.community-header h2 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--purple-700);
    background: linear-gradient(45deg, #5C1F71, #7B2B85, #9B3FA0);
    margin-bottom: var(--space-4);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
}

.community-header p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--neutral-600);
    opacity: 0.9;
}

.values-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: var(--space-8);
    margin-bottom: var(--space-12);
}

.value-card {
    position: relative;
    padding: var(--space-8);
    background: linear-gradient(135deg, rgb(255 255 255 / 95%) 0%, rgb(248 249 250 / 90%) 100%);
    border: 1px solid rgb(255 255 255 / 50%);
    border-radius: var(--radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 10%);
    transition: all 0.4s ease;
    backdrop-filter: blur(15px);
    overflow: hidden;
}

.value-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #5C1F71, #7B2B85, #9B3FA0);
    animation: value-card-shimmer 3s ease-in-out infinite;
    background-size: 200% 100%;
}
}



@keyframes value-card-shimmer {
    0%, 100% { background-position: 200% 0; }
    50% { background-position: -200% 0; }
}

@layer components {
.value-card:hover {
    background: linear-gradient(135deg, rgb(255 255 255 / 100%) 0%, rgb(248 249 250 / 98%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 48px rgb(92 31 113 / 15%);
    transform: translateY(-8px);
}

.value-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 60px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2rem;
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(92 31 113 / 30%);
    animation: value-icon-pulse 2.5s ease-in-out infinite;
    margin-bottom: var(--space-6);
}

.value-card:nth-child(2) .value-icon { animation-delay: 1.25s; }
}



@keyframes value-icon-pulse {
    0%, 100% {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- bespoke decorative pulse shadow; no byte-exact --shadow-* token; kept literal for zero visual delta (D9-05) */
        box-shadow: 0 4px 20px rgb(92 31 113 / 30%);
        transform: scale(1);
    }

    50% {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- bespoke decorative pulse shadow; no byte-exact --shadow-* token; kept literal for zero visual delta (D9-05) */
        box-shadow: 0 6px 25px rgb(92 31 113 / 40%);
        transform: scale(1.05);
    }
}

@layer components {
.value-card h3 {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--purple-700);
    margin-bottom: var(--space-4);
    letter-spacing: -0.5px;
}

.value-card p {
    line-height: 1.6;
    color: var(--neutral-700);
    margin-bottom: var(--space-4);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.discount-list {
    list-style: none;
    padding: 0;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 1rem 0;
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.discount-list li {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.5rem 0;
    color: var(--neutral-700);
    padding-left: var(--space-6);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.discount-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    font-weight: var(--font-bold);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #28a745;
}

.value-cta {
    margin-top: var(--space-6);
}

.value-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.75rem 1.5rem;
    font-weight: 600;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 25px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(92 31 113 / 30%);
    transition: all 0.3s ease;
    text-decoration: none;
}

.value-link:hover {
    background: linear-gradient(135deg, #7B2B85, #9B3FA0);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 6px 20px rgb(92 31 113 / 40%);
    transform: translateY(-2px);
}

.link-icon, .link-arrow {
    font-size: var(--text-base);
}

/* Sponsored Clubs */
/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.sponsored-clubs {
    text-align: center;
    margin-top: var(--space-12);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.sponsored-clubs h3 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--purple-700);
    margin-bottom: var(--space-2);
}

.sponsored-clubs > p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--neutral-600);
    margin-bottom: var(--space-8);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.club-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-6);
}

.interactive-club {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-6);
    background: linear-gradient(135deg, rgb(255 255 255 / 90%) 0%, rgb(248 249 250 / 80%) 100%);
    border: 1px solid rgb(255 255 255 / 60%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 16px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(92 31 113 / 8%);
    transition: all 0.3s ease;
    cursor: pointer;
    backdrop-filter: blur(10px);
    text-align: left;
}

.interactive-club:hover {
    background: linear-gradient(135deg, rgb(255 255 255 / 100%) 0%, rgb(248 249 250 / 95%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(92 31 113 / 15%);
    transform: translateY(-5px) scale(1.02);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.club-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    margin: 0;
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(92 31 113 / 20%);
    transition: all 0.3s ease;
    flex-shrink: 0;
    overflow: hidden;
}

.club-logo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--radius-circle);
}

.interactive-club:hover .club-logo {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 6px 20px rgb(92 31 113 / 30%);
    transform: rotate(10deg) scale(1.1);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.club-icon {
    font-size: var(--text-2xl);
    color: var(--text-on-purple);
}

.club-name a {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--purple-700);
    transition: color 0.3s ease;
    text-decoration: none;
    text-align: left;
}

.interactive-club:hover .club-name a {
    color: var(--purple-600);
}

/* Force left alignment for all club items */
.sponsored-clubs .club-item,
.sponsored-clubs .interactive-club,
.sponsored-clubs .club-name,
.sponsored-clubs .club-name a {
    text-align: left;
}

/* Mobile-specific left alignment override */
@media (max-width: 768px) {
    .sponsored-clubs {
        text-align: left;
    }
    
    .club-grid {
        text-align: left;
    }
    
    .club-item,
    .interactive-club {
        text-align: left;
        justify-content: flex-start;
    }
    
    .club-name,
    .club-name a {
        text-align: left;
    }
    
    .club-logo {
        margin: 0;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05); load-bearing against partly-unlayered component sheets / reduced-motion guard (proven by 09-01 cold gate); kept for zero visual delta */
        margin-right: 1rem;
    }
}
}


/* Interactive Animation Styles */
@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}



@keyframes slide-in-left {
    from {
        opacity: 0;
        transform: translateX(-50px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}



@keyframes club-click {
    0% { transform: scale(1); }
    50% { transform: scale(0.95); }
    100% { transform: scale(1.05); }
}



@keyframes club-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    75% { transform: translateX(2px); }
}



@keyframes ripple-effect {
    to {
        opacity: 0;
        transform: scale(4);
    }
}

@layer components {
/* Animation Classes */
.animate-in {
    animation: fade-in-up 0.8s ease-out forwards;
}

.club-clicked {
    animation: club-click 0.6s ease-in-out;
}

.club-shake {
    animation: club-shake 0.4s ease-in-out;
}

.value-card-loaded {
    animation: slide-in-left 0.8s ease-out forwards;
}

.community-section-loaded {
    opacity: 1;
}

.ripple {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    background: rgb(255 255 255 / 30%);
    border-radius: var(--radius-circle);
    transform: translate(-50%, -50%);
    animation: ripple-effect 0.6s linear;
    pointer-events: none;
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.value-link {
    position: relative;
    overflow: hidden;
}

/* Enhanced hover effects */
.value-card-hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05); load-bearing against partly-unlayered component sheets / reduced-motion guard (proven by 09-01 cold gate); kept for zero visual delta */
    box-shadow: 0 20px 60px rgb(92 31 113 / 20%);
    transform: translateY(-12px);
}

/* Parallax effect enhancement */
/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.community-values-section {
    will-change: transform;
}
}


/* Reduced motion support */

@media (prefers-reduced-motion: reduce) {
    .animate-in,
    .club-clicked,
    .club-shake,
    .value-card-loaded,
    .ripple {
        /* stylelint-disable-next-line declaration-no-important -- load-bearing against partly-unlayered component sheets / reduced-motion guard (proven by 09-01 cold gate); kept for zero visual delta */
        animation: none !important;
    }
    
    .value-icon {
        /* stylelint-disable-next-line declaration-no-important -- load-bearing against partly-unlayered component sheets / reduced-motion guard (proven by 09-01 cold gate); kept for zero visual delta */
        animation: none !important;
    }
    
    .community-values-section {
        /* stylelint-disable-next-line declaration-no-important -- load-bearing against partly-unlayered component sheets / reduced-motion guard (proven by 09-01 cold gate); kept for zero visual delta */
        transform: none !important;
    }
}

@layer components {
/* Why Choose Us Section */
.why-choose-us-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
    background: linear-gradient(135deg, rgb(92 31 113 / 3%) 0%, rgb(255 255 255 / 98%) 50%, rgb(123 43 133 / 3%) 100%);
    overflow: hidden;
}

.why-choose-us-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="benefits-pattern" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M0 20 L20 0 L40 20 L20 40 Z" fill="none" stroke="rgba(92, 31, 113, 0.04)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23benefits-pattern)"/></svg>');
    opacity: 0.5;
    pointer-events: none;
}

.why-choose-header {
    text-align: center;
    margin-bottom: var(--space-12);
    position: relative;
}

.why-choose-header h2 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--purple-700);
    background: linear-gradient(45deg, #5C1F71, #7B2B85, #9B3FA0);
    margin-bottom: var(--space-4);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.why-choose-header p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--neutral-600);
}

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-8);
}

.benefit-card {
    position: relative;
    padding: var(--space-8);
    background: linear-gradient(135deg, rgb(255 255 255 / 95%) 0%, rgb(248 249 250 / 90%) 100%);
    border: 1px solid rgb(92 31 113 / 10%);
    border-radius: var(--radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 10%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(10px);
    overflow: hidden;
    text-align: center;
}

.benefit-card::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, #5C1F71, #7B2B85, #9B3FA0);
    transform: scaleX(0);
    transition: transform 0.4s ease;
    transform-origin: left;
}

.benefit-card:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 48px rgb(92 31 113 / 20%);
    transform: translateY(-10px);
    border-color: rgb(92 31 113 / 20%);
}

.benefit-card:hover::after {
    transform: scaleX(1);
}

.benefit-icon {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 70px;
    height: 70px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.2rem;
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 6px 24px rgb(92 31 113 / 25%);
    transition: all 0.4s ease;
    margin-bottom: var(--space-6);
}

.benefit-card:hover .benefit-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 35%);
    transform: scale(1.1) rotate(5deg);
}

.benefit-card h3 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--purple-700);
    margin-bottom: var(--space-4);
    letter-spacing: -0.3px;
}

.benefit-card p {
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--neutral-700);
}

/* Responsive adjustments for Why Choose Us */
@media (max-width: 768px) {
    .benefits-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }

    .why-choose-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }

    .benefit-card {
        padding: var(--space-6);
    }

    .benefit-icon {
        width: 60px;
        height: 60px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }
}

/* Customer Testimonials Section */
.customer-testimonials-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
    background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
    overflow: hidden;
}

.customer-testimonials-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="testimonial-pattern" width="50" height="50" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(92, 31, 113, 0.03)"/></pattern></defs><rect width="100" height="100" fill="url(%23testimonial-pattern)"/></svg>');
    opacity: 0.6;
    pointer-events: none;
}

.testimonials-header {
    text-align: center;
    margin-bottom: var(--space-12);
    position: relative;
}

.testimonials-header h2 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--purple-700);
    background: linear-gradient(45deg, #5C1F71, #7B2B85, #9B3FA0);
    margin-bottom: var(--space-4);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.testimonials-header > p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    color: var(--neutral-600);
    margin-bottom: var(--space-6);
}

.google-rating {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-4);
    margin-top: var(--space-4);
}

.google-rating .stars {
    font-size: var(--text-2xl);
    letter-spacing: 0.2rem;
}

.google-rating .rating-text {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--purple-700);
}

.testimonials-carousel-container {
    overflow: hidden;
    margin-bottom: var(--space-8);
    position: relative;
}

.testimonials-track {
    display: flex;
    gap: var(--space-8);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1rem 0;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

.testimonial-card {
    position: relative;
    display: flex;
    flex: 0 0 350px;
    flex-direction: column;
    min-height: 250px;
    padding: var(--space-8);
    background: linear-gradient(135deg, rgb(255 255 255 / 98%) 0%, rgb(248 249 250 / 95%) 100%);
    border: 1px solid rgb(92 31 113 / 10%);
    border-radius: var(--radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 8%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.testimonial-card::before {
    content: '"';
    position: absolute;
    top: var(--space-4);
    left: var(--space-6);
    font-family: Georgia, serif;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 4rem;
    line-height: 1;
    color: rgb(92 31 113 / 8%);
}

.testimonial-card:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 48px rgb(92 31 113 / 15%);
    transform: translateY(-8px);
    border-color: rgb(92 31 113 / 20%);
}

.testimonial-stars {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.1rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #FFB800;
    margin-bottom: var(--space-4);
    letter-spacing: 0.1rem;
}

.testimonial-text {
    position: relative;
    z-index: 1;
    font-size: var(--text-base);
    line-height: 1.7;
    color: var(--neutral-700);
    margin-bottom: var(--space-6);
    flex-grow: 1;
}

.testimonial-author {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    padding-top: var(--space-4);
    border-top: 1px solid rgb(92 31 113 / 10%);
}

.author-name {
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--purple-700);
}

.review-source {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--neutral-600);
}

.testimonials-cta {
    text-align: center;
    margin-top: var(--space-8);
}

.view-all-reviews-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1rem 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    border-radius: var(--radius-full);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(92 31 113 / 30%);
    transition: all 0.3s ease;
    text-decoration: none;
}

.view-all-reviews-btn:hover {
    background: linear-gradient(135deg, #7B2B85, #9B3FA0);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(92 31 113 / 40%);
    transform: translateY(-3px);
}

.view-all-reviews-btn .btn-arrow {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    transition: transform 0.3s ease;
}

.view-all-reviews-btn:hover .btn-arrow {
    transform: translateX(5px);
}

/* Testimonial Controls */
.testimonials-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}

.testimonial-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #5C1F71, #7B2B85);
    border: none;
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(92 31 113 / 25%);
    transition: all 0.3s ease;
    cursor: pointer;
}

.testimonial-btn:hover {
    background: linear-gradient(135deg, #7B2B85, #9B3FA0);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 6px 20px rgb(92 31 113 / 35%);
    transform: scale(1.1);
}

.testimonial-btn:active {
    transform: scale(0.95);
}

.testimonial-btn.pause-play::before {
    content: '⏸';
}

.testimonial-btn.pause-play.playing::before {
    content: '▶';
}

/* Loading States */
.loading-placeholder {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-4);
    min-height: 250px;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgb(92 31 113 / 10%);
    border-top-color: var(--purple-700);
    border-radius: var(--radius-circle);
    animation: spin 1s linear infinite;
}
}



@keyframes spin {
    to { transform: rotate(360deg); }
}

@layer components {
/* Responsive adjustments for testimonials */
@media (max-width: 768px) {
    .testimonial-card {
        flex: 0 0 300px;
        padding: var(--space-6);
    }

    .testimonials-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }

    .google-rating {
        flex-direction: column;
        gap: var(--space-2);
    }

    .testimonial-btn {
        width: 45px;
        height: 45px;
        font-size: var(--text-base);
    }
}

/* Pet Categories - Enhanced with Individual Colors */
.pet-categories {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--space-6);
    margin-top: var(--space-8);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.pet-card {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 2rem 1.5rem;
    background: linear-gradient(135deg, rgb(255 255 255 / 15%) 0%, rgb(255 255 255 / 5%) 100%);
    border: 1px solid rgb(255 255 255 / 20%);
    border-radius: var(--radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 20px rgb(0 0 0 / 10%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    text-align: center;
    backdrop-filter: blur(15px);
    overflow: hidden;
}

.pet-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: var(--pet-gradient, linear-gradient(90deg, #FF6B6B, #4ECDC4));
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.pet-card:hover::before {
    transform: scaleX(1);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.pet-card:hover {
    background: linear-gradient(135deg, rgb(255 255 255 / 25%) 0%, rgb(255 255 255 / 10%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 30px rgb(0 0 0 / 15%), 0 16px 60px rgb(92 31 113 / 20%);
    transform: translateY(-8px) scale(1.05);
}

.pet-card:nth-child(1) { --pet-gradient: linear-gradient(90deg, #FF6B6B, #FF8E53); } /* Dogs - Orange/Red */
.pet-card:nth-child(2) { --pet-gradient: linear-gradient(90deg, #4ECDC4, #44A08D); } /* Cats - Teal */
.pet-card:nth-child(3) { --pet-gradient: linear-gradient(90deg, #45B7D1, #96CEB4); } /* Birds - Blue/Green */
.pet-card:nth-child(4) { --pet-gradient: linear-gradient(90deg, #96CEB4, #FFEAA7); } /* Reptiles - Green/Yellow */
.pet-card:nth-child(5) { --pet-gradient: linear-gradient(90deg, #FFEAA7, #DDA0DD); } /* Small Animals - Yellow/Purple */

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.pet-icon {
    display: block;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    transition: all 0.3s ease;
    margin-bottom: var(--space-3);
    text-shadow: 0 2px 4px rgb(0 0 0 / 20%);
    filter: drop-shadow(0 2px 4px rgb(0 0 0 / 10%));
}

.pet-card:hover .pet-icon {
    transform: scale(1.2) rotate(5deg);
    filter: drop-shadow(0 4px 8px rgb(0 0 0 / 20%));
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.pet-card h4 {
    margin: 0;
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--text-on-purple); /* Override --text-primary for dark hero background */
    text-shadow: 0 1px 2px rgb(0 0 0 / 10%);
}

/* Content Sections - Enhanced Modular Design */
.content-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
}

.section-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: var(--space-12);
}

.section-content {
    position: relative;
    padding: var(--space-12);
    background: rgb(255 255 255 / 95%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: var(--border-radius-xl);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 15%);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.section-content::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;

    /* background: linear-gradient(90deg, var(--primary-color), var(--tertiary-color), var(--info-color)); */
}

.section-content h2 {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-4xl);
    font-weight: var(--font-weight-bold);
    color: var(--primary-color);
    margin-bottom: var(--space-6);
    letter-spacing: var(--letter-spacing-tight);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-shadow: 0 1px 2px rgb(0 0 0 / 5%);
}

@media (max-width: 480px) {
    .logo-icon {
        width: 40px;
        height: 40px;
    }
    
    /* .site-title font-size override removed — the base rule's
       clamp() (single source of truth) governs at every width. */
}

.section-content p {
    font-size: var(--font-size-lg);
    margin-bottom: var(--space-4);
    line-height: 1.7;
}

/* Oscar's Law Section - Enhanced Design */
.oscars-law-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 5rem 0;
    color: var(--text-secondary);
    background: linear-gradient(135deg, rgb(255 255 255 / 95%) 0%, rgb(248 249 250 / 90%) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 12px 40px rgb(92 31 113 / 20%), 0 24px 80px rgb(0 0 0 / 10%);
    backdrop-filter: blur(15px);
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-image: linear-gradient(90deg, #5C1F71, #4ECDC4, #96CEB4, #FFEAA7) 1;
    overflow: hidden;
}

.oscars-law-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--info-color), #20c997);
}

.oscars-content {
    position: relative;
    max-width: 800px;
    padding: var(--space-16);
    margin: 0 auto;
    background: linear-gradient(135deg, rgb(255 255 255 / 98%) 0%, rgb(248 249 250 / 95%) 100%);
    border: 1px solid rgb(255 255 255 / 40%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 25px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 50px rgb(0 0 0 / 10%), 0 32px 100px rgb(92 31 113 / 15%);
    text-align: center;
    backdrop-filter: blur(20px);
    overflow: hidden;
}

.oscars-content::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #5C1F71, #4ECDC4, #96CEB4, #FFEAA7, #DDA0DD);
    animation: oscar-shimmer 5s ease-in-out infinite;
    background-size: 300% 100%;
}
}



@keyframes oscar-shimmer {
    0%, 100% { background-position: 0% 0; }
    50% { background-position: 100% 0; }
}

@layer components {
.oscars-logo {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 120px;
    height: 120px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0 auto 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, #5C1F71 0%, #4ECDC4 50%, #96CEB4 100%);
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 12px 30px rgb(92 31 113 / 30%), 0 24px 60px rgb(78 205 196 / 20%);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.oscars-logo::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 30%), transparent);
    transition: left 0.6s ease;
}

.oscars-logo:hover::before {
    left: 100%;
}

.oscars-logo:hover {
    border: 3px solid rgb(255 255 255 / 80%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 16px 40px rgb(92 31 113 / 40%), 0 32px 80px rgb(78 205 196 / 30%);
    transform: scale(1.05) rotate(3deg);
}

.oscars-content h2 {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-4xl);
    margin-bottom: var(--space-6);
    color: var(--info-color);
    text-shadow: 0 1px 2px rgb(0 0 0 / 5%);
}

.oscars-content p {
    font-size: var(--font-size-lg);
    line-height: 1.6;
    color: var(--text-secondary);
}

/* Emergency Section - Enhanced Design */
.emergency-section {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
    color: var(--text-primary);
    background: rgb(255 255 255 / 95%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 15%);
    backdrop-filter: blur(10px);
    border-top: 4px solid var(--danger-color);
    border-bottom: 4px solid #e74c3c;
    overflow: hidden;
}

.emergency-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--danger-color), #e74c3c);
}

.emergency-content {
    padding: var(--space-12);
    background: rgb(255 255 255 / 95%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: var(--border-radius-xl);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 12px 40px rgb(0 0 0 / 10%);
    text-align: center;
    margin-bottom: var(--space-12);
}

.emergency-icon {
    font-size: var(--text-5xl);
    margin-bottom: var(--space-4);
    background: linear-gradient(135deg, var(--danger-color) 0%, #e74c3c 100%);
    /* stylelint-disable-next-line property-no-vendor-prefix -- -webkit-background-clip is load-bearing for WebKit/Blink gradient-text clipping (paired with background-clip: text); required for the gradient-on-text render */
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.emergency-title {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-3xl);
    margin-bottom: var(--space-4);
    color: var(--danger-color);
    text-shadow: 0 1px 2px rgb(0 0 0 / 5%);
}

.vet-clinics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: var(--space-8);
    margin-top: var(--space-8);
}

.vet-clinic {
    position: relative;
    padding: var(--space-8);
    background: rgb(255 255 255 / 95%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: var(--border-radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 24px rgb(220 53 69 / 15%);
    transition: var(--transition-base);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.vet-clinic::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--danger-color), #e74c3c);
}

.vet-clinic:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 12px 32px rgb(220 53 69 / 20%);
    transform: translateY(-3px);
}

.vet-clinic h4 {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--danger-color);
    margin-bottom: var(--space-4);
}

.vet-clinic p {
    font-size: var(--font-size-sm);
    line-height: 1.5;
    color: var(--text-secondary);
    margin-bottom: var(--space-2);
}

.vet-clinic strong {
    font-weight: 600;
    color: var(--danger-color);
}

/* Footer - Enhanced Design with Design Tokens */
.site-footer {
    position: relative;
    padding: var(--space-12) 0 var(--space-6);
    color: var(--text-on-purple);
    background: var(--purple-900);
    overflow: hidden;
}

.site-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--purple-800) 0%, var(--purple-900) 50%, var(--purple-800) 100%);
    opacity: 0.5;
    pointer-events: none;
}

.site-footer::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--purple-500), var(--purple-300), var(--purple-500));
}

.footer-content {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--space-8);
    margin-bottom: var(--space-8);
}

.footer-section {
    padding: var(--space-6);
    background: rgb(255 255 255 / 8%);
    border: 1px solid rgb(255 255 255 / 12%);
    border-radius: var(--radius-lg);
    transition: var(--transition-base);
    backdrop-filter: blur(10px);
}

.footer-section:hover {
    background: rgb(255 255 255 / 12%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 25px rgb(0 0 0 / 20%);
    transform: translateY(-2px);
}

.footer-section h3 {
    position: relative;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    color: var(--text-on-purple);
    margin-bottom: var(--space-4);
    letter-spacing: var(--tracking-tight);
    padding-bottom: var(--space-3);
}

.footer-section h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--purple-400);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    border-radius: 1px;
}

/* Footer Navigation */
.footer-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-nav li {
    margin-bottom: var(--space-2);
}

.footer-nav a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: rgb(255 255 255 / 85%);
    transition: var(--transition-fast);
    text-decoration: none;
}

.footer-nav a::before {
    content: '';
    width: 4px;
    height: 4px;
    background: var(--purple-400);
    border-radius: var(--radius-circle);
    transition: var(--transition-fast);
}

.footer-nav a:hover {
    color: var(--text-on-purple);
    padding-left: var(--space-2);
}

.footer-nav a:hover::before {
    background: var(--purple-300);
}

/* Footer Contact List */
.footer-contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
    padding: 0;
}

.footer-contact-item::before {
    display: none;
}

.footer-contact-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 32px;
    height: 32px;
    color: var(--purple-300);
    background: rgb(255 255 255 / 10%);
    border-radius: var(--radius-sm);
    flex-shrink: 0;
}

.footer-contact-content {
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
    color: rgb(255 255 255 / 85%);
}

.footer-contact-link {
    color: rgb(255 255 255 / 90%);
    text-decoration: none;
    transition: var(--transition-fast);
}

.footer-contact-link:hover {
    color: var(--text-on-purple);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Footer Social Section */
.footer-social-text {
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
    color: rgb(255 255 255 / 80%);
    margin-bottom: var(--space-4);
}

.footer-social-links {
    display: flex;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.footer-social-link {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    color: var(--text-on-purple);
    background: rgb(255 255 255 / 10%);
    border: 1px solid rgb(255 255 255 / 15%);
    border-radius: var(--radius-full);
    transition: var(--transition-base);
    text-decoration: none;
}

.footer-social-link .icon {
    width: 18px;
    height: 18px;
}

.footer-social-link--instagram:hover {
    background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
    border-color: transparent;
}

.footer-social-link--facebook:hover {
    background: #1877f2;
    border-color: transparent;
}

.footer-social-label {
    display: inline-block;
}

.footer-tagline {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-xs);
    color: rgb(255 255 255 / 70%);
    padding-top: var(--space-3);
    border-top: 1px solid rgb(255 255 255 / 10%);
}

.footer-tagline .icon {
    color: var(--purple-400);
}

/* Footer Bottom */
.footer-bottom {
    position: relative;
    z-index: 2;
    font-size: var(--text-xs);
    border-top: 1px solid rgb(255 255 255 / 12%);
    padding-top: var(--space-6);
    text-align: center;
}

.footer-bottom p {
    margin: var(--space-1) 0;
    color: rgb(255 255 255 / 60%);
}

/* Back to Top Button */
.back-to-top {
    position: fixed;
    right: var(--space-8);
    bottom: var(--space-8);
    z-index: var(--z-fixed);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    color: var(--text-on-purple);
    background: var(--gradient-purple);
    border: none;
    border-radius: var(--radius-circle);
    box-shadow: var(--shadow-purple-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: var(--transition-base);
    cursor: pointer;
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    box-shadow: var(--shadow-purple-lg);
    transform: translateY(-5px);
}

.back-to-top:active {
    transform: translateY(-2px);
}

.back-to-top svg {
    width: 24px;
    height: 24px;
    stroke-width: 2.5px;
}

/* Mobile adjustments */
@media (max-width: 768px) {
    .back-to-top {
        right: var(--space-4);

        /* Clear the phone-only sticky contact bar (bottom 60px, z-200,
           hidden >=768px — matching this block) so the button never sits
           on top of the Directions button. --space-6 (not --space-4) keeps
           a visible 12px breathing gap above the bar. */
        bottom: calc(var(--space-12) + var(--space-6) + env(safe-area-inset-bottom));
        width: 44px;
        height: 44px;
    }

    .back-to-top svg {
        width: 20px;
        height: 20px;
    }
}

/* Error Notification Styles */
.error-notification {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 10000;
    max-width: 400px;
    background: white;
    border-radius: var(--border-radius);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 24px rgb(0 0 0 / 15%);
    opacity: 0;
    transform: translateX(400px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-left: 4px solid #dc3545;
}

.error-notification.visible {
    opacity: 1;
    transform: translateX(0);
}

.error-notification.hiding {
    opacity: 0;
    transform: translateX(400px);
}

.error-notification-content {
    display: flex;
    align-items: flex-start;
    gap: var(--space-4);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 1rem 1.25rem;
}

.error-notification-icon {
    font-size: var(--text-2xl);
    flex-shrink: 0;
}

.error-notification-text {
    flex: 1;
}

.error-notification-text strong {
    display: block;
    font-size: var(--text-base);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #dc3545;
    margin-bottom: var(--space-1);
}

.error-notification-text p {
    margin: 0;
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--neutral-600);
}

.error-notification-close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 24px;
    height: 24px;
    padding: 0;
    font-size: var(--text-2xl);
    color: var(--neutral-600);
    background: none;
    border: none;
    transition: color 0.2s ease;
    cursor: pointer;
    flex-shrink: 0;
}

.error-notification-close:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #dc3545;
}

/* Error Message (inline errors) */
.error-message {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 3rem 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 2rem 0;
    background: linear-gradient(135deg, rgb(220 53 69 / 5%), rgb(220 53 69 / 10%));
    border-radius: var(--border-radius);
    text-align: center;
}

.error-icon {
    font-size: var(--text-5xl);
    margin-bottom: var(--space-4);
    animation: shake 0.5s ease;
}

.error-message h3 {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #dc3545;
    margin-bottom: var(--space-2);
}

.error-message p {
    margin: 0;
    color: var(--neutral-600);
}
}



@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-10px); }
    75% { transform: translateX(10px); }
}

@layer components {
/* Mobile error notification */
@media (max-width: 768px) {
    .error-notification {
        top: 10px;
        right: 10px;
        left: 10px;
        max-width: none;
        transform: translateY(-100px);
    }

    .error-notification.visible {
        transform: translateY(0);
    }

    .error-notification.hiding {
        transform: translateY(-100px);
    }
}

/* Utility Classes */

/* text-center utility available in utilities.css */

/* Margin utilities available in utilities.css */

.mt-3 {
    margin-top: var(--space-6);
}

/* Mobile Container Safety */
.mobile-safe {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: hidden;
}

/* Global Mobile Overflow Prevention */

/* Community Values - Mobile Responsive */
@media (max-width: 768px) {
    .values-grid {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }
    
    .value-card {
        padding: var(--space-6);
    }
    
    .community-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }
    
    .club-grid {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        gap: var(--space-4);
    }
    
    .interactive-club {
        padding: var(--space-4);
    }
}

@media (max-width: 480px) {
    .community-values-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 3rem 0;
    }
    
    .community-header h2 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.8rem;
    }
    
    .community-header p {
        font-size: var(--text-base);
    }
    
    .value-card {
        padding: var(--space-4);
    }
    
    .value-card h3 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.3rem;
    }
    
    .club-grid {
        grid-template-columns: 1fr;
    }
    
    .value-link {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.6rem 1.2rem;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.9rem;
    }
}

/* Mobile text wrapping improvements */
@media (max-width: 768px) {
    pre, code {
        white-space: pre-wrap;
        word-break: break-all;
    }
}

/* Animation Classes */
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: var(--transition-slow);
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Enhanced Responsive Design for Modular Cards */
@media (max-width: 768px) {
    :root {
        --container-padding: 1rem;
    }
    
    /* MOBILE FOOTER: Hide all footer sections, keep only footer-bottom */
    .footer-content .footer-section {
        display: none;
    }
    
    /* Keep footer-content container visible for proper spacing */
    .footer-content {
        display: block;
        margin-bottom: 0;
    }
    
    .footer-bottom {
        display: block;
        border-top: none;
        padding-top: var(--space-6);
        padding-bottom: var(--space-6);
    }
    
    body {
        overflow-x: hidden;
        width: 100%;
        max-width: 100vw;
    }
    
    /* Container styles moved to utilities.css for consistency */
    
    .logo-icon {
        width: 45px;
        height: 45px;
    }
    
    .logo-r {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.2rem;
    }
    
    .logo-ps {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.7rem;
    }
    
    /* .site-title font-size override removed — the base rule's
       clamp() (single source of truth) governs at every width. */

    .hero-content {
        grid-template-columns: 1fr;
        text-align: center;
    }
    
    /* Hero Section Mobile - Stack Vertically */
    .hero-layout {
        flex-direction: column;
        gap: var(--space-8);
        text-align: center;
    }
    
    .hero-main-content {
        max-width: 100%;
        text-align: center;
        padding-right: 0;
    }
    
    .hero-pet-categories {
        flex: none;
        padding-left: 0;
        border-left: none;
        border-top: 1px solid rgb(255 255 255 / 20%);
        padding-top: var(--space-8);
    }
    
    /* Mobile hero: shrink to 24px and render solid white. The base rule clips a
       near-white gradient to the text (transparent fill + shimmer), so `color`
       alone is invisible — neutralise the clip here (background:none, opaque
       -webkit-text-fill-color) and stop the shimmer. Desktop keeps the gradient. */
    .hero-main-content h1 {
        font-size: var(--text-2xl);
        color: var(--text-on-purple);
        background: none;
        -webkit-text-fill-color: var(--text-on-purple);
        animation: none;
    }

    .pet-categories-header h3 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.8rem;
    }
    
    .pet-categories-grid {
        grid-template-columns: repeat(3, 1fr);
        max-width: 100%;
    }
    
    .hero-stats {
        justify-content: space-around;
        gap: var(--space-4);
    }
    
    .section-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
    
    .section-content {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    
    .header-content {
        position: relative;
        justify-content: space-between;
        text-align: left;
    }
    
    /* Site header adjustments — keep sticky on mobile to match the single-owner
       front-page treatment (critical.css does not downgrade to relative at any
       width). z-index synced to the --z-sticky token (D9-04 / 09-10). */
    .site-header {
        z-index: var(--z-sticky);
    }
    
    .pet-categories {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    }
    
    /* .contact-items @768 layout moved to the single source in
       css/components/contact-bar.css (1B flex-wrap). Only the front page renders
       the contact bar, where that component sheet is enqueued. */
    .contact-item {
        padding: var(--space-5);
    }
    
    /* Enhanced card adjustments for mobile */
    .oscars-content {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    .emergency-content {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    .vet-clinics {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }
    
    .vet-clinic {
        padding: var(--space-6);
    }
    
    /* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
    .footer-content {
        grid-template-columns: 1fr;
        gap: var(--space-6);
    }
    
    .footer-section {
        padding: var(--space-5);
    }
    
    /* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
    .footer-bottom {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 1.25rem 0;
    }
}

@media (max-width: 480px) {
    :root {
        --container-padding: 0.75rem;
    }
    
    /* Container styles moved to utilities.css for consistency */
    
    /* Hero Section Small Mobile — 24px (clip neutralised at @768 above). */
    .hero-main-content h1 {
        font-size: var(--text-2xl);
    }
    
    .hero-description {
        font-size: var(--text-base);
    }
    
    .pet-categories-header h3 {
        font-size: var(--text-2xl);
    }
    
    .pet-categories-grid {
        grid-template-columns: repeat(2, 1fr);
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        gap: 0.8rem;
    }
    
    .pet-card {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 1rem 0.8rem;
    }
    
    .pet-icon {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
    }
    
    .hero-stats {
        /* Keep the three stats in one horizontal row at phone width.
           Previously flex-direction:column stacked them vertically. */
        flex-flow: row nowrap;
        gap: var(--space-2);
    }

    .stat-item {
        flex: 1 1 0;

        /* Drop the 140px floor so all three fit a 360px row; share the row
           width equally and compact the padding. */
        min-width: 0;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.75rem 0.4rem;
    }

    .stat-number {
        font-size: var(--text-2xl);
    }

    .stat-label {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.65rem;
        line-height: 1.2;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: center;
    }
    
    .btn {
        width: 100%;
        max-width: 250px;
    }
}

/* Focus Styles for Accessibility — divergent 2px outline removed (CONS-05);
   the canonical base.css :focus-visible ring (3px purple-500) now applies to
   .btn / .nav-menu a / .social-link. base.css :focus-visible is universal and
   covers these selectors for keyboard focus (@layer base wins once the
   unlayered override is gone). */

/* ====================================
   ABOUT & OSCAR'S LAW SIDE-BY-SIDE
   ==================================== */

.about-oscars-wrapper {
    position: relative;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 0;
}

.about-oscars-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
    gap: var(--space-12);
    width: 100%;
}

/* Oscar's Law Section - When inside grid */
.about-oscars-grid .oscars-law-section {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    padding: var(--space-12);
    margin: 0;
    color: var(--text-secondary);
    background: rgb(255 255 255 / 90%);
    border-radius: var(--border-radius-xl);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 15%);
    backdrop-filter: blur(10px);
    border-top: 4px solid var(--info-color);
    border-bottom: 4px solid #20c997;
    overflow: hidden;
}

.about-oscars-grid .oscars-law-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--info-color), #20c997);
}

.about-oscars-grid .oscars-content {
    display: block;
    max-width: 100%;
    height: auto;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    text-align: center;
}

.about-oscars-grid .oscars-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    margin: 0 auto 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2.5rem;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, var(--info-color) 0%, #20c997 100%);
    border: 3px solid rgb(255 255 255 / 80%);
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 24px rgb(23 162 184 / 30%);
}

.about-oscars-grid .oscars-content h2 {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-3xl);
    margin-bottom: var(--space-6);
    color: var(--info-color);
    text-shadow: 0 1px 2px rgb(0 0 0 / 5%);
}

.about-oscars-grid .oscars-content p {
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--text-secondary);
    margin-bottom: var(--space-4);
}

/* About Section - When inside grid */
.about-oscars-grid .content-section {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    padding: var(--space-12);
    margin: 0;
    background: rgb(255 255 255 / 95%);
    border: 1px solid rgb(255 255 255 / 30%);
    border-radius: var(--border-radius-xl);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 32px rgb(92 31 113 / 15%);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.about-oscars-grid .content-section::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary-color), var(--tertiary-color), var(--accent-color));
}

.about-oscars-grid .section-content {
    position: relative;
    display: block;
    height: auto;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;
    overflow: visible;
}

.about-oscars-grid .section-content h2 {
    font-family: var(--font-family-secondary);
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--primary-color);
    margin-bottom: var(--space-6);
    letter-spacing: var(--letter-spacing-tight);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-shadow: 0 1px 2px rgb(0 0 0 / 5%);
}

.about-oscars-grid .section-content p {
    font-size: var(--font-size-base);
    margin-bottom: var(--space-4);
    line-height: 1.7;
}

/* Responsive Design for Side-by-Side Layout */
@media (max-width: 768px) {
    .about-oscars-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
    }
    
    .about-oscars-grid .oscars-law-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    .about-oscars-grid .content-section {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 2rem 1.5rem;
    }
    
    .about-oscars-grid .oscars-logo {
        width: 80px;
        height: 80px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 2rem;
        margin-bottom: var(--space-6);
    }
    
    .about-oscars-grid .oscars-content h2,
    .about-oscars-grid .section-content h2 {
        font-size: var(--font-size-2xl);
    }
}

/* Print Styles */
@media print {
    .site-header,
    .site-footer,
    .hero-section {
        display: none;
    }
    
    body {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 12pt;
        line-height: 1.4;
    }
    
    /* Container styles moved to utilities.css for consistency */
}

/* ====================================
   SECTION DIVIDERS
   ==================================== */

/* General Section Divider Styling */
.section-divider {
    position: relative;
    z-index: 1;
    height: 8px;
    margin: 0;
    overflow: hidden;
}

/* Gallery Dividers - Purple Theme Integration */
.gallery-top-divider {
    background: linear-gradient(90deg, 
        var(--primary-color) 0%, 
        var(--secondary-color) 25%, 
        var(--tertiary-color) 50%, 
        var(--accent-color) 75%, 
        var(--primary-color) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 
        0 2px 8px rgb(92 31 113 / 30%),
        inset 0 1px 0 rgb(255 255 255 / 10%);
}

.gallery-bottom-divider {
    background: linear-gradient(90deg, 
        var(--accent-color) 0%, 
        var(--tertiary-color) 25%, 
        var(--secondary-color) 50%, 
        var(--primary-color) 75%, 
        var(--accent-color) 100%);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 
        0 -2px 8px rgb(92 31 113 / 30%),
        inset 0 -1px 0 rgb(255 255 255 / 10%);
}

/* Animated gradient effect */
.section-divider::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgb(255 255 255 / 40%) 50%, 
        transparent 100%);
    animation: shimmer 3s infinite;
}
}



@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

@layer components {
/* Mobile responsive dividers */
@media (max-width: 768px) {
    .section-divider {
        height: 6px;
    }
    
    /* Fix hero-divider alignment on products page mobile */
    .products-catalog-page .hero-divider {
        position: relative;
        right: 0;
        left: 0;
        display: block;
        width: 100%;
        padding: 0;
        margin: 0;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        margin-top: -1px;
    }
    
    /* Ensure products hero section has no bottom margin on mobile */
    .products-catalog-page .products-hero-compact {
        margin-bottom: 0;
        padding-bottom: 0;
    }
    
    /* Mobile Sidebar Arrow Close Button */
    .mobile-sidebar-arrow-close {
        position: fixed;
        top: 50%;
        left: min(85%, 320px);
        z-index: 99999;
        display: block;
        width: 40px;
        height: 25vh;
        font-size: var(--text-5xl);
        color: var(--text-on-purple);
        background: #5C1F71;
        border: none;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        border-radius: 0 25px 25px 0;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        box-shadow: 2px 0 12px rgb(0 0 0 / 30%);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-50%);
        transition: all 0.3s ease;
        cursor: pointer;
        pointer-events: auto;
    }
    
    /* For screens where sidebar reaches max-width of 320px */
    @media (min-width: 377px) {
        .mobile-sidebar-arrow-close {
            /* left: calc(320px + 10px); */
            margin: var(--space-3);
        }

        .mobile-sidebar-arrow-close:hover {
            /* left: calc(320px + 15px); */
            margin: var(--space-3);

        }
    }
    
    /* Show arrow button only when sidebar is open */
    .products-catalog-page:has(.products-sidebar.sidebar-open) .mobile-sidebar-arrow-close,
    body.sidebar-active .mobile-sidebar-arrow-close {
        opacity: 1;
        visibility: visible;
    }
    
    .mobile-sidebar-arrow-close:hover {
        left: calc(min(85%, 320px) + 5px);
        background: #7A2B8C;
        transform: translateY(-50%) scale(1.05);
    }
    
    .mobile-sidebar-arrow-close .arrow-icon {
        display: inline-block;
        transform: rotate(0deg);
        transition: transform 0.3s ease;
    }
    
    .mobile-sidebar-arrow-close:hover .arrow-icon {
        transform: rotate(15deg);
    }
}

@media (max-width: 480px) {
    .section-divider {
        height: 4px;
    }
}

/* Gallery styles moved to dedicated pet-gallery.css file */

/* Additional duplicate gallery styles removed - using dedicated pet-gallery.css file */

/* ================================
   HOMEPAGE INTERACTIVE FEATURES
   ================================ */

/* Interactive stat styling */
.interactive-stat {
    position: relative;
    color: inherit;
    transition: all 0.3s ease;
    cursor: pointer;

    /* button UA reset — color and font are not inherited by <button> by default */
    font: inherit;
    appearance: none;
}

.interactive-stat:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 8px 25px rgb(92 31 113 / 20%);
    transform: translateY(-3px);
}

.interactive-indicator {
    position: absolute;
    top: 8px;
    right: 8px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.9rem;
    opacity: 0.7;
    animation: pulse 2s infinite;
}
}



@keyframes pulse {
    0%, 100% {
        opacity: 0.7;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.1);
    }
}

@layer components {
/* Interactive contact items — EXTRACTED to css/components/contact-bar.css
   (@layer components, HOVR-02/HOVR-03). The .interactive-contact base (now with
   translateZ(0) + scoped will-change for the Safari WebKit-98538 fix), its purple
   shine ::before, the .interactive-arrow base, and all :hover rules (guarded by
   (hover: hover) and (pointer: fine)) live there. The narrow-viewport
   .interactive-arrow override in the shared Animal-Types @media below
   (right: 10px; font-size: 1rem) stays unlayered and still beats the layered base
   at that width (byte-exact preserved). */

/* Animal Types Popup */
.stat-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    background: rgb(0 0 0 / 60%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(5px);
}

.stat-popup-overlay.active {
    opacity: 1;
    visibility: visible;
}

.stat-popup-content {
    position: relative;
    width: 90%;
    max-width: 500px;
    max-height: 80vh;
    padding: var(--space-8);
    background: linear-gradient(135deg, rgb(255 255 255 / 98%) 0%, rgb(248 249 250 / 95%) 100%);
    border-radius: var(--radius-lg);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 20px 60px rgb(0 0 0 / 30%);
    transform: scale(0.9) translateY(20px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(20px);
    overflow-y: auto;
}

.stat-popup-overlay.active .stat-popup-content {
    transform: scale(1) translateY(0);
}

.stat-popup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 2px solid rgb(92 31 113 / 10%);
}

.stat-popup-header h3 {
    margin: 0;
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--purple-700);
}

.stat-popup-close {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #666;
    background: none;
    border: none;
    border-radius: var(--radius-circle);
    transition: all 0.3s ease;
    cursor: pointer;
}

.stat-popup-close:hover {
    color: var(--purple-700);
    background: rgb(92 31 113 / 10%);
    transform: rotate(90deg);
}

.animal-types-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-3);
}

.animal-type-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 0.75rem 1rem;
    background: linear-gradient(135deg, rgb(92 31 113 / 5%) 0%, rgb(123 43 133 / 3%) 100%);
    border: 1px solid rgb(92 31 113 / 10%);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    overflow: hidden;
}

.animal-type-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgb(92 31 113 / 10%), transparent);
    transition: left 0.6s ease;
}

.animal-type-item:hover::before {
    left: 100%;
}

.animal-type-item:hover {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(92 31 113 / 15%);
    transform: translateY(-2px);
    border-color: rgb(92 31 113 / 20%);
}

.animal-icon {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 1.2rem;
    flex-shrink: 0;
}

.animal-name {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    font-size: 0.95rem;
    font-weight: 600;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #2c3e50;
}

.no-animal-types {
    text-align: center;
    padding: var(--space-8);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #666;
    font-style: italic;
}

/* Prevent scrolling when popup is open */
body.popup-open {
    overflow: hidden;
}

/* No featured products styling */
/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.no-featured-products {
    text-align: center;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    padding: 4rem 2rem;
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #666;
    grid-column: 1 / -1;
}

.no-products-icon {
    font-size: var(--text-5xl);
    margin-bottom: var(--space-4);
    opacity: 0.5;
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.no-featured-products h3 {
    color: var(--purple-700);
    margin-bottom: var(--space-2);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.no-featured-products p {
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    color: #666;
    font-style: italic;
}

/* Mobile responsive */
@media (max-width: 768px) {
    .stat-popup-content {
        width: 95%;
        padding: var(--space-6);
        margin: var(--space-4);
    }
    
    .stat-popup-header h3 {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 1.3rem;
    }
    
    .animal-types-list {
        grid-template-columns: 1fr;
        gap: var(--space-2);
    }
    
    .animal-type-item {
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        padding: 0.6rem 0.8rem;
    }
    
    .interactive-arrow {
        right: 10px;
        font-size: var(--text-base);
    }
    
    .interactive-indicator {
        top: 5px;
        right: 5px;
        /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
        font-size: 0.8rem;
    }
}

/* ================================
   FOOTER CONTACT LINKS
   ================================ */

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.footer-contact-link {
    position: relative;
    display: inline-block;
    color: inherit;
    transition: all 0.3s ease;
    text-decoration: none;
}

.footer-contact-link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #5C1F71, #7B2B85);
    transition: width 0.3s ease;
}

.footer-contact-link:hover::after {
    width: 100%;
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.footer-contact-link:hover {
    color: var(--purple-700);
    transform: translateY(-1px);
    text-shadow: 0 2px 4px rgb(92 31 113 / 10%);
}

/* ==========================================================================
   LEGAL PAGES (Privacy Policy & Terms of Use)
   ========================================================================== */

.legal-hero-section {
    padding: var(--space-12) 0;
    color: var(--text-on-purple);
    background: var(--gradient-purple);
    text-align: center;
}

.legal-hero-section h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, var(--text-4xl));
    margin-bottom: var(--space-4);
}

.legal-hero-section .hero-description {
    max-width: 600px;
    margin: 0 auto;
    font-size: var(--text-lg);
    opacity: 0.9;
}

.legal-content-section {
    padding: var(--space-16) 0;
    background: white;
}

.legal-content {
    max-width: 800px;
    margin: 0 auto;
}

.legal-content .last-updated {
    color: var(--text-secondary);
    margin-bottom: var(--space-8);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--sand-100);
}

.legal-section {
    margin-bottom: var(--space-8);
}

.legal-section h2 {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    color: var(--purple-700);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-2);
    border-bottom: 2px solid var(--purple-100);
}

.legal-section h3 {
    margin: var(--space-4) 0 var(--space-2);
    font-size: var(--text-lg);
    color: var(--text-primary);
}

.legal-section p {
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: var(--space-4);
}

.legal-section ul {
    margin: var(--space-4) 0;
    padding-left: var(--space-6);
}

.legal-section li {
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: var(--space-2);
}

.legal-section .contact-info {
    padding: var(--space-6);
    background: var(--cream-100);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--purple-500);
}

.legal-section .contact-info p {
    margin-bottom: var(--space-2);
}

.legal-section .contact-info a {
    color: var(--purple-700);
    text-decoration: none;
}

.legal-section .contact-info a:hover {
    text-decoration: underline;
}

/* Footer Legal Links */
.footer-legal-links {
    margin: var(--space-2) 0;
}

.footer-legal-links a {
    color: var(--purple-200);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-legal-links a:hover {
    color: var(--text-on-purple);
    text-decoration: underline;
}

/* ==========================================================================
   FAQ DISCOUNT BADGE
   ========================================================================== */

.discount-badge {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 80px;
    height: 80px;
    color: var(--text-on-purple);
    background: linear-gradient(135deg, var(--purple-600), var(--purple-700));
    border-radius: var(--radius-circle);
    /* stylelint-disable-next-line scale-unlimited/declaration-strict-value -- no byte-exact design token for this value (off-scale size / bespoke shadow / decorative color); kept literal for zero visual delta (D9-05) */
    box-shadow: 0 4px 15px rgb(92 31 113 / 30%);
}

.discount-badge .discount-text {
    font-size: var(--text-2xl);
    font-weight: 700;
    line-height: 1;
}

.discount-badge .discount-label {
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.discount-list {
    margin: var(--space-3) 0;
    padding-left: var(--space-5);
}

/* stylelint-disable-next-line no-duplicate-selectors -- context-distinct duplicate retained verbatim; source order is load-bearing (later block overrides earlier), merging would reorder declarations and risk a visual diff — zero-delta dedup deferred */
.discount-list li {
    margin-bottom: var(--space-1);
    color: var(--text-secondary);
}

.faq-content .sponsored-clubs {
    font-size: var(--text-sm);
    color: var(--text-tertiary);
    margin-top: var(--space-4);
    padding-top: var(--space-3);
    border-top: 1px solid var(--sand-100);
}

/* Services page contact label styling */
.service-contact .contact-label {
    margin: var(--space-2) 0 var(--space-1);
    font-size: var(--text-sm);
    color: var(--text-secondary);
}

.service-contact .contact-label:first-child {
    margin-top: 0;
}
}
