/* Festive Hours Section Styles - Adapted for Builden Hardware */

.poster-container {
    max-width: 1200px;
    width: 100%;
    /* Gradient adapted: White to Primary Color (lightened) or just White to Grey? */
    /* Let's keep it White to Red but subtle, or maybe White to Gold if keeping festive spirit? */
    /* User said "use project own theme colors". Project is Red/Black. */
    /* Let's try White to faint Red? Or just White. */
    /* Actually, the logic was White top, Yellow bottom. Let's make it White top, Primary Color bottom? */
    /* But standard Red is too strong for background. Let's use a light grey or keep it clean. */
    /* Let's try White to #fafafa. And use accents. */
    background: linear-gradient(180deg, #ffffff 0%, #ffffff 25%, #f8f9fa 25%, #f8f9fa 100%);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    position: relative;
    margin: 0 auto;
}

/* Top Section - White Background */
.top-section {
    background: #ffffff;
    padding: 40px 40px 20px;
    position: relative;
    overflow: hidden;
}

/* Decorations - Keep festive colors (Gold/Green/Red) as they are universally festive */
.decoration-left {
    position: absolute;
    top: 0;
    left: 0;
    width: 250px;
    height: 200px;
    z-index: 10;
}

.bell {
    position: absolute;
    top: 20px;
    left: 30px;
    width: 60px;
    height: 70px;
    background: linear-gradient(180deg, #D4AF37 0%, #C5A028 100%);
    border-radius: 0 0 30px 30px;
    animation: swing 3s ease-in-out infinite;
    transform-origin: top center;
}

.bell::before {
    content: '';
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 20px;
    background: #D4AF37;
    border-radius: 50%;
}

.bell::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);
    width: 8px;
    height: 12px;
    background: #333;
    border-radius: 50%;
}

@keyframes swing {

    0%,
    100% {
        transform: rotate(-5deg);
    }

    50% {
        transform: rotate(5deg);
    }
}

.leaves {
    position: absolute;
    top: 10px;
    left: 40px;
}

.leaf {
    width: 40px;
    height: 25px;
    border-radius: 0 100% 0 100%;
    position: absolute;
}

.leaf.red {
    background: var(--primary-color);
    top: 0;
    left: 0;
}

.leaf.green-dark {
    background: #2E7D32;
    top: 15px;
    left: 30px;
}

.leaf.green-light {
    background: #66BB6A;
    top: 30px;
    left: 60px;
}

.berries {
    position: absolute;
    top: 60px;
    left: 60px;
}

.berry {
    width: 10px;
    height: 10px;
    background: #D32F2F;
    border-radius: 50%;
    position: absolute;
    box-shadow: inset -2px -2px 4px rgba(0, 0, 0, 0.3);
}

.berry:nth-child(1) {
    top: 0;
    left: 0;
}

.berry:nth-child(2) {
    top: 15px;
    left: 5px;
}

.berry:nth-child(3) {
    top: 30px;
    left: 10px;
}

.berry:nth-child(4) {
    top: 10px;
    left: 15px;
}

.pine-needles {
    position: absolute;
    top: 40px;
    left: 100px;
}

.needle {
    width: 60px;
    height: 8px;
    background: linear-gradient(90deg, #1B5E20 0%, #2E7D32 100%);
    border-radius: 4px;
    position: absolute;
    transform-origin: left center;
}

.needle:nth-child(1) {
    transform: rotate(-20deg);
    top: 0;
}

.needle:nth-child(2) {
    transform: rotate(0deg);
    top: 10px;
}

.needle:nth-child(3) {
    transform: rotate(20deg);
    top: 20px;
}

.needle:nth-child(4) {
    transform: rotate(40deg);
    top: 30px;
    left: 10px;
}

.gold-ornament {
    position: absolute;
    top: 80px;
    left: 150px;
    width: 80px;
    height: 100px;
}

.ornament-ball {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #FFD700 0%, #DAA520 100%);
    border-radius: 50%;
    position: relative;
    box-shadow: inset -5px -5px 10px rgba(0, 0, 0, 0.2);
}

.ornament-cap {
    width: 20px;
    height: 15px;
    background: #C5A028;
    border-radius: 5px 5px 0 0;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}

.ornament-string {
    width: 2px;
    height: 30px;
    background: #C5A028;
    position: absolute;
    top: -45px;
    left: 50%;
    transform: translateX(-50%);
}

/* Logo - Replaced Colors */
.poster-container .logo {
    position: absolute;
    top: 20px;
    right: 40px;
    background: black;
    /* Changed from Blue */
    padding: 15px 25px;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    z-index: 10;
}

.logo-house {
    position: relative;
    margin-bottom: 5px;
}

.house-roof {
    width: 0;
    height: 0;
    border-left: 35px solid transparent;
    border-right: 35px solid transparent;
    border-bottom: 25px solid var(--primary-color);
    /* Changed from Yellow */
    position: relative;
}

.house-body {
    width: 50px;
    height: 30px;
    background: black;
    /* Changed from Blue */
    border: 3px solid var(--primary-color);
    /* Changed from Yellow */
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3px;
}

.window {
    width: 10px;
    height: 10px;
    background: var(--primary-color);
    /* Changed from Yellow */
    border: 1px solid black;
    /* Changed from Blue */
}

.logo-ball {
    position: absolute;
    right: -15px;
    top: -10px;
    width: 35px;
    height: 35px;
    background: white;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.ball-inner {
    width: 25px;
    height: 25px;
    background: white;
    border: 3px solid #000;
    border-radius: 50%;
    position: relative;
}

.ball-pentagon {
    position: absolute;
    width: 8px;
    height: 8px;
    background: #000;
    clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.ball-stripes {
    position: absolute;
    right: -5px;
    top: 5px;
}

.stripe {
    width: 15px;
    height: 2px;
    background: var(--primary-color);
    /* Changed from Yellow */
    margin: 2px 0;
    border-radius: 1px;
}

.logo-text {
    font-family: 'Poppins', sans-serif;
    font-weight: 900;
    font-size: 32px;
    color: white;
    text-align: center;
    letter-spacing: 1px;
}

.logo-subtext {
    font-family: 'Poppins', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: var(--primary-color);
    /* Changed from Yellow */
    text-align: center;
    letter-spacing: 0.5px;
}

.logo-tagline {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 11px;
    color: white;
    text-align: center;
    font-style: italic;
    margin-top: 2px;
}

/* Santa - Adjusted color */
.santa {
    position: absolute;
    top: 60px;
    left: 50%;
    transform: translateX(-50%);
    animation: float 3s ease-in-out infinite;
    z-index: 5;
}

@keyframes float {

    0%,
    100% {
        transform: translateX(-50%) translateY(0px);
    }

    50% {
        transform: translateX(-50%) translateY(-10px);
    }
}

.santa-hat {
    width: 120px;
    height: 60px;
    background: var(--primary-color);
    border-radius: 60px 60px 0 0;
    position: relative;
    margin: 0 auto;
}

.hat-trim {
    position: absolute;
    bottom: -8px;
    left: 0;
    right: 0;
    height: 15px;
    background: white;
    border-radius: 8px;
}

.hat-pom {
    position: absolute;
    top: 0;
    right: 10px;
    width: 25px;
    height: 25px;
    background: white;
    border-radius: 50%;
}

.santa-face {
    width: 140px;
    height: 120px;
    background: #FFDDC1;
    border-radius: 50%;
    position: relative;
    margin: 0 auto;
}

.eye {
    width: 15px;
    height: 15px;
    background: #000;
    border-radius: 50%;
    position: absolute;
    top: 35px;
}

.eye.left {
    left: 35px;
}

.eye.right {
    right: 35px;
    width: 5px;
    height: 15px;
    border-radius: 50%;
    transform: rotate(-15deg);
}

.nose {
    width: 12px;
    height: 12px;
    background: #FF6B6B;
    border-radius: 50%;
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
}

.mouth {
    width: 35px;
    height: 20px;
    border: 3px solid #000;
    border-radius: 0 0 35px 35px;
    border-top: none;
    position: absolute;
    top: 62px;
    left: 50%;
    transform: translateX(-50%);
    background: #8B4513;
}

.beard {
    width: 100px;
    height: 50px;
    background: white;
    border-radius: 50%;
    position: absolute;
    bottom: -25px;
    left: 50%;
    transform: translateX(-50%);
}

.beard-left,
.beard-right {
    width: 50px;
    height: 60px;
    background: white;
    border-radius: 50%;
    position: absolute;
    bottom: -15px;
}

.beard-left {
    left: -10px;
}

.beard-right {
    right: -10px;
}

.santa-body {
    width: 100px;
    height: 60px;
    background: var(--primary-color);
    margin: 0 auto;
    border-radius: 0 0 50px 50px;
    position: relative;
}

.santa-collar {
    width: 100%;
    height: 12px;
    background: white;
    border-radius: 6px;
}

.santa-arm {
    width: 40px;
    height: 80px;
    background: var(--primary-color);
    border-radius: 20px;
    position: absolute;
    top: 10px;
}

.santa-arm.left {
    left: -35px;
    transform: rotate(-30deg);
}

.santa-arm.right {
    right: -35px;
    transform: rotate(30deg);
}

.santa-hand {
    width: 25px;
    height: 25px;
    background: #FFDDC1;
    border-radius: 50%;
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
}

.santa-mitten {
    width: 28px;
    height: 20px;
    background: var(--primary-color);
    border-radius: 15px;
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
}

/* Main Content */
.header-banner {
    background: var(--primary-color);
    /* Changed from Yellow */
    padding: 30px 40px;
    margin: 150px -40px 0;
    text-align: center;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -5px 15px rgba(0, 0, 0, 0.1);
}

.header-title {
    font-family: 'Poppins', sans-serif;
    font-weight: 900;
    font-size: 64px;
    color: white;
    /* Changed from Blue */
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

/* Info Box */
.info-box {
    background: black;
    /* Changed from Blue */
    padding: 35px 50px;
    margin: 40px;
    border-radius: 30px;
    border: 4px solid var(--primary-color);
    /* Changed from Yellow */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.info-header {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 26px;
    color: white;
    text-align: center;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.info-date {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 26px;
    color: white;
    text-align: center;
    letter-spacing: 1px;
}

.info-date sup {
    font-size: 18px;
    vertical-align: super;
}

/* Schedule Box */
.schedule-box {
    background: black;
    /* Changed from Blue */
    padding: 40px 50px;
    margin: 40px;
    border-radius: 30px;
    border: 5px solid var(--primary-color);
    /* Changed from Yellow */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.schedule-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    margin-bottom: 15px;
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
    font-size: 28px;
    color: white;
    letter-spacing: 0.5px;
}

.schedule-row:last-child {
    margin-bottom: 0;
}

.schedule-day {
    text-align: left;
    text-transform: uppercase;
}

.schedule-colon {
    text-align: center;
    padding: 0 20px;
    font-weight: 700;
}

.schedule-time {
    text-align: left;
    text-transform: uppercase;
}

.schedule-time.holiday {
    color: var(--primary-color);
    /* Changed from Yellow */
    font-weight: 700;
}

/* Gift Decorations */
.gifts-left,
.gifts-right {
    position: absolute;
    bottom: 80px;
    width: 150px;
}

.gifts-left {
    left: 40px;
}

.gifts-right {
    right: 40px;
}

.gift {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #8B4513 0%, #A0522D 100%);
    border-radius: 5px;
    position: relative;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    margin-bottom: 20px;
}

.gift-ribbon-v {
    width: 15px;
    height: 100%;
    background: #2E7D32;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.gift-ribbon-h {
    width: 100%;
    height: 15px;
    background: #2E7D32;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.gift-bow {
    width: 30px;
    height: 30px;
    background: #2E7D32;
    border-radius: 50% 50% 0 0;
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
}

.gift-bow::before,
.gift-bow::after {
    content: '';
    width: 20px;
    height: 20px;
    background: #2E7D32;
    border-radius: 50%;
    position: absolute;
    top: 5px;
}

.gift-bow::before {
    left: -18px;
}

.gift-bow::after {
    right: -18px;
}

/* Pine Decorations */
.pine-left,
.pine-right {
    position: absolute;
    bottom: 200px;
}

.pine-left {
    left: 20px;
}

.pine-right {
    right: 20px;
}

.pine-branch {
    width: 100px;
}

.pine-needle-cluster {
    width: 70px;
    height: 12px;
    background: linear-gradient(90deg, #1B5E20 0%, #2E7D32 50%, #1B5E20 100%);
    border-radius: 6px;
    margin: 5px 0;
    transform-origin: left;
}

.pine-needle-cluster:nth-child(1) {
    transform: rotate(-25deg);
}

.pine-needle-cluster:nth-child(2) {
    transform: rotate(-10deg);
    width: 85px;
}

.pine-needle-cluster:nth-child(3) {
    transform: rotate(5deg);
    width: 90px;
}

.pine-needle-cluster:nth-child(4) {
    transform: rotate(20deg);
    width: 75px;
}

/* Thank You Section */
.thank-you {
    background: var(--primary-color);
    /* Changed from Yellow */
    padding: 30px 40px;
    text-align: center;
    margin-top: 40px;
}

.thank-you-text {
    font-family: 'Poppins', sans-serif;
    font-weight: 900;
    font-size: 56px;
    color: white;
    /* Changed from Blue */
    letter-spacing: 2px;
    text-transform: uppercase;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

.snowflake {
    position: absolute;
    color: var(--primary-color);
    /* Changed from White to Red to be visible on white */
    font-size: 20px;
    opacity: 0.7;
    animation: fall linear infinite;
    z-index: 100;
}

/* Snowflake on dark backgrounds should be white */
.header-banner .snowflake,
.info-box .snowflake,
.schedule-box .snowflake,
.thank-you .snowflake {
    color: white;
}


@keyframes fall {
    0% {
        transform: translateY(-100px) rotate(0deg);
    }

    100% {
        transform: translateY(1000px) rotate(360deg);
    }
}

/* Responsive Design */
@media (max-width: 1024px) {
    .header-title {
        font-size: 48px;
    }

    .schedule-row {
        font-size: 24px;
    }

    .thank-you-text {
        font-size: 42px;
    }
}

@media (max-width: 768px) {
    .poster-container {
        border-radius: 10px;
    }

    .top-section {
        padding: 30px 20px 20px;
    }

    .decoration-left {
        width: 150px;
        height: 150px;
        transform: scale(0.7);
    }

    .logo {
        position: static;
        margin: 0 auto 20px;
        width: fit-content;
    }

    .santa {
        transform: translateX(-50%) scale(0.8);
    }

    .header-banner {
        margin: 130px -20px 0;
        padding: 20px;
    }

    .header-title {
        font-size: 32px;
    }

    .info-box,
    .schedule-box {
        padding: 25px 20px;
        margin: 20px;
    }

    .info-header,
    .info-date {
        font-size: 18px;
    }

    .schedule-row {
        font-size: 16px;
        grid-template-columns: 1fr;
        gap: 5px;
        margin-bottom: 20px;
    }

    .schedule-day,
    .schedule-time {
        text-align: center;
    }

    .schedule-colon {
        display: none;
    }

    .gifts-left,
    .gifts-right,
    .pine-left,
    .pine-right {
        display: none;
    }

    .thank-you {
        padding: 20px;
    }

    .thank-you-text {
        font-size: 28px;
    }

    /* Footer - inherited from global styles */
}

@media (max-width: 480px) {
    .header-title {
        font-size: 24px;
        letter-spacing: 1px;
    }

    .info-header,
    .info-date {
        font-size: 16px;
    }

    .schedule-row {
        font-size: 14px;
    }

    .thank-you-text {
        font-size: 24px;
    }
}