/* BASE & UTILS */
body { overflow-x: hidden; transition: all 0.5s ease; }
body.no-scroll { overflow: hidden; height: 100vh; }

.fade-in-up { animation: fadeInUp 1s ease-out forwards; opacity: 0; transform: translateY(20px); }
@keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }

/* Audio Btn */
#audioControl {
    position: fixed; bottom: 25px; right: 25px; z-index: 9999;
    width: 55px; height: 55px; border-radius: 50%;
    background: rgba(255,255,255,0.9); box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; color: #333; cursor: pointer; transition: transform 0.2s;
}
#audioControl:active { transform: scale(0.9); }

/* Overlays */
.overlay-screen {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 10000;
    display: flex; align-items: center; justify-content: center;
    background: #fff;
}

.bank-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,0.08); }
.bank-row:last-child { border-bottom: none; }
.bank-lbl { font-size: 0.75rem; text-transform: uppercase; color: #999; display: block; text-align: left; letter-spacing: 0.5px; }
.bank-val { font-weight: 600; color: #222; font-size: 1rem; text-align: left; word-break: break-all; }

@media (min-width: 992px) {
    .section-spacer { padding-top: 80px; padding-bottom: 80px; }
    h1.hero-title { font-size: 5rem !important; }
    p.lead { font-size: 1.5rem !important; }
    .main-wrapper { padding: 80px 100px !important; }
}
@media (max-width: 991px) {
    .section-spacer { padding-top: 50px; padding-bottom: 50px; }
}

/* TEMA 1 & 4 */
body.theme1, body.theme4 { font-family: 'Montserrat', sans-serif; }
body.theme1 h1, body.theme4 h1 { font-family: 'Great Vibes', cursive; font-size: 4rem; }
body.theme1 h2, body.theme4 h2 { font-family: 'Great Vibes', cursive; font-size: 3rem; margin-bottom: 2rem; }

.left-pane-fixed { width: 50%; height: 100vh; position: fixed; top: 0; left: 0; background-color: #000; overflow: hidden; z-index: 0; }
.right-pane-scroll { width: 50%; margin-left: 50%; min-height: 100vh; background: #fff; padding: 50px 30px; position: relative; z-index: 1; }

@media (max-width: 768px) {
    .left-pane-fixed { position: relative; width: 100%; height: 50vh; }
    .right-pane-scroll { width: 100%; margin-left: 0; padding: 30px 20px; }
}

.bg-slide-fade { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0; transition: opacity 2s ease-in-out; }
.bg-slide-fade.active { opacity: 1; }
.bg-slide-scroll { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0; transition: opacity 1s ease; }
.bg-slide-scroll.active { opacity: 1; }

/* TEMA 2 */
body.theme2 { font-family: 'Lato', sans-serif; color: #333; }
body.theme2 h1, body.theme2 h2 { font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: 2px; }
body.theme2 .btn-enter { font-family: 'Lato', sans-serif !important; font-weight: bold; }
body.theme2 .bg-parallax { width: 100%; height: 100vh; position: fixed; top: 0; left: 0; z-index: -1; background-size: cover; background-position: center; }
body.theme2 .content-box { position: relative; z-index: 1; margin-top: 10vh; padding-bottom: 100px; }
body.theme2 .floating-card { background: rgba(255, 255, 255, 0.92); max-width: 700px; margin: 0 auto 60px auto; padding: 50px 30px; border-radius: 4px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); }

/* TEMA 3 */
body.theme3 { font-family: 'Raleway', sans-serif; background: #222; color: #111; }
body.theme3 h1 { font-family: 'Playfair Display', serif; font-size: 3.5rem; line-height: 1; }
body.theme3 .btn-enter { background: #222; color: #fff; border: none; }
body.theme3 .bg-blur { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background-size: cover; background-position: center; filter: brightness(0.85); }
body.theme3 .glass-container-scroll { position: relative; z-index: 2; min-height: 100vh; padding: 80px 20px; overflow-y: auto; }
body.theme3 .glass-island { background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid rgba(255,255,255,0.4); border-radius: 25px; padding: 40px; max-width: 600px; margin: 0 auto 50px auto; box-shadow: 0 15px 35px rgba(0,0,0,0.2); text-align: center; }
body.theme3 .overlay-screen { background: #fff; color: #333; }