/* ----------------------------------------------------------------
	Custom CSS

	Add all your Custom Styled CSS here for New Styles or
	Overwriting Default Theme Styles for Better Hanlding Updates
-----------------------------------------------------------------*/



.accordion-button {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
  font-size: 1rem;
  color: #000;
  text-align: left;
  background-color: none !important;
  border: 0;
  border-radius: 0;
  overflow-anchor: none;
  transition: var(--bs-accordion-transition);
}
/* Card wrapper */
.audio-card {
  display: block;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  height: 100%;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1);
box-shadow: blue 0px 0px 0px 2px inset, rgb(255, 255, 255) 10px -10px 0px -3px, rgb(31, 193, 27) 10px -10px, rgb(255, 255, 255) 20px -20px 0px -3px, rgb(255, 217, 19) 20px -20px, rgb(255, 255, 255) 30px -30px 0px -3px, rgb(255, 156, 85) 30px -30px, rgb(255, 255, 255) 40px -40px 0px -3px, rgb(255, 85, 85) 40px -40px;
}

/* Square image container */
.audio-thumb {
  position: relative;
  width: 100%;
  padding-top: 100%; /* square */
  background-size: cover;
  background-position: center;
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), filter 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Text overlay */
.audio-text-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0,0,0,0.5); /* slightly darker base for bright images */
  color: #fff; /* explicitly white text */
  padding: 1rem;
  z-index: 2;

  opacity: 1; /* always visible */
  transform: translateY(0);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Title text */
.audio-text-overlay h3 {
  margin: 0;
  color: #fff; /* enforce white */
  font-weight: 600;
}

/* Hover overlay dark layer */
.audio-hover-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0); /* start transparent */
  transition: background 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1;
}

/* Play icon */
.audio-play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.9);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1), transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 3;
  width: 60px;
  height: 60px;
}

/* Hover effects */
.audio-card:hover .audio-thumb {
  transform: scale(1.03);
  filter: brightness(1.1);
  box-shadow: 0 16px 35px rgba(0,0,0,0.2);
}

.audio-card:hover .audio-hover-overlay {
  background: rgba(0,0,0,0.55); /* slightly darker on hover */
}

/* Optional subtle slide on hover for text */
.audio-card:hover .audio-text-overlay {
  transform: translateY(-4px);
}

/* Play icon appear */
.audio-card:hover .audio-play-icon {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1.15);
}

/* Row gutters */
.row.g-4 {
  margin-left: 0;
  margin-right: 0;
}





/* Card spacing and flair border */
.gig-card.gig-flair {
    position: relative;
    margin-bottom: 2rem;
    border: none;
    background-color: #000; /* black background */
    box-shadow: 
        inset 0 0 0 2px blue, 
        4px -4px 0 -1px rgb(255,255,255),
        4px -4px 0 rgb(31,193,27),
        8px -8px 0 -1px rgb(255,255,255),
        8px -8px 0 rgb(255,217,19),
        12px -12px 0 -1px rgb(255,255,255),
        12px -12px 0 rgb(255,156,85),
        16px -16px 0 -1px rgb(255,255,255),
        16px -16px 0 rgb(255,85,85);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Hover effect */
.gig-card.gig-flair:hover {
    transform: translateY(-3px);
    box-shadow:
        inset 0 0 0 2px blue, 
        4px -4px 0 -1px rgb(255,255,255),
        4px -4px 0 rgb(31,193,27),
        8px -8px 0 -1px rgb(255,255,255),
        8px -8px 0 rgb(255,217,19),
        12px -12px 0 -1px rgb(255,255,255),
        12px -12px 0 rgb(255,156,85),
        16px -16px 0 -1px rgb(255,255,255),
        16px -16px 0 rgb(255,85,85),
        0 8px 20px rgba(0,0,0,0.2);
}

/* Accordion Header */
.gig-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    color: #fff;
}

/* Gig info inline */
.gig-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.gig-date {
    font-weight: 600;
    color: #ffce00;
}

.gig-venue {
    font-weight: 500;
    color: #fff;
}

.gig-location {
    color: #fff;
}

/* Accordion body padding */
.gig-card .accordion-body {
    padding: 1rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Tickets button aligned right */
.gig-card .accordion-body a.btn {
    align-self: flex-end;
}
/* Accordion button width fix */
.gig-header .accordion-button {
    width: auto;          /* fit content only */
    padding: 0.25rem 0.75rem; /* tighter padding */
    text-align: center;
}

/* Ensure gig info stays left-aligned */
.gig-header .gig-info {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}


.text-primary {
  --bs-text-opacity: 1;
  color: #990000 !important;
  text-decoration: none !important;


}


/* Light gradient overlay with fade-in animation */
.page-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        rgba(255, 255, 255, 0.4),
        rgba(255, 255, 255, 0.2)
    );
    z-index: 1;
    opacity: 0;                 /* start hidden */
    animation: fadeInOverlay 1s ease forwards;  /* fade in */
    animation-delay: 0.2s;      /* optional delay to match text */
}

/* Make sure the content sits above the overlay */
.page-header .container {
    position: relative;
    z-index: 2;
}

/* Keyframes for fade-in */
@keyframes fadeInOverlay {
    from { opacity: 0; }
    to { opacity: 1; }
}

a {
  color: #990000 !important;
  text-decoration: none;
}

.link-primary {
  color: #ccc !important;
  text-decoration-color: #fff !important;
}

.link-primary a:link {color:#ccc  ! important; } /* unvisited link */
.link-primary a:visited {color:#fff; text-decoration:none; }  /* visited link */
.link-primary a:hover {color:#FFDE21; text-decoration:none;  }  /* mouse over link */
.link-primary a:active {color:#fff; text-decoration:none; }  /* selected link */


/* Landscape image container */
/* Base logo frame */
.logo-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #fff;
  border-radius: inherit;
}

/* Tablet: slightly taller */
@media (max-width: 992px) {
  .logo-frame {
    aspect-ratio: 3 / 2;
  }
}

/* Mobile: more vertical space */
@media (max-width: 576px) {
  .logo-frame {
    aspect-ratio: 4 / 3;
  }
}
.logo-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  padding: 10px; /* breathing room for square icons */
  box-sizing: border-box;
  transition: transform 0.4s ease, filter 0.4s ease;
}



.logo-frame:hover img {
  filter: grayscale(100%);
  transform: scale(1.05);
}

.rectangle-speech-border {
  position: relative;
  padding: 50px 15px;
  margin: 1em 0 3em;
  border: 10px solid #000;
  text-align: center;
  color: #000;
  background: #fff;
  -webkit-border-radius: 20px;
  -moz-border-radius: 20px;
  border-radius: 20px;
}

.rectangle-speech-border::before {
  content: "";
  position: absolute;
  z-index: 10;
  bottom: -40px;
right: calc(100% - 100px);
  width: 50px;
  height: 30px;
  border-style: solid;
  border-width: 0 0 10px 10px; /* mirrored */
  border-color: #000;
  background: transparent;
  -webkit-border-bottom-left-radius: 80px 50px;
  -moz-border-radius-bottomleft: 80px 50px;
  border-bottom-left-radius: 70px 50px;
  display: block;
}

.rectangle-speech-border::after {
  content: "";
  position: absolute;
  z-index: 10;
  bottom: -40px;
right: calc(100% - 100px);
  width: 20px;
  height: 30px;
  border-style: solid;
  border-width: 0 0 10px 10px; /* mirrored */
  border-color: #000;
  background: transparent;
  -webkit-border-bottom-left-radius: 40px 50px;
  -moz-border-radius-bottomleft: 40px 50px;
  border-bottom-left-radius: 30px 50px;
  display: block;
}
/* Top-left shadow stack */
.shadow-stack-tl {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff -10px -10px 0 -3px,
    rgb(31, 193, 27) -10px -10px,
    #fff -20px -20px 0 -3px,
    rgb(255, 217, 19) -20px -20px,
    #fff -30px -30px 0 -3px,
    rgb(255, 156, 85) -30px -30px,
    #fff -40px -40px 0 -3px,
    rgb(255, 85, 85) -40px -40px;
}

/* Bottom-left shadow stack */
.shadow-stack-bl {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff -10px 10px 0 -3px,
    rgb(31, 193, 27) -10px 10px,
    #fff -20px 20px 0 -3px,
    rgb(255, 217, 19) -20px 20px,
    #fff -30px 30px 0 -3px,
    rgb(255, 156, 85) -30px 30px,
    #fff -40px 40px 0 -3px,
    rgb(255, 85, 85) -40px 40px;
}

/* Top-right (original) */
.shadow-stack-tr {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff 10px -10px 0 -3px,
    rgb(31, 193, 27) 10px -10px,
    #fff 20px -20px 0 -3px,
    rgb(255, 217, 19) 20px -20px,
    #fff 30px -30px 0 -3px,
    rgb(255, 156, 85) 30px -30px,
    #fff 40px -40px 0 -3px,
    rgb(255, 85, 85) 40px -40px;
}

/* Bottom-right (already done) */
.shadow-stack-br {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff 10px 10px 0 -3px,
    rgb(31, 193, 27) 10px 10px,
    #fff 20px 20px 0 -3px,
    rgb(255, 217, 19) 20px 20px,
    #fff 30px 30px 0 -3px,
    rgb(255, 156, 85) 30px 30px,
    #fff 40px 40px 0 -3px,
    rgb(255, 85, 85) 40px 40px;
}
/* Base transition */
.shadow-stack-tl,
.shadow-stack-tr,
.shadow-stack-bl,
.shadow-stack-br {
  transition: box-shadow 0.3s ease;
}

/* Hover peel effect */
.shadow-stack-tl:hover {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff -12px -12px 0 -3px,
    rgb(31, 193, 27) -12px -12px,
    #fff -24px -24px 0 -3px,
    rgb(255, 217, 19) -24px -24px,
    #fff -36px -36px 0 -3px,
    rgb(255, 156, 85) -36px -36px,
    #fff -48px -48px 0 -3px,
    rgb(255, 85, 85) -48px -48px;
}

/* You can repeat for other corners, just adjust the signs */
.shadow-stack-br:hover {
  box-shadow:
    blue 0 0 0 2px inset,
    #fff 12px 12px 0 -3px,
    rgb(31, 193, 27) 12px 12px,
    #fff 24px 24px 0 -3px,
    rgb(255, 217, 19) 24px 24px,
    #fff 36px 36px 0 -3px,
    rgb(255, 156, 85) 36px 36px,
    #fff 48px 48px 0 -3px,
    rgb(255, 85, 85) 48px 48px;
}

/* Base container for stack */
.shadow-stack {
  position: relative;
  display: inline-block;
  transition: transform 0.3s ease;
}

/* Base image stays above layers */
.shadow-stack img {
  display: block;
  border-radius: 0.5rem; /* match your .rounded-3 */
  z-index: 10;
  position: relative;
}

/* Each pseudo-element = one colored layer behind the image */
.shadow-stack::before,
.shadow-stack::after,
.shadow-stack .layer1,
.shadow-stack .layer2,
.shadow-stack .layer3,
.shadow-stack .layer4 {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border-radius: 0.5rem;
  z-index: -1;
  transition: transform 0.3s ease;
}

/* Assign colors and offsets for layers */
.shadow-stack.layered .layer1 {
  background: rgb(31, 193, 27);
  transform: translate(10px, 10px);
  z-index: -2;
}
.shadow-stack.layered .layer2 {
  background: rgb(255, 217, 19);
  transform: translate(20px, 20px);
  z-index: -3;
}
.shadow-stack.layered .layer3 {
  background: rgb(255, 156, 85);
  transform: translate(30px, 30px);
  z-index: -4;
}
.shadow-stack.layered .layer4 {
  background: rgb(255, 85, 85);
  transform: translate(40px, 40px);
  z-index: -5;
}

/* Hover peel: each layer moves slightly more */
.shadow-stack.hover-peel.layered:hover .layer1 {
  transform: translate(7px, 7px);
}
.shadow-stack.hover-peel.layered:hover .layer2 {
  transform: translate(14px, 14px);
}
.shadow-stack.hover-peel.layered:hover .layer3 {
  transform: translate(21px, 21px);
}
.shadow-stack.hover-peel.layered:hover .layer4 {
  transform: translate(28px, 28px);
}
.scroll-reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}

.scroll-reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.btn-danger,
.btn-danger:visited,
.btn-danger:active {
  color: #fff !important;
}

.btn-danger:hover {
  color: #FFDE21;
}




.btn-outline-dark,
.btn-outline-dark:visited,
.btn-outline-dark:active {
  color: #000 !important;
}

.btn-outline-dark:hover {
  color: #fff !important;
  background-color: #990000;
}


.cc4k-bg {
  background: #f6931f;
  color: #fff;
  position: relative;
  width: 100%;
  display: block;

}

.ppb {
  background: #3BC2B1;
  color: #fff;
  position: relative;
  width: 100%;
  display: block;
}