/* --- 1. GLOBAL SETTINGS --- */
body {
    background-color: #FFCC99;
    color: #993300;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 18px;
    line-height: 1.5;
    margin: 0;
    padding: 10px;
}

a { color: #CC0000; text-decoration: none; }
a:hover { color: #FF0000; text-decoration: underline; }
a:visited { color: #666666; }

.container {
    max-width: 960px;
    margin: 0 auto;
    background-color: #FFCC99;
    padding-bottom: 40px;
    overflow-x: hidden; /* Prevents horizontal scroll on mobile */
}

/* --- 2. HEADER & NAVIGATION --- */
header { text-align: center; margin-bottom: 20px; }
.header-logo { max-width: 100%; height: auto; }
.intro-quote { font-size: 20px; font-style: italic; margin: 10px 0; }

/* The Page Title (Restored to original specs) */
.page-title { 
    font-size: 24px; 
    font-style: italic; 
    margin: 20px 0; 
    font-weight: bold; 
}

.nav-container { margin-top: 15px; position: relative; }
.nav-links { font-size: 18px; line-height: 1.8; }

.hamburger {
    display: none;
    background: none;
    border: 2px solid #993300;
    color: #993300;
    font-size: 24px;
    cursor: pointer;
    padding: 5px 10px;
    margin: 0 auto 10px auto;
    border-radius: 5px;
}

/* --- 3. HOME PAGE LAYOUT --- */
.intro-wrapper {
    display: flex;
    flex-direction: row;
    gap: 30px;
    align-items: flex-start;
    margin-bottom: 30px;
}

.intro-text {
    flex: 1;
    min-width: 0;
}

.jukebox-sidebar {
    width: 380px;
    flex-shrink: 0;
    background-color: #FFDFA8;
    border: 2px solid #FFC997;
    padding: 10px;
    box-sizing: border-box;
}

.jukebox-inner {
    display: flex; flex-direction: row; align-items: flex-end;
    gap: 10px; text-align: right; font-size: 14px; line-height: 1.3;
}

/* --- 4. PROFILE PAGE LAYOUT (2-COLUMNS) --- */
/* This restores the side-by-side text for Simon, Sally, etc. */
.story-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
}
.story-col {
    flex: 1;
    min-width: 300px; /* Stacks on mobile if narrower than this */
}

/* --- 5. GENERAL LAYOUT --- */
p { text-align: justify; margin-bottom: 15px; }
.float-left { float: left; margin-right: 20px; margin-bottom: 10px; }
.float-right { float: right; margin-left: 20px; margin-bottom: 10px; }
.center-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 20px; margin: 20px 0; }
.clearfix::after { content: ""; display: table; clear: both; }

/* Image Blowout Fix */
img { 
    max-width: 100% !important; 
    height: auto; 
    vertical-align: bottom; 
}

iframe, video { aspect-ratio: 16 / 9; max-width: 100%; height: auto; }

.artist-section {
    clear: both; margin-bottom: 40px; padding-top: 20px;
    border-top: 1px solid rgba(153, 51, 0, 0.3);
}
.video-float-fix { float: left; max-width: 480px; margin-top: 10px; }

/* Media Section (Kirk's page) */
.media-section { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 30px; }
.media-col-left { flex: 2; min-width: 300px; }
.media-col-right { flex: 1; min-width: 250px; text-align: center; }
.video-wrapper { position: relative; padding-bottom: 56.25%; height: 0; margin: 15px 0; }
.video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* --- 6. LIGHTBOX --- */
#lightbox {
    display: none; position: fixed; z-index: 2000; 
    top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0,0,0,0.9); text-align: center;
    cursor: pointer;
}
#lightbox img {
    max-width: 95%; max-height: 85%; 
    margin-top: 40px; border: 4px solid #fff; box-shadow: 0 0 20px #000;
}
#lightbox-close {
    position: absolute; top: 10px; right: 20px; 
    color: #fff; font-size: 50px; font-weight: bold;
}
#lightbox-caption { color: #fff; margin-top: 15px; font-size: 18px; }

/* --- 7. BACK TO TOP BUTTON --- */
#backToTopBtn {
    display: none; position: fixed; bottom: 30px; right: 20px; z-index: 99;
    font-size: 24px; border: none; outline: none; background-color: #993300;
    color: white; cursor: pointer; width: 50px; height: 50px; 
    border-radius: 50%; opacity: 0.7; line-height: 50px; text-align: center; padding: 0;
}
#backToTopBtn:hover { background-color: #CC0000; opacity: 1; }

/* --- 8. SOCIAL ICONS --- */
.social-icons { margin-top: 10px; }
.social-icon {
    display: inline-block; width: 32px; height: 32px; margin: 0 5px;
    fill: #993300; transition: fill 0.3s ease;
}
.social-icon:hover { fill: #CC0000; }

/* --- 9. MOBILE RESPONSIVE RULES --- */
@media screen and (max-width: 850px) {
    /* Header */
    header { padding: 0 10px; }
    
    /* Nav */
    .hamburger { display: block; }
    .nav-links { 
        display: none; flex-direction: column; 
        background-color: #FFDFA8; padding: 10px; border: 1px solid #FFC997;
    }
    .nav-links.active { display: flex; }
    .nav-links a { padding: 10px 0; border-bottom: 1px solid rgba(153, 51, 0, 0.2); display: block; }
    .nav-links span { display: none; }

    /* Layout */
    .intro-wrapper { flex-direction: column; }
    .intro-text { width: 100%; }
    
    /* Hide Sidebar on Mobile */
    .jukebox-sidebar { display: none; }

    /* Reset Floats for Mobile Flow */
    .float-left, .float-right, .video-float-fix {
        float: none; width: 100%; margin: 20px 0; text-align: center;
    }
    .center-row { gap: 10px; }
    .video-float-fix { width: 100% !important; }
}