/* 1. VARIABLES & RESET */
:root {
    --forest-green: #2c3e2d;
    --forest-dark: #1e2b1f;
    --gold-accent: #c9a265;
    --gold-hover: #a8854f;
    --cream: #f8f9fa;
    --soft-tan: #fdfaf5;
    --airbnb-red: #FF5A5F;
    --booked-red: #fceaea;
    --booked-line: #FF0000;
}

body {
    font-family: 'sans-serif', Segoe UI;
    color: #333;
    background-color: var(--soft-tan);
    line-height: 1.8;
}

/* 2. NAVIGATION & FOOTER */
.navbar { font-family: sans-serif; }

.footer-link {
    text-decoration: none;
    transition: all 0.3s;
}
.footer-link:hover {
    color: #ffffff !important;
    padding-left: 5px;
}

.social-item {
    color: #f8f9fa;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.95rem;
    transition: opacity 0.3s;
}
.social-item:hover { opacity: 0.7; color: #ffffff; }

.social-icon-box {
    background: #f8f9fa;
    color: var(--forest-green);
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    font-size: 1.1rem;
}

/* 3. REUSABLE COMPONENTS (Buttons, Cards, Badges) */
.btn-custom, .btn-send {
    background-color: var(--forest-green);
    color: white;
    border: none;
    padding: 12px 30px;
    transition: background 0.3s;
}
.btn-custom:hover, .btn-send:hover { background-color: var(--forest-dark); color: white; }

.btn-gold {
    background-color: var(--gold-accent);
    color: white;
    border: 2px solid var(--gold-accent);
}
.btn-gold:hover {
    background-color: transparent;
    color: var(--gold-accent);
    border-color: var(--gold-accent);
}

.airbnb-btn {
    background-color: var(--airbnb-red);
    color: white;
    border: none;
    padding: 10px 20px;
    font-weight: bold;
    font-family: sans-serif;
    letter-spacing: 0.5px;
}
.airbnb-btn:hover { background-color: #e34c50; color: white; }

.btn-direct-book { border: 1px solid #000000; }
.btn-direct-book:hover { background-color: #000000; color: #ffffff; }

.card { border: none; transition: transform 0.3s ease; overflow: hidden; }
.card:hover { transform: translateY(-5px); }

.prop-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.1) !important; }

.category-badge {
    background-color: var(--gold-accent);
    color: white;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: inline-block;
}

/* 4. HERO & HEADERS */
.hero-full-screen {
    height: 100vh;
    width: 100%;
    background: url('../images/hero.png') no-repeat center center/cover;
    position: relative;
    overflow: hidden;
}

.hero-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(0deg, rgba(44, 62, 45, 0.7) 0%, rgba(0,0,0,0.3) 100%);
    z-index: 1;
}

.page-header, .about-header {
    background: linear-gradient(rgba(0,0,0,0.6), rgba(0,0,0,0.6)), url('../images/site-banner.png') center/cover;
    color: white;
    padding: 100px 0;
    text-align: center;
}

/* 5. SPECIFIC SECTIONS (Accommodation, Gallery, Calendar) */
.card-img-top, .gallery-item img {
    height: 250px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.gallery-item:hover img { transform: scale(1.05); }

#calendar {
    width: 100%;
    --fc-page-bg-color: transparent;
    max-height: 450px;
}

.fc-multimonth-title {
    font-family: 'Georgia', serif;
    color: var(--forest-green);
    font-size: 1.2rem !important;
    font-weight: bold;
}

.booked-style {
    background-color: var(--booked-red) !important;
    background-image: linear-gradient(to bottom, transparent 48%, var(--booked-line) 48%, var(--booked-line) 52%, transparent 52%) !important;
    border: none !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
}

.fc-day-past .fc-daygrid-day-number,
.fc-day-future.fc-event-booked .fc-daygrid-day-number {
    color: #adb5bd !important;
    text-decoration: line-through;
    opacity: 0.6;
}

/* 6. UTILITIES & ANIMATIONS */
.text-gold { color: var(--gold-accent); }
.bg-sage { background-color: #f4f7f4; }
.z-index-hero { z-index: 2; }

.custom-svg-icon svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
    40% {transform: translateY(-10px);}
    60% {transform: translateY(-5px);}
}
.scroll-down-arrow { animation: bounce 2s infinite; }

@media (max-width: 768px) {
    .fc-multimonth { display: block !important; }
}
/* Custom Airbnb Hover Effect */
.btn-airbnb-hover {
    transition: all 0.3s ease;
    border-color: #333; /* Matches your outline-dark start */
}

.btn-airbnb-hover:hover {
    background-color: #FF5A5F !important;
    border-color: #FF5A5F !important;
    color: white !important;
}