/* Shared interior-page styles. No framework or build step required. */

[hidden]{display:none!important}

.header nav a[aria-current=page]:not(.button){
  text-decoration:underline;
  text-underline-offset:7px
}

.page-intro{
  padding:80px var(--space) 65px;
  border-bottom:1px solid var(--line);
  background:radial-gradient(ellipse at top right,#3f1a20 0,transparent 58%)
}

.page-intro h1{
  font-size:clamp(60px,7.8vw,112px);
  margin:0 0 27px
}

.lead{
  max-width:700px;
  font-size:20px;
  color:#d5d0c9;
  margin:0
}

.page-intro .eyebrow{
  color:#f9838c
}

.catalog{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:55px 30px
}

.catalog-card{
  min-width:0
}

.catalog-photo{
  position:relative;
  overflow:hidden;
  margin-bottom:20px
}

.catalog-photo img{
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:cover;
  transition:transform .4s
}

.catalog-card:hover .catalog-photo img{
  transform:scale(1.035)
}

.catalog-card .eyebrow{
  color:#f9838c;
  margin-bottom:9px
}

.catalog-card h2{
  font-family:Arial,Helvetica,sans-serif;
  font-size:30px;
  line-height:1.15;
  letter-spacing:-1px;
  margin:0 0 9px
}

.catalog-card>p:last-child{
  color:var(--muted);
  margin:0
}

.artist-hero{
  min-height:660px
}

.artist-hero h1{
  font-size:clamp(62px,7vw,106px)
}

.artist-subtitle{
  font-size:24px;
  margin-bottom:28px
}

.breadcrumb{
  display:block;
  font-size:14px;
  margin-bottom:35px;
  color:#e1ded8
}

.hero-secondary{
  display:inline-block;
  font-size:14px;
  margin-left:24px;
  border-bottom:1px solid #999;
  padding:10px 0
}

.show-story{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:8%;
  background:var(--paper);
  color:var(--ink)
}

.show-story h2{
  font-family:Arial,sans-serif;
  font-size:clamp(30px,3vw,43px);
  line-height:1.16;
  letter-spacing:-1.5px
}

.prose{
  line-height:1.8
}

.prose p{
  margin-bottom:24px
}

.prose p:last-child{
  margin-bottom:0
}

.prose a{
  text-decoration:underline;
  text-underline-offset:3px
}

.prose strong{
  font-weight:700
}

.prose:empty{
  display:none
}

.gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:5px;
  background:var(--paper)
}

.gallery img{
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:cover
}

.promo{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  align-items:center;
  gap:60px;
  background:#1b1b1b
}

.promo h2{
  font-size:clamp(45px,5vw,70px)
}

.promo video,
.video-poster{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  background:black;
  object-fit:contain
}

.video-poster{
  position:relative;
  overflow:hidden
}

.video-poster img{
  width:100%;
  height:100%;
  object-fit:cover
}

.play-label{
  position:absolute;
  bottom:20px;
  left:20px;
  background:var(--red);
  padding:12px 18px;
  color:white;
  font-weight:700
}

.muted{
  color:var(--muted);
  font-size:14px
}

.tour-dates{
  background:var(--paper);
  color:var(--ink)
}

.tour-dates .section-heading .eyebrow{
  color:#625d58
}

.feed-message{
  display:flex;
  gap:18px;
  align-items:baseline;
  flex-wrap:wrap
}

.feed-message p{
  font-size:14px;
  color:#59544f;
  margin-bottom:14px
}

#feed-status.fallback{
  color:#7f3927
}

#result-count{
  font-size:14px;
  color:#59544f
}

.finder-controls{
  display:grid;
  grid-template-columns:1.5fr 1fr auto;
  gap:20px;
  align-items:end;
  padding:25px;
  background:#e8e5de;
  margin-bottom:26px
}

.finder-controls label{
  display:block;
  font-size:14px;
  font-weight:700;
  margin-bottom:8px
}

.finder-controls input,
.finder-controls select{
  font:inherit;
  font-size:16px;
  border:1px solid #b4b0a9;
  background:#fff;
  color:#111;
  border-radius:0;
  width:100%;
  min-height:50px;
  padding:12px
}

.finder-controls input:focus-visible,
.finder-controls select:focus-visible{
  outline:3px solid var(--red);
  outline-offset:2px
}

.text-button{
  background:none;
  border:0;
  border-bottom:1px solid currentColor;
  font-size:14px;
  color:inherit;
  cursor:pointer;
  padding:8px 0;
  justify-self:start;
  align-self:center
}

.finder-controls .text-button{
  margin-bottom:10px;
  align-self:end
}

.obg-year{
  font-family:Impact,'Arial Narrow',Arial,sans-serif;
  font-size:36px;
  line-height:1.2;
  margin:32px 0 15px
}

.obg-bti-row{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:25px;
  border-top:1px solid #c8c2b9;
  padding:23px 0
}

.obg-bti-badge{
  background:#161616;
  color:var(--paper);
  padding:10px;
  text-align:center;
  line-height:1.2
}

.obg-bti-mon{
  font-size:12px;
  letter-spacing:1px
}

.obg-bti-day{
  font-size:30px;
  font-weight:800
}

.obg-bti-yr{
  font-size:12px
}

.obg-bti-title{
  font-size:20px;
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.5px
}

.obg-at{
  font-weight:400;
  color:#756e65
}

.obg-bti-loc{
  font-size:15px;
  color:#625b53;
  margin-top:5px
}

.obg-bti-btn,
.obg-bti-btn-soldout,
.obg-bti-btn-free,
.obg-bti-btn-notyet{
  display:inline-block;
  font-size:14px;
  padding:12px 20px;
  font-weight:700;
  text-align:center
}

.obg-bti-btn{
  background:var(--red);
  color:white
}

.obg-bti-btn:hover{
  background:#bd1427
}

.obg-bti-btn-soldout{
  background:#ded9d2;
  color:#6a393c
}

.obg-bti-btn-free{
  background:#dce4db;
  color:#29452d
}

.obg-bti-btn-notyet{
  border:1px solid #aca59a;
  color:#5f574d
}

.obg-no-shows{
  padding:35px 0;
  font-size:20px
}

.ticket-help{
  font-size:14px;
  color:#625b53;
  margin:30px 0 0;
  max-width:800px
}

.related .catalog{
  padding:0
}

.related-grid .catalog-photo img{
  aspect-ratio:16/8
}

.about-page{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:9%;
  background:var(--paper);
  color:var(--ink)
}

.about-page aside img{
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:cover
}

.aside-note{
  padding:30px;
  background:var(--red);
  color:white
}

.aside-note h2{
  font-size:clamp(40px,4vw,60px);
  margin:0
}

.partner{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:8%;
  align-items:start
}

.partner h2{
  font-size:clamp(52px,6vw,85px)
}

.partner .prose{
  color:#d3cec7
}

.contact-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  background:var(--paper);
  color:var(--ink)
}

.contact-options h2{
  font-size:56px;
  margin-bottom:20px
}

.contact-options p:not(.eyebrow){
  max-width:510px;
  color:#534f48
}

.contact-address{
  display:block;
  font-size:14px;
  margin-top:18px;
  text-decoration:underline;
  overflow-wrap:anywhere
}

.founder{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:65px;
  align-items:center
}

.founder>img{
  width:100%;
  height:auto;
  max-height:560px;
  object-fit:cover;
  object-position:center top
}

.founder h2{
  font-size:clamp(45px,5vw,74px)
}

.founder .prose{
  color:#d3cec7
}

.founder-links{
  display:flex;
  gap:15px 28px;
  flex-wrap:wrap;
  margin-top:25px
}

.founder-links a{
  text-decoration:underline;
  overflow-wrap:anywhere
}

.team{
  background:#1b1b1b
}

.team-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:25px
}

.team-grid img{
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center top;
  margin-bottom:20px
}

.team-grid h3{
  font-size:21px;
  margin-bottom:6px
}

.team-grid p{
  font-size:14px;
  color:var(--muted)
}

.faq-layout{
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:70px;
  background:var(--paper);
  color:var(--ink)
}

.faq-layout aside h2{
  font-size:48px
}

.accordion details{
  border-top:1px solid #beb9b1
}

.accordion details:last-child{
  border-bottom:1px solid #beb9b1
}

.accordion summary{
  cursor:pointer;
  font-size:21px;
  font-weight:700;
  padding:25px 45px 25px 0;
  position:relative;
  list-style:none;
  line-height:1.35
}

.accordion summary::-webkit-details-marker{
  display:none
}

.accordion summary:after{
  content:'+';
  position:absolute;
  right:3px;
  top:23px;
  color:#b11c2b;
  font-size:28px;
  font-weight:400
}

.accordion details[open] summary:after{
  content:'−'
}

.accordion .prose{
  padding:0 35px 27px 0;
  color:#4f4943
}

.accordion summary:focus-visible{
  outline:3px solid var(--red);
  outline-offset:4px
}

.legal{
  background:var(--paper);
  color:var(--ink)
}

.legal>.prose{
  max-width:850px;
  margin:auto
}

.legal h2{
  font-family:Arial,sans-serif;
  font-size:25px;
  letter-spacing:-.6px;
  line-height:1.3;
  margin-top:40px
}

.legal li{
  padding:4px 0
}

.booking-note{
  background:#1c1c1c
}

.booking-note h2{
  font-size:54px
}

.booking-note>p:not(.eyebrow){
  max-width:650px;
  color:var(--muted)
}

.footer>div{
  flex-wrap:wrap
}

.hero-content{
  max-width:100%
}


/* Keep performers' heads within the cinematic crop. */

.artist-hero .hero-photo{
  object-position:center top
}


/* ========================================
   CONTACT TEAM
   ======================================== */

.team .team-grid--grouped{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:25px
}

.team-grid--grouped>article{
  min-width:0
}

.team-grid--grouped .team-bio{
  line-height:1.7;
  margin-top:16px
}

.team-nigel{
  position:relative
}

.team-nigel:focus-visible{
  outline:3px solid #ffd76c;
  outline-offset:6px
}

.team-nigel .team-easter-egg{
  display:inline-block;
  max-width:100%;
  margin-top:4px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-left:2px solid var(--red);
  background:var(--ink);
  color:var(--paper);
  font-size:13px;
  line-height:1.5;
  border-radius:3px;
  opacity:0;
  visibility:hidden;
  transform:translateY(4px);
  transition:
    opacity .18s ease,
    transform .18s ease,
    visibility .18s
}

.team-nigel:hover .team-easter-egg,
.team-nigel:focus-within .team-easter-egg{
  opacity:1;
  visibility:visible;
  transform:translateY(0)
}


/* ========================================
   TICKETS: FIND A SHOW
   ======================================== */

.ticket-intro{
  padding-bottom:72px
}

.ticket-intro .lead{
  max-width:620px
}


/* Finder heading */

.ticket-finder-heading{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:end;
  margin-bottom:30px
}

.ticket-finder-heading h2,
.ticket-results-heading h2{
  margin:0;
  font-size:clamp(42px,4.5vw,64px)
}

.ticket-finder-heading>p{
  max-width:520px;
  margin:0 0 5px auto;
  color:#625b53;
  line-height:1.7
}


/* Main finder */

.finder-controls--featured{
  grid-template-columns:minmax(0,2fr) minmax(220px,.75fr) auto;
  padding:32px;
  margin-bottom:0;
  background:#e8e5de;
  border-top:4px solid var(--red)
}

.finder-controls--featured label{
  text-transform:uppercase;
  letter-spacing:.7px;
  font-size:12px
}

.finder-search-field{
  position:relative
}

.finder-search-field input{
  min-height:62px;
  padding-left:54px;
  font-size:17px
}

.finder-search-icon{
  position:absolute;
  left:19px;
  top:50%;
  transform:translateY(-50%);
  z-index:1;
  font-size:27px;
  line-height:1;
  color:var(--red);
  pointer-events:none
}


/* Custom Start Events dropdown */

.finder-controls--featured select{
  appearance:none;
  -webkit-appearance:none;
  min-height:62px;
  padding:0 52px 0 20px;
  border:1px solid #aaa59d;
  border-radius:0;
  background-color:#fff;
  color:var(--ink);
  font-size:17px;
  font-weight:700;
  cursor:pointer;

  background-image:
    linear-gradient(45deg,transparent 50%,var(--ink) 50%),
    linear-gradient(135deg,var(--ink) 50%,transparent 50%);

  background-position:
    calc(100% - 23px) 27px,
    calc(100% - 17px) 27px;

  background-size:
    6px 6px,
    6px 6px;

  background-repeat:no-repeat;

  transition:
    border-color .2s ease,
    background-color .2s ease
}

.finder-controls--featured select:hover{
  border-color:var(--ink);
  background-color:#faf9f6
}

.finder-controls--featured select:focus-visible{
  outline:3px solid var(--red);
  outline-offset:2px;
  border-color:var(--ink)
}


/* Browse by location */

.location-browser{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  padding:25px 30px;
  margin:0 0 58px;
  background:var(--ink);
  color:var(--paper);
  text-decoration:none;
  border-left:5px solid var(--red);
  transition:
    background .2s ease,
    color .2s ease
}

.location-browser:hover{
  background:#272727
}

.location-browser:focus-visible{
  outline:3px solid var(--red);
  outline-offset:4px
}

.location-browser-icon{
  position:relative;
  display:block;
  width:25px;
  height:25px;
  color:transparent;
  border:5px solid var(--red);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg)
}

.location-browser-icon::after{
  content:'';
  position:absolute;
  width:5px;
  height:5px;
  left:50%;
  top:50%;
  background:var(--red);
  border-radius:50%;
  transform:
    translate(-50%,-50%)
    rotate(45deg)
}

.location-browser-copy{
  min-width:0
}

.location-browser-copy strong{
  display:block;
  margin-bottom:4px;
  font-size:19px;
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:.2px
}

.location-browser-copy small{
  display:block;
  color:#bdb8b1;
  font-size:14px;
  line-height:1.5
}

.location-browser-arrow{
  font-size:31px;
  line-height:1;
  transition:transform .2s ease
}

.location-browser:hover .location-browser-arrow{
  transform:translateX(5px)
}


/* Results */

.ticket-results-heading{
  padding-top:4px;
  margin-bottom:25px
}

.ticket-results-heading .eyebrow,
.ticket-finder-heading .eyebrow{
  color:#625d58
}


/* ========================================
   RESPONSIVE
   ======================================== */

@media(max-width:1000px){

  .header{
    gap:18px
  }

  .header nav{
    gap:20px
  }

  .header .brand{
    width:165px
  }

  .promo{
    gap:35px
  }

  .finder-controls{
    grid-template-columns:1fr 1fr
  }

  .finder-controls .text-button{
    grid-column:1/-1;
    margin:0
  }

  .team-grid{
    grid-template-columns:1fr 1fr
  }

  .founder{
    gap:35px
  }

  .faq-layout{
    gap:35px
  }

  .artist-hero h1{
    font-size:clamp(58px,8vw,86px)
  }


  /* Five-person team */

  .team .team-grid--grouped{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }


  /* Ticket finder */

  .ticket-finder-heading{
    grid-template-columns:1fr;
    gap:12px
  }

  .ticket-finder-heading>p{
    margin:0
  }

  .finder-controls--featured{
    grid-template-columns:1fr 1fr
  }

  .finder-controls--featured .finder-search{
    grid-column:1/-1
  }

  .finder-controls--featured .text-button{
    grid-column:auto
  }

}


@media(max-width:680px){

  .page-intro{
    padding:52px var(--space)
  }

  .page-intro h1{
    font-size:clamp(49px,12vw,72px);
    letter-spacing:-1px
  }

  .lead{
    font-size:18px
  }

  .catalog{
    grid-template-columns:1fr;
    gap:38px
  }

  .catalog-card h2{
    font-size:27px
  }

  .artist-hero{
    min-height:630px
  }

  .artist-hero h1{
    font-size:clamp(49px,11.5vw,74px);
    letter-spacing:-1px
  }

  .artist-subtitle{
    font-size:20px
  }

  .hero-secondary{
    display:table;
    margin-left:0;
    margin-top:15px
  }

  .breadcrumb{
    margin-bottom:25px
  }

  .show-story,
  .promo,
  .about-page,
  .partner,
  .contact-options,
  .founder,
  .faq-layout{
    grid-template-columns:1fr;
    gap:35px
  }

  .show-story h2{
    font-size:30px;
    margin-bottom:0
  }

  .gallery{
    grid-template-columns:1fr 1fr
  }

  .promo h2{
    font-size:48px;
    margin-bottom:20px
  }

  .finder-controls{
    grid-template-columns:1fr;
    padding:20px
  }

  .obg-bti-row{
    grid-template-columns:60px minmax(0,1fr);
    gap:15px
  }

  .obg-bti-actions{
    grid-column:2
  }

  .obg-bti-title{
    font-size:18px
  }

  .obg-bti-btn,
  .obg-bti-btn-soldout,
  .obg-bti-btn-free,
  .obg-bti-btn-notyet{
    padding:10px 15px
  }

  .obg-bti-badge{
    padding:10px 5px
  }

  .obg-at{
    display:block;
    font-size:14px
  }

  .contact-options{
    gap:50px
  }

  .contact-options h2{
    font-size:45px
  }

  .team-grid{
    gap:22px 16px
  }

  .team-grid h3{
    font-size:19px
  }

  .team-grid p{
    font-size:14px
  }

  .founder>img{
    max-height:470px
  }

  .accordion summary{
    font-size:19px
  }

  .faq-layout aside h2{
    font-size:42px
  }

  .booking-note h2{
    font-size:46px
  }

  .header nav{
    gap:0
  }

  .legal{
    padding-top:35px
  }

  .show-story .prose{
    min-width:0
  }


  /* Team */

  .team .team-grid--grouped{
    gap:22px 16px
  }


  /* Tickets */

  .ticket-intro{
    padding-bottom:52px
  }

  .ticket-finder-heading{
    margin-bottom:24px
  }

  .ticket-finder-heading h2,
  .ticket-results-heading h2{
    font-size:40px
  }

  .finder-controls--featured{
    grid-template-columns:1fr;
    padding:20px
  }

  .finder-controls--featured .finder-search,
  .finder-controls--featured .text-button{
    grid-column:auto
  }

  .finder-search-field input,
  .finder-controls--featured select{
    min-height:56px
  }

  .finder-controls--featured select{
    background-position:
      calc(100% - 23px) 24px,
      calc(100% - 17px) 24px
  }

  .location-browser{
    grid-template-columns:auto minmax(0,1fr) auto;
    gap:16px;
    padding:21px 18px;
    margin-bottom:45px
  }

  .location-browser-copy strong{
    font-size:16px
  }

  .location-browser-copy small{
    font-size:13px
  }

  .location-browser-arrow{
    font-size:25px
  }

}


@media(max-width:460px){

  .team .team-grid--grouped{
    grid-template-columns:1fr
  }

}


@media(prefers-reduced-motion:reduce){

  .team-nigel .team-easter-egg{
    transition:none;
    transform:none
  }

  .location-browser,
  .location-browser-arrow{
    transition:none
  }

}

/* ========================================
   LOCATIONS DIRECTORY
   ======================================== */

.location-intro .lead{
  max-width:660px;
}


/* Directory */

.location-directory{
  background:var(--paper);
  color:var(--ink);
}

.location-directory-heading{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:end;
  margin-bottom:36px;
}

.location-directory-heading h2{
  margin:0;
  font-size:clamp(42px,4.5vw,64px);
}

.location-directory-heading .eyebrow{
  color:#625d58;
}

.location-directory-summary{
  max-width:500px;
  margin:0 0 5px auto;
  color:#625b53;
  line-height:1.7;
}

.location-directory-summary strong{
  color:var(--ink);
}


/* Search */

.location-search{
  padding:28px 30px;
  background:#e8e5de;
  border-top:4px solid var(--red);
}

.location-search label{
  display:block;
  margin-bottom:8px;
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.7px;
}

.location-search-field{
  position:relative;
}

.location-search-field input{
  width:100%;
  min-height:62px;
  padding:12px 18px 12px 54px;
  border:1px solid #aaa59d;
  border-radius:0;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:17px;
}

.location-search-field input:focus-visible{
  outline:3px solid var(--red);
  outline-offset:2px;
}

.location-search-icon{
  position:absolute;
  left:19px;
  top:50%;
  transform:translateY(-50%);
  z-index:1;
  color:var(--red);
  font-size:27px;
  line-height:1;
  pointer-events:none;
}

.location-filter-count{
  margin:20px 0 15px;
  color:#625b53;
  font-size:14px;
}


/* Location cards */

.location-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid #c8c2b9;
}

.location-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  min-width:0;
  padding:27px 25px;
  color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid #c8c2b9;
  transition:
    background .2s ease,
    color .2s ease;
}

.location-card:nth-child(odd){
  border-right:1px solid #c8c2b9;
}

.location-card:hover{
  background:#e8e5de;
}

.location-card:focus-visible{
  position:relative;
  z-index:2;
  outline:3px solid var(--red);
  outline-offset:-3px;
}


/* Pin */

.location-card-pin{
  position:relative;
  display:block;
  width:22px;
  height:22px;
  flex:0 0 auto;
  border:4px solid var(--red);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}

.location-card-pin::after{
  content:'';
  position:absolute;
  width:4px;
  height:4px;
  left:50%;
  top:50%;
  background:var(--red);
  border-radius:50%;
  transform:translate(-50%,-50%);
}


/* Card text */

.location-card-content{
  min-width:0;
}

.location-card-name{
  display:block;
  margin-bottom:5px;
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.5px;
}

.location-card-meta{
  display:block;
  color:#625b53;
  font-size:14px;
  line-height:1.5;
}

.location-card-next{
  display:block;
  margin-top:5px;
  color:#837c73;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.5px;
}

.location-card-arrow{
  font-size:27px;
  line-height:1;
  transition:transform .2s ease;
}

.location-card:hover .location-card-arrow{
  transform:translateX(5px);
}


/* Empty/search state */

.location-no-results,
.location-empty{
  padding:50px 0 10px;
}

.location-no-results h3,
.location-empty h2{
  margin-bottom:10px;
}

.location-no-results p,
.location-empty p{
  max-width:600px;
  color:#625b53;
}


/* Bottom CTA */

.location-cta{
  background:#1c1c1c;
}

.location-cta h2{
  font-size:clamp(46px,5vw,70px);
}

.location-cta>p:not(.eyebrow){
  max-width:620px;
  color:var(--muted);
}

.location-cta .button{
  display:inline-block;
  margin-top:20px;
}


/* ========================================
   LOCATIONS RESPONSIVE
   ======================================== */

@media(max-width:1000px){

  .location-directory-heading{
    grid-template-columns:1fr;
    gap:12px;
  }

  .location-directory-summary{
    margin:0;
  }

}


@media(max-width:680px){

  .location-directory-heading{
    margin-bottom:25px;
  }

  .location-directory-heading h2{
    font-size:40px;
  }

  .location-search{
    padding:20px;
  }

  .location-search-field input{
    min-height:56px;
  }

  .location-grid{
    grid-template-columns:1fr;
  }

  .location-card:nth-child(odd){
    border-right:0;
  }

  .location-card{
    padding:23px 10px;
  }

  .location-card-name{
    font-size:21px;
  }

  .location-cta h2{
    font-size:46px;
  }

}


@media(prefers-reduced-motion:reduce){

  .location-card,
  .location-card-arrow{
    transition:none;
  }

}

/* ========================================
   LOCATION DETAIL PAGES
   ======================================== */

.location-page-intro{
  position:relative;
  overflow:hidden;
  padding-top:clamp(70px,9vw,130px);
  padding-bottom:clamp(60px,8vw,110px);
  background:var(--ink);
  color:var(--paper);
}

.location-page-intro .eyebrow{
  color:var(--red);
}

.location-page-intro h1{
  position:relative;
  z-index:1;
  margin:0;
  max-width:1000px;
  font-size:clamp(58px,9vw,132px);
  line-height:.82;
  letter-spacing:-.055em;
}

.location-page-intro .lead{
  position:relative;
  z-index:1;
  max-width:650px;
  margin-top:32px;
  color:#d7d7d7;
  font-size:clamp(18px,2vw,23px);
  line-height:1.55;
}


/* Stats */

.location-page-stats{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}

.location-page-stats span{
  display:flex;
  align-items:center;
  gap:7px;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.2);
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.location-page-stats strong{
  color:var(--red);
  font-size:17px;
}


/* ========================================
   SHARED LOCATION SECTION HEADINGS
   ======================================== */

.location-section-heading{
  max-width:780px;
  margin-bottom:42px;
}

.location-section-heading h2{
  margin-top:8px;
  margin-bottom:0;
  font-size:clamp(38px,5vw,68px);
  line-height:.95;
  letter-spacing:-.04em;
}

.location-section-heading > p:not(.eyebrow){
  max-width:620px;
  margin-top:18px;
  font-size:18px;
  line-height:1.65;
}


/* ========================================
   UPCOMING LOCATION EVENTS
   ======================================== */

.location-page-shows{
  background:#f2eee6;
}

.location-event-list{
  border-top:1px solid #aaa59d;
}

.location-event{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) auto;
  gap:28px;
  align-items:center;
  padding:27px 0;
  border-bottom:1px solid #aaa59d;
}

.location-event-date{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:13px;
  font-weight:700;
}

.location-event-day{
  margin-bottom:6px;
  color:var(--red);
  font-size:43px;
  font-weight:900;
  letter-spacing:-.05em;
}

.location-event-main{
  min-width:0;
}

.location-event-main h3{
  margin:4px 0 8px;
  font-size:clamp(23px,3vw,34px);
  line-height:1;
}

.location-event-main p{
  margin:0;
}

.location-event-venue{
  color:var(--red);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.location-event-action{
  display:flex;
  justify-content:flex-end;
}


/* ========================================
   VENUES
   ======================================== */

.location-venues{
  background:#fff;
}

.location-venue-list{
  display:grid;
  gap:48px;
}

.location-venue-card{
  display:grid;
  grid-template-columns:minmax(250px,.8fr) minmax(300px,1fr);
  grid-template-areas:
    "image copy"
    "map map";
  border-top:5px solid var(--red);
  background:#f2eee6;
}

.location-venue-image{
  grid-area:image;
  min-height:430px;
  overflow:hidden;
  background:#ddd;
}

.location-venue-image img{
  display:block;
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
}

.location-venue-copy{
  grid-area:copy;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(34px,5vw,70px);
}

.location-venue-copy h3{
  margin:8px 0 15px;
  font-size:clamp(34px,4.5vw,62px);
  line-height:.95;
  letter-spacing:-.04em;
}

.location-venue-copy > p:not(.eyebrow){
  max-width:620px;
  line-height:1.7;
}

.location-venue-address{
  margin-top:0;
  margin-bottom:22px;
  color:#555;
  font-weight:700;
}

.location-venue-show-count{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid #c8c3ba;
}

.location-venue-show-count strong{
  color:var(--red);
}

.location-venue-copy .text-link{
  align-self:flex-start;
  margin-top:10px;
}


/* ========================================
   VENUE MAP
   ======================================== */

.location-venue-map{
  grid-area:map;
  position:relative;
  min-height:390px;
  background:#ddd;
  border-top:1px solid #c8c3ba;
}

.location-venue-map iframe{
  display:block;
  width:100%;
  height:390px;
  border:0;
}

.location-map-credit{
  position:absolute;
  right:10px;
  bottom:10px;
  padding:6px 9px;
  background:rgba(255,255,255,.9);
  color:#444;
  font-size:10px;
  line-height:1;
}


/* ========================================
   NEARBY LOCATIONS
   ======================================== */

.location-nearby{
  background:var(--ink);
  color:var(--paper);
}

.location-nearby .eyebrow{
  color:var(--red);
}

.location-nearby .location-section-heading > p:not(.eyebrow){
  color:#cfcfcf;
}

.location-nearby-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid #484848;
}

.location-nearby-card{
  display:grid;
  grid-template-columns:20px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-height:130px;
  padding:25px 28px;
  border-bottom:1px solid #484848;
  color:var(--paper);
  text-decoration:none;
  transition:
    background-color .18s ease,
    transform .18s ease;
}

.location-nearby-card:nth-child(odd){
  border-right:1px solid #484848;
}

.location-nearby-card:hover,
.location-nearby-card:focus-visible{
  background:#252525;
}

.location-nearby-copy{
  display:flex;
  flex-direction:column;
  gap:5px;
}

.location-nearby-copy strong{
  font-size:25px;
  line-height:1;
}

.location-nearby-copy span{
  color:#ddd;
  font-size:14px;
}

.location-nearby-copy small{
  color:#999;
  font-size:12px;
}

.location-nearby-card .location-card-arrow{
  color:var(--red);
  font-size:26px;
}


/* ========================================
   LOCATION PAGE FOOTER
   ======================================== */

.location-page-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  background:#f2eee6;
}

.location-page-empty{
  background:#f2eee6;
}

.location-page-empty h2{
  font-size:clamp(38px,5vw,64px);
}


/* ========================================
   TABLET
   ======================================== */

@media(max-width:900px){

  .location-event{
    grid-template-columns:90px minmax(0,1fr);
  }

  .location-event-action{
    grid-column:2;
    justify-content:flex-start;
  }

  .location-venue-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "image"
      "copy"
      "map";
  }

  .location-venue-image,
  .location-venue-image img{
    min-height:0;
  }

  .location-venue-image{
    aspect-ratio:16/9;
  }

  .location-venue-copy{
    padding:38px;
  }

}


/* ========================================
   MOBILE
   ======================================== */

@media(max-width:650px){

  .location-page-intro h1{
    font-size:clamp(52px,17vw,84px);
  }

  .location-page-stats{
    align-items:flex-start;
  }

  .location-page-stats span{
    width:auto;
  }

  .location-event{
    grid-template-columns:65px minmax(0,1fr);
    gap:18px;
    padding:22px 0;
  }

  .location-event-day{
    font-size:34px;
  }

  .location-event-main h3{
    font-size:24px;
  }

  .location-event-action{
    grid-column:1 / -1;
  }

  .location-event-action .button{
    width:100%;
    text-align:center;
  }

  .location-venue-image{
    aspect-ratio:1/1;
  }

  .location-venue-copy{
    padding:28px 22px 34px;
  }

  .location-venue-map,
  .location-venue-map iframe{
    height:320px;
    min-height:320px;
  }

  .location-nearby-grid{
    grid-template-columns:1fr;
  }

  .location-nearby-card:nth-child(odd){
    border-right:0;
  }

  .location-page-footer{
    align-items:stretch;
    flex-direction:column;
  }

  .location-page-footer .button{
    text-align:center;
  }

}


/* ========================================
   REDUCED MOTION
   ======================================== */

@media(prefers-reduced-motion:reduce){

  .location-nearby-card{
    transition:none;
  }

}

/* ========================================
   LOCATION DETAIL COLOUR OVERRIDES
   ======================================== */

.location-page-shows,
.location-venues,
.location-page-footer{
  color:var(--ink);
}

.location-page-shows .location-section-heading h2,
.location-page-shows .location-event-main h3,
.location-page-shows .location-event-main p{
  color:var(--ink);
}

.location-page-shows .eyebrow,
.location-page-shows .location-event-venue{
  color:var(--red);
}

.location-venues .location-section-heading h2,
.location-venue-copy h3,
.location-venue-copy p{
  color:var(--ink);
}

.location-venues .eyebrow{
  color:var(--red);
}

.location-venue-copy .text-link,
.location-page-footer .text-link{
  color:var(--ink);
}

.location-venue-copy .text-link:hover,
.location-venue-copy .text-link:focus-visible,
.location-page-footer .text-link:hover,
.location-page-footer .text-link:focus-visible{
  color:var(--red);
}

.location-venue-show-count{
  color:var(--ink) !important;
}

.location-venue-show-count strong{
  color:var(--red);
}

/* ========================================
   LOCATION DETAIL COMPACT LAYOUT
   ======================================== */

/* Slightly tighter section headings */

.location-section-heading{
  margin-bottom:30px;
}

.location-section-heading h2{
  font-size:clamp(34px,4vw,54px);
}


/* ========================================
   SHOWS: TWO COLUMN GRID
   ======================================== */

.location-event-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid #aaa59d;
  border-left:1px solid #aaa59d;
}

.location-event{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  grid-template-areas:
    "date main"
    "date action";
  gap:10px 20px;
  align-items:start;
  padding:24px;
  border-right:1px solid #aaa59d;
  border-bottom:1px solid #aaa59d;
}

.location-event-date{
  grid-area:date;
}

.location-event-main{
  grid-area:main;
}

.location-event-action{
  grid-area:action;
  justify-content:flex-start;
  margin-top:8px;
}

.location-event-day{
  font-size:34px;
}

.location-event-main h3{
  margin:4px 0 6px;
  font-size:clamp(21px,2vw,28px);
}

.location-event-main > p:last-child{
  font-size:14px;
}

.location-event-action .button,
.location-event-free,
.location-event-notyet{
  display:inline-block;
  padding:11px 16px;
  font-size:14px;
  font-weight:700;
  text-align:center;
}

.location-event-free{
  background:#dce4db;
  color:#29452d;
}

.location-event-notyet{
  border:1px solid #aca59a;
  color:#5f574d;
}

/* ========================================
   COMPACT VENUE CARD
   ======================================== */

.location-venue-card{
  grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr);
}

.location-venue-image{
  height:500px;
  min-height:0;
}

.location-venue-image img{
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
}

.location-venue-copy{
  padding:42px 50px;
}

.location-venue-copy h3{
  font-size:clamp(34px,4vw,52px);
}

.location-venue-copy > p:not(.eyebrow){
  line-height:1.55;
}

.location-venue-show-count{
  margin-top:16px;
  padding-top:16px;
}


/* ========================================
   SMALLER MAP
   ======================================== */

.location-venue-map{
  min-height:280px;
}

.location-venue-map iframe{
  height:280px;
}


/* ========================================
   TABLET
   ======================================== */

@media(max-width:900px){

  .location-event-list{
    grid-template-columns:1fr;
  }

  .location-event{
    grid-template-columns:68px minmax(0,1fr);
    grid-template-areas:
      "date main"
      "date action";
  }

  .location-event-action{
    grid-column:auto;
  }

  .location-venue-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "image"
      "copy"
      "map";
  }

  .location-venue-image{
    height:auto;
    aspect-ratio:16/9;
  }

  .location-venue-copy{
    padding:34px;
  }

}


/* ========================================
   MOBILE
   ======================================== */

@media(max-width:650px){

  .location-event{
    padding:20px 16px;
    gap:8px 16px;
  }

  .location-event-action{
    grid-column:2;
  }

  .location-event-action .button{
    width:auto;
  }

  .location-venue-image{
    aspect-ratio:4/3;
  }

  .location-venue-copy{
    padding:28px 22px;
  }

  .location-venue-map,
  .location-venue-map iframe{
    height:250px;
    min-height:250px;
  }

}

/* News article editorial subheadings */
.news-article-body h2.news-article-subheading{
  font-family:Arial,Helvetica,sans-serif;
  font-size:clamp(1.2rem,1.05rem + 0.6vw,1.5rem);
  font-weight:700;
  font-style:normal;
  color:var(--red);
  line-height:1.35;
  letter-spacing:normal;
  text-transform:none;
  margin:2em 0 0.75em;
}
