/* ========================================================================== 
   Party Hall — stylesheet (synced from live artifact)
   ========================================================================== */

* { box-sizing: border-box; }
    body { margin: 0; font-family: 'Work Sans', sans-serif; background: #FAF6EF; color: #24201A; }
    h1, h2, h3, h4 { font-family: 'Fraunces', serif; margin: 0; font-weight: 500; color: #24201A; letter-spacing: -0.01em; }
    a { text-decoration: none; }
    .navlink { color: #24201A; }
    .navlink:hover { color: #B5502F; }
    .btn-primary, .btn-secondary { text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600 !important; }
    .btn-primary { background: #B8935A; color: #241E12; border: 1px solid #B8935A; transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease; }
    .btn-primary:hover { background: #A17D45; border-color: #A17D45; box-shadow: 0 6px 18px rgba(184, 147, 90, 0.35); transform: translateY(-1px); }
    .btn-secondary { background: transparent; color: #24201A; border: 1px solid #24201A; transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease; }
    .btn-secondary:hover { background: #24201A; color: #FAF6EF; transform: translateY(-1px); }
    .card-elevated {
      border: 1px solid #ECE3D3 !important;
      border-radius: 10px !important;
      box-shadow: 0 2px 10px rgba(36, 32, 26, 0.05);
      transition: box-shadow 0.3s ease, transform 0.3s ease;
    }
    .card-elevated:hover {
      box-shadow: 0 16px 32px rgba(36, 32, 26, 0.10);
      transform: translateY(-4px);
    }
    .card-elevated-dark {
      border: 1px solid rgba(184, 147, 90, 0.35);
      box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
      transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
    }
    .card-elevated-dark:hover {
      box-shadow: 0 20px 44px rgba(0, 0, 0, 0.35);
      border-color: rgba(184, 147, 90, 0.6);
      transform: translateY(-4px);
    }
    .hero-image-col, .space-image-box {
      border-radius: 12px !important;
      box-shadow: 0 16px 40px rgba(36, 32, 26, 0.18);
    }
    .footer-link { color: #E8DCCB; }
    .footer-link:hover { color: #FFFFFF; }
    .faq-btn { background: transparent; border: none; text-align: left; cursor: pointer; font-family: 'Work Sans', sans-serif; }
    input, select, textarea { font-family: 'Work Sans', sans-serif; }
    input::placeholder, textarea::placeholder { color: #9C9284; }
    @keyframes hero-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    .lang-select { background: transparent; border: 1px solid #E7DFD1; border-radius: 4px; cursor: pointer; font-family: 'Work Sans', sans-serif; font-size: 13px; font-weight: 600; padding: 6px 8px; color: #2563EB; }
    .lang-select:hover { border-color: #B5502F; }
    .menu-toggle { display: none; background: transparent; border: none; cursor: pointer; padding: 6px; }

    h1, h2, h3, h4 { opacity: 0; }
    h1.no-anim, h2.no-anim, h3.no-anim, h4.no-anim { opacity: 1; }

    @keyframes party-pop {
      0%   { opacity: 0; transform: scale(0.94); }
      100% { opacity: 1; transform: scale(1); }
    }
    @keyframes party-slide-left {
      0%   { opacity: 0; transform: translateX(-22px); }
      100% { opacity: 1; transform: translateX(0); }
    }
    @keyframes party-slide-right {
      0%   { opacity: 0; transform: translateX(22px); }
      100% { opacity: 1; transform: translateX(0); }
    }
    @keyframes party-drop {
      0%   { opacity: 0; transform: translateY(-16px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    @keyframes party-wiggle {
      0%   { opacity: 0; transform: scale(0.97) translateY(10px); }
      100% { opacity: 1; transform: scale(1) translateY(0); }
    }
    @keyframes party-flip {
      0%   { opacity: 0; transform: perspective(600px) rotateX(18deg); }
      100% { opacity: 1; transform: perspective(600px) rotateX(0deg); }
    }

    .anim-pop.in-view         { animation: party-pop 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .anim-slide-left.in-view  { animation: party-slide-left 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .anim-slide-right.in-view { animation: party-slide-right 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .anim-drop.in-view        { animation: party-drop 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .anim-wiggle.in-view      { animation: party-wiggle 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
    .anim-flip.in-view        { animation: party-flip 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

    @keyframes neon-glow {
      0%, 100% {
        text-shadow: 0 0 6px rgba(184, 147, 90, 0.45), 0 0 16px rgba(184, 147, 90, 0.25), 0 0 28px rgba(184, 147, 90, 0.12);
      }
      50% {
        text-shadow: 0 0 12px rgba(184, 147, 90, 0.75), 0 0 26px rgba(184, 147, 90, 0.45), 0 0 42px rgba(184, 147, 90, 0.22);
      }
    }
    @keyframes whatsapp-bounce-glow {
      0%, 100% {
        box-shadow: 0 6px 18px rgba(0,0,0,0.22), 0 0 0 0 rgba(37, 211, 102, 0.45);
      }
      50% {
        box-shadow: 0 8px 22px rgba(0,0,0,0.26), 0 0 0 10px rgba(37, 211, 102, 0);
      }
    }
    .whatsapp-btn {
      animation: whatsapp-bounce-glow 2.6s ease-in-out infinite;
    }
    .lightbox-trigger { cursor: zoom-in; transition: transform 0.4s ease; }
    .lightbox-trigger:hover { transform: scale(1.04); }
    .whatsapp-btn:hover {
      animation-play-state: paused;
    }

    .glow-heading.in-view {
      animation-name: party-drop, neon-glow;
      animation-duration: 0.8s, 2.8s;
      animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1), ease-in-out;
      animation-iteration-count: 1, infinite;
      animation-delay: 0s, 0.8s;
      animation-fill-mode: forwards, none;
    }

    @keyframes heading-bounce-loop {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-6px); }
    }
    .loop-heading { display: inline-block; }
    .loop-heading.in-view {
      animation-name: party-pop, heading-bounce-loop;
      animation-duration: 0.8s, 2.6s;
      animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1), ease-in-out;
      animation-iteration-count: 1, infinite;
      animation-delay: 0s, 0.8s;
      animation-fill-mode: forwards, none;
    }

    /* ===== Mobile responsive ===== */
    @media (max-width: 860px) {
      .site-header {
        position: relative;
        padding: 14px 20px !important;
      }
      .logo-img { height: 60px !important; width: 60px !important; }
      .menu-toggle { display: flex; align-items: center; justify-content: center; }
      .site-nav {
        display: none !important;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        flex-direction: column;
        align-items: flex-start;
        gap: 16px !important;
        background: #FAF6EF;
        border-bottom: 1px solid #E7DFD1;
        padding: 20px 24px 28px;
        box-shadow: 0 8px 16px rgba(0,0,0,0.06);
      }
      .site-nav.menu-open { display: flex !important; }

      .section-pad { padding-left: 24px !important; padding-right: 24px !important; padding-top: 56px !important; padding-bottom: 56px !important; }

      .hero-section {
        flex-direction: column;
        gap: 32px !important;
        padding: 48px 24px !important;
      }
      .hero-section > div { flex: unset !important; width: 100%; }
      .hero-image-col { height: 300px !important; order: -1; }
      .hero-title { font-size: 32px !important; }
      .hero-cta-row { flex-direction: column; align-items: stretch; }
      .hero-cta-row a { text-align: center; }
      .hero-stats-row { flex-wrap: wrap; row-gap: 14px !important; }

      .features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
      .perfect-grid { grid-template-columns: 1fr !important; }

      .space-inner {
        flex-direction: column;
        gap: 28px !important;
      }
      .space-inner > div { flex: unset !important; width: 100%; }
      .space-image-box { height: 260px !important; }

      .vibe-section { height: 360px !important; }
      .vibe-section h2 { font-size: 26px !important; }

      .pricing-grid { grid-template-columns: 1fr !important; }

      .form-grid-2 { grid-template-columns: 1fr !important; }

      .footer-inner {
        flex-direction: column;
        gap: 28px !important;
      }

      .whatsapp-btn {
        width: 50px !important;
        height: 50px !important;
        bottom: 18px !important;
        right: 18px !important;
      }
    }

    @media (min-width: 861px) {
      .site-nav { order: 1; }
      .lang-select { order: 2; }
      .nav-cta-btn { order: 3; }
    }

    @media (max-width: 480px) {
      .features-grid { grid-template-columns: 1fr !important; }
    }
/* Fall special */
@keyframes fallPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(184,67,26,0.5), 0 8px 24px rgba(0,0,0,0.12); } 50% { box-shadow: 0 0 0 14px rgba(184,67,26,0), 0 8px 24px rgba(0,0,0,0.12); } }
.fall-banner { animation: fallPulse 2.2s ease-in-out infinite; }
@media (max-width: 860px) { .fall-banner { flex-direction: column !important; padding: 20px !important; } .fall-banner > span:last-child { text-align: center !important; } }
.fall-leaves { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.fall-leaf { position: absolute; top: -50px; display: block; animation: leafFall linear infinite; }
.fall-leaf-in { display: block; width: 100%; height: 100%; animation: leafSway ease-in-out infinite alternate; }
@keyframes leafFall { from { top: -50px; } to { top: calc(100% + 20px); } }
@keyframes leafSway { from { transform: translateX(-28px) rotate(-35deg); } to { transform: translateX(28px) rotate(55deg); } }
@media (prefers-reduced-motion: reduce) { .fall-leaves { display: none; } }
@media (max-width: 860px) { .fall-leaf:nth-child(even) { display: none; } }
.hero-deal { animation: fallPulse 2.2s ease-in-out infinite; }
