:root{--ink:#0b0b0b;--paper:#f2ede2;--gold:#d2a84a;--muted:#b7b0a4;--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;line-height:1.65}.wrap{max-width:var(--max);margin:auto;padding:100px 34px}.nav{position:fixed;z-index:10;top:0;left:0;right:0;height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#090909ee,#09090999,transparent);transition:.25s}.brand{color:#fff;text-decoration:none;font-weight:700;letter-spacing:.22em;font-size:12px}.nav nav{display:flex;gap:28px}.nav nav a{color:#eee;text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase}.menu{display:none;background:none;border:0;color:white;font-size:25px}.hero{position:relative;overflow:hidden;background:#050505}.hero>img{display:block;width:100%;height:auto;object-fit:contain}.manifesto{background:#0b0b0b;border-top:1px solid #171717}.manifestoInner{max-width:var(--max);margin:auto;padding:76px 34px 82px}.manifesto h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(44px,6vw,76px);line-height:1.02;margin:0;max-width:880px}.manifesto p:last-child{font-size:18px;color:#bbb;max-width:650px;margin:22px 0 0}.btn{display:inline-block;margin-top:18px;padding:13px 22px;border:1px solid var(--gold);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.about{display:grid;grid-template-columns:1.05fr .95fr;gap:75px;align-items:center}.about h2,.band h2,.live h2,.shows h2,.contact h2{font-size:clamp(38px,5vw,62px)}.aboutText>p:not(.eyebrow){color:#c9c4ba;font-size:17px}.about figure{margin:0}.about img{width:100%;display:block;filter:saturate(.85)}figcaption{color:#8f897f;font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin-top:8px}.band{background:#121212}.band .wrap{padding-top:90px}.cards{margin-top:55px;display:grid;grid-template-columns:1fr 1fr;gap:60px 46px}.cards article{display:grid;grid-template-columns:180px 1fr;gap:26px;align-items:start}.cards article:last-child{grid-column:1/-1;max-width:760px;margin:auto}.cards img{width:180px;height:230px;object-fit:cover;object-position:center;border-radius:2px}.cards h3{font-family:Georgia,serif;font-size:27px;font-weight:400;margin:0}.cards h4{margin:2px 0 12px;color:var(--gold);font-size:11px;text-transform:uppercase;letter-spacing:.16em}.cards p{font-size:14px;color:#bbb;margin:0}.live{min-height:610px;display:grid;grid-template-columns:1.15fr .85fr}.liveImg{background:url('assets/jeff-live.webp') center 32%/cover no-repeat;min-height:500px}.liveCopy{padding:90px 7vw;display:flex;flex-direction:column;justify-content:center;background:#17130f}.liveCopy p:last-child{color:#c6c0b7;max-width:520px;font-size:17px}.shows{padding-top:90px;padding-bottom:90px}.show{margin-top:42px;border-top:1px solid #333;border-bottom:1px solid #333;padding:30px 0;display:flex;align-items:center;gap:35px}.date{width:90px;text-align:center;border-right:1px solid #444;padding-right:30px}.date strong,.date small{display:block;color:var(--gold);letter-spacing:.15em;font-size:11px}.date span{display:block;font-family:Georgia,serif;font-size:45px;line-height:1}.showInfo h3{font-family:Georgia,serif;font-size:29px;font-weight:400;margin:0}.showInfo p{margin:2px 0;color:#aaa}.contact{text-align:center;background:#e9e1d2;color:#17130f}.contact .wrap{max-width:850px}.contact p:not(.eyebrow){font-size:18px}.contact .btn{color:#17130f}.disabled{opacity:.65;pointer-events:none}footer{background:#050505;color:#777;font-size:11px;text-transform:uppercase;letter-spacing:.1em}footer .wrap{padding:30px 34px;display:flex;justify-content:space-between;gap:20px}.scrolled{background:#090909f5;box-shadow:0 1px 0 #222}
@media(max-width:850px){.nav nav{display:none;position:absolute;top:70px;left:0;right:0;background:#090909;padding:25px 34px;flex-direction:column}.nav nav.open{display:flex}.menu{display:block}.hero>img{width:100%;height:auto;object-fit:contain}.manifestoInner{padding:58px 24px 64px}.manifesto h1{font-size:clamp(40px,10vw,60px)}.about{grid-template-columns:1fr;gap:40px}.cards{grid-template-columns:1fr}.cards article,.cards article:last-child{grid-template-columns:135px 1fr;max-width:none;margin:0}.cards img{width:135px;height:180px}.live{grid-template-columns:1fr}.liveImg{min-height:420px}.liveCopy{padding:70px 34px}footer .wrap{flex-direction:column}.wrap{padding:75px 24px}.nav{padding:0 24px}.brand{font-size:12px}}
@media(max-width:560px){.manifestoInner{padding-top:48px;padding-bottom:54px}.manifesto p:last-child{font-size:16px}.cards article,.cards article:last-child{grid-template-columns:1fr}.cards img{width:100%;height:330px;object-position:center 25%}.show{align-items:flex-start}.date{width:72px;padding-right:20px}.showInfo h3{font-size:24px}}

.textLink{display:inline-block;margin-top:10px;color:var(--gold);text-decoration:none;font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.textLink:hover{text-decoration:underline}
.contact{text-align:left}
.contactGrid{max-width:1100px;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.contactIntro p:not(.eyebrow){font-size:18px;max-width:480px}
.bookingForm{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bookingForm label{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.bookingForm label:nth-child(4){grid-column:1/-1}
.bookingForm input,.bookingForm textarea{width:100%;border:1px solid #bdb3a2;background:#f6f0e5;color:#17130f;padding:13px 14px;font:16px Arial,Helvetica,sans-serif;border-radius:0;outline:none}
.bookingForm input:focus,.bookingForm textarea:focus{border-color:#8c6d2b;box-shadow:0 0 0 1px #8c6d2b}
.bookingForm .btn{justify-self:start;background:transparent;cursor:pointer}
.bookingForm .submitBtn{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:220px;padding:14px 26px;border:1px solid #b98b28;background:#b98b28;color:#fff;line-height:1.2;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.bookingForm .submitBtn:hover{background:#a77b20;border-color:#a77b20;transform:translateY(-1px)}
.bookingForm .submitBtn span{font-size:19px;line-height:1}
.formNote{grid-column:1/-1;margin:0;color:#756d61;font-size:12px;max-width:520px}
@media(max-width:850px){.contactGrid{grid-template-columns:1fr;gap:42px}.bookingForm{grid-template-columns:1fr}.bookingForm label:nth-child(4){grid-column:auto}}

/* V4 hero-to-about tightening */
.locationBrand{font-size:11px;letter-spacing:.14em;white-space:nowrap}
.compactManifesto .manifestoInner{
  padding:28px 34px 30px;
}
.compactManifesto h1{
  margin:0;
  max-width:none;
  white-space:nowrap;
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(30px,3.25vw,48px);
  line-height:1.08;
}
@media(max-width:850px){
  .locationBrand{font-size:10px;letter-spacing:.10em}
  .compactManifesto .manifestoInner{padding:24px}
  .compactManifesto h1{font-size:clamp(28px,7vw,42px);white-space:normal}
}

/* V5 typography restoration */
.about h2,
.band h2,
.live h2,
.shows h2,
.contact h2{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:1.05;
  margin:0;
  font-size:clamp(38px,5vw,62px);
}

/* Make the tagline feel like a deliberate caption attached to the hero. */
.compactManifesto{
  border-top:0;
  border-bottom:1px solid #171717;
}
.compactManifesto .manifestoInner{
  max-width:none;
  padding:20px 34px 24px;
  text-align:center;
}
.compactManifesto h1{
  font-size:clamp(28px,2.65vw,42px);
  line-height:1.05;
  white-space:nowrap;
  letter-spacing:-.015em;
}

/* Ticket CTA */
.ticketBtn{
  margin-top:16px;
  color:#fff;
}
@media(max-width:850px){
  .compactManifesto .manifestoInner{padding:18px 24px 21px}
  .compactManifesto h1{font-size:clamp(27px,6.6vw,38px);white-space:normal}
}


/* =========================================================
   V6 MOBILE RESPONSIVE PASS
   Desktop styles above remain unchanged.
   ========================================================= */

@media (max-width: 760px) {
  html { scroll-behavior: smooth; }
  body { overflow-x: hidden; }

  /* Header / navigation */
  header, .site-header, .nav-wrap, .nav-inner {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  nav, .nav, .site-nav {
    gap: 14px !important;
  }
  nav a, .nav a, .site-nav a {
    font-size: 11px !important;
    letter-spacing: .08em !important;
  }

  /* Hero: preserve the complete designed artwork instead of hard-cropping it */
  .hero {
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: auto !important;
    background-size: contain !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
  }
  .hero img, .hero-image, .hero picture img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
  }

  /* Tagline */
  .manifesto, .tagline, .hero-caption {
    padding: 14px 18px 10px !important;
    text-align: center !important;
  }
  .manifesto h1, .manifesto h2, .tagline h1, .tagline h2, .hero-caption h1, .hero-caption h2 {
    font-size: clamp(25px, 7.5vw, 36px) !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    margin: 0 auto !important;
  }

  /* General sections */
  section {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .container, .wrap, .inner {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* About: stack copy and image */
  .about-grid, .about .grid, .about-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 26px !important;
  }
  .about h2 {
    font-size: clamp(38px, 12vw, 56px) !important;
    line-height: .98 !important;
  }
  .about img {
    width: 100% !important;
    max-width: 520px !important;
    margin: 0 auto !important;
    height: auto !important;
    object-fit: cover !important;
  }

  /* Band cards: one musician per row */
  .band-grid, .members-grid, .musicians, .band .grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }
  .member, .member-card, .musician {
    width: 100% !important;
    max-width: 560px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .member img, .member-card img, .musician img {
    width: 100% !important;
    height: auto !important;
  }

  /* Music / Shows */
  .music-grid, .show-grid, .shows-grid, .live-grid, .live .grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .live h2, .shows h2, .band h2, .contact h2 {
    font-size: clamp(40px, 12vw, 58px) !important;
    line-height: 1 !important;
  }

  /* Buttons become comfortably tappable */
  .button, .btn, a.button, a.btn, button {
    min-height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Booking/contact: single column */
  .contact-grid, .contact .grid, .booking-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .contact form {
    width: 100% !important;
  }
  input, textarea, select {
    width: 100% !important;
    box-sizing: border-box !important;
    font-size: 16px !important; /* prevents iOS Safari input zoom */
  }
}

@media (max-width: 430px) {
  section {
    padding-left: 17px !important;
    padding-right: 17px !important;
  }
  .about h2 {
    font-size: clamp(36px, 11.5vw, 49px) !important;
  }
  .manifesto h1, .manifesto h2, .tagline h1, .tagline h2 {
    font-size: 28px !important;
  }
}

/* FINAL MOBILE NAV FIX — preserve full hero, then collapse sticky header on scroll */
@media (max-width: 760px) {
  .nav {
    height: 76px;
    transition: height .22s ease, background .22s ease, box-shadow .22s ease, padding .22s ease;
  }
  .nav.scrolled {
    height: 50px;
    padding-left: 18px !important;
    padding-right: 18px !important;
    background: rgba(9,9,9,.94) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.10);
  }
  .nav.scrolled .brand {
    font-size: 10px !important;
    letter-spacing: .12em !important;
  }
  .nav.scrolled .menu {
    font-size: 22px;
    line-height: 1;
    min-height: 40px !important;
    padding: 0 2px;
  }
  .nav.scrolled nav {
    top: 50px;
  }
}

/* FINAL iPHONE HEADER FIX — header has its own row and scrolls away with the page */
@media (max-width: 760px) {
  .nav,
  .nav.scrolled {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    height: 76px !important;
    padding: 0 18px !important;
    background: #090909 !important;
    box-shadow: none !important;
  }
  .nav.scrolled .brand {
    font-size: 12px !important;
    letter-spacing: .22em !important;
  }
  .nav.scrolled .menu {
    font-size: 25px !important;
    min-height: 48px !important;
  }
  .nav nav,
  .nav.scrolled nav {
    top: 76px !important;
  }
}

/* FINAL DESKTOP CONTACT FORM FIX — Organization and Message span full form width */
@media (min-width: 851px) {
  .bookingForm label:nth-of-type(3),
  .bookingForm label:nth-of-type(4) {
    grid-column: 1 / -1;
  }
}

/* FINAL BIO READABILITY UPDATE — larger musician bio copy */
.cards p {
  font-size: 17px;
  line-height: 1.65;
}
@media (max-width: 850px) {
  .cards p {
    font-size: 18px;
    line-height: 1.6;
  }
}

/* Joshua mobile portrait: use the photo's natural aspect ratio so his face is never cropped */
@media (max-width:560px){
  .cards article:nth-child(5) img{
    width:100% !important;
    height:auto !important;
    object-fit:contain !important;
    object-position:center center !important;
  }
}

/* FINAL MUSIC PHOTO FRAMING — show more of the portrait without crop/blur */
.liveImg{
  background-color:#0b0b0b;
  background-position:center center;
  background-size:contain;
  background-repeat:no-repeat;
}


/* SHOWS UPDATE — upcoming performances emphasized, past performances quieter */
.showsList .show{margin-top:0;border-top:0;border-bottom:1px solid #333;padding:30px 0}
.showsList .show:first-child{margin-top:42px;border-top:1px solid #333}
.showInfo .lineup{color:var(--paper);font-weight:700;margin:5px 0 2px}
.pastShows{margin-top:72px;padding-top:8px}
.pastEyebrow{color:#777}
.pastShow{margin-top:18px;opacity:.62;border-color:#2b2b2b}
.pastShow .date{border-color:#333}
.pastShow .date strong,.pastShow .date small{color:#9a8350}
.pastShow .showInfo h3{color:#c8c1b7}
.pastShow .showInfo .lineup{color:#aaa}
@media(max-width:560px){.pastShows{margin-top:58px}.showsList .show{padding:26px 0}.pastShow{padding:26px 0}}
