/* Tailwind Custom Colors */
@tailwind base;
@tailwind components;
@tailwind utilities;

/* UNC Color Palette */
:root {
    --carolina-blue: #4B9CD3;
    --tar-heel-blue: #007FAE;
    --unc-blue: #13294B;
    --ramses-blue: #1F456E;
    --well-blue: #00A1DE;
}

/* Custom Color Classes */
.bg-carolina-blue-100 { background-color: #E1F0F8; }
.bg-carolina-blue-600 { background-color: var(--carolina-blue); }
.bg-carolina-blue-700 { background-color: #3A7AA6; }
.text-carolina-blue-400 { color: var(--carolina-blue); }
.text-carolina-blue-600 { color: var(--carolina-blue); }
.text-carolina-blue-700 { color: #3A7AA6; }

.bg-tar-heel-blue-50 { background-color: #F0F7FA; }
.bg-tar-heel-blue-100 { background-color: #C2E2EE; }
.text-tar-heel-blue-800 { color: var(--tar-heel-blue); }

.bg-unc-blue-100 { background-color: #D6DCE5; }
.text-unc-blue-800 { color: var(--unc-blue); }

/* Custom Styles */
body {
    font-family: 'Libre Franklin', sans-serif;
}

/* Scroll-reveal animation */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s ease;
    will-change: opacity, transform;
}
.animate-on-scroll.reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Image hover zoom inside cards */
.property-img {
    transition: transform 0.6s ease;
}
.group:hover .property-img,
.property-card:hover .property-img {
    transform: scale(1.06);
}

/* Smooth anchor scroll offset under fixed navbar */
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 80px; }

/* Hero scroll-down indicator */
.scroll-indicator {
    animation: scroll-bounce 2s infinite;
}
@keyframes scroll-bounce {
    0%, 100% { transform: translate(-50%, 0); }
    50% { transform: translate(-50%, 8px); }
}

/* Hero text legibility over the video background */
#hero h1, #hero p {
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.55);
}

/* Animation for property cards */
.property-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.property-card:hover {
    transform: translateY(-5px);
}
.property-card img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}
/* Contact Form Styles */
#contact-form input,
#contact-form textarea {
    transition: all 0.3s ease;
}

#contact-form input:focus,
#contact-form textarea:focus {
    background-color: rgba(255, 255, 255, 0.2);
    box-shadow: 0 0 0 2px white;
}

#contact-form .border-red-500 {
    border-color: #EF4444;
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.5);
}

/* Custom button styles */
.btn-primary {
    @apply bg-carolina-blue-600 hover:bg-carolina-blue-700 text-white px-6 py-2 rounded-lg font-medium transition;
}

.btn-outline {
    @apply border border-carolina-blue-600 text-carolina-blue-600 hover:bg-carolina-blue-50 px-6 py-2 rounded-lg font-medium transition;
}
