/* ===== CUSTOM STYLES FOR ABSOLUTE BEAUTY ===== */

/* Smooth scrolling offset for fixed nav */
section[id] {
    scroll-margin-top: 80px;
}

/* ===== NAV ACTIVE STATE ===== */
.nav-link.active {
    color: #c21d3f;
}
.nav-link.active::after {
    width: 100%;
}

/* ===== MOBILE MENU ANIMATION ===== */
.mobile-menu {
    will-change: transform;
}

/* ===== SERVICE CARD IMAGE PLACEHOLDERS ===== */
.service-card {
    position: relative;
    overflow: hidden;
}

/* ===== IMAGE ZOOM EFFECT ===== */
.img-overlay img {
    will-change: transform;
}

/* ===== BUTTON RIPPLE (subtle) ===== */
.btn-primary::after,
.btn-outline::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.3s ease;
}

/* ===== FORM VALIDATION STYLES ===== */
.form-input:invalid:not(:placeholder-shown) {
    border-color: #dc2626;
}
.form-input:valid:not(:placeholder-shown) {
    border-color: #16a34a;
}

/* ===== GEO ANIMATIONS ===== */
@keyframes spin-slow {
    from { transform: translateY(-50%) rotate(0deg); }
    to { transform: translateY(-50%) rotate(360deg); }
}
.geo-spin {
    animation: spin-slow 20s linear infinite;
}

/* ===== SELECTION COLOR ===== */
::selection {
    background: #c21d3f;
    color: #fff;
}

/* ===== FOCUS VISIBLE ===== */
:focus-visible {
    outline: 2px solid #c21d3f;
    outline-offset: 2px;
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    .float-1, .float-2, .float-3, .pulse-glow, .geo-spin {
        animation: none;
    }
    .service-card:hover {
        transform: none;
    }
    .img-overlay img:hover {
        transform: none;
    }
    html {
        scroll-behavior: auto;
    }
}

/* ===== PRINT ===== */
@media print {
    .nav-glass, .trim-stripe, .geo-circle, .geo-diamond, .geo-rect, .geo-triangle,
    .geo-accent-left, .geo-accent-right, .cta-geo, .footer-geo,
    .float-1, .float-2, .float-3, .pulse-glow {
        display: none !important;
    }
    body {
        color: #000;
        background: #fff;
    }
}
