/**
 * ST:VATU - Master Stylesheet
 * * TABLE OF CONTENTS
 * 1. Variables & Fonts
 * 2. Base & Typography
 * 3. Utility Classes
 * 4. LCARS Structural Layout
 * 5. Components (Hero, About, Store, Gallery, Newsletter, Footer)
 * 6. Responsive Media Queries
 */

/* ==========================================================================
   1. VARIABLES & FONTS
   ========================================================================== */
:root {
    /* Authentic VOY/Late-2370s LCARS Palette */
    --bg: #000000;
    --lcars-mustard: #cc9966;
    --lcars-periwinkle: #9999cc;
    --lcars-pale-blue: #99ccff;
    --lcars-teal: #3399cc;
    --lcars-tan: #ffcc99;
    --lcars-red: #cc0000;
    --lcars-dark-blue: #336699;
    --lcars-white: #f3f3f3;
    
    /* Structural Math */
    --sidebar-width: 150px;
    --elbow-curve-width: 60px;
    --top-bar-height: 30px;
    --bottom-bar-height: 20px;
    
    --elbow-width: calc(var(--sidebar-width) + var(--elbow-curve-width));
    --top-elbow-height: calc(var(--top-bar-height) + var(--elbow-curve-width));
    --bottom-elbow-height: calc(var(--bottom-bar-height) + var(--elbow-curve-width));
    --gap: 8px;
}

@font-face {
    font-family: 'Oswald';
    font-style: normal;
    font-weight: 200 700; 
    font-display: swap;
    src: local(''), url('../assets/fonts/Oswald-VariableFont_wght.ttf') format('truetype');
}

/* ==========================================================================
   2. BASE & TYPOGRAPHY
   ========================================================================== */
* { box-sizing: border-box; user-select: none; }
html { scroll-behavior: smooth; }

body {
    margin: 0;
    background-color: var(--bg);
    color: #ccc;
    font-family: 'Oswald', sans-serif;
    overflow-x: hidden;
    display: flex;
    justify-content: center;
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--lcars-periwinkle); border-radius: 4px; }

h1 { font-size: 4rem; margin: 0 0 5px 0; line-height: 1; letter-spacing: 2px; text-shadow: 0 0 5px rgba(153, 204, 255, 0.5); }
h2 { font-size: 1.8rem; margin: 0 0 10px 0; letter-spacing: 1px; text-transform: uppercase; }
h3 { font-size: 1.6rem; border-bottom: 4px solid var(--lcars-teal); padding-bottom: 5px; margin: 50px 0 20px 0; text-transform: uppercase; }
p { font-size: 1.1rem; line-height: 1.7; margin: 0 0 20px 0; max-width: 900px; color: #b3c6ff; }

section { scroll-margin-top: 40px; }

/* ==========================================================================
   3. UTILITY CLASSES
   ========================================================================== */
.bg-mustard { background-color: var(--lcars-mustard); color: #000; }
.bg-periwinkle { background-color: var(--lcars-periwinkle); color: #000; }
.bg-pale-blue { background-color: var(--lcars-pale-blue); color: #000; }
.bg-teal { background-color: var(--lcars-teal); color: #000; }
.bg-tan { background-color: var(--lcars-tan); color: #000; }
.bg-dark-blue { background-color: var(--lcars-dark-blue); color: #fff; }
.bg-red { background-color: var(--lcars-red); color: #fff; }

.txt-mustard { color: var(--lcars-mustard); }
.txt-periwinkle { color: var(--lcars-periwinkle); }
.txt-pale-blue { color: var(--lcars-pale-blue); }
.txt-teal { color: var(--lcars-teal); }
.txt-tan { color: var(--lcars-tan); }
.txt-white { color: #fff; }

/* Shared Button Logic */
.action-btn {
    text-transform: uppercase; border: none; cursor: pointer;
    transition: transform 0.1s, filter 0.2s, background 0.3s ease;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    font-weight: bold; font-family: 'Oswald', sans-serif;
}
.action-btn:hover { filter: brightness(1.2); transform: translateY(-2px); }
.action-btn:active { transform: translateY(0); filter: brightness(1.5); }

/* ==========================================================================
   4. LCARS STRUCTURAL LAYOUT
   ========================================================================== */
.lcars-app {
    width: 100%; max-width: 1400px; min-height: 100vh;
    padding: 2vw; display: flex; flex-direction: column;
}

.lcars-row { display: flex; width: 100%; }
.lcars-header { margin-bottom: var(--gap); align-items: flex-start; }
.lcars-body { flex: 1; margin-bottom: var(--gap); }
.lcars-footer { align-items: flex-end; }

/* Top Elbow & Bars */
.lcars-elbow {
    width: var(--elbow-width); height: var(--top-elbow-height);
    border-top-left-radius: var(--top-elbow-height);
    position: relative; display: flex; align-items: flex-end; justify-content: flex-end;
    padding: 10px 15px; cursor: pointer; transition: filter 0.1s; flex-shrink: 0;
}
.lcars-elbow:active { filter: brightness(1.5); }
.lcars-elbow::after {
    content: ''; position: absolute; bottom: 0; right: 0;
    width: var(--elbow-curve-width); height: var(--elbow-curve-width);
    background-color: var(--bg); border-top-left-radius: var(--elbow-curve-width);
}

.elbow-text {
    font-size: 28px; font-weight: 500; position: relative; z-index: 2;
    margin-right: calc(var(--elbow-curve-width) + 5px); line-height: 1; text-align: end;
}

.lcars-bar {
    height: var(--top-bar-height); margin-left: var(--gap);
    display: flex; align-items: center; justify-content: flex-end;
    padding: 0 15px; font-size: 18px; font-weight: 500; text-transform: uppercase;
}
.top-bar-1 { flex: 1; font-weight: 600; letter-spacing: 1px; } 
.top-bar-2 { width: 120px; flex-shrink: 0; }
.top-bar-3 { width: 80px; flex-shrink: 0; border-top-right-radius: 15px; border-bottom-right-radius: 15px; }

/* Sidebar & Navigation */
.lcars-sidebar { width: var(--sidebar-width); flex-shrink: 0; background-color: var(--lcars-periwinkle); position: relative; }
.lcars-sticky-nav { position: sticky; top: 20px; display: flex; flex-direction: column; gap: var(--gap); background-color: var(--bg); z-index: 100; }
.lcars-sticky-nav::before, .lcars-sticky-nav::after { content: ''; position: absolute; left: 0; width: 100%; height: var(--gap); background-color: var(--bg); }
.lcars-sticky-nav::before { top: calc(var(--gap) * -1); }
.lcars-sticky-nav::after { bottom: calc(var(--gap) * -1); }

.lcars-btn {
    height: 90px; display: flex; justify-content: flex-end; align-items: flex-end;
    padding: 5px 15px; font-size: 20px; font-weight: 500; cursor: pointer;
    text-transform: uppercase; transition: background-color 0.1s, color 0.1s;
}
.lcars-btn:hover { filter: brightness(1.2); }
.lcars-btn:active { background-color: #fff !important; color: #000 !important; }

/* Language Switcher */
.lcars-lang-panel { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; margin-top: 10px; }
.lang-label { font-size: 14px; letter-spacing: 1px; margin-right: 15px; margin-bottom: 2px; }
.lang-options { display: flex; gap: var(--gap); width: 100%; }
.lang-btn {
    flex: 1; height: 25px; display: flex; align-items: center; justify-content: center;
    font-size: 15px; font-weight: 600; cursor: pointer; transition: all 0.1s;
}
.lang-btn:hover { filter: brightness(1.3); }
.lang-btn.active { background-color: #fff !important; color: #000 !important; }

.spine-bottom-text { position: absolute; bottom: 10px; right: 15px; font-size: 24px; font-weight: 500; color: #000; }

/* Main Content Area */
.lcars-content {
    flex: 1; margin-left: calc(var(--elbow-curve-width) + var(--gap));
    display: flex; flex-direction: column; padding: 0 20px 40px 0;
}

/* Bottom Elbow */
.lcars-elbow-bottom {
    width: var(--elbow-width); height: var(--bottom-elbow-height);
    border-bottom-left-radius: var(--bottom-elbow-height); position: relative; display: flex;
    align-items: flex-start; justify-content: flex-end; padding: 5px 15px; flex-shrink: 0;
}
.lcars-elbow-bottom::after {
    content: ''; position: absolute; top: 0; right: 0;
    width: var(--elbow-curve-width); height: var(--elbow-curve-width);
    background-color: var(--bg); border-bottom-left-radius: var(--elbow-curve-width);
}
.bottom-bar { height: var(--bottom-bar-height); margin-left: var(--gap); }
.bottom-bar-1 { flex: 1; }
.bottom-bar-2 { width: 150px; flex-shrink: 0; border-top-right-radius: 10px; border-bottom-right-radius: 10px; }

/* ==========================================================================
   5. COMPONENTS
   ========================================================================== */

/* --- HERO --- */
.hero-content { display: flex; flex-direction: column; justify-content: center; align-items: center; }
.hero-logo {
    width: 100%; height: auto; margin-bottom: 10px; object-fit: cover; object-position: 50% 50%;
    filter: drop-shadow(0px 5px 15px rgba(0, 0, 0, 0.8)); animation: fadeInLogo 2s ease-in-out;
}
@keyframes fadeInLogo { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.short-cta { display: flex; gap: 15px; margin: 20px 0 40px 0; }
.short-cta .action-btn { padding: 10px 30px; font-size: 22px; border-radius: 20px; border-top-left-radius: 0; }
.btn-buy { background-color: var(--lcars-red); color: #fff; animation: pulse-red 2s infinite alternate;  padding: 12px 35px; font-size: 24px; border-radius: 25px; border-top-left-radius: 0; }
.btn-trailer { background-color: var(--lcars-teal); color: #000; }
@keyframes pulse-red { 0% { box-shadow: 0 0 5px rgba(204, 0, 0, 0.3); } 100% { box-shadow: 0 0 15px rgba(204, 0, 0, 0.8); } }

/* --- ABOUT SECTION --- */
.about-container { max-width: 1200px; margin: 0 auto; }
.edition-switch { display: flex; width: 100%; gap: 5px; margin-bottom: 0; }
.switch-btn {
    flex: 1; text-align: center; background: #111; color: #888;
    border: 3px solid #333; border-bottom: none; padding: 20px; text-transform: uppercase;
    font-size: 1.6rem; letter-spacing: 1px; cursor: pointer; border-radius: 20px 20px 0 0; transition: all 0.2s;
}
.switch-btn#basegame.active { border-color: var(--lcars-pale-blue); background-color: var(--lcars-pale-blue); color: black; }
.switch-btn#expansions.active { border-color: var(--lcars-mustard); background-color: var(--lcars-mustard); color: black; }
.switch-btn.active { border-bottom: 3px solid var(--bg); }
.switch-btn:hover:not(.active) { background: #222; color: #ccc; }

.edition-switch-content { min-height: 250px; }
.about-pane { padding: 10px; padding-top: 40px; animation: fadeInPane 0.4s ease-out forwards; border-radius: 0 0 10px 10px; }
.about-pane.active#about-basegame { border: 3px solid var(--lcars-pale-blue); }
.about-pane.active#about-expansions { border: 3px solid var(--lcars-mustard); }

.about-split-layout { display: flex; gap: 40px; align-items: flex-start; justify-content: center; }
.about-split-media { flex: 1.2; }
.about-split-text { flex: 1; text-align: left; }
.about-split-text .about-title { font-size: 2.5rem; color: var(--lcars-pale-blue); margin-top: 0; margin-bottom: 20px; text-transform: uppercase; width: 100%;}
.about-split-text .about-desc { font-size: 1.1rem; color: #ccc; line-height: 1.6; margin-bottom: 20px; display: block; }
.about-split-text .action-btn { background: var(--lcars-pale-blue); color: black; padding: 15px 30px; font-size: 1.2rem; border-radius: 10px; }

.feature-row { display: flex; align-items: start; gap: 50px; width: 100%; }
.feature-row .about-trailer { aspect-ratio: 2.2 / 1; }
#about-basegame .dlc-alternating-stack h3 { color: var(--lcars-pale-blue); }

.expansion-pass-hero {
    display: flex; flex-direction: row; align-items: center; gap: 40px; margin-bottom: 30px; margin-top: 0;
    background: linear-gradient(135deg, rgba(255, 153, 0, 0.1) 0%, rgba(0,0,0,0) 100%); text-align: left;
}
.expansion-pass-hero .pass-info { flex: 2; }
.expansion-pass-hero .pass-info .about-title { color: var(--lcars-mustard); font-size: 2.5rem; margin-top: 0; margin-bottom: 10px; border-bottom-color: var(--lcars-mustard); }
.expansion-pass-hero .pass-info .about-desc { font-size: 1.1rem; }
.expansion-pass-hero .pass-cta { flex: 1; min-width: 250px; }
.expansion-pass-hero .action-btn { background: var(--lcars-mustard); padding: 15px 30px; font-size: 1.2rem; border-radius: 10px; }

.about-trailer {
    width: 100%; aspect-ratio: 16 / 9; background: #000; border: 1px solid #444; border-radius: 5px;
    overflow: hidden; margin-bottom: 25px; box-shadow: 0 5px 15px rgba(0,0,0,0.5);
}
.about-trailer video { width: 100%; height: 100%; object-fit: cover; display: block; }

.exp-status { font-size: 0.8rem; text-transform: uppercase; margin-bottom: 15px; display: inline-block; padding: 3px 8px; border-radius: 3px; font-weight: bold; }
.status-unlocked { background: rgba(153, 204, 255, 0.1); color: var(--lcars-blue); border: 1px solid var(--lcars-blue); }
.blink { animation: blinker 1.5s linear infinite; font-weight: bold; background: rgba(204, 0, 0, 0.1); border: 1px solid #cc0000; color: #cc0000; }
@keyframes blinker { 50% { opacity: 0; } }

.about-cta.edition-card {
    border-top-left-radius: 40px; border-bottom-right-radius: 40px; padding: 30px; display: flex; flex-direction: column; 
    background: linear-gradient(135deg, rgba(204, 153, 102, 0.05) 0%, rgba(0,0,0,0) 100%); margin-top: 20px;
}

.btn-small-block {
    display: block; width: 100%; box-sizing: border-box; border-radius: 10px; text-transform: uppercase;
    font-size: 1.2rem; padding: 15px; background: var(--lcars-mustard); color: black;
    text-align: center; text-decoration: none; font-weight: bold; transition: background 0.3s;
}
.btn-small-block:hover { filter: brightness(1.2); }
.disabled-btn { background: #222; color: #555; cursor: not-allowed; border: 1px dashed #444; }

.dlc-alternating-stack { display: flex; flex-direction: column; gap: 80px; margin-top: 40px; }
#about-expansions .dlc-alternating-stack h3 {color: var(--lcars-mustard); border-bottom-color: var(--lcars-mustard); }

.dlc-row { display: flex; align-items: center; gap: 50px; width: 100%; }
.dlc-media-side { flex: 1.2; width: 100%; }
.dlc-text-side { flex: 1; text-align: left; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.dlc-text-side .about-title { font-size: 2rem; margin-top: 0; margin-bottom: 15px; text-transform: uppercase; width: 100%; }
.dlc-text-side .about-title.released::after { content: "Available Now"; display:block; font-size: 1.2rem; color: #f3f3f3; font-weight: bold; width: 100%;}
.dlc-text-side .about-title.coming-soon::after{ content: "Coming Soon"; display:block; font-size: 1.2rem; color: var(--lcars-red); font-weight: bold; width: 100%;}
.dlc-text-side .about-cta.edition-card { width: 100%; box-sizing: border-box; margin-top: 15px; }
.dlc-text-side .about-features-title { font-size: 1.1rem; line-height: 1.2; color: var(--lcars-mustard); }
.dlc-text-side .about-features p{ font-size: 1rem; line-height: 1.2; color: #ccc; }
.dlc-text-side .about-features p::before{ content: "• "; color: var(--lcars-mustard); font-weight: bold; margin-right: 5px; }

.classified-row { opacity: 0.75; transition: opacity 0.3s ease; }
.classified-row:hover { opacity: 1; }
.classified-row .dlc-text-side .about-title { letter-spacing: 1px; }
.encrypted-video {
    display: flex; align-items: center; justify-content: center;
    background: repeating-linear-gradient(0deg, #333, #333 2px, #555 2px, #555 4px);
    color: #cc0000; font-size: 1.2rem; letter-spacing: 2px; opacity: 0.6;
}
.encrypted-video img {
    filter:grayscale(1)
}

.dlc-store-link { margin-top: 20px; max-width: 280px; border-radius: 10px; background: var(--lcars-mustard); color: #000; font-weight: bold; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); transition: transform 0.2s ease; }
.dlc-store-link:hover { transform: translateY(-2px); }
.mobile-only *{ display: none; } /* Hide mobile-only elements by default */
@media (max-width: 768px) {
    .mobile-only *{ display: block; }
}

/* --- STORE & EXPANSIONS --- */
.editions-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 30px; margin-bottom: 40px; }
.edition-card {
    border: 3px solid var(--lcars-mustard); border-top-left-radius: 40px; border-bottom-right-radius: 40px;
    padding: 30px; display: flex; flex-direction: column; background: linear-gradient(135deg, rgba(204, 153, 102, 0.05) 0%, rgba(0,0,0,0) 100%);
}
.edition-card.deluxe { border-color: var(--lcars-tan); background: linear-gradient(135deg, rgba(255, 204, 153, 0.1) 0%, rgba(0,0,0,0) 100%); }
.edition-card h4 { font-size: 2.2rem; margin: 0 0 1rem 0; color: var(--lcars-pale-blue); text-transform: uppercase; }
.edition-card.deluxe h4 { color: var(--lcars-tan); }

.edition-card.captains { border-color: var(--lcars-white); background: linear-gradient(135deg, rgba(255, 204, 153, 0.1) 0%, rgba(0,0,0,0) 100%); }
.edition-card.captains h4 { color: var(--lcars-white); }


.edition-contents { list-style: none; padding: 0; margin: 0 0 30px 0; flex: 1; }
.edition-contents li { font-size: 1.2rem; margin-bottom: 10px; padding-bottom: 5px; border-bottom: 1px solid #334455; display: flex; align-items: center; }
.edition-contents li.feature-locked { color: var(--lcars-dark-blue); }
.edition-contents li.feature-unlocked::before { content: "■"; color: var(--lcars-teal); margin-right: 10px; font-size: 0.8rem; }
.edition-contents li.feature-locked::before { content: "✖"; color: var(--lcars-dark-blue); margin-right: 10px; font-size: 0.8rem; }

.platform-select-wrapper { margin-bottom: 20px; display: flex; flex-direction: column; gap: 5px; }
.platform-select-wrapper label { font-size: 1rem; color: var(--lcars-periwinkle); text-transform: uppercase; font-weight: bold;}
.lcars-select {
    appearance: none; background-color: var(--bg); color: var(--lcars-mustard); border: 2px solid var(--lcars-periwinkle);
    padding: 12px 15px; font-size: 1.2rem; font-family: 'Oswald', sans-serif; cursor: pointer; text-transform: uppercase;
    border-radius: 10px; border-top-left-radius: 0; outline: none; transition: border-color 0.2s; margin-bottom: 10px;
}
.lcars-select:focus, .lcars-select:hover:not(:disabled) { border-color: var(--lcars-pale-blue); color: var(--lcars-pale-blue); }
.lcars-select:disabled { cursor: not-allowed; opacity: 0.6; }

.dlc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-bottom: 40px; }
.dlc-card {
    border: 2px solid var(--lcars-periwinkle); border-top-left-radius: 30px; border-bottom-right-radius: 30px;
    padding: 20px; display: flex; flex-direction: column; background: linear-gradient(135deg, rgba(153, 153, 204, 0.1) 0%, rgba(0,0,0,0) 100%);
    transition: transform 0.2s, border-color 0.2s, opacity 0.2s;
}
.dlc-card.revealed-card:hover { transform: translateY(-5px); border-color: var(--lcars-pale-blue); }
.dlc-card.classified-card { border-color: #555; background: linear-gradient(135deg, rgba(204, 0, 0, 0.05) 0%, rgba(0,0,0,0) 100%); }
.dlc-card.classified-card .dlc-desc {color: #555 !important}
.dlc-card.classified-card .dlc-image { filter: grayscale(100%) brightness(0.5); border-color: #555; }
.dlc-image { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 15px; border-top-left-radius: 0; border: 2px solid var(--lcars-teal); margin-bottom: 15px; background-color: var(--lcars-dark-blue); transition: filter 0.3s; }
.dlc-content { display: flex; flex-direction: column; flex: 1; }
.dlc-card h4 { font-size: 1.6rem; margin: 0 0 5px 0; color: var(--lcars-pale-blue); text-transform: uppercase; line-height: 1.2; }
.dlc-card.classified-card h4 { color: #555; }
.dlc-desc { flex: 1; font-size: 1rem; color: #99ccff; margin-bottom: 20px; font-family: 'Arial', sans-serif; line-height: 1.5; }

/* --- GALLERY --- */
/* Gallery Layout */
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 15px;
    margin-top: 20px;
}

.gallery-item {
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border: 1px solid #00f0ff33;
    cursor: pointer;
    transition: all 0.3s ease;
}

.gallery-item:hover {
    border-color: #00f0ff;
    box-shadow: 0 0 12px rgba(0, 240, 255, 0.6);
    transform: scale(1.03);
}

/* Lightbox Base Overlay */
.lightbox {
    display: none; 
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(5, 8, 14, 0.95);
    align-items: center;
    justify-content: center;
    user-select: none;
}

.lightbox-content {
    max-width: 85vw;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Lightbox Image Container scaling */
#lightbox-img {
    max-width: 100%;
    max-height: 70vh;
    object-fit: contain;
    border: 2px solid #00f0ff;
    box-shadow: 0 0 30px rgba(0, 240, 255, 0.3);
}

#lightbox-caption {
    color: #00f0ff;
    margin-top: 15px;
    font-family: monospace;
    font-size: 1.2rem;
    letter-spacing: 1px;
    text-shadow: 0 0 5px rgba(0, 240, 255, 0.5);
}

/* Buttons and Controls */
.close-btn {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #ffffff;
    font-size: 45px;
    cursor: pointer;
    transition: color 0.2s;
}
.close-btn:hover { color: #00f0ff; }

.nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.6);
    color: white;
    border: 1px solid #00f0ff55;
    font-size: 30px;
    padding: 15px 20px;
    cursor: pointer;
    transition: all 0.2s;
    border-radius: 4px;
}
.nav-btn:hover {
    background: #00f0ff22;
    color: #00f0ff;
    border-color: #00f0ff;
}
.prev-btn { left: 20px; }
.next-btn { right: 20px; }

/* --- NEWSLETTER --- */
#newsletter { padding-top: 80px; }
.newsletter-card { max-width: 600px; margin: 0 auto 60px auto; border-color: var(--lcars-teal); }
.newsletter-card h4 { color: var(--lcars-teal); }
.lcars-form { display: flex; flex-direction: column; gap: 20px; margin-top: 20px; }

.lcars-input {
    width: 100%; box-sizing: border-box; background-color: rgba(0, 0, 0, 0.5); color: var(--lcars-pale-blue); 
    border: 2px solid var(--lcars-periwinkle); padding: 15px; font-size: 1.2rem; font-family: 'Oswald', sans-serif; 
    border-radius: 10px; border-top-left-radius: 0; outline: none; transition: border-color 0.2s, box-shadow 0.2s;
}
.lcars-input:focus { border-color: var(--lcars-teal); box-shadow: 0 0 10px rgba(51, 204, 204, 0.2); }
.lcars-input::placeholder { color: rgba(208, 231, 255, 0.4); text-transform: uppercase; }

.consent-group { display: flex; flex-direction: column; gap: 15px; background: rgba(10, 10, 15, 0.6); padding: 20px; border-radius: 8px; border-left: 3px solid var(--lcars-periwinkle); }
.lcars-checkbox-label { display: flex; align-items: flex-start; gap: 15px; cursor: pointer; position: relative; }
.lcars-checkbox-label input[type="checkbox"] { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; }
.custom-checkbox { min-width: 20px; height: 20px; background-color: #111; border: 2px solid var(--lcars-periwinkle); border-radius: 3px; display: inline-block; position: relative; transition: background-color 0.2s, border-color 0.2s; margin-top: 2px; }
.custom-checkbox::after { content: ""; position: absolute; display: none; left: 6px; top: 2px; width: 5px; height: 10px; border: solid black; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.lcars-checkbox-label input[type="checkbox"]:checked ~ .custom-checkbox { background-color: var(--lcars-teal); border-color: var(--lcars-teal); }
.lcars-checkbox-label input[type="checkbox"]:checked ~ .custom-checkbox::after { display: block; }
.consent-text { font-size: 0.95rem; color: #bbb; line-height: 1.4; font-family: 'Arial', sans-serif; }
.consent-text a { color: var(--lcars-teal); text-decoration: none; font-weight: bold; }
.consent-text a:hover { text-decoration: underline; }

.newsletter-submit { justify-content: center; width: 100%; margin-top: 10px; background: var(--lcars-teal); color: #000; border-radius: 10px; padding: 15px; }
.newsletter-submit:hover { background: var(--lcars-pale-blue); }

.status-msg { padding: 15px; border-radius: 5px; font-family: 'Arial', sans-serif; font-weight: bold; text-align: center; margin-top: 10px; }
.status-msg.success { background-color: rgba(51, 204, 204, 0.1); border: 1px solid var(--lcars-teal); color: var(--lcars-teal); }
.status-msg.error { background-color: rgba(204, 0, 0, 0.1); border: 1px solid #cc0000; color: #ff3333; }

/* --- FOOTER / SOCIAL / LEGALS --- */
.social-links { display: flex; gap: 20px; justify-content: center; }
.social-links a { color: var(--lcars-periwinkle); text-decoration: none; font-family: 'Oswald'; font-size: 1.2rem; text-transform: uppercase; padding: 5px 15px; border: 1px solid var(--lcars-periwinkle); border-radius: 15px; border-bottom-right-radius: 0; transition: background 0.2s; }
.social-links a:hover { background: var(--lcars-periwinkle); color: #000; }

.footer-legals { margin-top: 60px; padding-top: 20px; border-top: 2px solid var(--lcars-dark-blue); display: flex; flex-direction: column; gap: 20px; font-family: 'Arial', sans-serif; justify-content: center; align-items: center; text-align: center; }
.logos-wrapper { display: flex; gap: 30px; justify-content: center; align-items: center; flex-wrap: wrap; }
.logos-wrapper img { object-fit: contain; max-width: 100%; max-height: 80px; }
.muted-text { font-size: 0.8rem; color: #446688; max-width: 800px; line-height: 1.5; padding: 0 15px; }
.link-group { display: flex; gap: 15px; margin-top: 10px; justify-content: center; align-items: center; flex-wrap: wrap; }
.link-group a { color: var(--lcars-teal); text-decoration: none; font-weight: bold; transition: color 0.2s; }


/* ==========================================================================
   6. RESPONSIVE MEDIA QUERIES
   ========================================================================== */

@media (max-width: 900px) {
    .about-split-layout { flex-direction: column; }
    
    .dlc-row, .dlc-row:nth-child(even), 
    .feature-row, .feature-row:nth-child(even) {
        flex-direction: column; gap: 25px;
    }
    
    .dlc-store-link { max-width: 100%; }
}

@media (max-width: 800px) {
    :root { --sidebar-width: 90px; --elbow-curve-width: 40px; --top-bar-height: 25px; --bottom-bar-height: 15px; }
    .lcars-bar { font-size: 14px; padding: 0 10px; }
    h1 { font-size: 2.5rem; } h2 { font-size: 1.2rem; } p { font-size: 1rem; }
    .lcars-btn { font-size: 14px; height: 50px; padding: 5px 5px;}
    .elbow-text { font-size: 16px; margin-right: calc(var(--elbow-curve-width) + 2px); }
    .short-cta { flex-direction: column; }
    .action-btn { justify-content: center; }
    .editions-container, .dlc-grid { grid-template-columns: 1fr; }
    .social-links { flex-wrap: wrap; }
    .spine-bottom-text { font-size: 16px; bottom: 5px; right: 10px; }
    .lang-label { font-size: 10px; margin-right: 5px; }
    .lang-btn { font-size: 12px; height: 20px; padding: 0 5px; }
    .expansion-pass-hero .about-split-layout { flex-direction: column-reverse;}
    .about-trailer { margin-bottom: 0px;}
}

@media (max-width: 768px) {
    .expansion-pass-hero { flex-direction: column; align-items: flex-start; gap: 20px; }
    .expansion-pass-hero .pass-cta { width: 100%; }
    .switch-btn { font-size: 1.2rem; padding: 15px 10px; } 
}

@media (max-width: 600px) {
    .logos-wrapper { flex-direction: column; gap: 30px; }
    .logos-wrapper a { display: flex; justify-content: center; width: 100%; }
    .logos-wrapper img { height: auto !important; max-height: 150px; max-width: 80%; }
}