/* Site Counter Mechanical Flip Clock Styles */
.site-counter-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 20px auto;
    font-family: 'Arial', monospace;
    max-width: 100%;
    overflow-x: auto;
}

.counter-display {
    display: flex;
    padding: 20px;
    border-radius: 10px;
    background: none;
    box-shadow: none;
    max-width: 100%;
    overflow-x: auto;
    min-width: fit-content;
}

.counter-digits {
    display: flex;
    gap: 5px;
    flex-wrap: nowrap;
    min-width: fit-content;
}

/* Mechanical Flip Clock Styles */
.number {
    position: relative;
    float: left;
    margin-right: 5px;
    font-size: 5em;
    width: 1em;
    height: 1.5em;
}

.number span {
    position: absolute;
    display: block;
    font-weight: bold;
    text-align: center;
    
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    
    color: #111;
    
    width: 1em;
    height: 1.5em;
    perspective: 7.14em;
}

.number span:before {
    display: block;
    height: 0.75em;
    overflow: hidden;
    
    line-height: 1.52em;
    
    border-bottom: 1px solid rgba(0, 0, 0, 0.5);
    border-radius: 20% 20% 0 0;
    
    background: #fff;
    color: #111;
    background: linear-gradient(to bottom, #fff 0%, #f2f2f2 100%);
}

.number span:after {
    display: block;
    height: 0.75em;
    overflow: hidden;
    line-height: 0;
    
    border-top: 1px solid rgba(0, 0, 0, 0.5);
    border-radius: 0 0 20% 20%;
    
    transition: color 100ms, background-color 100ms;
    
    background: #fff;
    color: #111;
    background: linear-gradient(to bottom, #f2f2f2 0%, #fff 100%);
}

.flip .primary:before {
    animation: animate-top 250ms;
    animation-fill-mode: forwards;
    
    -webkit-animation: animate-top 250ms;
    -webkit-animation-fill-mode: forwards;
    
    background: #fff;
    color: #111;
    background: linear-gradient(to bottom, #fff 0%, #f2f2f2 100%);
}

.flip .primary:after {
    animation: animate-bottom 250ms;
    animation-fill-mode: forwards;
    animation-delay: 250ms;
    
    -webkit-animation: animate-bottom 250ms;
    -webkit-animation-fill-mode: forwards;
    -webkit-animation-delay: 250ms;
}

.primary:after {
    opacity: 0;
    
    transform: 
        translateX(0) 
        translateY(-0.28em) 
        translateZ(0.35em) 
        rotateX(91deg) 
        rotateY(0deg) 
        rotateZ(0deg);
    
    -webkit-transform: 
        translateX(0) 
        translateY(-0.28em) 
        translateZ(0.35em) 
        rotateX(91deg) 
        rotateY(0deg) 
        rotateZ(0deg);
}

.primary {
    z-index: 2;
}

.secondary {
    z-index: 1;
}

/* Animations */
@keyframes animate-top {
    0% {
        background: #fff;
        background: linear-gradient(to bottom, #fff 0%, #f2f2f2 100%);
    }
    
    100% {
        color: #111;
        transform: 
            translateX(0px) 
            translateY(0.35em) 
            translateZ(5px) 
            rotateX(-90deg)
            rotateY(0deg)
            rotateZ(0deg);
    }
}

@keyframes animate-bottom {
    0% {
        color: #111;
        opacity: 1;
    }
    
    100% {
        transform: 
            translateX(0) 
            translateY(0) 
            translateZ(0) 
            rotateX(0deg) 
            rotateY(0deg)
            rotateZ(0deg);
        opacity: 1;
    }
}

@-webkit-keyframes animate-top {
    0% {
        background: #fff;
        background: linear-gradient(to bottom, #fff 0%, #f2f2f2 100%);
    }
    
    100% {
        color: #111;
        -webkit-transform: 
            translateX(0px) 
            translateY(0.35em) 
            translateZ(5px) 
            rotateX(-90deg)
            rotateY(0deg)
            rotateZ(0deg);
    }
}

@-webkit-keyframes animate-bottom {
    0% {
        color: #111;
        opacity: 1;
    }
    
    100% {
        -webkit-transform: 
            translateX(0) 
            translateY(0) 
            translateZ(0) 
            rotateX(0deg) 
            rotateY(0deg)
            rotateZ(0deg);
        opacity: 1;
    }
}

/* Number definitions for 0-9 */
[data-number="0"] span.primary:before { content: "0"; }
[data-number="0"] span.secondary:after { content: "0"; }
[data-number="0"] span.secondary:before { content: attr(title); }
[data-number="0"] span.primary:after { content: attr(title); }

[data-number="1"] span.primary:before { content: "1"; }
[data-number="1"] span.secondary:after { content: "1"; }
[data-number="1"] span.secondary:before { content: attr(title); }
[data-number="1"] span.primary:after { content: attr(title); }

[data-number="2"] span.primary:before { content: "2"; }
[data-number="2"] span.secondary:after { content: "2"; }
[data-number="2"] span.secondary:before { content: attr(title); }
[data-number="2"] span.primary:after { content: attr(title); }

[data-number="3"] span.primary:before { content: "3"; }
[data-number="3"] span.secondary:after { content: "3"; }
[data-number="3"] span.secondary:before { content: attr(title); }
[data-number="3"] span.primary:after { content: attr(title); }

[data-number="4"] span.primary:before { content: "4"; }
[data-number="4"] span.secondary:after { content: "4"; }
[data-number="4"] span.secondary:before { content: attr(title); }
[data-number="4"] span.primary:after { content: attr(title); }

[data-number="5"] span.primary:before { content: "5"; }
[data-number="5"] span.secondary:after { content: "5"; }
[data-number="5"] span.secondary:before { content: attr(title); }
[data-number="5"] span.primary:after { content: attr(title); }

[data-number="6"] span.primary:before { content: "6"; }
[data-number="6"] span.secondary:after { content: "6"; }
[data-number="6"] span.secondary:before { content: attr(title); }
[data-number="6"] span.primary:after { content: attr(title); }

[data-number="7"] span.primary:before { content: "7"; }
[data-number="7"] span.secondary:after { content: "7"; }
[data-number="7"] span.secondary:before { content: attr(title); }
[data-number="7"] span.primary:after { content: attr(title); }

[data-number="8"] span.primary:before { content: "8"; }
[data-number="8"] span.secondary:after { content: "8"; }
[data-number="8"] span.secondary:before { content: attr(title); }
[data-number="8"] span.primary:after { content: attr(title); }

[data-number="9"] span.primary:before { content: "9"; }
[data-number="9"] span.secondary:after { content: "9"; }
[data-number="9"] span.secondary:before { content: attr(title); }
[data-number="9"] span.primary:after { content: attr(title); }

/* Responsive design */
@media (max-width: 1200px) {
    .number {
        font-size: 3em;
        margin-right: 3px;
    }
}

@media (max-width: 992px) {
    .number {
        font-size: 2.5em;
        margin-right: 2px;
    }
    
    .counter-display {
        padding: 18px;
    }
}

@media (max-width: 768px) {
    .number {
        font-size: 1.5em;
        margin-right: 1px;
    }
    
    .counter-display {
        padding: 15px;
        border-radius: 8px;
    }
    
    .counter-digits {
        gap: 2px;
    }
    
    .site-counter-container {
        margin: 15px 0;
    }
}

@media (max-width: 640px) {
    .number {
        font-size: 1.2em;
        margin-right: 0.5px;
    }
    
    .counter-display {
        padding: 12px;
    }
    
    .counter-digits {
        gap: 1px;
    }
}

@media (max-width: 480px) {
    .number {
        font-size: 1em;
        margin-right: 0px;
    }
    
    .counter-display {
        padding: 8px;
        border-radius: 6px;
    }
    
    .counter-digits {
        gap: 1px;
    }
    
    .site-counter-container {
        margin: 10px 0;
    }
}

@media (max-width: 375px) {
    .number {
        font-size: 0.8em;
        margin-right: 0px;
    }
    
    .counter-display {
        padding: 6px;
    }
    
    .counter-digits {
        gap: 0.5px;
    }
}

@media (max-width: 320px) {
    .number {
        font-size: 0.7em;
        margin-right: 0px;
    }
    
    .counter-display {
        padding: 5px;
    }
    
    .counter-digits {
        gap: 0px;
    }
    
    .site-counter-container {
        margin: 5px 0;
    }
}

/* Landscape orientation adjustments */
@media (max-height: 500px) and (orientation: landscape) {
    .number {
        font-size: 1.5em;
    }
    
    .counter-display {
        padding: 8px;
    }
    
    .site-counter-container {
        margin: 5px 0;
    }
}

/* Extra small devices and very narrow screens */
@media (max-width: 280px) {
    .number {
        font-size: 0.6em;
        margin-right: 0px;
    }
    
    .counter-display {
        padding: 3px;
        border-radius: 4px;
    }
}
