/*!
Theme Name: Please & Thank You VIP
Theme URI: http://underscores.me/
Author: Phill Mamula
Author URI: https://www.phillm.com
Description: 2024 Theme for Please & Thank You VIP Event LIstings
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ptyvip
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Please & Thank You VIP is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

@font-face {
    font-family: 'Aeonik Medium';
    src: url('fonts/Aeonik-Medium.woff2') format('woff2'),
         url('fonts/Aeonik-Medium.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Aeonik Black';
    src: url('fonts/Aeonik-Black.woff2') format('woff2'),
         url('fonts/Aeonik-Black.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}


/* =Global
-------------------------------------------------------------- */
html,body {
  	margin: 0; padding: 0; 
  	min-height: 100%;
}
body {
    background: var(--background, black); 
    color: var(--primary, black); 
    font-family: "Inter", serif;
    font-weight: 400;
	font-size: 17px;
	line-height: 1.55em;
}
.small-text { font-size: 0.9em; line-height: 1.5em; }

/* Type */
h1, h2, h3, h4 {
    font-family: 'Aeonik Black', sans-serif;
    line-height: 1em;
    margin: 5px 0 15px;
}
h1 { font-size: 4em; }
h2 { font-size: 3em; }
h3 { font-size: 2.5em; }
h4 { font-family: 'Aeonik Medium', sans-serif; font-size: 1.5em; }

strong { font-weight: 600; }
img { margin-bottom: -8px; }
p { margin: 0 0 15px; }

a, a:link, a:visited { 
    color: inherit;
    cursor: pointer;
    transition: all 0.15s ease-in-out;
    -webkit-transition: all 0.15s ease-in-out;
    -o-transition: all 0.15s ease-in-out; 
}
a:hover { 
    color: var(--secondary, black); }

button { cursor: pointer; }
video:focus,
input:focus,
button:focus {outline:0; cursor: pointer;}
textarea,
input.text,
input[type="text"],
input[type="button"],
input[type="submit"],
.input-checkbox {
-webkit-appearance: none;
border-radius: 0;
}
ul, li { margin: 0; padding: 0; list-style: none; }

/* Structure */
#page { position: relative; overflow: hidden; }
.post, .page, .page-content, 
.entry-content, .entry-summary { margin: 0; }

.center { text-align: center; justify-content: center; }

.flex { display: flex; flex-wrap: wrap; align-items: center; }
.flex>* { flex: 1; }
.flex .half { flex: 1 0 50%; width: 50%; max-width: 50%; }
.flex .two-third { flex: 1 0 66%; width: 66%; max-width: 66%; }
.flex .third { flex: 1 0 33.3%; width: 33.3%; max-width: 33.3%; }

.flex.invert { flex-direction: row-reverse; }
.flex.center { justify-content: center; }
.flex.justify { justify-content: space-between; }
.flex.justify>* { flex: inherit; }

.flex.overflow { 
    width: calc(100% + 30px);
    align-items: initial; 
    justify-content: center;
    margin-left: -15px;
}
.flex.overflow.two { margin-left: -20px; width: calc(100% + 40px); }
.flex.overflow.four { margin-left: -5px; width: calc(100% + 10px); }
.flex.overflow.five { margin-left:-15px; width:calc(100% + 30px); }
.flex.overflow>* { margin: 15px; }

.flex.overflow.two.flex>*,
.flex.overflow .half { flex: 1 0 calc(50% - 40px); width: calc(50% - 40px); max-width: calc(50% - 40px); margin: 20px; }
.flex.overflow.three.flex>*,
.flex.overflow .third { flex: 1 0 calc(33.3% - 30px); width: calc(33.3% - 30px); max-width: calc(33.3% - 30px); }
.flex.overflow .two-third { flex: 1 0 calc(66.6% - 40px); width: calc(66.6% - 30px); max-width: calc(66.6% - 30px); }
.flex.overflow.four.flex>*,
.flex.overflow .quarter { flex: 1 0 calc(25% - 10px); width: calc(25% - 10px); max-width: calc(25% - 10px); margin: 5px; }

.container {
    width: 90vw;
    max-width: 1140px;
    position: relative;
    margin: 0 auto;
}
.container.small { max-width: 1024px; }

/* CTA Buttons */
a.large-cta,
.large-cta {
    color: var(--buttontxt, black);
    background: var(--button, black);
    font-family: 'Aeonik Medium', sans-serif;
    font-size: 0.8em;
    letter-spacing: 0.02em;
    line-height: 1em;
    font-weight: 600;
    border: 1px solid var(--button, black);
    padding: 18px 30px 16px;
    text-align: center;
    text-transform: uppercase;
    border-radius: 5px;
    text-decoration: none;
}
a.large-cta:hover {
    color: var(--buttonhovertxt, black);
    border-color: var(--buttonhover, black);
    background: var(--buttonhover, black);
}
.large-cta.inactive,
.large-cta.outline {
	opacity: 0.25;
	color: inherit;
	border-color: inherit;
	background: transparent;
}

.mobile-only { display: none; }

/* =Header
-------------------------------------------------------------- */

header#masthead { 
    width: 100%;
    margin: 0 auto;
    color: var(--navigationtxt, black);
    background: var(--navigationbg, white);
    position: relative;
}
header#masthead .container { padding: 20px 0; display: flex; align-items: center; }

header#masthead .site-branding img {
    width: auto;
    height: 35px;
    margin: 0 auto -5px;
}
header#masthead .container.flex nav { flex: 3; }
header#masthead nav {
    position: relative;
}
header#masthead nav ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
header#masthead nav ul li { padding: 0 0 0 3vw; }
header#masthead nav ul li a {
    color: var(--navigationtxt, black);
    font-size: 0.9em;
    line-height: 1.2em;
    padding: 5px;
}
header#masthead nav ul li a:hover {
    color: var(--navigationhover, black);
}
header#masthead li a[target="_blank"]:after {
    content: '\e09f';
    font: var(--fa-font-light);
    margin-left: 5px;
    opacity: 0.5;
}


header#masthead.hide { display: none; }


/* Site Background */
.main-background {
    width: 100%;
    height: 80dvh;
    position: absolute;
    top: 0;
    left: 0;
    z-index: -2;
    -webkit-mask-image: -webkit-gradient(linear, left 70%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
}
.main-background img {
    width: 100%;
    object-fit: cover;
    object-position: top center;
}

/* Hero Image */
.site-hero {
    position: relative;
    overflow: hidden;
    min-height:  350px;
    max-height: 600px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.site-hero .container {
    position: relative;
    text-align: center;
    z-index: 9;
}
.site-hero .hero-background {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3;
}
.site-hero .hero-background img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;    
}



/* =Event Listing
-------------------------------------------------------------- */
.event-list-item {
    padding: 30px 0;
    position: relative;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}
section.events.light .event-list-item,
section.events .card.light .event-list-item { 
    border-bottom: 1px solid rgba(255,255,255,0.15); 
}

.event-details.flex .event-date { 
    flex: inherit; 
    min-width: 150px;
    padding-right: 30px;
}
.event-details.flex .event-title { 
    flex: 3; 
    padding: 0 0 0 30px;
    border-left: 1px dotted rgba(0,0,0,0.25);  }
.event-details.flex .event-purchase { flex: 2; }

.event-details h3,
.event-details h4 { 
    font-size: 1em; 
    font-weight: 600;
    margin: 0 0 5px;
}
.event-details h3 { font-size: 1.25em; font-weight: 700; }
.event-details span { opacity: 0.55; display: block; }
.event-details span.time { font-size: 0.8em; }

.event-title.flex .support { font-size: 0.8em; line-height: 1.2em; padding: 0 30px 0 0; }

.event-purchase.flex { align-items: center; }
.event-purchase.flex>* { margin: 3px; }

/* Disclaimer */
span.caption {
    font-size: 0.8em;
    line-height: 1.2em;
    display: block;
    margin: 5px 0;
	opacity: 0.7;
}
.disclaimer {
	margin: 15px 0;
	opacity: 0.5;
    font-size: 0.8em;
}

/* Event Card */
.event-listing.card { 
    border-radius: 10px;
    padding: 10px 0;
    overflow: hidden; 
    box-shadow: 2px 2px 8px 1px rgb(0 0 0 / 5%);
}
.event-listing.card .event-list-item { padding: 25px; }
.event-listing.card .event-list-item:last-of-type { border: none !important; }


/* =Sections
-------------------------------------------------------------- */
section { position: relative; padding: calc(30px + 2dvw) 0; }
section  .section-title h3 {
    color: var(--secondary, black); 
    margin: 0 auto 25px;
}
section .section-title {
    padding: 0 0 25px;
}
section .section-title h3 { margin: 0 auto; }
section .section-title .description {
    padding: 25px 5vw;
}

.light { color: #FFFFFF; }
.dark { color: #111111; }

/* Entry Content */
.entry-content ul, 
.entry-content ol { margin: 5px 0 15px; padding-left: 15px; }
.entry-content li {
    list-style-type: disc;
    list-style-position: inside;
    text-indent: -1.5em;
    padding-left: 15px;
    margin-bottom: atan2();px;
    margin-left: 0;
}
.entry-content hr { margin: 40px auto; background-color: rgba(0,0,0,0.1); }
.entry-content h2, .entry-content h3, .entry-content h4 { margin: 25px 0 10px; font-size: 2em; }

.entry-content .embed-container {
    margin: 25px auto;
}

/* Media */
section.media { text-align: center; }
section.media .embed-container { box-shadow: 2px 2px 8px 1px rgb(0 0 0 / 5%); }

/* Grid */
.grid-item.card { 
    border-radius: 10px;
    overflow: hidden; 
    box-shadow: 2px 2px 8px 1px rgb(0 0 0 / 5%);
}
.grid-item .grid-details { padding: 15px 10px 30px; }
.grid-item.card .grid-details { padding: 25px; }
.grid-item .entry-content { opacity: 0.8; }

.grid-image {
    width: 100%;
    height: 45dvh;
    border-radius: 10px;
    max-height: 400px;
    overflow: hidden;
    position: relative;
}
.grid-item.card .grid-image { border-radius: 0; }
.grid-image img {
    width: 100%;
    height: 100%;
    object-position: center;
    object-fit: cover;
}
.grid .three .grid-image { height: 250px; border-radius: 5px; }
.grid-item .cta-buttons { margin: 30px 0 0;}
.grid-item .cta-buttons .large-cta { display: block; margin: 0 auto 5px; }


/* Grid (Horizontal) */
.grid-layout.fullwidth .grid-item {
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}
.grid-layout.fullwidth .grid-item.card { border: none; padding: 0; margin-bottom: 25px; }
.grid-layout.fullwidth .grid-item:last-of-type { border: none; }

.grid-layout.fullwidth .grid-item { 
    display: flex;
    align-items: stretch;
    margin-bottom: 30px; 
}
.grid-layout.fullwidth .grid-item .grid-image { 
    flex: 2; 
    height: inherit; 
    max-height: inherit; 
}
.grid-layout.fullwidth .grid-item .grid-details { flex: 2.5; padding: 0 0 0 50px; }
.grid-layout.fullwidth .grid-item.card .grid-details { flex: 2.5; padding: 30px; }

.grid-layout.fullwidth .grid-item .cta-buttons {
    display: flex;
    flex-wrap: wrap;
}
.grid-layout.fullwidth .grid-item .cta-buttons>* { flex: 1 0 calc(50% - 10px); margin-right: 5px; }

/* Accordion */
.accordion { margin: 0 auto 25px; }
.accordion-item { position: relative; }
.question.flex { justify-content: space-between; }
.question.flex>* { flex: 7; }
.accordion-panel {
    display: none;
    margin-top: -10px;
    padding: 0 0 15px;
}
.accordion-panel { 
    width: 100%; 
    padding: 15px 0 30px;
}
.accordion-item {
    padding: 0;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    margin-bottom: -1px;
}
.accordion-item:first-of-type .accordion-panel { display: block; }
.accordion-title {
    padding: 30px 0;
    position: relative;
}
.accordion-title h4 {
	margin: 0;
    font-weight: 600;
	padding-right: 5vw;
}
.accordion-title i.flip { 
    flex: 1;
    cursor: pointer;
    font-weight: 400;
    font-size: 1em; 
    position: absolute;
    right: 0;
    top: calc(50% - 10px);
    opacity: 0.25;
    transition: all 0.15s ease-in-out;
}
.accordion-item.is-active i.flip { 
    transform: rotate(180deg);
}

.accordion.card {
    border-radius: 10px;
    overflow: hidden; 
    box-shadow: 2px 2px 8px 1px rgb(0 0 0 / 5%);
}
.accordion.card .accordion-item { padding: 0 30px; }
.accordion.card.light .accordion-item { border-color: rgba(255,255,255,0.1); }


/* 404 */
section.error-404 {
    text-align: center;
    margin: 50px auto;
}
section.error-404 a.large-cta {
    margin: 25px auto 0;
}

span.edit-link { display: inline-flex; }


/* =Footer
-------------------------------------------------------------- */
footer.site-footer {
    color: var(--footertxt, black);
	text-align: center;
	padding: 50px 0;
    position: relative;
}
footer.site-footer .container { position: relative; z-index: 9;}

footer.site-footer a {
    color: var(--footerlink, black);
}
footer.site-footer a:hover {
    color: var(--footerhover, black);
}

footer.site-footer .socials {
	width: 100%;
	max-width: 750px;
	margin: 0 auto 25px;
}
footer.site-footer .socials a {
	font-size: 1.5em;
	margin: 0 5px;
}
footer.site-footer .privacy-nav a {
	font-size: 0.9em;
	margin: 0 5px;
}

/* Copyright */
footer.site-footer .copyright { 
    width: 100%;
    max-width: 650px;
    margin: 50px auto 15px;
    text-align: left;
}
footer.site-footer .copyright ul { margin: 0 0 5px; }
footer.site-footer .copyright ul li { display: inline-block; margin: 0 10px 0 0; font-size: 0.9em; }

footer.site-footer .copyright.flex>* { flex: inherit; }

footer.site-footer .copyright-legal {
    opacity: 0.5;
    font-size: 0.75em;
    line-height: 1.5em;
}
footer.site-footer .copyright-logo { padding-right: 30px; }
footer.site-footer .copyright-logo img { max-width: 60px; }

/* Footer Background */
.footer-background {
    width: 100%;
    height: 250px;
    margin-top: -50px;
    margin-bottom: -50px;
    z-index: -2;
    -webkit-mask-image: -webkit-gradient(linear, left 50%, left top, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)));
}
.footer-background img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}


/* =Mobile (Media Queries)
-------------------------------------------------------------- */
@-ms-viewport {
  width: device-width;
}
@viewport {
  width: device-width;
}
@media only screen and (max-width: 1024px) {

    .flex.overflow.two,
    .flex.overflow.two { flex-direction: column; margin: 0 auto; width: 100%; }
    .flex.overflow>*,
    .flex.overflow.two.flex>*,
    .flex.overflow .half { margin: 0 auto 15px; flex: 1; width: 100%; max-width: 100%; }

    /* Sections */
    .grid-layout.fullwidth .grid-item { display: block; }
    .grid-layout .grid-item .grid-details { padding: 15px 15px 30px; border-bottom: 1px solid rgba(0,0,0,0.1); margin-bottom: 15px; }
    .grid-layout.fullwidth .grid-item.card .grid-details { border: none; margin-bottom: 0; }
    .grid-layout .grid-item:last-of-type .grid-details { border: none; margin-bottom: 0; }
    .grid-layout.fullwidth .grid-item.card .grid-details { padding: 25px; }
    .grid-layout.fullwidth .grid-item .grid-image { height: 45dvh; max-height: 400px; }

    /* Event Listing */
    .event-details.flex .event-title { display: block; }
    .event-title.flex .support { padding: 5px 0; }
}


@media only screen and (max-width: 800px) {
    h1 { font-size: 3em; }
    h2 { font-size: 2.5em; }
    h3 { font-size: 2em; }
    h4 { font-size: 1.25em; }

    .mobile-only { display: block; }
    .hide-mobile { display: none; }

	/* Mobile Navigation */
    header#masthead { 
        top: 0; 
        left: 0; 
        width: 100%; 
        position: fixed; 
        z-index: 99; 
        background: #FFFFFF;
        box-shadow: 2px 2px 8px 1px rgb(0 0 0 / 5%);
    }
    header#masthead .container:after { display: none; }

    header#masthead .container { padding: 0; }
    header#masthead .nav-title { padding: 15px 0; }
    header#masthead .nav-title.flex { display: flex; justify-content: space-between; }
    header#masthead .nav-title.flex>* { flex: inherit; }

    .main-background { top: 70px; }

	button.menu-toggle {
	    display: block;
	    background: transparent;
	    border: none;
	    width: 40px;
	    height: 40px;
	    border-radius: 0;
	    transform: rotate(0deg);
	    transition: .5s ease-in-out;
	    cursor: pointer;
	    text-indent: -999em;
	    z-index: 9;
	}
	button.menu-toggle span {
	    display: block;
	    position: absolute;
	    height: 2px;
	    width: 100%;
	    background: var(--navigationtxt, black);
	    opacity: 1;
	    left: 0;
	    transform: rotate(0deg);
	    transition: .25s ease-in-out;
	}
	button.menu-toggle span:nth-child(1) { top: 5px; }
	button.menu-toggle span:nth-child(2),
	button.menu-toggle span:nth-child(3) { top: 17.5px; }
	button.menu-toggle span:nth-child(4) { top: 30px; }
	.main-navigation.toggled button.menu-toggle span:nth-child(1),
	.main-navigation.toggled button.menu-toggle span:nth-child(4) {
	    top: 20px;
	    width: 0%;
	    left: 50%;
	}
	.main-navigation.toggled button.menu-toggle span:nth-child(2) {
	    transform: rotate(45deg);
	}
	.main-navigation.toggled button.menu-toggle span:nth-child(3) {
	    transform: rotate(-45deg);
	}

    header#masthead .main-navigation ul { display: none; }
    header#masthead .main-navigation.toggled ul { 
    	display: flex;
    	flex-direction: column;
    }
    header#masthead .main-navigation.toggled ul li {
   		width: 100%;
   		text-align: left;
        position: relative;
        padding: 0;
    }
    header#masthead .main-navigation.toggled ul li:after {
        content: '';
        width: 100%;
        height: 1px;
        background: var(--navigationtxt, black);
        top: 0;
        left: 0;
        position: absolute;
        opacity: 0.1;
    }
    header#masthead .main-navigation.toggled ul li:last-of-type { border: none; }
    header#masthead .main-navigation.toggled ul li a {
    	padding: 20px 0;
        font-size: 1.1em;
        line-height: 1em;
    	display: block;
    }

    /* Hero */
    .site-hero { height: 100%; max-height: inherit; min-height: 280px; margin-top: 70px; }

    /* Section */
    section .section-title h3 { width: 80%; margin: 0 auto 15px; }
    section .section-title .description { padding: 0 20px 25px; }

    .accordion-title { padding: 20px 0; }

    .entry-content li li { padding-left: 0; }

    /* Event Listing */
    .event-details.flex { align-items: initial; }
    .event-details.flex .event-date { flex: 1; }
    .event-details.flex .event-title { flex: 3; }
    .event-details.flex .event-purchase { flex: 1 0 100%; width: 100%; max-width: 100%; padding: 20px 0 0; }
    .event-details.flex .event-purchase>* { flex: 1 0 calc(50% - 10px); }

	/* Gallery */
	.owl-nav button { width: 35px; height: 35px; top: calc(50% - 35px); font-size: 1em; }
	.owl-nav button { left: 15px; }
	.owl-nav button.owl-next { right: 15px; }

    /* Event Listing */

	/* Footer */
    footer.site-footer { padding: 0 0 25px; }
    footer.site-footer .socials.flex { 
        justify-content: center; 
        width: 100%; 
        max-width: 400px; 
        margin: 0 auto;
    }
    footer.site-footer .socials.flex>* {
        flex: 1 0 20%;
        width: 20%;
        max-width: 20%;
        padding: 10px;
        margin: 0;
    }
}


@media only screen and (max-width: 520px) {
    body { font-size: 16px; line-height: 1.6em; }
    h1 { font-size: 2.25em; }
    h2 { font-size: 2em; }
    h3 { font-size: 1.75em; }
    h4 { font-size: 1.25em; }

    .event-listing.card .event-list-item,
    .grid-item .grid-details,
    .grid-layout.fullwidth .grid-item .grid-details { padding: 20px; }

    /* Events */
    .event-details .event-purchase.flex,
    .event-details .event-purchase.flex>*,
    .grid-layout.fullwidth .grid-item .cta-buttons {
        display: block;
    }
    .event-details.flex .event-date { 
        flex: 1 0 100%; width: 100%; max-width: 100%; 
        padding: 10px 0 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .event-details h3 { font-size: 1.5em; }
    .event-details.flex .event-date h4 { margin: 0; }
    .event-details.flex .event-title { border: none; padding: 20px 0 0; }

    /* Sections */
    section .section-title h3 { width: 100%; margin: 0 auto 15px; }
    section .section-title .description { padding: 10px 2vw; }
    .grid-layout.fullwidth .grid-item .grid-image,
    .grid-layout .grid-item .grid-image { max-height: 250px; }

    /* Footer */
    footer.site-footer .copyright { padding: 0 5vw; }
}
