@import url("https://use.typekit.net/ucx4sqf.css");

/* FONTS/COLORS */
:root {
    --header_font: "futura-pt", sans-serif; 
    --body_font: "new-spirit-condensed", serif;
    --shadow: -0.25rem 0.25rem;
    --font_size: 17px;

    --black: black;
    --cream: #f8efc1;
    --red: #db5846;
    --orange: #f38200;
    --yellow: #fbe601;
    --brown: #5a412c;
    --green: #218655;

    --dark-color: var(--black);
    --bright-color: var(--cream);
    --accent-color: var(--orange);
}

/* START CSSRESET */
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;text-decoration:none}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body,html{scroll-behavior:smooth;scroll-padding-top:10vh;scroll-behavior:smooth}body{line-height:1}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}button,input[type=submit]{padding:0;border:none;outline:0;font:inherit;color:inherit;background:0 0;cursor:pointer;-webkit-appearance:none;border-radius:0}*{box-sizing:border-box}img{max-width:100%}

/* flex helpers */
[class*="flex"] { 
    display: flex; 
    flex-wrap: wrap; 
    align-items: center; 
    justify-content: center; 
}
[class^="vflex"] { flex-direction: column; }
[class^="hflex"] { flex-direction: row; }
[class*="flex-spa"] {justify-content: space-around;}
[class*="flex-spb"] {justify-content: space-between;}
[class*="flex"][class*="-nolign"] {align-items: stretch;}

[class*="box"] { 
    border: 2px solid var(--dark-color);
    padding: 0.5rem;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
}
[class*="box-rounded"] {
    border-radius: 50px;
}

/* BD CORE LAYOUT */
body {
    font-family: sans-serif;
    min-height: 100vh;
    background: var(--bright-color);
    color: var(--dark-color);
    font-family: var(--body_font);
    font-size: var(--font_size);
    font-weight: 300;

    max-width: 1350px;
    margin: auto;
}

/* all main sections have same base padding/margins */
header, main, body > h1, footer {
    padding: 1rem;
    border: 1px solid;
    margin: 0.5rem;
}

header ~ *:not(footer) {
    margin-bottom: initial;
}

/* TYPOGRAPHY */
h1, h2, h3, h4, h5 {
    font-weight: 600;
    text-transform: uppercase;
    font-family: var(--header_font);
}


h1, main h2, main h3 {
    font-size: 1.5rem;
    margin: 1rem 0;
}

strong {
    font-weight: 600;
}

em {
    font-style: italic;
}

p {
    text-align: justify;
    line-height: 1.25rem;
}

p a {
    font-weight: 600;
    text-decoration: underline;
}

a {
    color: inherit;
}

small {
    font-size: 0.75em;
}

li:not(:last-child) {
    margin-bottom: 0.5rem;
}

p:not(:last-child), ul:not(:last-child), ol:not(:last-child) {
    margin-bottom: 1rem;
}

/* HEADER */
header {
    position: relative;
}

header .logo a {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    color: transparent;
}

/* this has its own break because we want to totally change it on desktop */
@media only screen and (max-width: 800px) {
    header .logo a {
        position: relative;
    }

    header .logo a::after {
        content: "";
        position: absolute;
        width: 7rem;
        height: 6rem;
        background-image: url("/img/mobile logo.webp");
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
    }

    header nav {
        position: absolute;
        width: calc(100% + 2px);
        left: -1px;
        bottom: 0;
        background: var(--dark-color);
        color: var(--bright-color);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 0.5rem;
        font-family: var(--header_font);
        text-transform: uppercase;
        transform-origin: top;
        transform: translateY(100%) scaleY(0.0001);
        transition: transform 400ms ease-in-out;
        z-index: 100;
    }

    header nav > * {
        opacity: 0;
        transition: opacity 400ms ease-in-out;
    }

    header nav > div {
        display: contents;
    }

    header nav span {
        display: block;
        padding: 0.5rem 0 1rem;
        font-size: 0.75rem
    }

    header nav a {
        padding: 1.25rem;
        border: 1px solid;
        width: 100%;
        margin-bottom: 0.5em;
    }

    .nav-open header nav { transform: translateY(100%) }
    .nav-open header nav > * { opacity: 1; }

    .nav-toggle {
        position: absolute;
        right: 1rem;
        padding: 1rem;
        width: 1rem;
        height: 1rem;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: 1.33em;
    }

    .nav-toggle i {
        position: absolute;
        transition: 300ms ease-in-out;
    }

    .nav-toggle .close {
        text-transform: uppercase;
        font-family: sans-serif;
        font-weight: 600;
    }

    .nav-open .nav-toggle .open, .nav-toggle .close {
        opacity: 0;
        transform: scale(0.75)
    }

    .nav-open .nav-toggle .close {
        transform: scale(1);
        opacity: 1;
    }
}

/* PAGE TITLES */
.title {
    text-align: center;
    position: relative;
    padding: 0 6rem;
}

.title span {
    text-transform: uppercase;
    display: block;
    padding: 1rem 0;
}

.title::before, .title::after {
    content: "";
    position: absolute;
    height: 100%;
    width: 5rem;
    top: 0;
    left: 0;
    background-image: url("/img/title corner.webp");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    pointer-events: none;
}

.title::after {
    right: 0;
    left: unset;
    transform: rotate(180deg);
}  

/* FOOTER */
footer {
    text-align: center;
    background: var(--dark-color);
    color: var(--bright-color);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    margin-bottom: 6rem;
}

footer section {
    padding: 1rem;
}

footer .socials {
    margin-top: 1rem;
}

footer .socials a {
    font-size: 2rem;
    padding: 0.5rem 1rem;
    display: inline-block;
}
    
.footer-socials img {
    width: 80px;
}

footer nav a {
    font-family: var(--header_font);
    font-weight: 600;
    text-transform: uppercase;
    padding: 0.5rem;
    font-size: 1.5rem;
    display: block;
}

/* Main section elements */
main {
    position: relative;
    padding: 2rem 1rem;
    overflow: hidden;
}

main section:not(:last-child) {
    margin-bottom: 2.5rem;
}

main section img {
    display: block;
    width: 70%;
    margin: auto auto 2rem;
    max-width: 300px;
}

.cta, .cta[type="submit"], #mc-embedded-subscribe.cta {
    display: block;
    width: 100%;
    text-align: center;
    background: var(--yellow);
    border-radius: 100px;
    border: 2px solid var(--dark-color);
    padding: 0.75rem;
    margin-bottom: 1rem;
    text-transform: uppercase;
    font-size: 1.5rem;
    font-weight: 600;
    font-family: var(--header_font);
    box-shadow: var(--shadow);
}
    
.grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

.grid h1, .grid h2, .grid h3 {
    width: 100%;
    text-align: center;
}

.image-wrapper {
    position: relative;
    padding-top: 100%;
    height: 0px;
}

.image-wrapper img {
    margin: 0;
    max-width: unset;
    object-fit: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
}

/* Special sections */
.splash {
    padding: 1rem;
    overflow: hidden;
}

.splash video {
    max-width: 100%;
    border: 1px solid black;
    box-shadow: var(--shadow);
}

.splash video.desktop {
    display: none;
}

@media only screen and (min-width: 800px) {
    .splash video.desktop {
        display: block;
    }

    .splash video.mobile {
        display: none;
    }
}

section.embed > * {
    width: 90%;
}

/* 
    Artist page
*/
.artist-grid h2 span {
    display: inline-block;
    padding: 1em;
    border-bottom: 1px solid;
}

.artist-block {
    flex-basis: 100%;
    text-align: center;
    margin-bottom: 2rem;
}

.artist-block:last-child {
    margin-bottom: 0;
}

.artist-block .image-wrapper {
    border: 2px solid;
    box-shadow: var(--shadow);
}

.artist-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.artist-links .social {
    font-size: 2rem;
    padding: 0.75rem;
    border-radius: 100%;
    width: 4rem;
    height: 4rem;
    border: 2px solid;
    box-shadow: var(--shadow);
    margin: 0.5rem;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

/* Partners Page */
.partner-block {
    flex-basis: calc(50% - 0.5rem);
}

/* FAQ Page */
body[path="/faq"] main > p {
    text-align: center;
}
body[path="/faq"] main > p:last-child {
    margin-top: 2rem;
}


details summary::-webkit-details-marker { display: none; }
summary::before {
    content: "\f106";
    font-family: 'Font Awesome 5 Free';
    font-weight: 600;
    display: inline-block;
    position: absolute;
    right: 1rem;
    top: 25%;
    transform: rotate(0);
    transform-origin: center;
    transition: 0.2s transform ease;
    font-size: 2rem;
}

details[open] > summary:before {
    transform: rotate(180deg);
}
    
details {
    max-width: 650px;
    width: 100%;
    margin: 1.5rem auto;
    overflow: hidden; 
    background: var(--cream);
    padding: 0 !important;
    overflow: hidden;
}

@keyframes ANSWER { from { max-height: 0px; } }
@keyframes ANSWERCLOSE { to { max-height: 0px; } }
details .answer-wrapper {
    position: relative;
    z-index: 1;
    animation: ANSWER 500ms ease-in-out;
    max-height: 150vh;
    overflow: hidden;
}

details.closing .answer-wrapper {
    animation: ANSWERCLOSE 500ms ease-in-out;
}

summary {
    outline: none;
    padding: 1.5rem 1rem;
    display: block;
    position: relative;
    cursor: pointer;
    font-family: var(--header_font);
    text-transform: uppercase;
    font-weight: 600;
    font-size: 1.2rem;
    background: var(--cream);
}

summary::selection {
    background: unset;
}

.answer-wrapper {
    background: var(--green);
    color: var(--cream);
}

.answer {
    padding: 1.5rem 1rem;
}

.answer p strong:last-child {
    display: inline-block;
    margin-bottom: 1rem;
}

.graphics {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
    display: none;
}

.graphics img {
    max-width: 10vw;
    width: 180px;
    position: absolute;
}

.graphics img:nth-child(1) {
    top: 7rem;
    left: 5rem;
}

.graphics img:nth-child(2) {
    right: 5rem;
    top: 20rem
}

.graphics img:nth-child(3) {
    left: 5rem;
    top: 35rem
}

@media screen and (min-width: 1200px) {
    .graphics {
        display: block;
    }
}

/* contact page */
[path*="contact"] p {
    text-align: center;
}

form input, form .select, form textarea {
    border-radius: 50px;
    border: 2px solid var(--dark-color);
    background: var(--cream);
    font-family: var(--header_font);
    text-transform: uppercase;
    padding: 1rem;
    width: 100%;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
}

form .select {
    padding: 0;
    position: relative;
}

form textarea {
    min-height: 300px;
    text-transform: initial;
}

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 100%;
    height: 100%;
    padding: 1rem;
    background: transparent;
    border: 0;
    font-family: var(--header_font);
    text-transform: uppercase;
}

.select:after {
    content:"\f107";
    font-family: "Font Awesome 5 Free";
    font-weight: 600;
    font-size: 2rem;
    position: absolute;
    right: 1rem;
    top: 20%;
    pointer-events: none;
}

form input[type="textarea"] {
    min-height: 300px;
    vertical-align: top;
}

#contactform.submitted {
    pointer-events: none;
}

form.submitted .cta {
    display: none;
}

form.submitted .formstatus {
    display: block;
    background: var(--green);
    color: var(--cream);
    padding: 1em;
    width: 100%;
    text-align: center;
    border-radius: 50px;
}  

/* global text message */
#community {
    position: fixed;
    bottom: 1rem;
    left: 0;
    right: 0;
    width: 15rem;
    height: 4rem;
    z-index: 2;
    margin: auto;
    color: transparent;
    background: url(/img/basiltext.png);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transition: opacity 2s ease-in-out;
}

#community.noshow, body:not(.us) #community {
    opacity: 0;
    pointer-events: none;
}


/* Desktop adjustments */
@media screen and (min-width: 800px) {
    #community {
        bottom: 2rem;
        right: 2rem;
        left: unset;
        width: 20rem;
        height: 5rem;
    }

    /* Core adjustments */
    main {
        padding: 3rem 6rem;
    }

    main h1, main h2, main h3 {
        font-size: 2.5rem;
    }
    
    main h3 {
        font-size: 1.5rem;
    }

    .cta, .cta[type="submit"], #mc-embedded-subscribe.cta {
        display: inline-block;
        width: auto;
        font-size: 1.25rem;
        padding: 0.75rem 1.5rem;
    }

    /* header adjustments */  
    
    header {
        margin-top: 3rem;
        margin-bottom: 2rem;
    }  
    
    header nav {
        display: flex;
        position: absolute;
        width: 100%;
        justify-content: space-between;
        padding: 1rem;
    }
    
    header nav > div {
        display: flex;
        justify-content: center;
        align-items: center;
        width: calc(50% - 13rem);
        padding-left: 3rem;
    }

    header nav > div:last-child {
        padding-left: unset;
        padding-right: 3rem;
    }
    
    header nav a {
        font-weight: 600;
        font-family: var(--header_font);
        text-transform: uppercase;
        font-size: 1.1rem;
        padding: 1em 1em;
        margin: auto;
    }

    header .logo a::after {
        content: "";
        background-image: url("/img/mobile logo.webp");
        width: 22rem;
        height: 8rem;
        position: absolute;
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        top: -3rem;
        z-index: 2;
    }
    
    .nav-toggle, nav span {
        display: none;
    }

    /* Footer */
    footer {
        margin-top: 1rem;
        flex-direction: row;
        justify-content: space-between;
        flex-wrap: nowrap;
        position: relative;
        align-items: flex-start;
    }
    
    .footer-socials {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    footer .socials {
        margin-top: unset;
        display: inline-block;
    }
    
    .footer-links nav {
        columns: 2;
    }
    
    footer small {
        position: absolute;
        bottom: 3rem;
        left: 2rem;
        font-weight: 300;
        font-size: 1rem;
    }
  

    /* Tickets adjustments */
    section.left-image, section.right-image {
        display: flex;
        align-items: center;
    }

    section.left-image img, section.right-image img {
        flex-basis: 30%;
        object-fit: contain;
        margin: unset;
        padding: 2rem;
        width: auto;
        max-width: 40%;
    }

    section.left-image > div, section.right-image > div {
        flex-basis: 70%;
    }

    .right-image img {
        order: 2;
    }

    section.half {
        width: 50%;
        float: left;
    }

    section.half:nth-of-type(2n+1) {
        padding-left: 1rem;
    }

    section.half:nth-of-type(2n+2) {
        padding-right: 1rem;
    }

    /* Artist page */
    .artist-grid.grid {
        gap: 2rem;
    }

    .artist-block {
        flex-basis: 45%;
        margin: auto;
    }
    
    .artist-block .cta {
        margin: 0.5rem 0.5rem 0.5rem 0;
    }
    
    .artist-links .social {
        font-size: 1.5rem;
        padding: 0.5rem;
        width: 2.75rem;
        height: 2.75rem;
    }

    /* partners page */
    .partner-block {
        flex-basis: calc(16.6666% - 0.5rem);
    }

    /* contact */
    [path*="contact"] p {
        margin: 0;
    }
  
    form {
        max-width: 700px;
        margin: 2rem auto auto;
    }

    form input, form .select, form textarea {
        box-shadow: var(--shadow);
    }
    
    form input[type="text"], form .select {
        width: calc(50% - 2rem);
        margin-bottom: 2.5rem;
    }
    
    form input[type="text"] {
        margin-right: auto;
    }
    
    form .cta {
        margin-right: auto;
        margin-top: 2rem;
    }  
}

@media screen and (min-width: 800px) and (max-width: 1060px) {
    header .logo a::after {
        width: 11rem;
    }
    header nav > div {
        width: calc(50% - 7rem);
        padding-left: 1rem;
    }  

    header nav > div:last-child {
      padding-right: 1rem;
    }  
}

/* seated overrides */
.seated-event-date-cell, .seated-event-venue-name, .seated-event-venue-location {
    font-family: var(--header_font) !important;
    line-height: 1.5em !important;
    text-transform: uppercase !important;
}

.seated-event-row:hover {
    background: transparent !important;
}

.seated-event-venue-name {
    font-size: 1.25rem !important;
}

.seated-follow-text {
    margin-bottom: 1rem !important;
}

.seated-event-link1, .seated-event-link1:visited, .seated-event-link2, .seated-event-link2:visited, .seated-follow-link, .seated-follow-link:visited {
    all: unset !important;
    
    display: inline-block !important;
    width: auto !important;
    text-align: center !important;
    background: var(--yellow) !important;
    border-radius: 100px !important;
    border: 2px solid var(--dark-color) !important;
    padding: 0.75rem !important;
    margin-bottom: 1rem !important;
    text-transform: uppercase !important;
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    font-family: var(--header_font) !important;
    box-shadow: var(--shadow) !important;
}

.seated-event-link1:hover, .seated-event-link2:hover, .seated-follow-link:hover {
    all: unset !important;
    
    display: inline-block !important;
    width: auto !important;
    text-align: center !important;
    background: var(--yellow) !important;
    border-radius: 100px !important;
    border: 2px solid var(--dark-color) !important;
    padding: 0.75rem !important;
    margin-bottom: 1rem !important;
    text-transform: uppercase !important;
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    font-family: var(--header_font) !important;
    box-shadow: var(--shadow) !important;
}

@media only screen and (max-width: 800px) {
    .seated-event-details-cell {
        margin: 1rem;
    }
}

/* MC embed */
body section #mc-embedded-subscribe.cta {
    margin: 0;
}

body section #mc_embed_signup .helper_text {
    background: transparent;
    color: black;
}

body section #mc_embed_signup form {
    margin: 0;
}

body section #mc_embed_signup .mc-field-group {
    padding-bottom: 0;
}

body section #mc_embed_signup .helper_text:empty {
    display: none;
}

body section #mce-EMAIL {
    border-radius: 10px;
    border-color: black;
}

body section #mc_embed_signup .foot {
    width: 100%;
}

body section #mc_embed_signup .mc-field-group {
    width: 100%;
    display: block;
}  

/* geotargeting */
body .us, body.us .uk {
    display: none;
}

body.us .us {
    display: initial;
}