/* Holiday Countdown Timer Base Styles */
.hct-container {
    max-width: 800px;
    margin: 20px auto;
    padding: 30px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    text-align: center;
    font-family: 'Arial', sans-serif;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
}

.hct-title h3 {
    margin: 0 0 30px 0;
    font-size: 2.5rem;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}

.hct-timer {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px;
    margin: 20px 0;
}

.hct-item {
    background: rgba(255,255,255,0.9);
    border-radius: 10px;
    padding: 20px;
    min-width: 100px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
}

.hct-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.hct-number {
    font-size: 3rem;
    font-weight: bold;
    color: #333;
    margin-bottom: 10px;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
    font-family: 'Courier New', monospace;
}

.hct-label {
    font-size: 1rem;
    text-transform: uppercase;
    font-weight: 600;
    color: #666;
    letter-spacing: 1px;
}

.hct-expired {
    padding: 40px;
    background: rgba(255,255,255,0.9);
    border-radius: 10px;
    margin: 20px 0;
    display: none;
}

.hct-expired-content h3 {
    font-size: 2.5rem;
    margin-bottom: 15px;
    color: #ff6b35;
}

.hct-error {
    background: #ffebee;
    color: #c62828;
    padding: 15px;
    border-radius: 5px;
    border-left: 4px solid #c62828;
    margin: 20px 0;
}

/* Size Variations */
.hct-size-small .hct-container {
    padding: 20px;
}

.hct-size-small .hct-title h3 {
    font-size: 1.8rem;
}

.hct-size-small .hct-number {
    font-size: 2rem;
}

.hct-size-small .hct-item {
    padding: 15px;
    min-width: 80px;
}

.hct-size-large .hct-container {
    padding: 50px;
}

.hct-size-large .hct-title h3 {
    font-size: 3.5rem;
}

.hct-size-large .hct-number {
    font-size: 4rem;
}

.hct-size-large .hct-item {
    padding: 30px;
    min-width: 140px;
}

/* Style Variations */
.hct-style-classic .hct-item {
    border-radius: 0;
    box-shadow: inset 0 0 0 2px rgba(0,0,0,0.1);
}

.hct-style-minimal .hct-container {
    box-shadow: none;
    background: transparent !important;
}

.hct-style-minimal .hct-item {
    background: transparent;
    box-shadow: none;
    border-bottom: 3px solid;
}

/* Christmas Theme */
.hct-theme-christmas {
    background: linear-gradient(135deg, #c41e3a, #2f5233);
    color: #fff;
}

.hct-theme-christmas::before {
    content: "🎄";
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-christmas .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #c41e3a;
}

.hct-theme-christmas .hct-number {
    color: #c41e3a;
}

.hct-theme-christmas .hct-style-minimal .hct-item {
    border-bottom-color: #c41e3a;
}

/* New Year Theme */
.hct-theme-newyear {
    background: linear-gradient(135deg, #ffd700, #ff6b35);
    color: #fff;
}

.hct-theme-newyear::before {
    content: "🎉";
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-newyear .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #ffd700;
}

.hct-theme-newyear .hct-number {
    color: #ff6b35;
}

.hct-theme-newyear .hct-style-minimal .hct-item {
    border-bottom-color: #ffd700;
}

/* Halloween Theme */
.hct-theme-halloween {
    background: linear-gradient(135deg, #ff6600, #000000);
    color: #ff6600;
}

.hct-theme-halloween::before {
    content: "🎃";
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-halloween .hct-item {
    background: rgba(0,0,0,0.8);
    border: 2px solid #ff6600;
    color: #ff6600;
}

.hct-theme-halloween .hct-number {
    color: #ff6600;
}

.hct-theme-halloween .hct-label {
    color: #ff9933;
}

.hct-theme-halloween .hct-style-minimal .hct-item {
    border-bottom-color: #ff6600;
}

/* Easter Theme */
.hct-theme-easter {
    background: linear-gradient(135deg, #ffb6c1, #98fb98);
    color: #8b4513;
}

.hct-theme-easter::before {
    content: "🐰";
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-easter .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #ffb6c1;
}

.hct-theme-easter .hct-number {
    color: #8b4513;
}

.hct-theme-easter .hct-style-minimal .hct-item {
    border-bottom-color: #ffb6c1;
}

/* Good Friday Theme */
.hct-theme-goodfriday {
    background: linear-gradient(135deg, #800080, #4b0082);
    color: #fff;
}

.hct-theme-goodfriday::before {
    content: "✝️";
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-goodfriday .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #800080;
}

.hct-theme-goodfriday .hct-number {
    color: #800080;
}

.hct-theme-goodfriday .hct-style-minimal .hct-item {
    border-bottom-color: #800080;
}

/* Spring Theme */
.hct-theme-spring {
    background: linear-gradient(135deg, #98fb98, #ffb6c1);
    color: #2e8b57;
}

.hct-theme-spring::before {
    content: "🌸";
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-spring .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #98fb98;
}

.hct-theme-spring .hct-number {
    color: #2e8b57;
}

.hct-theme-spring .hct-style-minimal .hct-item {
    border-bottom-color: #98fb98;
}

/* Summer Theme */
.hct-theme-summer {
    background: linear-gradient(135deg, #ffa500, #ff4500);
    color: #fff;
}

.hct-theme-summer::before {
    content: "☀️";
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-summer .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #ffa500;
}

.hct-theme-summer .hct-number {
    color: #ff4500;
}

.hct-theme-summer .hct-style-minimal .hct-item {
    border-bottom-color: #ffa500;
}

/* Fall/Autumn Theme */
.hct-theme-fall, .hct-theme-autumn {
    background: linear-gradient(135deg, #d2691e, #8b4513);
    color: #fff;
}

.hct-theme-fall::before, .hct-theme-autumn::before {
    content: "🍂";
    position: absolute;
    top: 20px;
    left: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-fall .hct-item, .hct-theme-autumn .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #d2691e;
}

.hct-theme-fall .hct-number, .hct-theme-autumn .hct-number {
    color: #8b4513;
}

.hct-theme-fall .hct-style-minimal .hct-item,
.hct-theme-autumn .hct-style-minimal .hct-item {
    border-bottom-color: #d2691e;
}

/* Winter Theme */
.hct-theme-winter {
    background: linear-gradient(135deg, #4682b4, #b0e0e6);
    color: #191970;
}

.hct-theme-winter::before {
    content: "❄️";
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 2rem;
    z-index: 1;
}

.hct-theme-winter .hct-item {
    background: rgba(255,255,255,0.95);
    border: 2px solid #4682b4;
}

.hct-theme-winter .hct-number {
    color: #191970;
}

.hct-theme-winter .hct-style-minimal .hct-item {
    border-bottom-color: #4682b4;
}

/* Responsive Design */
@media (max-width: 768px) {
    .hct-container {
        padding: 20px;
        margin: 10px;
    }
    
    .hct-title h3 {
        font-size: 2rem;
    }
    
    .hct-timer {
        gap: 15px;
    }
    
    .hct-item {
        min-width: 80px;
        padding: 15px;
    }
    
    .hct-number {
        font-size: 2.5rem;
    }
    
    .hct-label {
        font-size: 0.9rem;
    }
    
    .hct-size-large .hct-title h3 {
        font-size: 2.5rem;
    }
    
    .hct-size-large .hct-number {
        font-size: 3rem;
    }
}

@media (max-width: 480px) {
    .hct-container {
        padding: 15px;
    }
    
    .hct-title h3 {
        font-size: 1.5rem;
        margin-bottom: 20px;
    }
    
    .hct-timer {
        gap: 10px;
    }
    
    .hct-item {
        min-width: 70px;
        padding: 10px;
    }
    
    .hct-number {
        font-size: 2rem;
    }
    
    .hct-label {
        font-size: 0.8rem;
    }
    
    .hct-container::before {
        font-size: 1.5rem;
    }
}

/* Animation for number changes */
.hct-number {
    transition: all 0.3s ease;
}

.hct-number.hct-updating {
    transform: scale(1.1);
    color: #ff6b35;
}

/* Celebration animation */
@keyframes hct-celebrate {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.hct-expired-animation {
    animation: hct-celebrate 0.6s ease-in-out 3;
}

.hct-expired-animation .hct-expired {
    background: linear-gradient(45deg, #ff6b35, #ffd700, #ff6b35) !important;
    background-size: 200% 200% !important;
    animation: hct-gradient-shift 2s ease infinite;
}

@keyframes hct-gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}