/* Carnival Collective upcoming gigs: self-contained public presentation. */
.cc-upcoming-gigs {
    --cc-gigs-pink:#ff1594;
    --cc-gigs-cyan:#00d5f6;
    --cc-gigs-white:#fff;
    --cc-gigs-muted:#c7c9da;
    --cc-gigs-dark:#12101beF;
    color:var(--cc-gigs-white);
    font-family:Montserrat,Arial,sans-serif;
    scroll-margin-top:90px;
}
.cc-upcoming-gigs,.cc-upcoming-gigs *,.cc-upcoming-gigs *::before,.cc-upcoming-gigs *::after {box-sizing:border-box}
.cc-upcoming-gigs__panel {background:rgba(15,14,26,.83);border:1px solid rgba(255,255,255,.23);border-radius:20px;padding:clamp(20px,3vw,34px);box-shadow:0 14px 48px rgba(0,0,0,.24);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.cc-upcoming-gigs__header {display:flex;align-items:end;justify-content:space-between;gap:22px;flex-wrap:wrap;margin-bottom:28px}
.cc-upcoming-gigs__kicker {margin:0 0 9px;color:var(--cc-gigs-cyan);font-size:11px;font-weight:800;letter-spacing:.18em}
.cc-upcoming-gigs__header h1,.cc-upcoming-gigs__header h2 {font-family:'Luckiest Guy',Impact,sans-serif;font-size:clamp(30px,4.9vw,57px);line-height:1.1;color:var(--cc-gigs-pink);margin:0 0 8px;letter-spacing:.012em}
.cc-upcoming-gigs__header h1 span,.cc-upcoming-gigs__header h2 span{color:var(--cc-gigs-cyan)}
.cc-upcoming-gigs__intro {color:#d5d6e2;font-size:15px;margin:0;line-height:1.55}
.cc-upcoming-gigs__all {display:inline-flex;align-items:center;gap:9px;text-decoration:none!important;border-radius:100px;border:1px solid var(--cc-gigs-cyan);padding:12px 17px;color:var(--cc-gigs-cyan)!important;font-size:12px;font-weight:800;letter-spacing:.02em;white-space:normal}
.cc-upcoming-gigs__all:hover,.cc-upcoming-gigs__all:focus-visible{background:var(--cc-gigs-cyan);color:#101017!important}
.cc-upcoming-gigs__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}
.cc-gig-card{min-width:0;display:grid;grid-template-columns:minmax(112px,36%) minmax(0,1fr);border:1px solid rgba(255,255,255,.2);border-radius:16px;overflow:hidden;background:rgba(25,22,40,.9);box-shadow:0 6px 18px rgba(0,0,0,.17)}
.cc-gig-card--featured{border-color:var(--cc-gigs-pink);box-shadow:inset 0 0 0 1px rgba(255,21,148,.3),0 8px 24px rgba(0,0,0,.23)}
.cc-gig-card__poster{position:relative;min-height:100%;background:linear-gradient(140deg,#ee1788,#672d8a 53%,#08b9ca);overflow:hidden}
.cc-gig-card__poster>img{display:block;width:100%;height:100%;min-height:230px;max-height:460px;object-fit:cover}
.cc-gig-card__poster-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:230px;padding:22px;background:radial-gradient(circle at 60% 30%,#77329f99,transparent 60%),linear-gradient(145deg,#a6007e,#223780)}
.cc-gig-card__poster-fallback img{width:65%;max-width:110px;max-height:120px;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.2))}
.cc-gig-card__featured{position:absolute;left:9px;top:12px;background:var(--cc-gigs-pink);color:#100c17;font-weight:900;font-size:10px;letter-spacing:.06em;border-radius:5px;padding:6px 8px;box-shadow:0 2px 12px #0004}
.cc-gig-card__body{min-width:0;padding:21px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.cc-gig-card__heading{display:flex;align-items:flex-start;gap:12px;width:100%;min-width:0}
.cc-gig-card__date{width:53px;min-width:53px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(0,213,246,.64);border-radius:9px;padding:5px 2px;color:var(--cc-gigs-cyan);line-height:1.05}
.cc-gig-card__day{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums}
.cc-gig-card__month{font-size:11px;letter-spacing:.13em;font-weight:800;margin-top:4px}
.cc-gig-card__heading-text{min-width:0;flex:1}
.cc-gig-card__date-long{font-weight:700;letter-spacing:.02em;color:var(--cc-gigs-cyan);font-size:11px}
.cc-gig-card h3{color:var(--cc-gigs-pink);font-weight:900;font-size:clamp(16px,1.5vw,21px);line-height:1.24;margin:4px 0 6px;overflow-wrap:anywhere}
.cc-gig-card__venue{font-weight:700;color:#fff;font-size:13px;overflow-wrap:anywhere}
.cc-gig-card__location,.cc-gig-card__times{margin:0;color:var(--cc-gigs-muted);font-size:12px;line-height:1.5;display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap}
.cc-gig-card__times span:not(:last-child)::after{content:'·';padding-left:8px;color:var(--cc-gigs-cyan)}
.cc-gig-card__location i,.cc-gig-card__times i{color:var(--cc-gigs-cyan);font-size:13px}
.cc-gig-card__address{margin:0;color:var(--cc-gigs-muted);font-size:11px;line-height:1.4}
.cc-gig-card__price{margin:0;color:#fff;font-size:12px;font-weight:700}
.cc-gig-card__desc{margin:0;max-width:100%;color:var(--cc-gigs-muted);font-size:12px;line-height:1.55;white-space:pre-line;overflow-wrap:anywhere}
.cc-gig-card__actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:10px;width:100%}
.cc-gig-card__btn,.cc-gig-status{display:inline-flex;align-items:center;gap:6px;justify-content:center;padding:10px 12px;border-radius:7px;font-size:11px;line-height:1.25;font-weight:900;text-decoration:none!important;text-align:center}
.cc-gig-card__btn--primary{background:var(--cc-gigs-pink);color:#121018!important}
.cc-gig-card__btn--primary:hover{background:#ff66b6}
.cc-gig-card__btn--secondary{color:var(--cc-gigs-cyan)!important;border:1px solid var(--cc-gigs-cyan)}
.cc-gig-card__btn--secondary:hover{background:rgba(0,213,246,.15)}
.cc-gig-status--sold{background:#734061;color:#fff}
.cc-gig-status--cancelled{background:#ad304d;color:#fff}
.cc-gig-status--postponed{background:#e0ae3d;color:#21131c}
.cc-upcoming-gigs__empty{text-align:center;border:1px dashed rgba(0,213,246,.4);border-radius:15px;padding:34px 20px;background:rgba(0,0,0,.15)}
.cc-upcoming-gigs__empty h2,.cc-upcoming-gigs__empty h3{font-family:'Luckiest Guy',Impact,sans-serif;color:var(--cc-gigs-cyan);font-size:26px;margin:0 0 7px}
.cc-upcoming-gigs__empty p{color:var(--cc-gigs-muted);margin:0 0 13px}
.cc-upcoming-gigs__empty a{color:var(--cc-gigs-pink)}
.cc-upcoming-gigs--page{padding-top:120px;padding-bottom:80px;min-height:72vh}
.cc-upcoming-gigs--page .cc-upcoming-gigs__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:990px){.cc-upcoming-gigs__grid,.cc-upcoming-gigs--page .cc-upcoming-gigs__grid{grid-template-columns:1fr}.cc-gig-card__poster>img{max-height:350px}}
@media(max-width:540px){.cc-upcoming-gigs{padding-inline:10px!important}.cc-upcoming-gigs__panel{padding:17px}.cc-upcoming-gigs__header{align-items:flex-start}.cc-gig-card{grid-template-columns:1fr}.cc-gig-card__poster{height:155px;min-height:155px}.cc-gig-card__poster>img{height:155px;min-height:155px;max-height:155px}.cc-gig-card__poster-fallback{height:155px;min-height:155px}.cc-gig-card__body{padding:16px}.cc-upcoming-gigs--page{padding-top:96px}}
@media(prefers-reduced-motion:no-preference){.cc-gig-card__btn,.cc-upcoming-gigs__all{transition:background-color .18s,color .18s}}
/* CC-GIGS-DESKTOP-WIDE-BEGIN */
/*
   Desktop-only adjustment for the Carnival Collective Upcoming Gigs section.
   A gig uses the full width of the panel rather than one of two narrow columns.
   Mobile/tablet CSS (990px and below) remains exactly as before.
*/
@media (min-width: 991px) {
    .cc-upcoming-gigs .cc-upcoming-gigs__grid,
    .cc-upcoming-gigs--page .cc-upcoming-gigs__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .cc-upcoming-gigs .cc-gig-card {
        grid-template-columns: minmax(0, 38%) minmax(0, 62%);
    }

    /* Keep complete poster artwork visible in the larger left-hand area. */
    .cc-upcoming-gigs .cc-gig-card__poster {
        min-height: 355px;
    }

        .cc-upcoming-gigs .cc-gig-card__poster > img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            min-height: 0;
            max-height: none;
            object-fit: contain;
            object-position: center center;
        }

    .cc-upcoming-gigs .cc-gig-card__poster-fallback {
        min-height: 355px;
    }

    .cc-upcoming-gigs .cc-gig-card__body {
        padding: clamp(24px, 3vw, 42px);
        gap: 14px;
    }

    .cc-upcoming-gigs .cc-gig-card h3 {
        font-size: clamp(22px, 2.3vw, 32px);
    }

    .cc-upcoming-gigs .cc-gig-card__date-long {
        font-size: 13px;
    }

    .cc-upcoming-gigs .cc-gig-card__venue {
        font-size: 17px;
    }

    .cc-upcoming-gigs .cc-gig-card__location,
    .cc-upcoming-gigs .cc-gig-card__times {
        font-size: 14px;
    }

    .cc-upcoming-gigs .cc-gig-card__address {
        font-size: 13px;
    }

    .cc-upcoming-gigs .cc-gig-card__price {
        font-size: 15px;
    }

    .cc-upcoming-gigs .cc-gig-card__desc {
        font-size: 14px;
        max-width: 75ch;
    }

    .cc-upcoming-gigs .cc-gig-card__btn,
    .cc-upcoming-gigs .cc-gig-status {
        font-size: 12px;
        padding: 12px 17px;
    }
}
/* CC-GIGS-DESKTOP-WIDE-END */
