
/* Last Gary V2 — local, dependency-free, responsive WinterCMS theme. */
:root {
    color-scheme: dark;
    --bg: #060606;
    --bg-rgb: 6,6,6;
    --surface: #111111;
    --surface-2: #181818;
    --surface-3: #202020;
    --text: #f2eee4;
    --muted: #c8c0ad;
    --soft: #948b7a;
    --line: rgba(205,154,48,.28);
    --line-strong: rgba(205,154,48,.58);
    --gold: #d6a63c;
    --gold-2: #b98321;
    --gold-dark: #7a5317;
    --danger: #c5573a;
    --success: #65b77a;
    --shadow: 0 24px 80px rgba(0,0,0,.45);
    --radius: 0;
    --container: 1180px;
    --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    --font-display: Impact, "Arial Narrow", "Roboto Condensed", "Franklin Gothic Condensed", sans-serif;
}
html[data-theme="light"] {
    color-scheme: light;
    --bg: #f5f0e6;
    --bg-rgb: 245,240,230;
    --surface: #fffaf0;
    --surface-2: #fff4dc;
    --surface-3: #f1e3c8;
    --text: #17130d;
    --muted: #4d4438;
    --soft: #7c6c55;
    --line: rgba(126,83,22,.26);
    --line-strong: rgba(126,83,22,.5);
    --gold: #9c681b;
    --gold-2: #c48a2c;
    --gold-dark: #6d4814;
    --shadow: 0 18px 60px rgba(52,34,8,.15);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--font-body);
    background:
        radial-gradient(circle at 70% 8%, rgba(214,166,60,.14), transparent 28rem),
        radial-gradient(circle at 10% 35%, rgba(111,73,18,.17), transparent 24rem),
        linear-gradient(180deg, var(--bg), var(--bg));
    color: var(--text);
    min-height: 100vh;
    line-height: 1.65;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--gold); }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }
.container { width: min(100% - 2rem, var(--container)); margin: 0 auto; }
.container-narrow { width: min(100% - 2rem, 900px); margin: 0 auto; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 9999; padding: .75rem 1rem; background: var(--gold); color:#080808; font-weight: 900; }
.skip-link:focus { top: 1rem; }

/* Typography */
.eyebrow { color: var(--gold); text-transform: uppercase; letter-spacing: .32em; font-size: .78rem; font-weight: 900; }
h1, h2, h3, h4, .display-title { font-family: var(--font-display); letter-spacing: .045em; text-transform: uppercase; line-height: .95; margin: 0 0 1rem; }
h1 { font-size: clamp(3.3rem, 9vw, 8.6rem); text-shadow: 0 4px 20px rgba(0,0,0,.45); }
h2 { font-size: clamp(2.05rem, 5.2vw, 4.1rem); }
h3 { font-size: clamp(1.35rem, 2.6vw, 2rem); }
p { margin: 0 0 1rem; }
.lead { font-size: clamp(1.05rem, 2vw, 1.32rem); color: var(--muted); max-width: 760px; }
.text-muted { color: var(--muted); }
.text-soft { color: var(--soft); }
.gold { color: var(--gold); }

/* Header */
.site-header {
    position: sticky; top: 0; z-index: 1000;
    background: rgba(var(--bg-rgb), .82);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(205,154,48,.18);
}
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.logo { display:inline-grid; gap:.1rem; line-height:1; }
.logo-main { font-family: var(--font-display); font-size: clamp(1.8rem, 3vw, 2.55rem); letter-spacing:.08em; }
.logo-tag { font-family: var(--font-display); font-size: .62rem; letter-spacing:.18em; color: var(--muted); }
.nav-toggle { display: none; background: transparent; border: 1px solid var(--line); color: var(--text); padding: .7rem .85rem; text-transform: uppercase; font-weight: 900; }
.site-nav { display:flex; align-items:center; gap: .35rem; }
.nav-link, .drop-button { padding: .85rem .72rem; font-size: .82rem; font-weight: 900; text-transform: uppercase; letter-spacing:.06em; background: none; border:0; color: var(--text); cursor:pointer; }
.nav-link:hover, .drop-button:hover, .nav-link.is-active { color: var(--gold); }
.has-dropdown { position:relative; }
.dropdown-panel { position:absolute; top:100%; left:0; min-width: 250px; background: var(--surface); border:1px solid var(--line); padding:.55rem; opacity:0; pointer-events:none; transform:translateY(8px); transition:.18s ease; box-shadow: var(--shadow); }
.has-dropdown:hover .dropdown-panel, .has-dropdown:focus-within .dropdown-panel { opacity:1; pointer-events:auto; transform:translateY(0); }
.dropdown-panel a { display:block; padding:.72rem .8rem; color:var(--muted); border-bottom:1px solid rgba(205,154,48,.1); font-size:.88rem; }
.dropdown-panel a:hover { color: var(--gold); background:rgba(205,154,48,.08); }
.header-actions { display:flex; align-items:center; gap:.7rem; }
.theme-toggle { width: 42px; height: 42px; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; }
.theme-toggle:hover { border-color:var(--gold); color:var(--gold); }

/* Buttons */
.btn-row { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.btn, button.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
    min-height:48px; padding:.85rem 1.15rem; border:1px solid var(--line-strong);
    background:transparent; color:var(--text); font-weight:900; text-transform:uppercase; letter-spacing:.06em;
    transition:.18s ease; cursor:pointer;
}
.btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-2)); color:#080808; border-color: transparent; box-shadow:0 10px 28px rgba(214,166,60,.18); }
.btn:hover { transform:translateY(-1px); border-color:var(--gold); color:var(--gold); }
.btn-primary:hover { color:#080808; filter:brightness(1.05); }
.btn-small { min-height:38px; padding:.58rem .85rem; font-size:.78rem; }

/* Sections */
.section { padding: clamp(3.5rem, 7vw, 7rem) 0; border-top:1px solid rgba(205,154,48,.12); }
.section-tight { padding: clamp(2.4rem, 5vw, 4.5rem) 0; }
.section-head { text-align:center; margin:0 auto 2.25rem; max-width:880px; }
.section-head .eyebrow { margin-bottom:.8rem; }
.kicker-line { width:76px; height:4px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin: .8rem auto 0; }
.grid { display:grid; gap:1.25rem; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card {
    position:relative; overflow:hidden; background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
    border:1px solid var(--line); box-shadow: var(--shadow);
}
.card-body { padding: clamp(1.1rem, 2.2vw, 1.55rem); }
.card-media { aspect-ratio: 16 / 9; object-fit: cover; width:100%; border-bottom:1px solid var(--line); filter:saturate(.9) contrast(1.05); }
.card h3 { margin-bottom:.55rem; }
.card-link { color: var(--gold); font-weight:900; text-transform:uppercase; letter-spacing:.08em; font-size:.84rem; }
.card-link::after { content:' →'; }
.card:hover { border-color: var(--line-strong); transform: translateY(-2px); transition:.18s ease; }
.list-check { list-style:none; padding:0; margin:1.25rem 0; display:grid; gap:.75rem; }
.list-check li { position:relative; padding-left:1.5rem; color:var(--muted); }
.list-check li::before { content:'•'; position:absolute; left:0; top:0; color:var(--gold); font-weight:900; }

/* Hero */
.hero { position:relative; min-height: calc(100vh - 88px); display:grid; align-items:center; overflow:hidden; border-bottom:1px solid rgba(205,154,48,.18); }
.hero::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.76) 37%, rgba(0,0,0,.15) 100%); z-index:1; }
html[data-theme="light"] .hero::before { background:linear-gradient(90deg, rgba(255,250,240,.9), rgba(255,250,240,.7) 40%, rgba(255,250,240,.08)); }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.72; }
.hero-content { position:relative; z-index:2; max-width:780px; padding: clamp(4rem, 9vw, 7rem) 0; }
.hero-subtitle { font-size:clamp(1.35rem, 2.6vw, 2.15rem); line-height:1.15; text-transform:uppercase; letter-spacing:.065em; max-width:720px; }
.hero-copy { max-width:650px; color:var(--muted); font-size:1.05rem; }
.trust-strip { position:relative; z-index:3; margin-top:-42px; }
.trust-grid { display:grid; grid-template-columns: repeat(4,1fr); background:rgba(var(--bg-rgb),.82); backdrop-filter: blur(16px); border:1px solid var(--line); box-shadow:var(--shadow); }
.trust-item { padding:1.35rem; border-right:1px solid rgba(205,154,48,.16); display:flex; gap:1rem; align-items:center; }
.trust-item:last-child { border-right:0; }
.trust-mark { font-family:var(--font-display); font-size:2rem; color:var(--gold); line-height:1; }
.trust-label strong { display:block; text-transform:uppercase; letter-spacing:.08em; }
.trust-label span { color:var(--muted); font-size:.82rem; text-transform:uppercase; letter-spacing:.06em; }

/* Split and feature */
.split { display:grid; grid-template-columns: minmax(0, 1.08fr) minmax(0,.92fr); gap: clamp(1.5rem, 4vw, 4rem); align-items:center; }
.feature-panel { background:linear-gradient(180deg, rgba(214,166,60,.08), rgba(255,255,255,.02)); border:1px solid var(--line); padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--shadow); }
.media-frame { position:relative; border:1px solid var(--line); background:var(--surface); overflow:hidden; }
.media-frame img { width:100%; object-fit:cover; aspect-ratio: 16/10; }
.play-button { position:absolute; left:50%; top:50%; transform:translate(-50%, -50%); width:76px; height:76px; border-radius:50%; border:2px solid var(--text); background:rgba(0,0,0,.35); display:grid; place-items:center; font-weight:900; color:var(--text); }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.25rem; }
.stat { border:1px solid var(--line); padding:1rem; background:rgba(255,255,255,.025); }
.stat strong { display:block; font-family:var(--font-display); font-size:2rem; color:var(--gold); line-height:1; }
.stat span { color:var(--muted); font-size:.86rem; }

/* Gigs */
.gig-list { display:grid; gap:1rem; }
.gig-item { display:grid; grid-template-columns: 94px 1fr auto; gap:1.1rem; align-items:center; border:1px solid var(--line); background:linear-gradient(90deg, rgba(255,255,255,.045), rgba(255,255,255,.018)); padding:.9rem; }
.gig-date { border:1px solid var(--line-strong); min-height:78px; display:grid; place-items:center; text-align:center; color:var(--gold); font-family:var(--font-display); line-height:.9; }
.gig-date strong { font-size:2rem; display:block; }
.gig-date span { font-size:1rem; display:block; }
.gig-info strong { display:block; font-size:1.02rem; }
.gig-info span { display:block; color:var(--muted); font-size:.92rem; }

/* Forms */
.form-card { border:1px solid var(--line); background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); padding:clamp(1.25rem,3vw,2rem); box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.form-field.full { grid-column:1 / -1; }
label { display:block; font-weight:900; text-transform:uppercase; letter-spacing:.06em; font-size:.82rem; margin-bottom:.4rem; }
input, textarea, select { width:100%; border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--text); padding:.9rem 1rem; outline:none; }
textarea { min-height:150px; resize:vertical; }
input:focus, textarea:focus, select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(214,166,60,.16); }

/* FAQ */
.faq-list { display:grid; gap:.8rem; }
details { border:1px solid var(--line); background:rgba(255,255,255,.03); }
summary { cursor:pointer; padding:1rem 1.15rem; font-weight:900; text-transform:uppercase; letter-spacing:.045em; }
details > div { padding:0 1.15rem 1rem; color:var(--muted); }

/* CTA / footer */
.band-cta { background:linear-gradient(90deg, rgba(0,0,0,.95), rgba(71,44,12,.72)), url('../images/placeholders/private-party.jpg') center/cover; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.band-cta-inner { display:flex; justify-content:space-between; gap:1.5rem; align-items:center; padding:2.1rem 0; }
.site-footer { border-top:1px solid var(--line); background:#050505; color:#e9e0ce; }
html[data-theme="light"] .site-footer { background:#22190d; color:#fff4df; }
.footer-grid { display:grid; grid-template-columns: 1.5fr repeat(4,1fr); gap:2rem; padding:3rem 0; }
.footer-title { color:var(--gold); font-weight:900; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.8rem; }
.footer-links { display:grid; gap:.36rem; }
.footer-links a { color:#cfc6b8; font-size:.92rem; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(205,154,48,.16); padding:1rem 0; color:#a99f8e; font-size:.88rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }

/* Cookie */
.cookie-banner { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:9998; display:none; }
.cookie-banner.is-visible { display:block; }
.cookie-box { max-width:980px; margin:0 auto; border:1px solid var(--line-strong); background:rgba(var(--bg-rgb),.96); backdrop-filter: blur(18px); padding:1rem; box-shadow:var(--shadow); display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center; }
.cookie-actions { display:flex; gap:.6rem; flex-wrap:wrap; }

/* Utility */
.mt-0 { margin-top:0!important; } .mb-0{margin-bottom:0!important;} .mt-2{margin-top:1rem;} .mt-3{margin-top:1.5rem;} .mt-4{margin-top:2rem;} .mb-2{margin-bottom:1rem;} .center{text-align:center;} .right{text-align:right;}
.anchor-offset { scroll-margin-top:110px; }
.breadcrumbs { color:var(--soft); font-size:.9rem; margin-bottom:1rem; }
.breadcrumbs a { color:var(--muted); }
.page-hero { padding: clamp(4.2rem, 8vw, 7rem) 0 clamp(2.4rem, 5vw, 4rem); border-bottom:1px solid rgba(205,154,48,.16); background: radial-gradient(circle at 80% 0%, rgba(214,166,60,.12), transparent 25rem); }
.page-hero h1 { font-size: clamp(3rem, 8vw, 7rem); }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.gallery-grid img { aspect-ratio:1; object-fit:cover; border:1px solid var(--line); }
.table-wrap { overflow:auto; border:1px solid var(--line); }
table { border-collapse:collapse; width:100%; min-width:760px; background:rgba(255,255,255,.03); }
th,td { padding:.9rem 1rem; border-bottom:1px solid rgba(205,154,48,.12); text-align:left; }
th { color:var(--gold); text-transform:uppercase; letter-spacing:.06em; font-size:.84rem; }

@media (max-width: 1060px) {
    .nav-toggle { display:inline-flex; }
    .site-nav { position:fixed; inset:88px 0 auto 0; background:rgba(var(--bg-rgb),.98); border-bottom:1px solid var(--line); padding:1rem; display:none; flex-direction:column; align-items:stretch; max-height:calc(100vh - 88px); overflow:auto; }
    .site-nav.is-open { display:flex; }
    .has-dropdown .dropdown-panel { position:static; opacity:1; pointer-events:auto; transform:none; display:none; box-shadow:none; margin:.2rem 0 .8rem; }
    .has-dropdown.is-open .dropdown-panel { display:block; }
    .drop-button, .nav-link { text-align:left; width:100%; }
    .header-actions .btn-primary { display:none; }
    .grid-4 { grid-template-columns:repeat(2,1fr); }
    .footer-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 760px) {
    .container, .container-narrow { width:min(100% - 1.25rem, var(--container)); }
    .hero { min-height:auto; }
    .hero-content { padding:3.6rem 0 5.5rem; }
    h1 { font-size: clamp(3.1rem, 16vw, 5.2rem); }
    .trust-grid, .grid-2, .grid-3, .grid-4, .split, .footer-grid, .form-grid, .stats { grid-template-columns:1fr; }
    .trust-strip { margin-top:0; }
    .trust-item { border-right:0; border-bottom:1px solid rgba(205,154,48,.16); }
    .band-cta-inner { flex-direction:column; align-items:flex-start; }
    .gig-item { grid-template-columns:76px 1fr; }
    .gig-item .btn { grid-column:1 / -1; width:100%; }
    .gallery-grid { grid-template-columns:repeat(2,1fr); }
    .cookie-box { grid-template-columns:1fr; }
    .btn-row .btn { width:100%; }
}
@media (max-width: 420px) {
    .logo-main { font-size:1.7rem; }
    .header-inner { min-height:76px; }
    .site-nav { inset:76px 0 auto 0; max-height:calc(100vh - 76px); }
    .page-hero h1 { font-size:2.8rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}
