@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Roboto", sans-serif;
}

.grey {
    color: rgb(108, 108, 108);
    font-size: 16px;
    font-weight: 350;
}

li {
    list-style-type: none;
}

section {
    background-color: rgb(245, 245, 245);
    transition: all 300ms ease;
     
}
.click {
    cursor: pointer;
    transition: all 300ms ease;
}

.click:hover {
    transform: scale(1.1);
}
.click:active {
    transform: scale(.8);
}

p {
    line-height: 1.5;
    font-size: 16px;
}

a {
    text-decoration: none;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 75px;
}

.modal--open .modal {
  z-index: 60;
  box-shadow: 0 20px 80px 0 rgb(0, 0, 0.45);
  visibility: visible;

}


.container {
   padding: 50px 0;
}

.row {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 12px;

}

button {
    cursor: pointer;
}

.title {
    font-size: 100px;
    margin-bottom: 12px;
    text-align: left;
    line-height: 1;

}

input, textarea {
   width: 100%;
   background-color: #242424; 
   color: white;
   outline: none;
   border: 2px solid #c0c4cc;
   border-top: none;
   border-left: none;
   border-right: none;
   height: 40px;
   transition: all 300ms ease;
}
input:hover, textarea:hover {
border-color: #dcdfe6;
}

input:focus, textarea:focus {
 border-color: #e26147;
}

textarea {
    resize: vertical;
}
.lab {
    font-size: 14px;
    font-weight: bold;
    
}

.form__item--lab {
    color: white; /* This makes the "Name", "Email" labels white */
    display: block;
    margin-bottom: 4px;
}
.input {
   width: 100%;
   background-color: #242424; 
   color: white;
   outline: none;
   border: none; /* Reset all borders first */
   border-bottom: 1px solid #c0c4cc; /* Re-apply only the bottom border */
   padding: 8px 0; /* Add some space so the text isn't touching the line */
}


.link__hover-effect{
    position: relative;
}

.link__hover-effect--white:after {
    background-color: #fff;
}


.link__hover-effect--black:after {
    background-color: #242424;
}

.link__hover-effect:after {
    content: "";
    position: absolute;
    bottom: -3px;
    height: 3px;
    width: 0;
    right: 0;
    background-color: black;
    transition: all 300ms ease;
}

.link__hover-effect:hover:after {
    left: 0;
    width: 100%;
}

.orange {
    color: #e26147;
}

.scroll {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
}

.scroll__icon {
    width: 20px;
    height: 30px;
    border: 2px solid #242424;
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.scroll__icon:after {
    content: "";
    background-color: #242424;
    width: 4px;
    height: 6px;
    border-radius: 2px;
    animation: scroll 1000ms infinite alternate-reverse;
}

@keyframes scroll {
    0% {
      transform: translateY(3px);  
    }
    100% {
        transform: translateY(-3px);
    }
}

/*  NAVIGATION */

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    height: 75px;
    padding: 0 40px;
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: rgba(245, 245, 245, 0.97);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

#personal-logo {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    box-shadow: 5px 5px 20px rgba(0, 0, 0, .5);
}

.nav__link--list {
    display: flex;
}
.nav__link {
    margin: 0 12px;
    border-radius: 50%;
    
}
.nav__link--anchor {
    font-size: 16px;
    color: #242424;
    font-weight: 700;
}

.fa-solid {
    font-size: 18px;
}

.fa-flip {
    /* Default is usually 1s or 2s. Higher = Slower */
    --fa-animation-duration: 4s; 
}

nav,
.scroll,
.header {
  opacity: 1;
  visibility: visible;
  transition: all 600ms 400ms;
}

.modal--open nav,
.modal--open .scroll,
.modal--open .header {
  opacity: 0;
  visibility: hidden;
  transition: all 600ms 200ms;   
}


/* 1. Pull all section content forward */
.label__description,
.label__row,
.entertainment__bookings,
.schedule,
.newsletter,
#foot {
    position: relative; /* Required for z-index to work */
    z-index: 10;        /* Higher than shapes (which are at 1) */
}

/* 2. Specific fix for the Package Cards */
.packages__container {
    position: relative;
    z-index: 11; /* Slightly higher just to be safe */
}

/* 3. Keep the Audio Cockpit on the absolute top */
.audio-toggle {
    z-index: 1000 !important;
}
/* Lift the shop/hoodie section and the cards forward */
.shop, 
.hoodie__container, 
.hoodie__card,
.hoodie__card--img {
    position: relative; /* Essential for z-index to work */
    z-index: 10;        /* Higher than the shapes (1) */
}

/* Ensure the hoodie description/text inside the card is also on top */
.hoodie__details {
    position: relative;
    z-index: 11;
}


/* Ensure the contact button stays on the absolute top */
.mail__btn {
    position: fixed;
    z-index: 999;
}


/* Target the text colors */
.dark-theme .label__title,
.dark-theme .label__sub-title,
.dark-theme .label__para,
.dark-theme .label__purpose,
.dark-theme .label__purpose--description,
.dark-theme .label__description--para,
.dark-theme .purpose,
.dark-theme .label__pillar--title,
.dark-theme .label__pillar--para,
.dark-theme .section__title,
.dark-theme .nav__link--anchor,
.dark-theme .header__para,
.dark-theme .fa-adjust,
.dark-theme .label__row {
    color: white !important;
}

/* Target the background of the sections */
.dark-theme #label,
.dark-theme section {
    background-color: #242424;
}

.dark-theme nav {
    background-color: rgba(36, 36, 36, 0.97);
}

.dark-theme .scroll__icon {
    border-color: white;
}
.dark-theme .scroll__icon:after,
.dark-theme .link__hover-effect--black:after {
    background-color: white;
}


.dark-theme .mail__btn {
    background-color: black;
}

/* 1. Change the Modal Background */
.dark-theme #cart-modal {
    background-color: #242424;
    color: white;
}

/* 2. Change text colors for titles and buttons */
.dark-theme .cart-header h2,
.dark-theme .close-btn {
    color: white;
}

/* 3. Adjust borders so they are visible on dark background */
.dark-theme .cart-header {
    border-bottom: 2px solid rgba(255, 255, 255, 0.1);
}

.dark-theme .cart-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* 4. Update the Tab color (optional, if you want it to pop) */
.dark-theme #cart-tab {
    background-color: black;
    color: white
}




/*  LANDING PAGE */

#landing-page {
    position: relative; /* Essential for absolute shapes */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow: hidden; /* Prevents shapes from creating scrollbars */
}

.header {
    /* REMOVE: position: absolute, top, left, transform */
    flex-grow: 1; /* Makes header take up remaining space */
    display: flex;
    align-items: center; /* Centers content vertically */
    justify-content: center; /* Centers content horizontally */
    width: 100%;
    
}
.header__para {
    font-size: 24px;
    line-height: 1.75;
    max-width: 450px;
}

.social__list {
    margin-top: 16px;
    display: flex;

}
.social__link {
    background-color: #e26147;
    color: white;
    padding: 6px;
    width: 32px;
    height: 32px;
    font-size: 16px;
    margin-right: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    border-radius: 50%;
    box-shadow: 5px 5px 20px rgba(0, 0, 0, .5);
}
.mail__btn {
    width: 40px;
    height: 40px;
    font-size: 22px;
    border-radius: 50%;
    border: none;
    background-color: #242424;
    color: white;
    cursor: pointer;
     position: fixed;
    bottom: 32px;
    right: 32px;
    z-index: 999;
    border-radius: 50%;
    box-shadow: 5px 5px 22px rgba(0, 0, 0, .5);
}

/* --- RESPONSIVENESS --- */

/* Tablets (Slightly smaller screens) */
@media (max-width: 768px) {
    .header__content {
        padding: 0 24px; /* Prevents text from hitting the edges */
        text-align: center; /* Better visual balance for mobile */
    }

    .header__para {
        font-size: 20px;
        max-width: 400px;
        margin: 0 auto; /* Centers the paragraph */
    }

    .social__list {
        justify-content: center; /* Centers social icons */
    }
}

/* Mobile Phones (Small screens) */
@media (max-width: 480px) {
    .header__para {
        font-size: 18px;
        line-height: 1.5;
    }

    .title {
        font-size: 40px; /* Adjusting the main title size */
        margin-bottom: 12px;
    }

    .mail__btn {
        width: 32px;
        height: 32px;
        font-size: 18px;
        bottom: 20px;
        right: 20px;
    }
}


/* MODAL */

.modal { 
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 850px;
    height: 470px;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    visibility: hidden;
    z-index: -1;
    opacity: 0;
    transition: all 400ms ease;
    /* --- GLASSMORPHISM ADDITIONS --- */
    background: rgba(255, 255, 255, 0.05); /* Very transparent white */
    backdrop-filter: blur(15px);           /* The "frosted glass" effect */
    -webkit-backdrop-filter: blur(15px);    /* Safari support */
    border: 1px solid rgba(255, 255, 255, 0.1); /* Subtle "glass edge" */
    box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37);

}
/* Add this to trigger the modal's appearance */
.modal--open .modal {
    visibility: visible;
    z-index: 1000;
    opacity: 1;
}

.modal--open .modal__about, .modal--open .modal__contact {
  transform: translateX(0%);  
}



.modal__half {
    width: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    transition: all 300ms ease-in;
}

.modal__title {
    font-size: 26px;
    margin-top: 4px;
    margin: 8px;
    text-align: center;
}

.modal__sub-title {
    margin: 12px ;
    text-align: center;
    font-size: 14px;
}
.modal__para {
    margin: 20px;
}
.modal__about {
    background-color: rgb(245, 245, 245);
    transform: translateX(-110%);
       
}


.modal__contact {
    background-color: #242424;
    color: white;
    width: 50%;
    padding: 40px; /* This pushes the content away from all four edges */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centers the form vertically in the modal */
    box-sizing: border-box; /* Ensures padding doesn't make the box wider than 50% */
    transform: translateX(110%);
}   


.modal__languages {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
}
.form__item {
    margin-bottom: 20px;
    margin-top: 24px;
}
.form__submit {
    background-color: #e26147;
    border: 2px solid #e26147;
    color: white;
    font-weight: 700;
    width: 100%;
    max-width: 240px;
    padding: 12px 24px;
    font-size: 20px;
    border-radius: 4px;
    transition: all 300ms ease;
}

.form__submit:hover {
    border-color: #fff;
    background-color: transparent;
}

.form__submit:active {
    border-color: #e26147;
    color: #e26147;
}

.language__name {
    position: absolute; /* Changed from relative to stay centered without pushing space */
    bottom: -15px;      /* Adjust based on your preference */
    transform: scale(0);
    transition: all 300ms ease;
    font-size: 12px;
    white-space: nowrap; /* Prevents text from wrapping/squishing */
    pointer-events: none; /* Mouse ignores text so hover stays on the container */
    background-color: rgba(0, 0, 0, 0.8); /* Optional: dark background for readability */
    color: white;
    padding: 2px 8px;
    border-radius: 4px;
    z-index: 10;

}
.modal__language:hover .language__name {
    transform: scale(1);
}


.modal__language {
    position: relative; /* Anchor the absolute text here */
    width: 20%;
    padding: 8px;
    margin-bottom: 12px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.modal__language--img {
   width: 100%; 
   aspect-ratio: 1 / 1; /* Forces the image to be a perfect square */
    object-fit: contain; /* Scales image to fit without cropping or stretching */
    /*filter: grayscale(1); /* Optional: makes them look more uniform/ethical theme */
    transition: all 300ms ease;
    border-radius: 4px;
}

.modal__language--img:hover {
    filter: grayscale(.25);
    transform: scale(1.1);
}


.modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
    align-items: center;
    justify-content: center; 
    z-index: -1;
}

.modal__overlay--visible {
  
   display: flex !important; /* Forces it to show */
   z-index: 100 !important;   /* Ensures it's on top of everything */
}


.modal__overlay--loading {
    background-color: #242424;
    font-size: 80px;
    z-index: -1;
}

.fa-spinner {
animation: spinner 1400ms infinite linear;
}


@keyframes spinner {
    0% {
        transform: rotate(0);
    }
    100% {
        transform: rotate(360deg);
    }
}

.modal__overlay--success {
   background-color: #4bb543;
   font-size: 40px;
   font-weight: 700;
   text-align: center;
   padding: 28px;

}

.modal__exit {
    position: absolute;
    top: 20px;
    right: 15px;
    color: #fff;
    font-size: 36px;
    z-index: 100;

}

/* ARTISTS */

.section__title {
    text-align: center;
    font-size: 48px;
    margin-bottom: 60px;
}
.artist__img {
    width: 100%;
    height: 100%;      /* Forces image to match the container's height */
    object-fit: cover;  /* Crops and zooms to fill the box without squishing */
    display: block;
    transition: all 550ms ease;
}

.artist__wrapper {
position: relative;
border-radius: 20px;
box-shadow: 0 20px 80px 0 rgb(0, 0, 0.45);
overflow: hidden;
}

.artist__list {
    display: grid;
    grid-template-columns: 1fr; /* Stacks them in one column */
    gap: 40px;                 /* This creates the space between the wrappers */
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;            /* Centers the whole list */
}

.artist__wrapper:hover .artist__description {
    opacity: 1;
    transform: translateY(-50%);
}
.artist__wrapper:hover .artist__img {
transform: scale(1.11);
filter: blur(5px);
}

.artist__description {
    position: absolute;
    top: 50%;
    left: 90px;
    transform: translateY(100%);
    opacity: 0;
    transition: opacity 300ms, transform 450ms ease;
    color: white;
    max-width: 550px;
}
.artist__wrapper:hover .artist__wrapper--bg {
    opacity: 0.7;
}
.artist__wrapper--bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1c1d25;
    opacity: 0;
}

.artist__description--title {
    font-size: 40px;
}

.artist__description--sub-title {
    margin-top: 8px;
}

.artist__description--link {
    color: white;
    font-size: 20px;
    margin-right: 16px;
}
.artist__description--para {
    margin: 16px 0;
}

/* LABEL */

/* Container for the whole section */
#label {
    padding: 80px 0;
    background-color: #f9f9f9; /* Subtle contrast from pure white */
}

.label__container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 48px;
}

/* Logo and Description Section */
.label__description {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 800px; /* Optional: keeps text readable */
    margin: 0 auto;   /* Centers the container itself */
}

.label__title {
    font-size: 48px;
    margin-bottom: 16px;
}

.label__description--para {
    font-size: 18px;
    color: #555;
    line-height: 1.8;
}

.label__img {
    height: 100px;
    width: 100px;
    border-radius: 50%;
    overflow: hidden; /* This "clips" the image into the circle */
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    border: 2px solid #e26147; /* Optional: matching your orange theme */
}

.label__img img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Prevents the logo from looking squished */
} 

.label__logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;

}

/* Space out the Mission Statement section */
.label__sub-title {
    margin-top: 28px;    /* Space above 'Mission Statement' */
    margin-bottom: 22px; /* Space between title and its paragraph */
}

/* Space out the Purpose section */
.label__purpose {
    margin-top: 48px;    /* Larger gap to separate from the mission above */
    margin-bottom: 20px; /* Space between 'Our Purpose' and its paragraph */
}

/* Tighten up the paragraph spacing if needed */
.label__description--para {
    margin-bottom: 10px; /* Space after the paragraph ends */
    line-height: 1.6;
}
/* 1. Center the headings and description */
.label__purpose, 
.label__purpose--description {
    text-align: center;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.label__purpose {
    margin-top: 64px;    /* Matches the spacing of your 'Our Purpose' title */
    margin-bottom: 24px;
}

/* 2. Style the list like the Pillars */
.purposes {
    text-align: left;        /* Aligns text to the left */
    list-style: none;        /* Removes bullets */
    padding: 0;
    margin-top: 40px;
    width: 100%;             /* Ensures it spans the container width */
}

.purpose {
    margin-bottom: 24px;
    line-height: 1.6;        /* Improves readability for long text */
}

.purpose b {
    display: block;          /* Puts the bold title on its own line */
    color: #e26147;          /* Uses your orange theme */
    font-size: 18px;
    margin-bottom: 8px;      /* Space between bold title and description */
}


/* Feature Row (Stage Section) */
.label__row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    background: white;
    padding: 32px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05); /* Modern soft shadow */
    transition: transform 0.3s ease;
}

.label__row:hover {
    transform: translateY(-5px); /* Lift effect on hover */
}

/* 2. Style the Pillar List to align left */
.label__pillars {
    text-align: left;        /* Aligns text inside the list to the left */
    list-style: none;        /* Removes default bullets if preferred */
    padding: 0;
    margin-top: 40px;
    width: 100%;             /* Ensures list spans the container width */
}

.label__pillar {
    margin-bottom: 24px;
}

.label__pillar--title {
    display: block;          /* Puts title on its own line */
    font-size: 18px;
    color: #e26147;          /* Matches your orange theme */
}

.label__piller--para {
    margin-top: 8px;
    line-height: 1.6;
}

/* Image Styling */
.stage__img {
    width: 100%;
    border-radius: 8px;
    display: block;
    filter: grayscale(20%); /* Artistic touch */
    transition: filter 0.3s ease;
}

.label__row:hover .stage__img {
    filter: grayscale(0%); /* Color pops on hover */
}

.grid__container {
    display: grid;
    /* This creates exactly 2 columns of equal width */
    grid-template-columns: 1fr 1fr; 
    gap: 16px;
    padding: 20px;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
}

/* Optional: Make it 1 column on mobile so it doesn't look cramped */
@media (max-width: 600px) {
    .grid__container {
        grid-template-columns: 1fr;
    }
}



.grid__item img {
    width: 100%;
    height: 300px; /* Adjust height as desired */
    object-fit: cover; /* Keeps image proportions while filling the box */
    border-radius: 8px;
    transition: transform 0.3s ease;
}

.grid__item:hover img {
    transform: scale(1.05); /* Subtle zoom effect on hover */
}

/* Responsive Fix for Mobile */
@media (max-width: 768px) {
    .label__row {
        flex-direction: column;
        text-align: center;
    }
    
    .label__title {
        font-size: 36px;
    }
}


/* BOOKINGS */
.entertainment__bookings {
    padding: 80px 20px;
    text-align: center;
}

.bookings__title {
    font-size: 32px;
    margin-bottom: 40px;
}

.packages__container {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap; /* Allows stacking on mobile */
    max-width: 1200px;
    margin: 0 auto;
}

.package {
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 40px 20px;
    width: 300px;
    display: flex;
    flex-direction: column;
    transition: transform 300ms ease;
}

.package:hover {
    transform: translateY(-10px);
}

/* Highlight the middle tier */
.package--featured {
    background: #242424;
    color: white;
    border: 2px solid #ff9d00; /* Your orange */
    transform: scale(1.05);
}

.package--featured:hover {
    transform: scale(1.08) translateY(-10px);
}

.package__name {
    font-size: 20px;
    margin-bottom: 10px;
}

.package__price {
    font-size: 24px;
    font-weight: bold;
    color: #ff9d00;
    margin-bottom: 20px;
}

.package__features {
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
    flex-grow: 1; /* Pushes button to the bottom */
}

.package__features li {
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}

.package--featured .package__features li {
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.package__button {
    background-color: #ff9d00;
    color: white;
    border: none;
    padding: 12px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
}

/* EVENT SCHEDULE */

.schedule {
    padding: 100px 20px;
    background-color: #1a1a1a; /* Slightly darker than the modal for depth */
    color: white;
}

.schedule__title {
    text-align: center;
    margin-bottom: 60px;
    font-size: 2.5rem;
}

.schedule__timeline {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
}

/* The vertical line */
.schedule__timeline::before {
    content: '';
    position: absolute;
    left: 50px; /* Aligns with the center of the date circles */
    top: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(to bottom, transparent, #ff9d00, transparent);
}

.schedule__item {
    display: flex;
    align-items: center;
    margin-bottom: 50px;
    position: relative;
}

.schedule__date {
    width: 100px;
    height: 100px;
    background-color: #242424;
    border: 2px solid #ff9d00;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 2;
    flex-shrink: 0;
    box-shadow: 0 0 15px rgba(255, 157, 0, 0.3);
}

.day { font-size: 24px; font-weight: bold; }
.month { font-size: 12px; color: #ff9d00; }

.schedule__info {
    padding-left: 40px;
    text-align: left;
}

.schedule__event-title {
    font-size: 20px;
    color: #ff9d00;
    margin-bottom: 4px;
}

.schedule__location {
    font-size: 14px;
    font-style: italic;
    color: #c0c4cc;
    margin-bottom: 12px;
}

.schedule__desc {
    font-size: 16px;
    line-height: 1.5;
    color: #e0e0e0;
}


/* SHOP */

.product__img--wrapper {
    position: relative; /* Anchor for the absolute print */
    width: 100%;
    background-color: #f5f5f5;
    padding: 10px;
    border-radius: 8px;
    margin-bottom: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.product__img--wrapper::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* A very subtle grain/noise texture */
    background-image: url('https://transparenttextures.com'); 
    opacity: 0.05; /* Keep this extremely low so it's barely visible */
    pointer-events: none;
    z-index: 3;
}
.shop__title {
    text-align: center;      /* Centers the text horizontally */
    font-size: 48px;         /* Optional: makes it stand out like your other titles */
    padding: 40px 0;         /* Adds 40px of vertical space inside the element */
    margin-bottom: 24px;     /* Adds extra breathing room before the grid starts */
    width: 100%;             /* Ensures it spans the full width to center correctly */
}

.shop__grid {
    display: grid;
    /* This creates 3 equal columns */
    grid-template-columns: repeat(3, 1fr); 
    gap: 40px; /* Adjust the spacing between the cards */
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    margin-bottom: 40px;
    
}

/* Ensure the cards themselves center their content */
.product__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
     /* The Border Radius */
    border-radius: 20px; 
    
    /* Making it visible */
    background-color: white; 
    padding: 24px;
    border: 1px solid rgba(0, 0, 0, 0.05); /* Subtle outline */
    
    /* Optional: adds depth to the rounded shape */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: all 300ms ease;
}

/* Optional: Slight lift when you hover over the card */
.product__card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}


.hoodie-base {
    width: 100%;
    height: auto;
    display: block;
}

.print-overlay {
    position: absolute;
    /* Adjust these percentages to move the print on the chest */
    top: 44%; 
    left: 50%;
    transform: translate(-50%, -50%);
    
    /* Control the size of the print graphic */
    width: 35%; 
    height: auto;
    
    /* Optional: Slight transparency or blend mode to look more like fabric */
    opacity: 0.9;
    mix-blend-mode: multiply; 
    pointer-events: none; /* Ensures clicks hit the card, not just the image */
    filter: contrast(1.1) brightness(1.1) blur(0.2px); /* Softens the digital edges */
    pointer-events: none;
    mask-image: radial-gradient(
        circle, 
        black 80%, 
        rgba(0, 0, 0, 0.5) 95%, 
        transparent 100%
    );
    -webkit-mask-image: radial-gradient(
        circle, 
        black 80%, 
        rgba(0, 0, 0, 0.5) 95%, 
        transparent 100%
    );
}

@media (max-width: 900px) {
    .shop__grid {
        grid-template-columns: repeat(2, 1fr); /* 2 per line on tablets */
    }
}

@media (max-width: 600px) {
    .shop__grid {
        grid-template-columns: 1fr; /* 1 per line on phones */
    }
}

/* SHOPPING CART */

.cart-items-list {
    max-height: 400px; /* Limits height */
    overflow-y: auto;  /* Adds scrollbar if too many items */
    margin: 20px 0;
}

.cart-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    
}

.empty-msg {
    text-align: center;
    color: #888;
    margin-top: 50px;
}
.close-btn {
    background: none;
    border: none;
    font-size: 30px;
    cursor: pointer;
    color: #242424;
}

.cart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #f5f5f5;
    padding-bottom: 10px;
}
.checkout-btn {
    width: 100%;
    background-color: #e26147; /* Your orange theme */
    color: white;
    border: none;
    padding: 15px;
    border-radius: 4px;
    font-weight: bold;
    margin-top: 20px;
    cursor: pointer;
}
/* Fixed Tab - Pinned to Left Center */
#cart-tab {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background-color: #242424;
    color: white;
    padding: 20px 15px;
    border-radius: 0 12px 12px 0;
    z-index: 1001;
    display: flex;
    flex-direction: column;
    align-items: center;
    box-shadow: 2px 2px 10px rgba(0,0,0,0.2);
    cursor: pointer;
}



/* Start them hidden and centered */
#cart-modal, #cart-overlay {
    position: fixed;
    visibility: hidden; /* Using visibility + opacity for smoother transitions */
    opacity: 0;
    transition: all 300ms ease;
}

#cart-modal {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.8); /* Start slightly smaller */
    width: 90%;
    max-width: 500px;
    background: white;
    z-index: 10001;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.5);
}

#cart-overlay {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 10000;
}

/* THE FIX: These classes trigger the opening */
.cart-open #cart-modal {
    visibility: visible;
    opacity: 1;
    transform: translate(-50%, -50%) scale(1); /* Pop into full size */
}

.cart-open #cart-overlay {
    visibility: visible;
    opacity: 1;
}



/* COMMUNITY */
.community__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 80px 24px;
    text-align: center;
}

.community__header {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    position: relative;
}

.blog__row {
    display: flex;
    gap: 20px;
    overflow-x: auto; /* Enables horizontal scroll */
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory; /* Snaps cards into place */
}

/* Hide scrollbar for a cleaner look */
.blog__row::-webkit-scrollbar {
    display: none;
}

.blog__post {
    flex: 0 0 calc(25% - 15px); /* Forces 4 cards per line */
    scroll-snap-align: start;
    min-width: 250px; /* Ensures they don't get too small on tablets */
}

/* Reusing your Artist Section Hover Logic */
.blog__post:hover .artist__description {
    opacity: 1;
    transform: translateY(-50%);
}

.blog__post:hover .artist__img {
    transform: scale(1.1);
    filter: blur(4px);
}

/* Arrow Button Styling */
.slider__btn {
    background-color: #242424;
    color: white;
    border: none;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    margin-left: 10px;
    transition: all 300ms ease;
}

.slider__btn:hover {
    background-color: #e26147;
}

.slider__btns {
    margin-top: 20px;       /* Adds space between the centered title and buttons */
    display: flex;
    justify-content: center;
}

/* If you want the arrows to stay on the FAR SIDES of the screen while title is centered: */
.slider__btns {
    position: absolute;
    width: 100%;
    display: flex;
    justify-content: space-between;
    top: 50%;
    pointer-events: none; 
}
.slider__btn { pointer-events: all; }




/* NEWSLETTER */

#newsletter {
    width: 100%;
    padding: 80px 24px;
    background-color: #242424; /* Dark theme to contrast your blog section */
    color: white;
    text-align: center;
}

.newsletter__container {
    max-width: 600px;
    margin: 0 auto;
}

.newsletter__title {
    font-size: 36px;
    margin-bottom: 12px;
}

.newsletter__para {
    font-size: 18px;
    opacity: 0.8;
    margin-bottom: 32px;
}

.newsletter__form {
    display: flex;
    gap: 10px;
    width: 100%;
}

.newsletter__input {
    flex-grow: 1;
    padding: 16px 20px;
    border-radius: 4px;
    border: 1px solid #ccc;
    font-size: 16px;
    outline: none;
}

.newsletter__btn {
    padding: 16px 32px;
    background-color: #e26147; /* Your orange theme */
    color: white;
    border: none;
    border-radius: 4px;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 300ms ease;
}

.newsletter__btn:hover {
    background-color: #c94d38; /* Slightly darker orange for hover */
}

/* Mobile Responsiveness */
@media (max-width: 600px) {
    .newsletter__form {
        flex-direction: column;
    }
    
    .newsletter__btn {
        width: 100%;
    }
}

/* SECTION ID FOOT */

#foot {
    width: 100%;
    background-color: #242424;
}

.footer__logo--main {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    box-shadow: 5px 5px 20px rgba(0, 0, 0, .5);  
    margin-bottom: 24px;
}

.foot__container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column; /* Stacks the logo on top of the links */
    align-items: center;    /* Centers items horizontally */
    justify-content: center;
}

.footer__social--links {
    width: 100%;
    max-width: 700px; /* Optional: limits how far they spread so they don't hit the edges */
    margin: 0 auto;   /* Centers the list itself */
    display: flex;
    justify-content: space-between; /* Pushes links to the far left, far right, and even middle */
    align-items: center;
    padding: 20px 0;
}

.footer__social--link {
    color: white;
    text-decoration: none;
   
    transition: all 300ms ease;
}

/* AUDIO */
.audio-toggle {
    position: fixed;
    bottom: 12px;
    left: 12px;
    background: rgba(20, 20, 20, 0.85);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 157, 0, 0.4);
    padding: 8px 12px;
    border-radius: 40px; /* Rounded pill shape is more compact */
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 12px;
    width: auto; /* Shrinks to fit content */
    transition: all 300ms ease;
    max-height: 30px;
}

/* Make it even smaller when idle */
.audio-toggle:not(.playing) {
    opacity: 0.7;
}

.audio-main {
    display: flex;
    align-items: center;
    gap: 8px;
}

#audio-icon {
    font-size: 14px; /* Smaller icon */
    color: #ff9d00;
    cursor: pointer;
}

.audio-text {
    display: flex;
    flex-direction: column;
    min-width: 60px;
}

.system-label {
    font-size: 8px; /* Tiny label */
    letter-spacing: 1px;
    color: #888;
    text-transform: uppercase;
}

#audio-status {
    font-size: 10px;
    font-weight: bold;
    color: #ff9d00;
}

/* Compact Slider */
.audio-slider-container {
    width: 40px; /* Much shorter slider */
    display: flex;
    align-items: center;
}

#volume-slider {
    width: 100%;
    height: 3px;
    accent-color: #ff9d00;
    cursor: pointer;
}

/* Mini Visualizer */
.visualizer {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 10px;
}

.bar {
    width: 2px;
    height: 100%;
    background: #ff9d00;
    border-radius: 1px;
}
.song-name-container {
    width: 80px; /* Adjust based on cockpit size */
    overflow: hidden;
    white-space: nowrap;
    position: relative;
}

#song-name {
    display: inline-block;
    font-size: 10px;
    font-weight: bold;
    color: #ff9d00;
}

/* Scroll animation on hover */
.audio-toggle:hover #song-name {
    animation: marquee 5s linear infinite;
}

@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}


/* Animation triggers when class "playing" is added via JS */
.playing .bar {
    animation: bounce 0.8s ease-in-out infinite alternate;
}

.playing .bar:nth-child(2) { animation-delay: 0.2s; }
.playing .bar:nth-child(3) { animation-delay: 0.4s; }

@keyframes bounce {
    0% { height: 20%; }
    100% { height: 100%; }
}




/* FOOTER */

footer {
    width: 100%;
    background-color: #242424;
    padding: 40px 0;
    display: flex;
    justify-content: center;
}

.footer__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    color: white;
}
.footer__container {
    width: 100%;
    max-width: 1200px;
    padding: 0 20px;
}
.footer__logo {
    cursor: pointer;
}

/* Ensure the music wave fits nicely in the footer */
.music-wave span {
    background-color: #e26147; /* Keeps the wave orange */
    cursor: pointer;
}
.music-wave {
    display: flex;
    align-items: center;
    justify-content: space-around;
    width: 40px;
    height: 30px;
    /* transform: translateX(77px); */
}

.music-wave span {
    width: 4px;
    height: 100%;
    background-color: #e26147; /* Matching your orange theme */
    border-radius: 2px;
    animation: waveform 1.2s ease-in-out infinite;
}

/* Staggering the bars for a wave effect */
.music-wave span:nth-child(1) { animation-delay: 0.1s; }
.music-wave span:nth-child(2) { animation-delay: 0.3s; }
.music-wave span:nth-child(3) { animation-delay: 0.6s; }
.music-wave span:nth-child(4) { animation-delay: 0.2s; }
.music-wave span:nth-child(5) { animation-delay: 0.5s; }

@keyframes waveform {
    0%, 100% {
        transform: scaleY(0.4);
    }
    50% {
        transform: scaleY(1.2);
    }
}


/* Responsive fix: Stack them on small screens */
@media (max-width: 600px) {
    .footer__row {
        flex-direction: column;
        gap: 20px;
    }
}

/* --- UNIQUE DIGITAL LIBRARY MODAL --- */
.library-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(15px); /* Slightly deeper blur for distinction */
  -webkit-backdrop-filter: blur(15px);
  display: none; /* Controlled by JS */
  justify-content: center;
  align-items: center;
  z-index: 3000; /* Set higher than other modals to ensure it's on top */
  transition: all 400ms ease;
  padding: 20px;
}

/* UNIQUE visibility class to avoid clash with contact modal */
.library-modal--visible {
  display: flex;
}

/* UNIQUE body lock class */
body.library--open {
  overflow: hidden !important;
}

.library-modal__content {
  background: rgba(10, 10, 10, 0.95); /* Darker background for library */
  border: 1px solid rgba(255, 94, 0, 0.3); /* The orange theme border */
  padding: 48px;
  border-radius: 24px;
  width: 100%;
  max-width: 550px;
  position: relative;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7);
  animation: libraryFadeIn 450ms ease-out;
}

@keyframes libraryFadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

.library-modal__close {
  position: absolute;
  top: 24px;
  right: 24px;
  background: none;
  border: none;
  color: white;
  font-size: 36px;
  cursor: pointer;
  transition: all 300ms ease;
}

.library-modal__close:hover {
  color: #ff5e00;
  transform: rotate(90deg);
}

.library-title {
  font-size: 32px;
  margin-bottom: 32px;
  text-align: center;
  font-weight: 700;
  letter-spacing: 1px;
}

/* --- LIBRARY ITEMS GRID --- */
.library-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-height: 60vh;
  overflow-y: auto;
}

/* Custom Orange Scrollbar */
.library-grid::-webkit-scrollbar {
  width: 4px;
}
.library-grid::-webkit-scrollbar-thumb {
  background: #ff5e00;
  border-radius: 10px;
}

.library-item {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  transition: all 300ms ease;
  text-decoration: none;
  color: white;
}

.library-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 94, 0, 0.4);
  transform: translateX(5px); /* Slight slide instead of scale for a unique feel */
}

.library-item i {
  font-size: 22px;
  min-width: 30px;
  transition: all 200ms ease;
  cursor: pointer;
}

.library-item .fa-play-circle:hover {
  color: #ff5e00;
}

.library-item .fa-stop-circle {
  margin-left: auto;
  opacity: 0.5;
  font-size: 18px;
}

.library-item .fa-stop-circle:hover {
  color: #ff3c00;
  opacity: 1;
}

.library-item__info {
  display: flex;
  flex-direction: column;
  margin-left: 20px;
  flex-grow: 1;
}

.item-category {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #ff5e00;
  font-weight: bold;
  margin-bottom: 4px;
}

.item-name {
  font-size: 16px;
  opacity: 0.9;
}

/* Link Styling */
.library-item.external i {
  color: #00ccff;
}

/* Footer Interaction */
.footer__logo, .music-wave {
  cursor: pointer;
  transition: opacity 300ms;
}

.footer__logo:hover, .music-wave:hover {
  opacity: 0.7;
}



/* SHAPES */

.shape {
    position: fixed;
    /* z-index: -1; */
    pointer-events: none;
    transition: all 600ms ease;
    width: 20px; /* Give them a standard size */

}

/* Individual Coordinates (Top/Left) */
.shape--0 { top: 15vh; left: 5vw; }
.shape--1 { top: 20vh; left: 50vw; }
.shape--2 { top: 10vh; left: 80vw; }
.shape--3 { top: 45vh; left: 8vw; }
.shape--4 { top: 50vh; left: 45vw; }
.shape--5 { top: 55vh; left: 85vw; }
.shape--6 { top: 80vh; left: 12vw; }
.shape--7 { top: 85vh; left: 50vw; }
.shape--8 { top: 75vh; left: 82vw; }
