/*
TemplateMo 561 Purple Buzz
*/

html {font-family: 'Open Sans', sans-serif; scroll-behavior: smooth;}

/* Typography */
p, a {font-weight: 400;}
.h2 {font-size: 40px;}
.h3 {font-size: 28px;}

/* Base Fonts */
.light-300 { font-family: 'Open Sans', sans-serif !important; font-weight: 300; }
.regular-400 { font-family: 'Open Sans', sans-serif !important; font-weight: 400; }
.semi-bold-600 { font-family: 'Open Sans', sans-serif !important; font-weight: 600; }

/* MARKETING HELPERS */
.text-outline-white {
    text-shadow: 
        2px 2px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 
        1px 1px 0 #fff;
    color: #1a1a1a !important; /* Ensure text inside is dark for contrast */
}

/* For About/Work Pages - Bigger & Bolder */
.text-bold-large {
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.6;
    color: #212529;
}

/* NAV LINKS */
#main_nav .nav-link {
    font-weight: 700 !important;
    font-size: 1.1rem;
    color: #1a1a1a !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
#main_nav .nav-link:hover { color: #9E7F30 !important; }

/* Home Backgrounds */
body {
    background-image: url('../img/banner-bg-01.png'); 
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
/* This class allows the body background to show through specific sections */
.bg-transparent-custom {
    background-color: transparent !important;
}

/* SECOND BACKGROUND IMAGE - Restored with PNG */
.bg-image-2 {
    background-image: url('../img/banner-bg-02.png');
    background-attachment: fixed;
    background-position: center;
    background-size: cover;
    padding-top: 3rem; padding-bottom: 3rem;
}

/* General Backgrounds - Kept semi-transparent for readability */
.bg-light, .bg-white { background-color: rgba(255, 255, 255, 0.92) !important; }
.bg-secondary, .service-tag { background-color: #F2C94C !important; }
.service-tag {
    background-image: url('../img/flavor-header.png') !important;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
.card { background-color: rgba(255, 255, 255, 0.9); }

/* Pricing Page Specifics */
.pricing-card-bg {
    background-size: cover !important;
    background-position: center !important;
    position: relative;
    z-index: 1;
    border: 2px solid #F2C94C;
}
.pricing-card-bg::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: -1;
    border-radius: 10px;
}
.pricing-text-pop {
    color: #fff !important;
    font-weight: 800 !important;
    text-shadow: 2px 2px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
    font-size: 2rem;
}
.pricing-intro-bold {
    font-weight: 900 !important;
    color: #1a1a1a !important;
    text-shadow: 2px 2px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
    font-size: 1.3rem;
}

/* Specific Backgrounds for Pricing Cards */
.bg-starter { background-image: url('../img/pricing-01.jpg'); }
.bg-office { background-image: url('../img/pricing-02.jpg'); }
.bg-stopper { background-image: url('../img/pricing-03.jpg'); }


/* Footer */
footer.bg-secondary { background-color: rgba(184, 134, 11, 0.95) !important; background-image: none !important; }
.bg-primary { background-color: #B8860B !important; }
footer .text-light { color: #1a1a1a !important; }
footer i { color: #1a1a1a !important; }

/* THE FLASH ANIMATION */
.service-work.card { overflow: hidden; }
.service-work .service-work-vertical {
    background: rgb(0,0,0);
    background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.6) 100%);
    background-size: 100% 200%;
    background-position: 0% 100%;
    transition: background-position 0.5s ease-out;
}
.service-work .service-work-vertical:hover { background-position: 0% 0%; }
.service-work .service-work-vertical:hover * { color: #fff !important; text-shadow: 1px 1px 3px rgba(0,0,0,0.8); }


/* === CUSTOM FONTS & CHRISTMAS === */
.welcome-script, .logo-script {
    font-family: 'Dancing Script', cursive;
    color: #F2C94C !important;
    font-weight: 700;
}
.welcome-script { font-size: 5.5rem; text-shadow: 2px 2px 4px rgba(0,0,0,0.3); line-height: 1.4; white-space: nowrap; }
.festive-font { font-family: 'Abril Fatface', cursive !important; text-shadow: 1px 1px 3px rgba(0,0,0,0.2); letter-spacing: 1px; }

.christmas-red { color: #D42426 !important; display: inline-block; }
.christmas-green { color: #146B3A !important; display: inline-block; }

.bell-top { font-size: 0.3em; color: #F2C94C; position: absolute; top: 5px; right: -12px; transform: rotate(15deg); }
.bell-bottom { font-size: 0.3em; color: #F2C94C; position: absolute; bottom: 12px; right: -12px; transform: rotate(-15deg); }

/* ARROWS */
.festive-arrow { width: 300px; height: auto; cursor: pointer; animation: arrowBounce 2s infinite; }
/* Small Arrow Row */
.arrow-row-icon { 
    width: 200px !important; 
    height: auto; 
    display: inline-block; 
    margin: 0 10px; 
    animation: arrowBounce 2s infinite; 
}
/* Contact Form Arrow Row */
.contact-arrow-row { display: flex; justify-content: center; gap: 10px; margin-bottom: 20px; }
.contact-arrow { 
    width: 100px; /* Big enough to be seen! */
    height: auto; 
    animation: arrowBounce 1.5s infinite; 
}

@keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-15px); } 100% { transform: translateY(0px); } }
.floating-text { animation: float 4s ease-in-out infinite; }
@keyframes arrowBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Buttons */
.btn-outline-primary { color: #F2C94C !important; border-color: #F2C94C !important; font-weight: 700; }
.btn-outline-primary:hover, .btn-outline-primary.active { color: #000 !important; background-color: #F2C94C !important; border-color: #F2C94C !important; }
.business-header { color: #F2C94C !important; text-shadow: 1px 1px 2px rgba(0,0,0,0.2); font-weight: 700; }

.price-tag { position: absolute; top: 15px; right: 15px; font-size: 1.5rem; font-family: 'Dancing Script', cursive; font-weight: 700; line-height: 1; z-index: 10; padding: 5px 10px; background: rgba(255, 255, 255, 0.95); border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); color: #1a1a1a; }
.sold-out-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); display: flex; align-items: center; justify-content: center; z-index: 20; border-radius: 8px; }
.sold-out-text { color: white; font-size: 2.5rem; font-family: 'Dancing Script', cursive; font-weight: 700; transform: rotate(-10deg); padding: 10px 20px; border: 4px dashed white; border-radius: 15px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); }
.sold-out-text .r { color: #C0392B; } .sold-out-text .g { color: #229954; }

/* FIX FOR BANNER WHITE OVERLAY - THIS MUST BE LAST */
.banner-wrapper, 
.banner-wrapper.bg-light,
#index_banner {
    background-color: transparent !important;
    background-image: none !important; /* Ensure no image on wrapper itself, only on body */
}

/* SOCIAL MEDIA ICONS - SCALED DOWN */
.navbar-social-icon {
    width: 20px; /* SHRUNK to match building icon size */
    height: 20px;
    object-fit: contain;
    margin-left: 10px;
    transition: transform 0.3s ease;
    filter: drop-shadow(1px 1px 2px rgba(0,0,0,0.2));
}
.navbar-social-icon:hover {
    transform: scale(1.2);
}