/* Infinity Realty — custom styles layered on top of Tailwind's CDN utilities */

a { color: inherit; text-decoration: none; }

.nav-link { position: relative; transition: color .15s ease; }
.nav-link:hover { color: #c9a45c; }

.dropdown { transform: translateY(-6px); opacity: 0; transition: opacity .18s ease, transform .18s ease; }
.group:hover .dropdown { opacity: 1; transform: translateY(0); }
.group .dropdown { display: block; pointer-events: none; }
.group:hover .dropdown { pointer-events: auto; }

#site-header.scrolled { box-shadow: 0 4px 24px rgba(20, 40, 30, 0.08); }

.btn-primary {
    display: inline-block;
    background: #c9a45c;
    color: #241d0f;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 13px 28px;
    border-radius: 2px;
    transition: background .15s ease, transform .15s ease;
}
.btn-primary:hover { background: #a9863f; transform: translateY(-1px); }

.btn-outline {
    display: inline-block;
    border: 1px solid rgba(250, 247, 241, 0.55);
    color: #faf7f1;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 13px 28px;
    border-radius: 2px;
    transition: background .15s ease;
}
.btn-outline:hover { background: rgba(250, 247, 241, 0.12); }

.btn-outline-dark {
    display: inline-block;
    border: 1px solid rgba(31, 61, 47, 0.35);
    color: #1f3d2f;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 13px 28px;
    border-radius: 2px;
    transition: background .15s ease;
}
.btn-outline-dark:hover { background: rgba(31, 61, 47, 0.06); }

.card { transition: transform .25s ease, box-shadow .25s ease; }
.card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(20, 40, 30, 0.12); }

.form-input {
    width: 100%;
    padding: 13px 14px;
    border: 1px solid rgba(35, 41, 31, 0.18);
    border-radius: 2px;
    font-size: 14px;
    background: #fff;
    font-family: inherit;
}
.form-input:focus { outline: 2px solid #c9a45c; outline-offset: 1px; }

.social-icon {
    width: 36px; height: 36px;
    border: 1px solid rgba(250, 247, 241, 0.25);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #faf7f1;
    transition: background .15s ease, border-color .15s ease;
}
.social-icon:hover { background: rgba(250, 247, 241, 0.1); border-color: rgba(250, 247, 241, 0.5); }

/* Modal */
#enquiry-modal.is-open { display: block; }
#enquiry-modal .modal-panel {
    transform: translateY(16px) scale(0.98);
    opacity: 0;
    transition: transform .25s ease, opacity .25s ease;
}
#enquiry-modal.is-open .modal-panel { transform: translateY(0) scale(1); opacity: 1; }

/* Floating hero elements (driven by GSAP, gentle fallback via CSS if JS fails) */
.float-el { animation: floatY 6s ease-in-out infinite; }
.float-el.delay-1 { animation-delay: 1.2s; }
.float-el.delay-2 { animation-delay: 2.4s; }
@keyframes floatY {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}

@media (prefers-reduced-motion: reduce) {
    .float-el { animation: none; }
}

/* Process steps */
.process-track { position: relative; }
.process-track::before {
    content: '';
    position: absolute;
    top: 27px;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(201, 164, 92, 0.35);
    z-index: 0;
}
.process-node { position: relative; z-index: 1; }

/* FAQ accordion */
.faq-item { border-bottom: 1px solid rgba(35, 41, 31, 0.1); }
.faq-question {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 0;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    font-family: inherit;
}
.faq-icon { flex-shrink: 0; transition: transform .25s ease; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s ease;
}
.faq-item.is-open .faq-answer { max-height: 240px; }
.faq-answer-inner { padding-bottom: 22px; }

/* Foggy hero-to-section blend — sits at the bottom of a hero, bleeding into the section below */
.hero-fog {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -70px;
    height: 150px;
    pointer-events: none;
    z-index: 6;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 55%, black 100%);
    mask-image: linear-gradient(to bottom, transparent, black 55%, black 100%);
}
.hero-fog::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent, var(--fog-color, #faf7f1) 85%);
}
@media (max-width: 640px) {
    .hero-fog { bottom: -40px; height: 100px; }
}

/* Plot types marquee */
.marquee { width: 100%; overflow: hidden; }
.marquee-track {
    display: flex;
    gap: 24px;
    width: max-content;
    padding: 0 24px;
    animation: marquee-scroll 32s linear infinite;
}
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-card {
    flex: 0 0 260px;
    background: #faf7f1;
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(20, 40, 30, 0.06);
}
@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .marquee-track { animation: none; }
}

/* Testimonial avatar */
.avatar-circle {
    width: 46px; height: 46px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700;
    font-size: 15px;
    flex-shrink: 0;
}
