/*
Theme Name:  The Forfeits
Theme URI:   https://www.theforfeits.co.uk
Description: Custom theme for The Forfeits covers band.
Author:      Wye Media
Version:     1.0
*/

/* ── GRAFFITI POP PALETTE ──
   #333333  charcoal (base dark)
   #d60ccc  hot pink / magenta   → PRIMARY accent
   #f6f311  electric yellow-lime → SECONDARY accent
   #46dc18  electric green       → TERTIARY accent
   #99f0f2  cyan / turquoise     → HIGHLIGHT
*/
:root {
    --pink:     #d60ccc;
    --yellow:   #f6f311;
    --blue:     #46dc18;
    --cyan:     #99f0f2;
    --charcoal: #333333;
    --black:    #0d0d0d;
    --grey:     #191919;
    --grey2:    #242424;
    --white:    #f2f0e8;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; font-size: 1.2rem; }

body {
    background: var(--charcoal);
    color: var(--white);
    font-family: 'Barlow', sans-serif;
    overflow-x: hidden;
}

/* GRAIN TEXTURE */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 9999;
    opacity: 0.3;
    mix-blend-mode: overlay;
}

/* ── NAV ── */
nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 500;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 40px;
    transition: background 0.4s;
}

nav.scrolled {
    background: rgba(13,13,13,0.97);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(251,124,245,0.12);
}

.nav-logo img {
    height: 50px; width: auto; display: block;
    filter: drop-shadow(0 2px 10px rgba(0,0,0,0.8));
}

.nav-logo-fallback {
    display: none;
    font-family: 'Permanent Marker', cursive;
    font-size: 1.4rem;
    color: var(--yellow);
    text-shadow: 2px 2px 0 var(--pink);
    text-decoration: none;
}

.nav-links { display: flex; gap: 28px; list-style: none; }

.nav-links a {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1rem;
    letter-spacing: 3px;
    color: rgba(242,240,232,0.78);
    text-decoration: none;
    transition: color 0.2s;
    position: relative;
}

.nav-links a::after {
    content: '';
    position: absolute;
    bottom: -4px; left: 0;
    width: 0; height: 2px;
    background: var(--pink);
    transition: width 0.3s;
}

.nav-links a:hover { color: var(--white); }
.nav-links a:hover::after { width: 100%; }

.nav-book {
    background: var(--pink) !important;
    color: var(--black) !important;
    padding: 8px 22px !important;
    clip-path: polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
    font-weight: 700;
}
.nav-book::after { display: none !important; }
.nav-book:hover { background: #ff96fa !important; }

.hamburger {
    display: none; flex-direction: column; gap: 5px;
    cursor: pointer; background: none; border: none; padding: 4px;
}
.hamburger span { display: block; width: 28px; height: 2px; background: var(--white); transition: all 0.3s; }

/* MOBILE MENU */
.mobile-menu {
    display: none;
    position: fixed; inset: 0;
    background: rgba(13,13,13,0.98);
    z-index: 450;
    flex-direction: column;
    align-items: center; justify-content: center;
    gap: 26px;
}
.mobile-menu.open { display: flex; }
.mobile-menu img { height: 62px; margin-bottom: 10px; }
.mobile-menu a {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 2.6rem; letter-spacing: 6px;
    color: var(--white); text-decoration: none; transition: color 0.2s;
}
.mobile-menu a:hover { color: var(--pink); }
.mob-book-btn {
    background: var(--pink) !important; color: var(--black) !important;
    padding: 12px 48px !important; font-size: 2rem !important;
    clip-path: polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
}

/* ── HERO ── */
#hero { position: relative; height: 100vh; min-height: 580px; overflow: hidden; }

.slide {
    position: absolute; inset: 0;
    background-size: cover;
    background-position: center center;
    opacity: 0;
    transition: opacity 1.2s ease;
}
.slide.active { opacity: 1; }

@keyframes hero-pan-lr {
    0%   { background-position: 0% center; }
    100% { background-position: 100% center; }
}

@media (max-width: 768px) {
    .slide { background-size: auto 100%; animation: none; }
    .slide.active { animation: hero-pan-lr 30s linear infinite alternate; }
}

.slide::after {
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(to bottom,
        rgba(13,13,13,0.45) 0%,
        rgba(13,13,13,0.12) 35%,
        rgba(13,13,13,0.58) 70%,
        rgba(13,13,13,0.93) 100%);
}

/* Paint drips */
.drips {
    position: absolute; top: 0; left: 0; right: 0;
    height: 220px; z-index: 10; pointer-events: none; overflow: hidden;
}
.drip {
    position: absolute; top: 0;
    border-radius: 0 0 40% 40%;
    animation: drip-anim 4s ease-in-out infinite alternate;
}
@keyframes drip-anim {
    0%   { transform: scaleY(0.94) }
    100% { transform: scaleY(1.07) }
}
.drip:nth-child(1)  { left:2%;  width:8px;  height:150px; background:var(--pink);   animation-delay:0s;   opacity:0.88; }
.drip:nth-child(2)  { left:9%;  width:5px;  height:75px;  background:var(--yellow); animation-delay:0.5s; opacity:0.75; }
.drip:nth-child(3)  { left:17%; width:9px;  height:180px; background:var(--cyan);   animation-delay:1.1s; opacity:0.8;  }
.drip:nth-child(4)  { left:27%; width:5px;  height:65px;  background:var(--blue);   animation-delay:0.3s; opacity:0.7;  }
.drip:nth-child(5)  { left:36%; width:8px;  height:130px; background:var(--pink);   animation-delay:1.5s; opacity:0.82; }
.drip:nth-child(6)  { left:47%; width:6px;  height:95px;  background:var(--yellow); animation-delay:0.7s; opacity:0.72; }
.drip:nth-child(7)  { left:58%; width:9px;  height:160px; background:var(--blue);   animation-delay:1.9s; opacity:0.85; }
.drip:nth-child(8)  { left:68%; width:5px;  height:78px;  background:var(--cyan);   animation-delay:0.2s; opacity:0.68; }
.drip:nth-child(9)  { left:78%; width:10px; height:170px; background:var(--pink);   animation-delay:1.3s; opacity:0.9;  }
.drip:nth-child(10) { left:88%; width:5px;  height:60px;  background:var(--yellow); animation-delay:0.6s; opacity:0.65; }
.drip:nth-child(11) { left:95%; width:7px;  height:110px; background:var(--blue);   animation-delay:1.0s; opacity:0.78; }

/* Next show bar */
.next-show-bar {
    position: absolute; top: 82px; right: 0; z-index: 30;
    background: #f2f0e88f; color: var(--black);
    padding: 9px 22px 9px 28px;
    clip-path: polygon(12px 0,100% 0,100% 100%,0 100%);
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 1.2rem; font-weight: 700; letter-spacing: 2px;
    text-transform: uppercase;
    display: flex; align-items: center; gap: 8px;
}
.next-show-bar span {
    /*font-family: 'Permanent Marker', cursive; */
    color: var(--charcoal); font-size: 1.2rem; letter-spacing: 0;
}

/* Hero content */
.hero-content {
    position: absolute; bottom: 0; left: 0; right: 0;
    z-index: 20; padding: 0 6vw 56px;
}
.hero-logo {
    height: clamp(65px,15vw,150px); width: auto; margin-bottom: 18px;
    filter: drop-shadow(0 4px 22px rgba(0,0,0,0.9));
    animation: fadeUp 1s ease 0.3s both;
}
.hero-sub {
    font-family: 'Permanent Marker', cursive;
    font-size: clamp(0.85rem,3vw,2rem);
    color: var(--yellow); margin-bottom: 8px;
    animation: fadeUp 1s ease 0.55s both;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.9);
}
.hero-tagline {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2rem,6vw,4.5rem); letter-spacing: 2px; line-height: 1.05;
    max-width: 680px; margin-bottom: 28px;
    animation: fadeUp 1s ease 0.75s both;
    text-shadow: 3px 3px 14px rgba(0,0,0,0.9);
}
.hero-tagline .accent { color: var(--pink); }

.hero-ctas {
    display: flex; gap: 14px; flex-wrap: wrap;
    animation: fadeUp 1s ease 0.95s both;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(22px) }
    to   { opacity: 1; transform: translateY(0) }
}

/* Buttons */
.btn-primary {
    background: var(--pink); color: var(--black);
    text-decoration: none;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.1rem; letter-spacing: 3px;
    padding: 13px 34px; display: inline-block; font-weight: 700;
    clip-path: polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
    transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
    box-shadow: 4px 4px 0 var(--yellow);
}
.btn-primary:hover { transform: translate(-2px,-2px); box-shadow: 6px 6px 0 var(--yellow); background: #ff96fa; }

.btn-ghost {
    background: transparent;
    border: 2px solid rgba(242,240,232,0.5);
    color: var(--white); text-decoration: none;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.1rem; letter-spacing: 3px;
    padding: 13px 34px; display: inline-block;
    clip-path: polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
    transition: all 0.2s;
}
.btn-ghost:hover { background: rgba(242,240,232,0.1); border-color: var(--white); }

/* Slide dots */
.slide-dots {
    position: absolute; right: 36px; top: 50%;
    transform: translateY(-50%); z-index: 30;
    display: flex; flex-direction: column; gap: 10px;
}
.dot { width:6px; height:6px; border-radius:50%; background:rgba(242,240,232,0.3); cursor:pointer; transition:all 0.3s; }
.dot.active { background: var(--pink); transform: scale(1.7); }

/* ── PAINT DIVIDER ── */
.paint-divider {
    height: 5px;
    background: linear-gradient(90deg, var(--pink), var(--yellow) 25%, var(--cyan) 50%, var(--blue) 75%, var(--pink));
}

/* ── SECTION COMMONS ── */
.section-tag {
    display: inline-block;
    font-family: 'Permanent Marker', cursive;
    font-size: 0.92rem; background: var(--yellow); color: var(--black);
    padding: 3px 14px; transform: rotate(-1.2deg); margin-bottom: 16px;
}
.section-title {
    font-family: 'Bebas Neue', sans-serif;
    font-size: clamp(2.6rem,5.5vw,4.8rem); line-height: 0.95; letter-spacing: 1px; margin-bottom: 22px;
}
.section-title .pink  { color: var(--pink);   }
.section-title .yellow{ color: var(--yellow); }
.section-title .blue  { color: var(--blue);   }
.section-title .cyan  { color: var(--cyan);   }

/* ── ABOUT ── */
#about {
    padding: 90px 6vw;
    display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; align-items: center;
}
.about-text p { font-size: 1.02rem; line-height: 1.85; color: rgba(242,240,232,0.72); margin-bottom: 16px; }

.about-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; margin-top: 32px; }
.stat {
    background: var(--grey); padding: 18px 10px; text-align: center;
    border-bottom: 3px solid var(--pink); transition: border-color 0.3s;
}
.stat:nth-child(2) { border-color: var(--yellow); }
.stat:nth-child(3) { border-color: var(--blue);   }
.stat:nth-child(4) { border-color: var(--cyan);   }
.stat:hover { border-color: var(--pink) !important; }
.stat-num   { font-family:'Bebas Neue',sans-serif; font-size:2.2rem; color:var(--yellow); line-height:1; display:block; }
.stat-label { font-family:'Barlow Condensed',sans-serif; font-size:0.72rem; text-transform:uppercase; letter-spacing:2px; color:rgba(242,240,232,0.42); margin-top:3px; display:block; }

/* Band photo collage */
.band-collage { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.col-img { overflow: hidden; position: relative; }
.col-img::after {
    content:''; position:absolute; inset:0;
    background: linear-gradient(to br, rgba(251,124,245,0.18), transparent);
    opacity:0; transition:opacity 0.4s;
}
.col-img:hover::after { opacity:1; }
.col-img img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform 0.6s; filter:grayscale(10%) contrast(1.06); }
.col-img:hover img { transform: scale(1.04); }
.col-img.wide  { grid-column: span 2; height: 255px; }
.col-img.half  { height: 195px; }
.col-caption {
    position:absolute; bottom:0; left:0; right:0;
    background:linear-gradient(to top,rgba(0,0,0,0.8),transparent);
    padding:14px 12px 8px; font-family:'Bebas Neue',sans-serif;
    letter-spacing:2px; font-size:0.82rem; color:rgba(242,240,232,0.55); z-index:2;
}

/* ── GENRE STRIP ── */
.genre-strip { background:var(--grey); padding:34px 6vw; overflow:hidden; position:relative; }
.genre-strip::before {
    content:'ROCK · POP · ANTHEMS · CLASSIC HITS · ';
    position:absolute; font-family:'Bebas Neue',sans-serif; font-size:5rem;
    color:rgba(255,255,255,0.025); top:50%; left:0; transform:translateY(-50%);
    white-space:nowrap; letter-spacing:8px; pointer-events:none;
}
.genre-tags { display:flex; flex-wrap:wrap; gap:9px; position:relative; z-index:1; }
.gtag {
    font-family:'Permanent Marker',cursive; font-size:0.88rem;
    padding:5px 15px; border:2px solid; cursor:default; transition:all 0.2s;
}
.gtag:nth-child(4n+1) { color:var(--pink);   border-color:var(--pink);   transform:rotate(-1deg);  }
.gtag:nth-child(4n+2) { color:var(--yellow); border-color:var(--yellow); transform:rotate(0.8deg); }
.gtag:nth-child(4n+3) { color:var(--blue);   border-color:var(--blue);   transform:rotate(-0.5deg);}
.gtag:nth-child(4n+4) { color:var(--cyan);   border-color:var(--cyan);   transform:rotate(1.2deg); }
.gtag:hover { background:var(--pink); border-color:var(--pink); color:var(--black); transform:rotate(0) scale(1.05); }

/* ── GIGS ── */
#gigs { padding: 90px 6vw; }
.gigs-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:32px; flex-wrap:wrap; gap:18px; }

.gig-list { display:flex; flex-direction:column; gap:2px; }
.gig-row {
    display: grid; grid-template-columns: 120px 1fr 90px 100px;
    align-items:center; gap:18px; padding:16px 22px;
    background:var(--grey); border-left:3px solid transparent;
    transition:all 0.25s; position:relative; overflow:hidden;
}
.gig-row::before {
    content:''; position:absolute; inset:0;
    background:linear-gradient(90deg,rgba(251,124,245,0.07),transparent 50%);
    opacity:0; transition:opacity 0.3s;
}
.gig-row:hover { border-left-color:var(--pink); transform:translateX(3px); }
.gig-row:hover::before { opacity:1; }
.gig-row.upcoming { background:rgba(251,124,245,0.06); border-left-color:rgba(251,124,245,0.35); }

.g-date  { font-family:'Bebas Neue',sans-serif; font-size:0.95rem; color:var(--pink); letter-spacing:1px; line-height:1.3; }
.g-venue { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; letter-spacing:0.5px; }
.g-loc   { font-size:0.82rem; color:rgba(242,240,232,0.42); margin-top:2px; }
.g-time  { font-family:'Bebas Neue',sans-serif; font-size:0.95rem; color:rgba(242,240,232,0.42); letter-spacing:2px; text-align:right; }

.g-btn {
    display:inline-block; text-decoration:none;
    font-family:'Bebas Neue',sans-serif; font-size:0.82rem; letter-spacing:2px;
    padding:6px 14px; border:1.5px solid var(--pink); color:var(--pink);
    text-align:center; transition:all 0.2s; white-space:nowrap;
}
.g-btn:hover           { background:var(--pink);  color:var(--black); }
.g-btn.private         { border-color:rgba(242,240,232,0.15); color:rgba(242,240,232,0.25); cursor:default; }
.g-btn.private:hover   { background:none; color:rgba(242,240,232,0.25); }
.g-btn.tickets         { border-color:var(--cyan);  color:var(--cyan);  }
.g-btn.tickets:hover   { background:var(--cyan);  color:var(--black); }
.g-btn.festival        { border-color:var(--blue);  color:var(--blue);  }
.g-btn.festival:hover  { background:var(--blue);  color:var(--black); }

/* ── PHOTO STRIP ── */
.photo-strip { height:300px; overflow:hidden; }
.strip-inner {
    display:flex; height:100%;
    animation:scroll-strip 20s linear infinite; width:200%;
}
@keyframes scroll-strip {
    0%   { transform: translateX(0)    }
    100% { transform: translateX(-50%) }
}
.strip-inner:hover { animation-play-state:paused; }
.strip-photo { flex:0 0 auto; width:260px; height:100%; overflow:hidden; margin-right:4px; position:relative; filter:grayscale(15%) contrast(1.08); transition:filter 0.4s; }
.strip-photo:hover { filter:grayscale(0%) contrast(1.1); }
.strip-photo img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.strip-photo::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--pink); transform:scaleX(0); transition:transform 0.4s; }
.strip-photo:nth-child(2)::after { background:var(--yellow); }
.strip-photo:nth-child(3)::after { background:var(--blue);   }
.strip-photo:nth-child(4)::after { background:var(--cyan);   }
.strip-photo:hover::after { transform:scaleX(1); }

/* ── SETLIST + PACKAGES ── */
#setlist { background:var(--grey); padding:90px 6vw; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
.setlist-grid { columns:2; column-gap:18px; margin-top:6px; }
.s-item { font-family:'Barlow Condensed',sans-serif; font-size:0.92rem; color:rgba(242,240,232,0.68); padding:6px 0; border-bottom:1px solid rgba(255,255,255,0.05); break-inside:avoid; display:flex; gap:8px; align-items:baseline; }
.s-item::before { content:'▶'; font-size:0.45rem; color:var(--pink); flex-shrink:0; margin-top:3px; }
.s-song   { flex:1; }
.s-artist { font-style:italic; color:rgba(242,240,232,0.35); font-size:0.78rem; flex-shrink:0; }

.packages { display:flex; flex-direction:column; gap:4px; }
.package { background:var(--black); padding:22px 26px; border-left:4px solid transparent; transition:border-color 0.3s; position:relative; }
.package:nth-child(1) { border-left-color:rgba(251,124,245,0.25); }
.package:nth-child(2) { border-left-color:rgba(246,241,107,0.25); }
.package:nth-child(3) { border-left-color:rgba(129,169,255,0.25); }
.package:nth-child(1):hover { border-left-color:var(--pink);   }
.package:nth-child(2):hover { border-left-color:var(--yellow); }
.package:nth-child(3):hover { border-left-color:var(--blue);   }
.pkg-name   { font-family:'Bebas Neue',sans-serif; font-size:1.7rem; letter-spacing:3px; margin-bottom:6px; }
.package:nth-child(1) .pkg-name { color:var(--pink);   }
.package:nth-child(2) .pkg-name { color:var(--yellow); }
.package:nth-child(3) .pkg-name { color:var(--blue);   }
.pkg-badge { position:absolute; top:18px; right:18px; font-family:'Permanent Marker',cursive; font-size:0.72rem; color:var(--cyan); border:1.5px solid var(--cyan); padding:2px 9px; transform:rotate(2deg); }
.pkg-detail { font-family:'Barlow Condensed',sans-serif; font-size:0.88rem; color:rgba(242,240,232,0.5); line-height:1.9; }
.pkg-detail strong { color:var(--white); }

/* ── REVIEWS ── */
#reviews { padding:90px 6vw; position:relative; overflow:hidden; }
#reviews::before { content:'❝'; position:absolute; top:-2rem; left:-1rem; font-size:26rem; color:rgba(251,124,245,0.04); font-family:Georgia,serif; line-height:1; pointer-events:none; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; margin-top:36px; }
.r-card { background:var(--grey); padding:28px 24px; border-bottom:3px solid transparent; transition:border-color 0.3s, transform 0.3s; }
.r-card:nth-child(3n+1):hover { border-color:var(--pink);   transform:translateY(-3px); }
.r-card:nth-child(3n+2):hover { border-color:var(--yellow); transform:translateY(-3px); }
.r-card:nth-child(3n+3):hover { border-color:var(--blue);   transform:translateY(-3px); }
.r-quote  { font-family:Georgia,serif; font-size:2.2rem; color:var(--pink); line-height:0.8; margin-bottom:12px; display:block; }
.r-stars  { color:var(--yellow); margin-bottom:8px; font-size:0.82rem; letter-spacing:3px; }
.r-text   { font-size:0.95rem; line-height:1.75; color:rgba(242,240,232,0.78); font-style:italic; margin-bottom:18px; }
.r-name   { font-family:'Bebas Neue',sans-serif; font-size:0.95rem; letter-spacing:2px; color:var(--cyan); }
.r-ctx    { font-size:0.78rem; color:rgba(242,240,232,0.38); margin-top:2px; font-family:'Barlow Condensed',sans-serif; letter-spacing:1px; }

/* ── BOOKING ── */
#booking { position:relative; overflow:hidden; background:var(--grey); padding:90px 6vw; }
#booking::before {
    content:'BOOK US'; position:absolute;
    font-family:'Bebas Neue',sans-serif; font-size:clamp(5rem,15vw,13rem);
    color:rgba(251,124,245,0.04); top:50%; left:50%; transform:translate(-50%,-50%);
    white-space:nowrap; letter-spacing:12px; pointer-events:none;
}
.booking-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; position:relative; z-index:1; }
.b-info h2 { font-family:'Bebas Neue',sans-serif; font-size:clamp(2.4rem,4.5vw,3.8rem); line-height:0.95; margin-bottom:18px; }
.b-info h2 span { color:var(--yellow); }
.b-info p { font-size:1rem; line-height:1.8; color:rgba(242,240,232,0.65); margin-bottom:13px; }
.contact-list { margin-top:28px; display:flex; flex-direction:column; gap:12px; }
.c-row { display:flex; align-items:center; gap:13px; font-family:'Barlow Condensed',sans-serif; font-size:0.98rem; letter-spacing:1px; color:rgba(242,240,232,0.68); }
.c-icon { width:36px; height:36px; background:rgba(251,124,245,0.1); border:1px solid rgba(251,124,245,0.25); display:flex; align-items:center; justify-content:center; font-size:0.95rem; flex-shrink:0; }
.c-row a { color:var(--cyan); text-decoration:none; }
.c-row a:hover { text-decoration:underline; }
.insurance-badge { margin-top:24px; padding:14px 18px; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); display:flex; align-items:center; gap:12px; font-family:'Barlow Condensed',sans-serif; font-size:0.82rem; color:rgba(242,240,232,0.42); letter-spacing:1px; }
.ins-check { color:var(--cyan); font-size:1.1rem; flex-shrink:0; }

/* FORM */
.b-form { background:var(--black); padding:34px 30px; }
.b-form h3 { font-family:'Bebas Neue',sans-serif; font-size:1.7rem; letter-spacing:3px; margin-bottom:24px; color:var(--pink); }
.fg { margin-bottom:15px; }
.fg label { display:block; font-family:'Barlow Condensed',sans-serif; font-size:0.72rem; text-transform:uppercase; letter-spacing:2.5px; color:rgba(242,240,232,0.42); margin-bottom:5px; }
.fg input, .fg select, .fg textarea { width:100%; background:rgba(255,255,255,0.04); border:none; border-bottom:2px solid rgba(242,240,232,0.12); color:var(--white); padding:11px; font-family:'Barlow',sans-serif; font-size:0.93rem; outline:none; transition:border-color 0.2s; -webkit-appearance:none; }
.fg input::placeholder, .fg textarea::placeholder { color:rgba(242,240,232,0.2); }
.fg input:focus, .fg select:focus, .fg textarea:focus { border-bottom-color:var(--pink); background:rgba(251,124,245,0.04); }
.fg select option { background:#111; color:var(--white); }
.fg textarea { resize:vertical; min-height:78px; }
.fg-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.btn-submit { width:100%; background:var(--pink); color:var(--black); border:none; font-family:'Bebas Neue',sans-serif; font-size:1.25rem; letter-spacing:4px; padding:15px; cursor:pointer; margin-top:8px; font-weight:700; clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); transition:background 0.2s, transform 0.2s; }
.btn-submit:hover { background:#ff96fa; transform:translateY(-1px); }

/* ── FOOTER ── */
footer { background:#060606; padding:55px 6vw 28px; border-top:1px solid rgba(251,124,245,0.08); }
.footer-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr; gap:46px; margin-bottom:44px; }
.f-logo   { height:55px; width:auto; display:block; margin-bottom:16px; filter:drop-shadow(0 2px 8px rgba(0,0,0,0.5)); }
.f-logo-fb{ display:none; font-family:'Permanent Marker',cursive; font-size:1.6rem; color:var(--yellow); text-shadow:2px 2px 0 var(--pink); margin-bottom:16px; }
.f-about  { font-size:0.87rem; line-height:1.75; color:rgba(242,240,232,0.36); }
.f-social { display:flex; gap:9px; margin-top:20px; }
.f-soc    { width:36px; height:36px; border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; color:rgba(242,240,232,0.52); text-decoration:none; font-size:0.82rem; font-weight:700; transition:all 0.2s; }
.f-soc:nth-child(1):hover { background:var(--pink);   border-color:var(--pink);   color:var(--black); }
.f-soc:nth-child(2):hover { background:var(--blue);   border-color:var(--blue);   color:var(--black); }
.f-soc:nth-child(3):hover { background:var(--yellow); border-color:var(--yellow); color:var(--black); }
.f-col h4 { font-family:'Bebas Neue',sans-serif; font-size:1.05rem; letter-spacing:3px; color:var(--cyan); margin-bottom:16px; }
.f-col ul { list-style:none; }
.f-col ul li { margin-bottom:8px; }
.f-col ul li a { color:rgba(242,240,232,0.4); text-decoration:none; font-size:0.86rem; font-family:'Barlow Condensed',sans-serif; letter-spacing:1px; transition:color 0.2s; }
.f-col ul li a:hover { color:var(--white); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.05); padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:0.76rem; color:rgba(242,240,232,0.22); font-family:'Barlow Condensed',sans-serif; letter-spacing:1px; }
.footer-bottom a { color:inherit; }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
    #about       { grid-template-columns:1fr; gap:36px; }
    #setlist     { grid-template-columns:1fr; }
    .setlist-grid{ columns:2; }
    .reviews-grid{ grid-template-columns:1fr 1fr; }
    .booking-grid{ grid-template-columns:1fr; gap:36px; }
    .footer-grid { grid-template-columns:1fr; gap:28px; }
    .about-stats { grid-template-columns:repeat(4,1fr); }
    .col-img.wide{ height:220px; }
}

@media (max-width:700px) {
    nav { padding:13px 20px; }
    .nav-links { display:none; }
    .hamburger  { display:flex; }
    .next-show-bar { display:none; }
    .slide-dots { right:14px; }
    .hero-content { padding:0 20px 40px; }
    .hero-ctas { flex-direction:column; }
    .btn-primary, .btn-ghost { text-align:center; }
    #about, #gigs, #setlist, #reviews, #booking, footer { padding-left:20px; padding-right:20px; }
    .gig-row { grid-template-columns:1fr 1fr; gap:10px; padding:13px 15px; }
    .g-date  { grid-column:1/-1; font-size:0.85rem; }
    .g-venue { grid-column:1; }
    .g-time  { grid-column:2; font-size:0.88rem; text-align:right; }
    .g-btn   { grid-column:1/-1; text-align:center; display:block; }
    .reviews-grid  { grid-template-columns:1fr; }
    .setlist-grid  { columns:1; }
    .col-img.wide  { height:180px; }
    .col-img.half  { height:140px; }
    .fg-row        { grid-template-columns:1fr; }
    .b-form        { padding:22px 16px; }
    .about-stats   { grid-template-columns:repeat(2,1fr); }
    .photo-strip   { height:210px; }
    .strip-photo   { width:185px; }
}

@media (max-width:460px) {
    .nav-logo img { height:30px; }
    .f-logo       { height:40px; }
}

/* ── CONTACT FORM 7 overrides ── */

/* Reset CF7's wrapper so it inherits our background */
.b-form .wpcf7 { padding: 0; }

/* All CF7 inputs/selects/textareas match the theme's form style */
.b-form .wpcf7-form input:not([type="submit"]),
.b-form .wpcf7-form select,
.b-form .wpcf7-form textarea {
    width: 100%;
    background: rgba(255,255,255,0.04);
    border: none;
    border-bottom: 2px solid rgba(242,240,232,0.12);
    color: var(--white);
    padding: 11px;
    font-family: 'Barlow', sans-serif;
    font-size: 0.93rem;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    -webkit-appearance: none;
    border-radius: 0;
    box-shadow: none;
}

.b-form .wpcf7-form input::placeholder,
.b-form .wpcf7-form textarea::placeholder { color: rgba(242,240,232,0.2); }

.b-form .wpcf7-form input:focus,
.b-form .wpcf7-form select:focus,
.b-form .wpcf7-form textarea:focus {
    border-bottom-color: var(--pink);
    background: rgba(251,124,245,0.04);
}

.b-form .wpcf7-form select option { background: #111; color: var(--white); }
.b-form .wpcf7-form textarea { resize: vertical; min-height: 78px; }

/* Labels */
.b-form .wpcf7-form label {
    display: block;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: rgba(242,240,232,0.42);
    margin-bottom: 5px;
}

/* Remove the default <p> spacing CF7 wraps fields in */
.b-form .wpcf7-form p { margin-bottom: 15px; }
.b-form .wpcf7-form p:last-of-type { margin-bottom: 0; }

/* Span wrappers CF7 adds around inputs */
.b-form .wpcf7-form-control-wrap { display: block; }

/* Submit button */
.b-form .wpcf7-form input[type="submit"] {
    width: 100%;
    background: var(--pink);
    color: var(--black);
    border: none;
    border-bottom: none;
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.25rem;
    letter-spacing: 4px;
    padding: 15px;
    cursor: pointer;
    margin-top: 8px;
    font-weight: 700;
    clip-path: polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
    transition: background 0.2s, transform 0.2s;
}
.b-form .wpcf7-form input[type="submit"]:hover {
    background: #ff96fa;
    border-bottom: none;
    transform: translateY(-1px);
}

/* Spinner */
.b-form .wpcf7-spinner { border-top-color: var(--pink); margin-left: 10px; vertical-align: middle; }

/* Validation error tip */
.b-form .wpcf7-not-valid-tip {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 1px;
    color: #ff6b6b;
    margin-top: 4px;
    display: block;
}
.b-form .wpcf7-form input.wpcf7-not-valid,
.b-form .wpcf7-form select.wpcf7-not-valid,
.b-form .wpcf7-form textarea.wpcf7-not-valid { border-bottom-color: #ff6b6b; }

/* Response message (success / error) */
.b-form .wpcf7-response-output {
    margin: 12px 0 0;
    padding: 10px 14px;
    border: none;
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 0.88rem;
    letter-spacing: 1px;
}
.b-form .wpcf7-form.sent .wpcf7-response-output {
    background: rgba(153,240,242,0.1);
    border-left: 3px solid var(--cyan);
    color: var(--cyan);
}
.b-form .wpcf7-form.failed .wpcf7-response-output,
.b-form .wpcf7-form.invalid .wpcf7-response-output,
.b-form .wpcf7-form.spam .wpcf7-response-output {
    background: rgba(255,107,107,0.08);
    border-left: 3px solid #ff6b6b;
    color: #ff6b6b;
}
