/* =========================================================
   PIERCE AUGUST — The Saltwater Cowboy
   Global design system — vintage tour-artifact art direction
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Oswald:wght@400;500;600;700&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Caveat:wght@600;700&family=Inter:wght@400;500;600&display=swap');

:root{
  /* palette — bright coastal daylight: crisp white/ivory dominate, ocean blue as the accent */
  --white:#ffffff;          /* crisp white */
  --ivory:#faf6ee;          /* warm bright ivory */
  --paper:#f4efe3;          /* soft linen */
  --sand:#ecdfc3;           /* pale sand */
  --navy:#0d3350;           /* deep navy — accent only (headlines/nav/buttons), not a dominant bg */
  --navy-2:#124568;         /* marine navy */
  --ocean:#1783ad;          /* rich, bright ocean blue */
  --denim:#3fa0c4;          /* bright denim blue */
  --skyblue:#8fd4e8;        /* light sea-glass blue */
  --gold:#d6a94c;           /* warm gold accent */
  --chrome:#c3c9c6;         /* chrome / silver */
  --racered:#c2483a;        /* clear coral-red accent */
  --ink:#16232e;            /* near-black ink for hairlines only */

  /* legacy aliases kept so untouched components/pages still resolve */
  --linen:var(--paper);
  --seaglass:var(--skyblue);
  --seaglass-light:#eaf7fa;

  --font-display: 'Anton', 'Oswald', Impact, sans-serif;      /* oversized racing/poster type */
  --font-athletic: 'Oswald', 'Helvetica Neue', Arial, sans-serif; /* collegiate/industrial labels */
  --font-serif: 'Fraunces', Georgia, serif;                    /* editorial magazine copy */
  --font-script: 'Caveat', cursive;                            /* hand-painted accent, used sparingly */
  --font-sans: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --container: 1360px;
  --pad: clamp(20px, 5vw, 72px);

  /* printed-paper grain, halftone dot + subtle offset-ink noise, all inline SVG (no external assets) */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  --halftone: radial-gradient(circle, rgba(13,51,80,0.55) 1px, transparent 1.3px);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}
}
body{
  margin:0;
  background:var(--ivory);
  color:var(--navy);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* whole-site paper grain — very quiet, printed-matter feel */
body::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:var(--grain);background-size:160px 160px;
  opacity:0.05;mix-blend-mode:multiply;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:0.01em;margin:0;line-height:0.94;font-weight:400;}
h3,h4{font-family:var(--font-athletic);font-weight:700;letter-spacing:0.02em;line-height:1.1;}
p{margin:0 0 1em;}
.serif{font-family:var(--font-serif);text-transform:none;letter-spacing:0;}
.script{font-family:var(--font-script);text-transform:none;letter-spacing:0.01em;font-weight:700;}
.container{max-width:var(--container);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.eyebrow{
  font-family:var(--font-athletic);
  font-size:0.75rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--ocean);
  font-weight:600;
}
.eyebrow::before{content:"— ";}
.eyebrow::after{content:" —";}
.rule{width:56px;height:3px;background:var(--racered);margin:18px 0;}
.section{padding:clamp(64px,10vw,140px) 0;position:relative;}
.section--tight{padding:clamp(40px,6vw,80px) 0;}
.bg-white{background:var(--white);}
.bg-ivory{background:var(--ivory);}
.bg-linen{background:var(--paper);}
.bg-sand{background:var(--sand);}
.bg-navy{background:var(--navy);color:var(--white);}
.bg-seaglass{background:var(--seaglass-light);}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- Vintage graphic-language utilities ---------- */

/* halftone dot overlay — lay over photos/panels for a screen-printed feel */
.halftone{position:relative;}
.halftone::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:var(--halftone);background-size:6px 6px;
  opacity:0.16;mix-blend-mode:multiply;
}
/* duotone photo treatment: navy + cream, like an old printed campaign photo */
.duotone{filter:grayscale(1) contrast(1.15) brightness(1.02) sepia(0.12);}
.duotone-navy{position:relative;}
.duotone-navy img{filter:saturate(1.2) contrast(1.05) brightness(1.05);}
.duotone-navy::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(160deg, rgba(13,51,80,0.72), rgba(23,131,173,0.42));
  mix-blend-mode:color;
}

/* racing stripe band */
.stripe-band{display:flex;height:8px;width:100%;}
.stripe-band span{flex:1;}
.stripe-band span:nth-child(odd){background:var(--racered);}
.stripe-band span:nth-child(even){background:var(--ivory);}

/* printed double-rule border, slightly imperfect */
.print-border{
  border:2px solid var(--navy);
  outline:1px solid var(--navy);
  outline-offset:5px;
}

/* registration marks — corner crosshairs, like offset-print alignment guides */
.reg-marks{position:relative;}
.reg-marks::before,.reg-marks::after{
  content:"";position:absolute;width:22px;height:22px;
  background:
    linear-gradient(currentColor,currentColor) center/100% 1px no-repeat,
    linear-gradient(currentColor,currentColor) center/1px 100% no-repeat;
  border:1px solid currentColor;border-radius:50%;
  opacity:0.55;pointer-events:none;
}
.reg-marks::before{top:14px;left:14px;}
.reg-marks::after{bottom:14px;right:14px;}

/* stamped tour/number badge — circular, rotated, dashed, like a wax stamp or pit-pass number */
.stamp{
  display:inline-flex;align-items:center;justify-content:center;
  width:78px;height:78px;border-radius:50%;
  border:2px dashed currentColor;
  font-family:var(--font-athletic);font-weight:700;font-size:1.6rem;
  transform:rotate(-6deg);flex-shrink:0;
}

/* torn / distressed paper edge, used as a section divider */
.torn-edge{position:relative;}
.torn-edge::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:14px;z-index:2;
  background:inherit;
  clip-path:polygon(0% 0%,3% 100%,7% 10%,11% 90%,15% 0%,19% 100%,23% 15%,27% 85%,31% 5%,35% 100%,39% 20%,43% 90%,47% 0%,51% 100%,55% 10%,59% 90%,63% 5%,67% 100%,71% 15%,75% 85%,79% 0%,83% 100%,87% 20%,91% 90%,95% 5%,100% 100%,100% 0%);
}

/* faded ink stamp text — for "EST." / catalog-style tags */
.ink-tag{
  font-family:var(--font-athletic);font-weight:700;font-size:0.7rem;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--racered);border:1.5px solid var(--racered);
  padding:4px 10px;transform:rotate(-3deg);display:inline-block;opacity:0.85;
}

/* ticket-stub shape with perforated edge */
.ticket{
  position:relative;background:var(--white);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.ticket__perf{
  border-left:2px dashed var(--navy);opacity:0.4;
}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--navy);color:var(--white);
  padding:14px 22px;z-index:999;font-family:var(--font-sans);font-weight:600;
}
.skip-link:focus{left:12px;top:12px;}

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--ocean);outline-offset:3px;
}

/* ---------- Buttons ---------- */
/* screen-printed, squared-off — no pills, no soft rounding */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--font-athletic);font-weight:700;font-size:0.85rem;
  letter-spacing:0.12em;text-transform:uppercase;
  padding:16px 32px;border:2px solid transparent;cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease, transform .2s ease;
  min-height:48px;position:relative;
}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--navy);color:var(--white);border-color:var(--navy);}
.btn-primary:hover{background:var(--racered);border-color:var(--racered);}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn-white{background:var(--white);color:var(--navy);border-color:var(--white);}
.btn-white:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.btn-ghost-light{background:transparent;color:var(--white);border-color:rgba(251,246,234,0.65);}
.btn-ghost-light:hover{background:rgba(251,246,234,0.14);border-color:var(--white);}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad);
  background:transparent;color:var(--white);
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease, color .4s ease, border-color .4s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:var(--white);
  color:var(--navy);
  box-shadow:0 2px 0 var(--navy);
  border-bottom:1px solid var(--navy);
  padding:10px var(--pad);
}
.page:not(.page--home) .site-header{
  background:var(--white);color:var(--navy);
  box-shadow:0 2px 0 var(--navy);border-bottom:1px solid var(--navy);
}
.brand{
  font-family:var(--font-display);font-size:1.6rem;font-weight:400;
  letter-spacing:0.03em;white-space:nowrap;display:flex;align-items:baseline;gap:8px;
}
.brand::before{
  content:"★";font-size:0.7rem;color:var(--gold);transform:translateY(-4px);
}
.brand-accent{color:var(--racered);}
.brand-lockup{display:flex;flex-direction:column;line-height:1;}
.brand-sub{
  font-family:var(--font-athletic);font-size:0.6rem;font-weight:700;letter-spacing:0.32em;
  text-transform:uppercase;color:var(--skyblue);margin-top:4px;
}
.site-header.is-scrolled .brand-sub,.page:not(.page--home) .site-header .brand-sub{color:var(--ocean);}
.main-nav{display:flex;align-items:center;gap:38px;}
.main-nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;}
.main-nav a{
  font-family:var(--font-athletic);font-size:1.02rem;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;position:relative;
  padding:14px 0;display:inline-block;
}
.main-nav a::after{
  content:"";position:absolute;left:0;bottom:-3px;width:0;height:2px;background:var(--racered);
  transition:width .3s ease;
}
.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{width:100%;}
.header-social{display:flex;gap:2px;align-items:center;}
.header-social a{opacity:0.85;transition:opacity .3s ease;padding:12px 9px;display:inline-flex;align-items:center;}
.header-social a:hover{opacity:1;}
.header-social svg{width:15px;height:15px;fill:currentColor;}
.header-cta{display:flex;align-items:center;gap:26px;}
.header-cta .btn{padding:11px 20px;font-size:0.72rem;}
.site-header .btn-outline{border-color:currentColor;color:currentColor;}
.site-header.is-scrolled .btn-outline:hover, .page:not(.page--home) .btn-outline:hover{background:var(--navy);color:var(--white);}

.menu-toggle{
  display:none;background:none;border:0;cursor:pointer;flex-direction:column;
  align-items:center;justify-content:center;
  gap:5px;padding:10px;z-index:300;min-width:44px;min-height:44px;
}
.menu-toggle span{width:26px;height:2px;background:currentColor;display:block;transition:transform .3s ease, opacity .3s ease;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ---------- Mobile Menu ---------- */
.mobile-menu{
  position:fixed;inset:0;background:var(--navy);color:var(--white);
  z-index:190;display:flex;flex-direction:column;justify-content:space-between;
  transform:translateY(-100%);transition:transform .5s cubic-bezier(.65,0,.2,1);
  padding:100px var(--pad) 40px;overflow-y:auto;
  background-image:linear-gradient(160deg, rgba(13,51,80,0.35), rgba(13,51,80,0.92) 65%), url('../images/menu-pierce.jpg');
  background-size:cover;background-position:70% 20%;
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu ul{list-style:none;margin:0;padding:0;}
.mobile-menu li{border-top:1px solid rgba(251,246,234,0.2);counter-increment:menuitem;position:relative;}
.mobile-menu ul{counter-reset:menuitem;}
.mobile-menu li:last-child{border-bottom:1px solid rgba(251,246,234,0.2);}
.mobile-menu li::before{
  content:"0"counter(menuitem);position:absolute;right:0;top:50%;transform:translateY(-50%);
  font-family:var(--font-athletic);font-size:0.8rem;color:var(--gold);letter-spacing:0.1em;
}
.mobile-menu a{
  display:block;padding:16px 0;font-family:var(--font-display);font-weight:400;
  font-size:clamp(2rem,8vw,2.6rem);letter-spacing:0.01em;text-transform:uppercase;
}
.mobile-menu-social{display:flex;gap:22px;margin-top:30px;}
.mobile-menu-social a{
  font-family:var(--font-athletic);font-weight:700;font-size:0.75rem;letter-spacing:0.1em;
  border:1px solid rgba(251,246,234,0.5);padding:8px 12px;
}

/* ---------- Hero media/scrim — shared by inner page-hero banners and the booking CTA ---------- */
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__media img,.hero__media video{width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:grayscale(0.55) sepia(0.18) contrast(1.12) brightness(0.85);}
.hero__scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg, rgba(13,51,80,0.55) 0%, rgba(13,51,80,0.35) 35%, rgba(13,51,80,0.92) 100%),
    linear-gradient(100deg, rgba(13,51,80,0.55) 0%, transparent 45%);
}
.hero__sub{margin-top:10px;max-width:44ch;font-size:1.05rem;font-family:var(--font-athletic);letter-spacing:0.08em;text-transform:uppercase;color:var(--ivory);}
.hero__actions{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap;}
.hero__side{display:flex;flex-direction:column;align-items:flex-end;gap:14px;color:var(--ivory);}
.hero__number{
  font-family:var(--font-display);font-size:clamp(3rem,7vw,5.5rem);line-height:0.8;color:transparent;
  -webkit-text-stroke:2px var(--ivory);text-stroke:2px var(--ivory);
}
.hero__side-label{font-family:var(--font-athletic);font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;text-align:right;color:var(--skyblue);}
.hero--short{min-height:64vh;}

/* page hero (non-home) — restyled to match new system, structure unchanged */
.page-hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;color:var(--white);background:var(--navy);overflow:hidden;border-bottom:5px solid var(--racered);}
.page-hero__content{position:relative;z-index:2;padding:150px var(--pad) 70px;}
.page-hero__title{font-size:clamp(2.8rem,8vw,6rem);font-weight:400;text-shadow:2px 2px 0 rgba(13,51,80,0.4);}
.page-hero .hero__scrim{background:linear-gradient(180deg, rgba(13,51,80,0.25) 0%, rgba(13,51,80,0.15) 35%, rgba(13,51,80,0.65) 100%);}
.page-hero .hero__media img{filter:saturate(1.15) contrast(1.05) brightness(1.02);}

/* ---------- Section headings ---------- */
.section-head{max-width:760px;margin-bottom:52px;}
.section-head--right{margin-left:auto;text-align:right;}
.section-title{font-size:clamp(2.2rem,5vw,3.6rem);}

/* ---------- Featured Release — vinyl-record campaign ---------- */
.release{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center;}
.release__art{position:relative;padding:30px 40px 30px 0;max-width:100%;overflow:hidden;}
.release__art .placeholder-media,.release__art img{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  box-shadow:10px 14px 0 var(--navy);border:2px solid var(--navy);position:relative;z-index:2;
}
.release__vinyl{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:60%;aspect-ratio:1/1;border-radius:50%;z-index:1;
  background:
    repeating-radial-gradient(circle at center, var(--ink) 0 1px, transparent 1px 5px),
    radial-gradient(circle at center, var(--navy) 0 18%, var(--ink) 18.5% 100%);
  animation:vinylspin 26s linear infinite;
}
@media (prefers-reduced-motion: reduce){.release__vinyl{animation:none;}}
@keyframes vinylspin{to{transform:translateY(-50%) rotate(360deg);}}
.release__number{
  position:absolute;top:0;left:0;font-family:var(--font-display);
  font-size:3.4rem;color:var(--white);background:var(--racered);
  width:88px;height:88px;display:flex;align-items:center;justify-content:center;
  font-weight:400;z-index:3;border:2px solid var(--navy);transform:rotate(-4deg);
}
.release__eyebrow{color:var(--racered);}
.release__title{font-size:clamp(2.1rem,5vw,3.4rem);margin:14px 0 8px;font-weight:400;}
.release__meta{font-family:var(--font-athletic);font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ocean);margin-bottom:16px;font-weight:700;}
.release__desc{font-family:var(--font-serif);font-size:1.15rem;max-width:52ch;}
.stream-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.stream-link{
  display:inline-flex;align-items:center;gap:10px;border:2px solid var(--navy);
  padding:11px 18px;font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;
  font-family:var(--font-athletic);transition:background .3s ease,color .3s ease;
}
.stream-link:hover{background:var(--navy);color:var(--white);}

/* ---------- Intro / About teaser — vintage magazine spread ---------- */
.intro{display:grid;grid-template-columns:0.85fr 1.15fr;gap:clamp(30px,6vw,90px);align-items:center;}
.intro__image{position:relative;padding:20px 0 0 20px;}
.intro__image img{width:100%;height:640px;object-fit:cover;border:2px solid var(--navy);position:relative;z-index:2;}
.intro__stripe{position:absolute;left:0;top:0;bottom:20px;width:20px;z-index:1;
  background:repeating-linear-gradient(180deg, var(--racered) 0 16px, var(--ivory) 16px 32px);}
.intro__tag{position:absolute;z-index:3;top:0;right:-14px;}
.intro__body{position:relative;}
.intro__dropcap{font-family:var(--font-display);font-size:5.5rem;line-height:0.7;float:left;margin:6px 12px 0 0;color:var(--racered);}
.intro__body p{font-family:var(--font-serif);font-size:1.2rem;color:var(--navy-2);}
.intro__columns{column-count:2;column-gap:36px;}
.intro__columns p:first-of-type::first-letter{
  font-family:var(--font-display);font-size:3.6rem;line-height:0.7;float:left;margin:6px 10px 0 0;color:var(--racered);
}

/* ---------- Month calendar ---------- */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:8px;}
.cal__dow{
  font-family:var(--font-athletic);font-weight:700;font-size:0.7rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--ocean);text-align:center;padding-bottom:6px;
}
.cal__cell{
  border:1px solid var(--navy);background:var(--white);min-height:150px;padding:8px;
  display:flex;flex-direction:column;gap:6px;
}
.cal__cell--empty{border-color:transparent;background:transparent;}
.cal__cell--show{background:var(--paper);}
.cal__num{font-family:var(--font-display);font-size:0.95rem;color:var(--navy);line-height:1;}
.cal__show{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;}
.cal__show img{width:64px;height:64px;object-fit:contain;flex:0 0 auto;}
.cal__show-info{display:flex;flex-direction:column;gap:1px;min-width:0;align-items:center;}
.cal__time{font-family:var(--font-athletic);font-size:0.62rem;font-weight:700;letter-spacing:0.02em;color:var(--racered);line-height:1.2;}
@media (max-width:700px){
  .cal{grid-template-columns:repeat(7,1fr);gap:4px;}
  .cal__cell{min-height:100px;padding:5px;gap:4px;}
  .cal__dow{font-size:0.55rem;}
  .cal__num{font-size:0.75rem;}
  .cal__show img{width:38px;height:38px;}
  .cal__time{font-size:0.48rem;}
}

/* ---------- Shows list — pit-pass / ticket-stub rows ---------- */
.shows-list{border-top:2px solid var(--navy);}
.show-row{
  display:grid;grid-template-columns:90px 1.4fr 1fr;gap:24px;align-items:center;
  padding:26px 0;border-bottom:1px dashed var(--navy);position:relative;
}
.show-row::before{
  content:"";position:absolute;left:-14px;top:50%;width:10px;height:10px;border-radius:50%;
  background:var(--ivory);border:1px dashed var(--navy);transform:translateY(-50%);
}
.show-row__date{
  font-family:var(--font-display);font-size:1.7rem;color:var(--white);line-height:1;
  background:var(--navy);width:74px;height:74px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;transform:rotate(-2deg);text-align:center;
}
.show-row__date small{display:block;font-family:var(--font-athletic);font-size:0.6rem;letter-spacing:0.1em;color:var(--skyblue);text-transform:uppercase;margin-top:2px;}
.show-row__venue{font-family:var(--font-athletic);font-weight:700;font-size:1.2rem;text-transform:uppercase;letter-spacing:0.01em;}
.show-row__loc{font-family:var(--font-sans);font-size:0.9rem;color:var(--ocean);}
.show-row__type{font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--racered);font-family:var(--font-athletic);font-weight:700;}
.show-row__venue-wrap{display:flex;align-items:center;gap:14px;}
.show-row__logo{width:88px;height:88px;object-fit:contain;flex:0 0 auto;}
.tag{display:inline-block;font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:700;padding:6px 12px;background:var(--paper);color:var(--ocean);border:1px solid var(--ocean);font-family:var(--font-athletic);}
.tag--soldout{background:var(--racered);color:var(--white);border-color:var(--racered);}
.tag--limited{background:var(--gold);color:var(--navy);border-color:var(--gold);}


/* ---------- Signup — vintage mail-order postcard ---------- */
.signup{
  background:var(--navy);color:var(--white);
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
  border-top:4px solid var(--racered);border-bottom:4px solid var(--racered);
}
.signup__form{display:flex;flex-wrap:wrap;gap:14px;}
.field{flex:1;min-width:180px;}
.field label{display:block;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:8px;color:var(--skyblue);font-family:var(--font-athletic);font-weight:700;}
.field input,.field select,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:2px solid rgba(251,246,234,0.4);
  color:var(--white);font-family:var(--font-sans);font-size:1rem;padding:10px 2px;
}
.bg-ivory .field input,.bg-ivory .field select,.bg-ivory .field textarea,
.bg-white .field input,.bg-white .field select,.bg-white .field textarea{
  color:var(--navy);border-bottom:2px solid var(--ocean);
}
.bg-ivory .field label,.bg-white .field label{color:var(--ocean);}
.field input::placeholder,.field textarea::placeholder{color:rgba(251,246,234,0.5);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--gold);}
.form-msg{margin-top:16px;font-size:0.9rem;}
.form-msg--success{color:#3d7a3d;}
.form-msg--error{color:var(--racered);}
.bg-navy .form-msg--success{color:var(--skyblue);}
.bg-navy .form-msg--error{color:#f2b3ba;}

/* ---------- Final CTA — back-of-tour-shirt ---------- */
.final-cta{
  position:relative;min-height:60vh;display:flex;align-items:center;color:var(--white);
  background:var(--navy);overflow:hidden;text-align:center;
}
.final-cta__scrim{position:absolute;inset:0;background:linear-gradient(180deg, rgba(13,51,80,0.55), rgba(13,51,80,0.72));z-index:1;}
.final-cta__content{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:0 var(--pad);}
.final-cta__title{font-size:clamp(2.1rem,5.5vw,4rem);font-weight:400;}
.final-cta__roster{
  margin-top:26px;font-family:var(--font-athletic);font-size:0.72rem;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--skyblue);
}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:var(--white);border-top:6px solid var(--racered);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding:80px 0 40px;}
.footer-brand{font-family:var(--font-display);font-size:2rem;font-weight:400;}
.footer-col h4{font-family:var(--font-athletic);font-size:0.75rem;letter-spacing:0.14em;color:var(--skyblue);margin-bottom:18px;font-weight:700;text-transform:uppercase;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.footer-col a{font-size:0.92rem;opacity:0.92;}
.footer-col a:hover{text-decoration:underline;}
.footer-social{display:flex;gap:14px;margin-top:6px;flex-wrap:wrap;}
.footer-social svg{width:18px;height:18px;fill:var(--white);}
.footer-bottom{border-top:1px solid rgba(251,246,234,0.2);padding:24px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:0.8rem;opacity:0.85;}
.footer-bottom a:hover{text-decoration:underline;}

/* ---------- Cards / generic ---------- */
.editorial-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:center;}
.editorial-block--rev{direction:rtl;}
.editorial-block--rev > *{direction:ltr;}
.pull-quote{
  font-family:var(--font-serif);font-style:italic;font-size:clamp(1.6rem,3.6vw,2.6rem);
  color:var(--navy);border-left:3px solid var(--ocean);padding-left:30px;max-width:800px;margin:0 auto;
}
.placeholder-note{
  display:inline-block;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;
  background:var(--sand);color:var(--navy-2);padding:5px 10px;margin-top:10px;font-family:var(--font-sans);font-weight:600;
}
.placeholder-media{
  background:
    var(--halftone) 0 0/7px 7px,
    linear-gradient(135deg, var(--paper), var(--sand));
  display:flex;align-items:center;justify-content:center;color:var(--navy-2);
  font-family:var(--font-athletic);font-weight:700;font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;text-align:center;padding:20px;
  min-height:220px;border:2px solid var(--navy);position:relative;
}

/* ---------- Content checklist ---------- */
.checklist{border:1px solid var(--sand);}
.checklist details{border-bottom:1px solid var(--sand);}
.checklist summary{padding:20px 24px;cursor:pointer;font-family:var(--font-display);letter-spacing:0.02em;font-size:1.05rem;}
.checklist ul{margin:0 0 20px;padding:0 24px 0 44px;font-family:var(--font-sans);font-size:0.92rem;color:var(--denim);}
.checklist li{margin-bottom:8px;}

/* ---------- Music page ---------- */
.release-full{padding:60px 0;border-bottom:1px solid var(--sand);}
.video-embed{position:relative;width:100%;padding-top:56.25%;background:var(--navy);}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* ---------- Gallery ---------- */
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px;}
.gallery-filters button{
  font-family:var(--font-sans);font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;
  background:transparent;border:1px solid var(--navy);color:var(--navy);padding:13px 18px;cursor:pointer;
  transition:background .3s ease,color .3s ease;
}
.gallery-filters button.is-active,.gallery-filters button:hover{background:var(--navy);color:var(--white);}
.masonry{column-count:3;column-gap:16px;}
.masonry__item{break-inside:avoid;margin-bottom:16px;cursor:pointer;position:relative;overflow:hidden;}
.masonry__item img{width:100%;display:block;aspect-ratio:3/4;object-fit:cover;transition:transform .6s ease;}
.masonry__item:hover img{transform:scale(1.04);}
.masonry__item[hidden]{display:none;}
.lightbox{
  position:fixed;inset:0;background:rgba(11,35,64,0.96);z-index:400;
  display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:100%;max-height:85vh;object-fit:contain;}
.lightbox__close,.lightbox__next,.lightbox__prev{
  position:absolute;background:none;border:0;color:var(--white);cursor:pointer;font-size:1.6rem;padding:14px;
}
.lightbox__close{top:16px;right:16px;}
.lightbox__prev{left:16px;top:50%;transform:translateY(-50%);}
.lightbox__next{right:16px;top:50%;transform:translateY(-50%);}
.lightbox__caption{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:var(--seaglass-light);font-size:0.85rem;}

/* ---------- Merch ---------- */
.merch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.merch-card{background:var(--white);border:1px solid var(--sand);}
.merch-card__img{aspect-ratio:4/5;overflow:hidden;position:relative;}
.merch-card__img img{width:100%;height:100%;object-fit:cover;}
.merch-badges{position:absolute;top:14px;left:14px;display:flex;flex-direction:column;gap:8px;}
.merch-card__body{padding:22px;}
.merch-card__name{font-family:var(--font-display);font-size:1.15rem;}
.merch-card__price{color:var(--ocean);font-weight:600;margin-top:6px;}
.merch-card__opts{font-size:0.8rem;color:var(--denim);margin:10px 0;}
.merch-card .btn{width:100%;margin-top:8px;}

/* ---------- Booking ---------- */
.booking-paths{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--sand);}
.booking-path{background:var(--white);padding:32px 24px;}
.booking-path h3{font-size:1.05rem;}
.epk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.epk-item{border:1px solid var(--sand);padding:26px;display:flex;flex-direction:column;gap:10px;}
.epk-item h4{font-family:var(--font-display);font-size:1rem;}

.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}

/* ---------- Utilities ---------- */
.mt-0{margin-top:0;}
.text-center{text-align:center;}
.max-w{max-width:760px;}
.max-w-center{max-width:760px;margin-left:auto;margin-right:auto;}

/* ---------- Responsive ---------- */
@media (max-width: 1080px){
  .main-nav ul, .header-cta .btn-outline, .header-social{display:none;}
  .menu-toggle{display:flex;}
  .release,.intro,.editorial-block,.signup{grid-template-columns:1fr;}
  .editorial-block--rev{direction:ltr;}
  .intro{gap:40px;}
  .intro__image img{height:420px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .booking-paths{grid-template-columns:repeat(2,1fr);}
  .epk-grid{grid-template-columns:1fr 1fr;}
  .merch-grid{grid-template-columns:1fr 1fr;}
  .booking-form-grid{grid-template-columns:1fr;}
  .masonry{column-count:2;}
}
@media (max-width: 680px){
  .intro__columns{column-count:1;}
  .show-row{grid-template-columns:1fr;gap:8px;text-align:left;}
  .booking-paths{grid-template-columns:1fr;}
  .epk-grid{grid-template-columns:1fr;}
  .merch-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;padding:60px 0 30px;}
  .masonry{column-count:1;}
  .header-cta{gap:0;}
  .hero__actions{flex-direction:column;align-items:stretch;}
  .hero__actions .btn{width:100%;}
}

/* =========================================================
   HOMEPAGE REBUILD (2026) — editorial hero, next shows,
   artist intro, Country/Coast/Chrome, booking CTA, signup
   ========================================================= */

/* ---------- Hero — full-bleed editorial ---------- */
.hero-edit{
  position:relative;min-height:100svh;min-height:100vh;
  display:flex;align-items:flex-end;overflow:hidden;background:var(--navy);
  border-bottom:6px solid var(--racered);
}
.hero-edit__media{position:absolute;inset:0;z-index:0;}
.hero-edit__media img{
  width:100%;height:100%;object-fit:cover;object-position:62% 22%;
  filter:saturate(1.05) contrast(1.04);
}
.hero-edit__scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(0deg, rgba(13,51,80,0.92) 0%, rgba(13,51,80,0.55) 32%, rgba(13,51,80,0.05) 58%, transparent 72%),
    linear-gradient(100deg, rgba(13,51,80,0.55) 0%, transparent 55%);
}
.hero-edit__content{
  position:relative;z-index:2;width:100%;padding:150px var(--pad) 96px;color:var(--white);
}
.hero-edit__eyebrow{
  font-family:var(--font-athletic);font-size:0.78rem;font-weight:700;letter-spacing:0.3em;
  text-transform:uppercase;color:var(--gold);margin:0 0 14px;
}
.hero-edit__title{
  font-size:clamp(3.4rem,12vw,9rem);line-height:0.86;max-width:16ch;
  text-shadow:3px 3px 0 rgba(13,51,80,0.45);margin:0;
}
.hero-edit__title span{display:block;overflow:hidden;}
.hero-edit__tagline{
  margin:10px 0 0;font-family:var(--font-athletic);font-weight:700;font-size:clamp(1rem,2.2vw,1.35rem);
  letter-spacing:0.18em;text-transform:uppercase;color:var(--seaglass);
}
.hero-edit__statement{
  margin:18px 0 0;max-width:42ch;font-family:var(--font-serif);font-size:clamp(1rem,1.6vw,1.2rem);
  color:var(--ivory);opacity:0.94;
}
.hero-edit__actions{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap;}
.hero-edit__btn{padding:17px 34px;font-size:0.8rem;}
.hero-edit__btn--primary{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.hero-edit__btn--primary:hover{background:var(--ivory);border-color:var(--ivory);}
.hero-edit__btn--outline{background:rgba(13,51,80,0.2);color:var(--ivory);border-color:rgba(251,246,234,0.75);}
.hero-edit__btn--outline:hover{background:rgba(251,246,234,0.16);border-color:var(--ivory);}
.hero-edit__scroll{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  width:26px;height:42px;border:1.5px solid rgba(251,246,234,0.7);border-radius:14px;
  display:flex;justify-content:center;padding-top:8px;
}
.hero-edit__scroll span{
  width:4px;height:8px;border-radius:2px;background:var(--gold);
  animation:heroScrollDot 1.8s ease-in-out infinite;
}
@keyframes heroScrollDot{
  0%{transform:translateY(0);opacity:1;}
  60%{transform:translateY(14px);opacity:0;}
  61%{transform:translateY(0);opacity:0;}
  100%{transform:translateY(0);opacity:1;}
}
@media (prefers-reduced-motion: reduce){
  .hero-edit__scroll span{animation:none;}
}
@media (max-width:900px){
  .hero-edit__content{padding:130px var(--pad) 76px;}
}
@media (max-width:600px){
  .hero-edit{align-items:flex-end;}
  .hero-edit__media img{object-position:68% 18%;}
  .hero-edit__content{padding:110px var(--pad) 64px;}
  .hero-edit__actions{flex-direction:column;align-items:stretch;}
  .hero-edit__actions .btn{width:100%;}
  .hero-edit__scroll{display:none;}
}

/* ---------- Hero (stacked) — full uncropped photo above, real text in a
   solid band below, so the on-photo printed design and the live HTML
   headline never occupy the same space at any viewport. ---------- */
.hero-edit--stacked{
  display:block;min-height:0;align-items:normal;overflow:visible;
}
.hero-edit--stacked .hero-edit__media{position:relative;inset:auto;}
.hero-edit--stacked .hero-edit__media img{
  width:100%;height:auto;display:block;object-fit:initial;object-position:initial;
}
.hero-edit__badge{
  position:absolute;left:25%;top:52%;transform:translate(-50%,-50%);z-index:2;
  width:clamp(140px,32vw,420px)!important;height:clamp(140px,32vw,420px)!important;
  filter:drop-shadow(0 6px 16px rgba(0,0,0,0.5));
}
.hero-edit--stacked .hero-edit__content{
  position:static;padding:44px var(--pad) 56px;text-align:left;
}
.hero-edit--stacked .hero-edit__title{text-shadow:none;}
.hero-edit__divider{display:flex;align-items:center;gap:14px;margin:18px 0;max-width:360px;color:var(--gold);}
.hero-edit__divider-line{flex:1;height:1px;background:rgba(251,246,234,0.5);}
.hero-edit__fl{flex:0 0 auto;}
.hero-edit--stacked .hero-edit__scroll{
  position:static;transform:none;margin:36px auto 0;
}
@media (max-width:900px){
  .hero-edit--stacked .hero-edit__content{padding:36px var(--pad) 48px;}
}
@media (max-width:600px){
  .hero-edit--stacked .hero-edit__content{padding:32px var(--pad) 40px;}
  .hero-edit--stacked .hero-edit__scroll{display:flex;}
}

/* ---------- Now Playing / Hear Pierce ---------- */
.now-playing__lede{margin-top:8px;font-family:var(--font-serif);font-style:italic;font-size:1.15rem;color:var(--ocean);}
.now-playing__frame{
  display:block;position:relative;max-width:640px;margin:0 auto;overflow:hidden;
  border:2px solid var(--navy);box-shadow:10px 14px 0 var(--navy);aspect-ratio:4/5;
}
.now-playing__frame video{width:100%;height:100%;object-fit:cover;display:block;background:var(--navy);}
.now-playing__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(13,51,80,0.55);border:2px solid var(--ivory);color:var(--ivory);
  transition:transform .3s ease,background .3s ease,opacity .3s ease;cursor:pointer;z-index:3;
}
.now-playing__play svg{margin-left:4px;}
.now-playing__frame:hover .now-playing__play{background:var(--racered);border-color:var(--racered);transform:translate(-50%,-50%) scale(1.08);}
.now-playing__play.is-hidden,.now-playing__caption.is-hidden{opacity:0;pointer-events:none;}
.now-playing__caption{
  position:absolute;left:0;right:0;bottom:0;padding:20px 22px;color:var(--white);z-index:2;
  background:linear-gradient(0deg,rgba(13,51,80,0.82),transparent 75%);
  font-family:var(--font-athletic);font-weight:700;font-size:0.85rem;letter-spacing:0.12em;text-transform:uppercase;
  display:flex;align-items:center;gap:8px;
}
@media (prefers-reduced-motion: reduce){
  .now-playing__frame img,.now-playing__play{transition:none;}
}

/* ---------- Next Shows — editorial tour-schedule rows, no boxes ---------- */
.next-shows{border-top:2px solid var(--navy);margin-top:8px;}
.next-shows__loading{padding:30px 0;color:var(--denim);font-family:var(--font-sans);}
.next-show{
  display:grid;grid-template-columns:110px auto 1fr auto;gap:24px;align-items:center;
  padding:24px 0;border-bottom:1px solid var(--sand);
}
.next-show--today{border-left:4px solid var(--racered);padding-left:18px;margin-left:-22px;}
.next-show__date{display:flex;align-items:baseline;gap:8px;}
.next-show__day{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--navy);}
.next-show__month{font-family:var(--font-athletic);font-size:0.72rem;letter-spacing:0.12em;color:var(--racered);text-transform:uppercase;font-weight:700;}
.next-show__logo{width:70px;height:70px;object-fit:contain;flex:0 0 auto;}
.next-show__venue{font-family:var(--font-athletic);font-weight:700;font-size:1.2rem;text-transform:uppercase;letter-spacing:0.01em;}
.next-show__meta{font-family:var(--font-sans);font-size:0.9rem;color:var(--ocean);margin-top:4px;}
.next-show__time{font-family:var(--font-athletic);font-weight:700;font-size:0.88rem;color:var(--racered);white-space:nowrap;text-align:right;}
.next-shows__all{
  display:inline-flex;align-items:center;gap:8px;margin-top:28px;
  font-family:var(--font-athletic);font-weight:700;font-size:0.85rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--navy);border-bottom:2px solid var(--racered);padding-bottom:4px;
}
@media (max-width:600px){
  .next-show{grid-template-columns:auto 1fr;row-gap:8px;}
  .next-show__day{font-size:2.1rem;}
  .next-show__time{text-align:left;}
  .next-show--today{margin-left:-16px;padding-left:14px;}
  .next-show__logo{width:48px;height:48px;}
}

/* ---------- Artist Intro (homepage variant) — photography-led, image dominant ---------- */
.intro--edit{grid-template-columns:1.3fr 1fr;}
.intro--edit .intro__image{padding:0;}
.intro--edit .intro__image img{object-fit:cover;height:100%;min-height:640px;}
.intro--edit .intro__stripe{bottom:0;}
@media (min-width:1081px){
  .intro--edit{align-items:stretch;}
}
@media (max-width:1080px){
  .intro--edit .intro__image img{min-height:460px;}
}

/* ---------- Country. Coast. Chrome. — asymmetric editorial spread ---------- */
.ccc{overflow:hidden;}
.ccc__headline{
  font-size:clamp(2.6rem,8vw,5.5rem);line-height:0.92;margin:14px 0 48px;color:var(--white);
}
.ccc__grid{
  display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:4px;align-items:stretch;
}
.ccc__item{position:relative;margin:0;overflow:hidden;background:var(--navy-2);}
.ccc__item--a{grid-column:1/2;grid-row:1/3;aspect-ratio:auto;}
.ccc__item--b{grid-column:2/3;grid-row:1/2;aspect-ratio:auto;}
.ccc__item--c{grid-column:2/3;grid-row:2/3;aspect-ratio:auto;margin-top:28px;}
.ccc__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s cubic-bezier(.2,.8,.2,1);filter:saturate(1.05) contrast(1.05);}
.ccc__item:hover img{transform:scale(1.045);}
.ccc__number{
  position:absolute;top:18px;left:18px;z-index:2;color:transparent;
  font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.6rem);
  -webkit-text-stroke:1.5px var(--ivory);opacity:0.85;
}
.ccc__item figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:22px 20px;color:var(--white);
  background:linear-gradient(0deg,rgba(13,51,80,0.75),transparent 70%);
  font-family:var(--font-athletic);font-weight:700;font-size:1rem;letter-spacing:0.16em;text-transform:uppercase;
}
.ccc__placeholder{
  position:absolute;inset:0;min-height:0;border:none;
  background:
    var(--halftone) 0 0/8px 8px,
    linear-gradient(150deg, var(--navy-2), var(--navy) 60%, var(--ink));
  opacity:0.9;
}
@media (max-width:900px){
  .ccc__grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;}
  .ccc__item--a{grid-column:1/3;grid-row:1/2;aspect-ratio:16/10;}
  .ccc__item--b{grid-column:1/2;grid-row:2/3;aspect-ratio:4/5;}
  .ccc__item--c{grid-column:2/3;grid-row:2/3;aspect-ratio:4/5;margin-top:0;}
}
@media (max-width:600px){
  .ccc__grid{grid-template-columns:1fr;grid-template-rows:auto;}
  .ccc__item--a,.ccc__item--b,.ccc__item--c{grid-column:auto;grid-row:auto;aspect-ratio:4/5;margin-top:0;}
}

/* ---------- Email signup (homepage, trimmed) ---------- */
.signup--edit{grid-template-columns:0.9fr 1.1fr;}
@media (max-width:1080px){.signup--edit{grid-template-columns:1fr;}}

/* ---------- Footer — tightened spacing/typography ---------- */
.footer-grid{padding:64px 0 36px;}
.footer-col h4{margin-bottom:14px;}
.footer-col ul{gap:8px;}
.footer-bottom{padding:20px 0;font-size:0.76rem;}
.footer-grid--3col{grid-template-columns:1.4fr 1fr 1fr;}
@media (max-width:1080px){.footer-grid--3col{grid-template-columns:1fr 1fr;}}
@media (max-width:680px){.footer-grid--3col{grid-template-columns:1fr;}}

/* ---------- Booking CTA — de-emphasized secondary links ---------- */
.final-cta__link{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--font-athletic);font-weight:700;font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ivory);border-bottom:1px solid rgba(251,246,234,0.5);padding-bottom:2px;
}
.final-cta__link:hover{border-color:var(--ivory);}
.final-cta__link--sub{color:var(--seaglass);font-size:0.72rem;border-bottom-color:rgba(143,212,232,0.4);}
.final-cta__link--sub:hover{border-color:var(--seaglass);}
