/* Custom styles that complement Tailwind */

/* Smooth scroll offset for fixed nav */
html {
    scroll-padding-top: 80px;
}

/* Selection color */
::selection {
    background: rgba(240, 82, 63, 0.3);
    color: #fff;
}

/* Base transitions */
a, button, input, select, textarea {
    transition: all 0.2s ease;
}

/* Focus visible styles */
:focus-visible {
    outline: 2px solid #f0523f;
    outline-offset: 2px;
}

/* Geometric dot pattern for backgrounds */
.dot-pattern {
    background-image: radial-gradient(circle, rgba(240, 82, 63, 0.15) 1px, transparent 1px);
    background-size: 20px 20px;
}

/* Coral gradient border */
.coral-gradient-border {
    position: relative;
}
.coral-gradient-border::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, #ff7a6a, #e03a28);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

/* Subtle text shadow for hero readability */
.hero-text-shadow {
    text-shadow: 0 2px 20px rgba(0, 0, 0, 0.5);
}

/* Image hover zoom container */
.img-zoom {
    overflow: hidden;
}
.img-zoom img {
    transition: transform 0.6s ease;
}
.img-zoom:hover img {
    transform: scale(1.05);
}

/* Coral glow effect */
.coral-glow {
    box-shadow: 0 0 40px rgba(240, 82, 63, 0.2);
}

/* Animated underline for links */
.hover-underline {
    position: relative;
}
.hover-underline::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background: #f0523f;
    transition: width 0.3s ease;
}
.hover-underline:hover::after {
    width: 100%;
}

/* Noise texture overlay (optional subtle effect) */
.noise-overlay {
    position: relative;
}
.noise-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 1;
}

/* Staggered animation delays for grid items */
.stagger-1 { transition-delay: 0.05s; }
.stagger-2 { transition-delay: 0.1s; }
.stagger-3 { transition-delay: 0.15s; }
.stagger-4 { transition-delay: 0.2s; }
.stagger-5 { transition-delay: 0.25s; }
.stagger-6 { transition-delay: 0.3s; }

/* Print styles */
@media print {
    header, footer, .reveal, .geo-circle, .geo-square, .geo-dots {
        display: none !important;
    }
    body {
        background: white;
        color: black;
    }
}
