/*!
Theme Name: JRFMLC
Theme URI: http://underscores.me/
Author: Phill Mamula
Author URI: https://www.phillm.com
Description: 2025 Theme for JRFMLC Artist Management
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: jrfmlc
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.

JRFMLC 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/
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;800&display=swap');
@font-face {
    font-family: 'Graphik Regular';
    src: url('fonts/GraphikRegular.woff2') format('woff2'),
         url('fonts/GraphikRegular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Graphik Bold';
    src: url('fonts/GraphikBold.woff2') format('woff2'),
         url('fonts/GraphikBold.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}


/* =Colors
-------------------------------------------------------------- */
/* Defining color variables */
:root {
    --white: #FFFFFF;
    --black: #1d1e1f;
    --gold: #C5B783;
    --blue: #003764;
    --darkblue: #002a4b;
    --gray: #cfcfcf;
}
.white { color: var(--white); }
.black { color: var(--black); }
.gold { color: var(--gold); }
.blue { color: var(--blue); }
.darkblue { color: var(--darkblue); }
.gray { color: var(--gray); }


/* =Global
-------------------------------------------------------------- */
html,body {
    margin: 0; 
    padding: 0;
    min-height: 100%;    
}
body {
    background: var(--white);
    color: var(--black);
    font-family: 'Inter', sans-serif;
    font-optical-sizing: auto;
    font-size: clamp(15px, 1vw, 16px);
    line-height: clamp(1.6em, 2vw, 1.75em);
    -webkit-font-smoothing: antialiased;
}
strong, b { font-weight: 600; }
p { margin: 0 0 1em; }
.page, .post { margin: 0; }

/* Type */
h1, h2, h3, h4 {
    color: var(--blue);
    font-family: 'Graphik Bold', sans-serif;
    -webkit-font-smoothing: antialiased; 
    line-height: 0.9em;
    letter-spacing: -0.03em;
    text-wrap: balance;
    text-transform: uppercase;
    margin: 0 0 15px;
}

h1.xl-title { font-size: clamp(2.5rem, 6vw, 7rem); }
h1          { font-size: clamp(2.25rem, 5vw, 5rem); }
h2          { font-size: clamp(2rem, 4vw, 4rem); }
h3          { font-size: clamp(1.75rem, 3vw, 3rem); }
h4          { font-size: clamp(1.5rem, 2vw, 2rem); }

.small-text {
    font-size: clamp(0.9em, 1vw, 1em);
    line-height: 1.5em;
}

img { margin-bottom: -8px; }

.mono {
    font-family: 'Proto Mono', monospace;
}

ul, li {
    margin: 0;
    padding: 0;
    list-style: none;
} 
a, a:visited { 
    color: var(--blue);
    text-decoration: none;
    cursor: pointer;
    transition: all 0.25s ease-in-out;
}
a:hover, a:focus { color: var(--gold); }

hr {
    margin: 25px 0;
    background: transparent;
    clear: both;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
span.edit-link a { text-decoration: underline; }

/* Container */
.container {
    width: 90vw;
    max-width: 1320px;
    position: relative;
    margin: 0 auto;
    z-index: 9;
}
.container.small { max-width: 1140px; }
.container.text,
.text-content { max-width: 800px; margin: 0 auto; }

/* Large CTA */
.cta-buttons.flex {
    gap: 10px;
    flex-wrap: wrap;
}
.cta-buttons.flex>* { flex: inherit; }

.large-cta,
a.large-cta {
    color: var(--black);
    font-size: 0.85em;
    line-height: 1em;
    font-weight: 600;
    padding: 18px 32px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 8px;
    min-width: 200px;
    text-align: center;
}
.large-cta:hover {
    background-color: var(--blue);
    border-color: var(--blue);
    color: var(--white);
    box-shadow: 0 1px 0 rgba(0,0,0,0.02),0 6px 12px rgba(0,0,0,0.03);
}

/* =Header
-------------------------------------------------------------- */
header#masthead {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9;
}
header#masthead .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
}

/* Logo */
header#masthead .site-branding img {
    display: block;
    width: 155px;
    height: auto;
}

/* Navigation */
nav.main-navigation {
    width: auto;
}
nav.main-navigation ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4vw;
}
nav.main-navigation ul li a {
    color: var(--white);
    font-size: 0.8rem;
    line-height: 1em;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-transform: uppercase;
}
nav.main-navigation ul li a:hover,
nav.main-navigation ul li a:focus {
    color: var(--gold);
}
nav.main-navigation ul li.large-cta a {
    font-size: 0.9em;
}
nav.main-navigation ul li.large-cta a:hover,
nav.main-navigation ul li.large-cta a:focus {
    color: var(--black);
}

/* Dropdown */
.main-navigation .menu-item-has-children { position: relative; }
.main-navigation .menu-item-has-children > .sub-menu {
    position:absolute;
    top:100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 15px;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(3px);
    color: var(--white);
    border-radius: 8px;
    display: none;
    z-index: 10;
}
.main-navigation .menu-item-has-children:hover > .sub-menu,
.main-navigation .menu-item-has-children:focus-within > .sub-menu {
    display: block;
}
.main-navigation .menu-item-has-children > .sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -18px;
    height: 18px;
}
.main-navigation .menu-item-has-children > .sub-menu li {
    padding: 0;
    margin: 0;
}
.main-navigation .menu-item-has-children > .sub-menu li:last-child {
    border-bottom: none;
}
.main-navigation .menu-item-has-children > .sub-menu li a {
    display: block;
    font-size: clamp(0.75em, 1vw, 1em);
    line-height: 1em;
    padding: 15px 0;
    font-weight: 500;
    text-transform: uppercase;
    text-align: center;
}

/* Student Login */
.student-login {
    display: block;
}
.student-login a {
    color: var(--white);
    font-size: 0.85em;
    line-height: 1em;
    display: flex;
    font-weight: 600;
    letter-spacing: -0.02em;
    align-items: center;
    padding: 13px 25px;
    background-color: rgba(0,0,0,0.3);
    border: 1px solid rgba(211, 211, 211, 0.2);
    border-radius: 8px;
}
.student-login a:after {
    font: var(--fa-font-regular);
    content: "\f2f6";
    margin-left: 10px;
    font-size: 1.25em;
}
.student-login a:hover,
.student-login a:focus {
    background-color: var(--gold);
    color: var(--black);
    border-color: var(--gold);
}

/* Header (Light) */
header#masthead.light {
    position: relative;
}
header#masthead.light .container {
    border-color: #efefef;
}
header#masthead.light li a {
    color: var(--black);
}
header#masthead.light li a:hover,
header#masthead.light li a:focus {
    color: var(--gold);
}
header#masthead.light .student-login a {
    color: var(--white);
    background-color: var(--gold);
    border-color: var(--gold);
}
header#masthead.light .student-login a:hover,
header#masthead.light .student-login a:focus {
    color: var(--white);
    background: var(--black);
    border-color: var(--black);
}

/* =Page Header
-------------------------------------------------------------- */
header.page-header {
    background: var(--black);
    color: var(--white);
    padding: 200px 0 50px;
    position: relative;
}
header.page-header h1 {
    color: var(--white);
    margin: 0;
}
header.page-header .page-subtitle {
    color: #c9cbcb;
    margin: 25px 0 50px;
    font-weight: 300;
    font-size: clamp(1em, 5vw, 1.5em);
    line-height: 1.7em;
    text-wrap: balance;
    text-shadow: 0 12px 14px rgba(0,0,0,0.5);
}

/* Texture Hero Background */
header.page-header .text-bg{
    background: url('images/text-bg-texture.jpg') no-repeat center center / cover;
    width: 100%;
    height: 105%;
    transform: scale(1);
    transform-origin: center;
    will-change: transform;
    animation: heroTextureZoom 25s ease-in-out infinite alternate;
}
@keyframes heroTextureZoom{
    0%{transform: scale(1);}
    100%{transform: scale(1.2);}
}
@media (prefers-reduced-motion: reduce){
    header.page-header .text-bg{animation: none;}
}

/* Header Media */
section.hero-media {
    aspect-ratio: 2 / 1;
}

/* Eyebrow */
header.page-header span.eyebrow {
    color: var(--gold);
}

header.page-header .parallax-background .featured-bg {
    opacity: 0.5;
}


/* Overlay */
header.overlay {
    min-height: 95dvh;
    display: flex;
    align-items: center;
    padding: 200px 0 150px;
    background: var(--black);
}
header.page-header.overlay:after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 50%;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, var(--blue) 90%, var(--blue) 100%);
    z-index: 8;

}
header.page-header .parallax-background:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(215deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,0.8) 100%);
    z-index: 8;
}
header.overlay .container {
    color: var(--white);
    position: relative;
    z-index: 9;
}
header.overlay h1 {
    color: var(--white);
    width: 80%;
}
header.overlay .header-subtitle {
    margin: 25px 0;
    text-wrap: balance;
    opacity: 0.8;
}

/* Header Sponsors */
header.page-header .presenting-title {
    font-size: 0.8em;
    color: #9e9e9e;
    margin: 50px 0 0;
}
header.page-header .presenting-sponsors {
    margin: 25px 0;
    gap: 5vw;
}
header.page-header .presenting-sponsors.flex>* {
    flex: inherit;
}
header.page-header .presenting-sponsors img {
    width: auto;
    max-height: 40px;
    max-width: 135px;
}


/* Fade In Galllery */
.fadein-gallery {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.fadein-gallery .bg-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transition: opacity 500ms ease;
}
.fadein-gallery .bg-slide.is-active {
    opacity: 1
}
.parallax-background.fadein-gallery {
    opacity: 0.7;
}

/* Countdown Bottom */
.countdown-bottom {
    background: var(--blue);
    color: var(--white);
    padding: 0 0 50px;
}
.countdown-bottom .container {
    margin-top: -50px;
}
.countdown-bottom .cta-buttons.flex {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
}
.countdown-bottom .cta-buttons a.large-cta {
    flex: initial;
    display: block;
    border-color: #426581;
    color: var(--white);
}
.countdown-bottom .cta-buttons a.large-cta:hover {
    background-color: var(--gold);
    border-color: var(--gold);
    color: var(--black);
}


/* Countdown */
.countdown-timer {
    flex: 3;
    font-family: 'Graphik Bold', sans-serif;
    text-transform: uppercase;
}
.countdown-timer .count-title {
    color: var(--gold);
    font-size: clamp(0.9em, 2vw, 1.75em);
    margin: 0 0 25px;
    letter-spacing: 0.04em;
}
.countdown-timer .timer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 50px;
}
.countdown-timer .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.countdown-timer .number {
    display: block;
    font-size: clamp(3rem, 5vw, 5rem);
    min-width: 110px;
    line-height: 1em;
}
.countdown-timer span {
    display: block;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: clamp(0.75em, 1vw, 0.9em);
    letter-spacing: 0.1em;
    opacity: 0.5;
}

/* Featured Speakers (Carousel) */
section.featured.speakers {
    padding: 100px 0 50px;
}
section.featured.speakers .section-title h3 {
    font-size: clamp(2.25rem, 4vw, 4.25rem);
    color: var(--gold);
    width: 80%;
    margin: 0 0 50px;
}
section.featured.speakers .owl-stage-outer {
    margin: 25px auto;
}


/* Homepage (About) */
section.textarea.homepage-about {
    padding: 100px 0 125px;
    border-top: 1px solid rgba(0, 0, 0, 0.048);
    background-color: #f5f6f7;
}
.homepage-about .container.flex { align-items: inherit; }
.homepage-about .fifty-image { flex: 1.5; }

.homepage-about .fifty-image-container {
    width: 100%;
    position: relative;
    display: flex;
    justify-content: flex-end;
    padding-left: 50px;
}
section.homepage-about .fifty-image-container,
section.homepage-about .fifty-image-container img.thumbnail {
    height: 90%;
}
section.homepage-about .fifty-image-container img.overlay {
    width: 100%;
    max-width: 420px;
    position: absolute;
    bottom: -100px;
    left: -25px;
    z-index: 9;
    border: 10px solid #f5f6f7;
}

body.home footer.site-footer {
    background-color: #f5f6f7;
}


/* =Locations
-------------------------------------------------------------- */
header.page-header.locations {
    padding-bottom: 250px;
}
section.locations {
    background: #f7f7f8;
    padding: 50px 0 100px;
}
section.locations .container {
    margin: -200px auto 0;
}
section.locations .container.flex {
    align-items: inherit;
}

/* Card */
.card {
    background-color: var(--white);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 0 rgba(0,0,0,0.02),0 6px 12px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
}
.card .card-image {
    aspect-ratio: 5 / 3;
    border-bottom: 1px solid rgba(0,0,0,0.1);
    position: relative;
    overflow: hidden;
    background-color: rgba(0,0,0,0.04);
}
.card .card-image a{
    display: block;
    width: 100%;
    height: 100%;
}
.card .card-image img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.card .card-content {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.card .description {
    margin: 0 0 25px;
    text-wrap: balance;
}
.card .cta-buttons {
    margin-top: auto;
}

/* Locations */
.location-logo {
    width: 150px;
    height: 40px;
    margin: 0 0 15px;
}
.location-logo img.thumbnail {
    object-fit: contain;
    object-position: left bottom;
}
section.locations .card h4 {
    font-family: 'Graphik Regular', sans-serif;
    color: var(--gold);
    text-transform: uppercase;
    font-size: clamp(0.75em, 1vw, 1em);
    letter-spacing: 0.08em;
    font-weight: 600;
    margin: 0 0 25px;
}

/* Photo Stripe */
section.photo {
    aspect-ratio: 16 / 5;
    box-shadow: inset 0 10px 50px rgba(0,0,0,0.2);
}
section.photo .parallax-background img{
    height: 110%;
}

/* Resources */
section.resources {
    background: var(--blue);
    padding: 50px 0 25px;
}

span.eyebrow {
    font-family: 'Graphik Regular', sans-serif;
    color: var(--gold);
    text-transform: uppercase;
    font-size: 0.9em;
    line-height: 1.2em;
    letter-spacing: 0.08em;
    font-weight: 600;
    margin: 0 0 15px;
    display: block;
    text-wrap: balance;
}
span.eyebrow i {
    color: var(--gold);
    margin: 0 2px;
}
span.eyebrow a {
    color: var(--gold);
    border-bottom: 1px solid;
}
span.eyebrow a:hover {
    color: var(--black);
}
section.resources h3 {
    font-size: clamp(2.5rem, 5vw, 5rem);
    color: var(--white);
    margin: 0 0 25px;
    width: 80%;
}

/* Resources Tabs */
.resource-panel { display: none; }
.resource-panel.is-active { display: block; }

.resources-listing {
    margin: 50px auto 0;
}
.resource-tabs.flex { gap: 2vw;}
.resource-tabs button {
    all: unset;
    cursor: pointer;
    padding: 15px 30px;
    font-size: 0.9em;
    line-height: 1.2em;
    background-color: none;
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-weight: 600;
    color: #8ea4b5;
    transition: all 0.25s ease-in-out;
    text-align: center;
    display: flex;
    align-items: center;
    gap: 10px;
    border-radius: 50px;
    justify-content: center;
}
.resource-tabs button.is-active {
    background-color: #002a4c;
    border-color: #002a4c;
    color: var(--white);
}

.resource-panel {
    margin: 50px auto 100px;
    min-height: 250px;
}
.resource-item {
    background-color: var(--white);
    border-radius: 8px;
}
.resource-item strong {
    font-size: 1em;
    line-height: 1.25em;
    text-wrap: balance;
    font-weight: 600;
    display: block;
    margin: 0 0 5px;
}
.resource-item a { color: inherit;}
.resource-item a:hover { color: var(--gold);}
.resource-item .address { 
    opacity: 0.6;
    font-size: clamp(0.75em, 1vw, 1em);
}
.resource-item .card-content {
    padding: 20px 30px;
    flex-direction: row;
    justify-content: space-between;
    align-items: initial;
    gap: 25px;
    min-height: 100px;
}
.resource-item .card-content>* { flex: initial;}
.resource-item .card-content .directions-link {
    color: var(--gray);
    font-size: 1.35em;
}
.resource-item .card-content .directions-link:hover {
    color: var(--blue);
}


/* =Speakers
-------------------------------------------------------------- */
/* Light Text Header */
header.text-header.light {
    padding: 80px 0;
}
header.text-header.light.sponsors-header {
    padding-bottom: 0;
}
header.text-header.light h1.xl-title {
    color: var(--black);
}

/* Speaker Listing */
.disclaimer.small-text {
    font-size: 0.8em;
    font-style: italic;
    opacity: 0.35;
    margin: 0 0 25px;
    text-align: right;
}

/* Speaker Grid */
article.speaker-grid .grid-image {
    aspect-ratio: 5 / 6;
    border-radius: 8px;
    overflow: hidden;
}

article.speaker-grid .grid-content {
    padding: 10px 0 25px;
}
article.speaker-grid .grid-content h4 {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.25em, 1vw, 1.75em);
    text-transform: capitalize;
    font-weight: 600;
    margin: 8px 0;
}
article.speaker-grid .grid-content .small-text {
    font-size: clamp(0.8em, 1vw, 0.9em);
    text-wrap: balance;
    opacity: 0.8;
}

/* Owl Nav Circle Arrows */
.owl-nav {
    display: flex;
    align-items: center;
    gap: 10px;
}
.owl-nav .owl-prev,
.owl-nav .owl-next {
    background-color: #F5F6F7;
    border-color: #dfdfdf;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.25s ease-in-out;
}
.owl-nav .owl-prev:hover,
.owl-nav .owl-next:hover {
    background-color: var(--blue);
    border-color: var(--blue);
    color: var(--white);
}
.owl-nav .view-all {
    margin-left: auto;
}

/* Speaker Details */
header.speaker-header .flex {
    gap: 5vw;
    align-items: center;
}
header.light.speaker-header h1.xl-title {
    margin: 25px auto;
    width: 80%;
    color: var(--black);
}
header.speaker-header .position,
header.speaker-header .company {
    font-family: 'Graphik Regular', sans-serif;
    font-weight: 500;
    font-size: clamp(1em, 2vw, 1.25em);
    text-transform: uppercase;
}
header.speaker-header .company {
    color: var(--gold);
    font-weight: 600;
    margin-top: 5px;
}

section.speaker-content {
    background: linear-gradient(to top, #f5f6f7 0%, var(--white) 30%);    
    padding-bottom: 50px;
}
section.speaker-content .speaker-image {
    float: right;
    width: calc(200px + 10vw);
    height: auto;
    overflow: hidden;
    margin: 5px -5vw 3vw 3vw;
}

/* Related Sesssions */
section.related-sessions {
    background-color: #F5F6F7;
    padding: 50px 0;
}
section.related-sessions h4.view-more {
    font-family: 'Graphik Regular', sans-serif;
    font-weight: normal;
    color: #999999;
    font-size: 0.9em;
    letter-spacing: 0.1em;
    text-align: center;
    margin: 0 auto 25px;
    display: block;
}

section.related-sessions article.sessions-list .session-image {
    max-width: 200px;
}
section.related-sessions .session-date span.date {
    color: var(--blue);
    font-family: 'Graphik Regular', sans-serif;
    font-weight: 600;
}
section.related-sessions .session-date span.time {
    color: var(--black);
    font-weight: normal;
}


/* View All Buttons */
section.view-all {
    background-color: #F5F6F7;
    padding: 25px 0 50px;
}
section.view-all .cta-buttons.flex {
    align-items: center;
    justify-content: center;
}
section.view-all .cta-buttons.flex>* {
    flex: inherit;
    min-width: 250px;
}

/* Footer Gray */
body.single-speaker footer.site-footer {
    background-color: #F5F6F7;
}


/* =About
-------------------------------------------------------------- */

header.page-header.stacked {
    padding-bottom: 30dvw;
}
header.page-header.stacked h1 {
    margin-bottom: 25px;
}
section.media-stacked {
    background-color: var(--blue);
    padding: 100px 0 50px;
}
section.media-stacked .container {
    margin-top: -30dvw;
    box-shadow:
        0 1px 0 rgba(0,0,0,0.1),
        0 10px 24px rgba(0,0,0,0.2);
}

/* Features */
section.about-features {
    background-color: var(--blue);
    color: var(--white);
    padding: 25px 0 50px;
}
section.about-features .section-title {
    padding: 50px 0;
    border-top: 1px solid rgba(0,0,0,0.2);
}
section.about-features h3 {
    font-size: clamp(2rem, 5vw, 4.5rem);
    color: var(--white);
    width: 80%;
}
section.about-features .text-content {
    margin: 15px 0;
    opacity: 0.8;
}

.card.feature {
    border-radius: 0;
    background: transparent;
}
.card.feature .card-image {
    border-radius: 8px;
    aspect-ratio: 3 / 2;
    box-shadow:
        0 1px 0 rgba(0,0,0,0.1),
        0 10px 24px rgba(0,0,0,0.2);
}
.card.feature .card-content {
    padding: 15px 0;
}
.card.feature h4 {
    color: var(--gold);
    font-size: clamp(1.5em, 2vw, 1.5em);
    letter-spacing: 0em;
    margin: 5px 0 10px;
}
.card.feature .description {
    opacity: 0.8;
}


/* Textarea */
section.textarea {
    padding: 50px 0;
}
section.textarea h3 {
    margin: 0 0 25px;
}
section.textarea.left .text-content {
    margin: 0;
}
section.textarea.center {
    text-align: center;
    justify-content: center;
}

/* 50/50 */
.textarea.fifty{
    padding: 100px 0;
}
.textarea.fifty .container.flex{
    gap: 100px;
    align-items: center;
}
.textarea.fifty .fifty-image,
.textarea.fifty .fifty-content {
    flex: 1 1 0;
    min-width: 0;
}
.textarea.fifty .fifty-image-container{
    width: 100%;
    position: relative;
}
.textarea.fifty .fifty-image img {
    width: 100%;
    height: auto;
    display: block;
}
.textarea.fifty.right .container.flex{
    flex-direction: row-reverse;
}
.textarea.fifty .fifty-content .cta-buttons {
    margin-top: 50px;
}

/* Entry Content */
.entry-content a {
    color: inherit;
    text-decoration: underline;
}
.entry-content a:hover,
.entry-content a:focus {
    color: var(--gold);
}


/* =Schedule
-------------------------------------------------------------- */
body.page-template-page-schedule {
    background-color: var(--blue);
    color: var(--white);
}
body.page-template-page-schedule header#masthead {
    position: relative;
}
body.single-session .student-login a,
body.page-template-page-schedule .student-login a {
    color: var(--white);
    background-color: var(--darkblue);
    border-color: var(--darkblue);
}
body.single-session .student-login a:hover,
body.single-session .student-login a:focus,
body.page-template-page-schedule .student-login a:hover,
body.page-template-page-schedule .student-login a:focus {
    color: var(--black);
    background-color: var(--gold);
    border-color: var(--gold);
}

/* Text Header */
header.text-header {
    padding: 95px 0 0;
    text-align: center;
}
header.text-header h1.xl-title {
    color: var(--white);
    width: 80%;
    margin: 0 auto 50px;
}

.schedule-toggle {
    position: relative;
    max-width: 420px;
    text-align: center;
    margin: 0 auto 50px;
}
.schedule-toggle-label {
    display: block;
    font-family: 'Graphik Regular', sans-serif;
    font-size: 0.8em;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.7;
    margin: 0 0 15px 0;
}
.schedule-day-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: 100%;
    display: block;
    padding: 15px 30px 15px;
    font-size: 1em;
    line-height: 1.2em;
    border-radius: 8px;
    color: var(--black);
    background: var(--white);
    border: 1px solid rgba(0,0,0,0.1);
    box-shadow:
        0 1px 0 rgba(0,0,0,0.03),
        0 10px 24px rgba(0,0,0,0.06);
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}
.schedule-day-select:hover {
    background: var(--white);
}
.schedule-day-select:focus {
    outline: none;
    background: var(--white);
}
.schedule-toggle::after {
    content: "\f078";
    font: var(--fa-font-solid);
    color: var(--black);
    font-size: 0.9em;
    position: absolute;
    right: 25px;
    top: 50px;
    pointer-events: none;
}

.schedule-day-select:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.schedule-day-select::-ms-expand {
    display: none;
}

/* Session Listing */
.schedule-days {
    overflow: hidden;
    position: relative;
}
article.sessions-list {
    color: var(--black);
    padding: 30px;
    border-radius: 8px;
    background-color: var(--white);
    box-shadow: 0 1px 0 rgba(0,0,0,0.05),0 6px 12px rgba(0,0,0,0.05);
    text-wrap: balance;
    margin: 0 auto 10px;
    display: flex;
    gap: 50px; 
}
article.sessions-list .session-title { flex: 2; }
article.sessions-list .location i { color: var(--gold);}

.session-date {
    width: 100%;
    max-width: 225px;
}
.session-date span.time {
    font-family: 'Graphik Regular', sans-serif;
    text-transform: uppercase;
    font-size: clamp(0.85em, 1vw, 1em);
    letter-spacing: 0.04em;
    font-weight: 600;
    display: block;
}
.session-date .cat {
    margin: 25px 0 0;
}
.session-date .cat span.eyebrow {
    font-size: 0.75em;
    line-height: 0.8em;
    background-color: var(--gold);
    color: var(--white);
    padding: 10px 20px 9px;
    border-radius: 50px;
    display: table;
    margin: 0;
}
article.category-roundtable .session-date .cat span.eyebrow {
    background-color: var(--gray);
    color: #2e2e2e;
}
article.sessions-list h4 {
    font-size: clamp(1.5em, 1vw, 2em);
    color: var(--white);
    font-family: 'Inter', sans-serif;
    text-transform: capitalize;
    font-weight: 600;
    line-height: 1.25em;
    margin: 5px 0 10px;
}
article.sessions-list .session-image {
    aspect-ratio: 3 / 2;
    max-width: 250px;
    overflow: hidden;
    border-radius: 8px;
    border: 1px solid rgba(0,0,0,0.1);
}
article.sessions-list .location {
    margin: 10px 0;
}
article.sessions-list .description {
    width: 100%;
    max-width: 620px;
    margin: 10px 0 0;
    opacity: 0.7;
}

article.sessions-list .session-speakers .speaker-name {
    font-weight: 600;
    font-size: 0.9em;
    line-height: 1.2em;
    display: block;
}

/* Sessions Speakers */
ul.session-speakers {
    width: 100%;
    margin-top: 25px;
    align-items: initial;
    gap: 15px;
} 
ul.session-speakers li.session-speaker {
    gap: 10px;
    min-width: 120px;
}
ul.session-speakers li.session-speaker .speaker-image {
    border-radius: 50%;
    overflow: hidden;
    width: 40px;
    height: auto;
}

/* Simple */
article.simple {
    background: #002c4f;
    position: relative;
    overflow: hidden;
    min-height: 115px;
    display: flex;
    align-items: center;
}
article.simple .flex {
    position: relative;
    z-index: 9;
    width: 100%;
    gap: 50px;
}
article.simple .flex .date { 
    flex: 1;
    max-width: 250px;
}
article.simple .flex .session-title { flex: 3; }
article.simple span.time {
    color: var(--gold);
}
article.simple .location,
article.simple .description {
    color: var(--gray);
}
article.simple .location { margin-bottom: 15px; color: var(--white); }
article.simple .session-bg {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 5;
    filter: saturate(0);
    mix-blend-mode: multiply;
    opacity: 0.35;
}

/* More Information */
section.more-info {
    padding: 100px 0 50px;
}
section.more-info .columns.flex { gap: 200px; }
section.more-info .columns.flex>* { flex: 1; }

section.more-info .column {
    text-wrap: balance;
    text-align: center;
}
section.more-info h4 {
    color: var(--gold);
    font-weight: 600;
    margin: 0 0 15px;
}

/* Schedule Detail Page */
body.single-session header#masthead {
    background-color: var(--blue);
    position: relative;
}
header.text-header.session {
    background-color: var(--blue);
    color: var(--gray);
}
header.text-header.session a:hover {
    color: var(--white);
}
header.text-header.session h1 {
    color: var(--white);
    margin: 0 auto 25px;
}
header.text-header.session .session-time {
    color: var(--white);
    font-family: 'Graphik Regular', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 1.2em;
    margin: 15px 0 10px;
}
header.text-header.session .location i { color: var(--gold);}

/* Session Content */
section.session-content {
    background-color: var(--blue);
    padding: 50px 0;
}
section.session-content .container {
    width: 90vw;
    max-width: 960px;
    background-color: var(--white);
    border-radius: 12px;
    box-shadow: 0 1px 0 rgba(0,0,0,0.05),0 6px 12px rgba(0,0,0,0.05);
    overflow: hidden;
}
section.session-content .card-image {
    aspect-ratio: 5 / 2;
    overflow: hidden;
}
section.session-content .card-content {
    padding: 30px;
}

/* Session Speakers */
.session-speakers-list {
    margin: 30px 0 0;
    padding: 30px 0 0;
    border-top: 1px solid rgba(0,0,0,0.1);
}
.session-speakers-list .presenting {
    font-family: 'Graphik Regular', sans-serif;
    text-transform: uppercase;
    display: block;
    font-size: 0.8em;
    letter-spacing: 0.08em;
    margin: 0 0 25px;
    opacity: 0.5;
}
.session-speakers-list .speaker.flex {
    align-items: center;
    gap: 15px;
}
.session-speakers-list .speaker.flex>* {
    flex: initial;
}
.session-speakers-list .speaker .speaker-image {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    overflow: hidden;
}
.session-speakers-list .speaker .speaker-name {
    font-weight: 600;
}
.session-speakers-list .speaker .company {
    font-size: 0.8em;
    opacity: 0.5;
}

/* Session View All */
section.view-all.session {
    background: var(--blue);
    padding: 0 0 100px;
}
section.view-all.session a.large-cta {
    color: var(--white);
    border-color: rgba(255,255,255,0.15);
}
section.view-all.session a.large-cta:hover,
section.view-all.session a.large-cta:focus {
    color: var(--black);
    background-color: var(--gold);
    border-color: var(--gold);
}



/* =Sponsors
-------------------------------------------------------------- */
section.sponsors {
    padding: 25px 0 50px;
}
section.sponsors .sponsors-title {
    padding: 25px 0 50px;
    text-align: center;
}
section.sponsors .sponsors-title h4 {
    font-family: 'Graphik Regular', sans-serif;
    font-weight: normal;
    color: #999999;
    font-size: clamp(0.8em, 1vw, 0.9em);
    letter-spacing: 0.1em;
    text-align: center;
}
section.sponsors.with-logos .flex {
    justify-content: center;
    gap: 100px;
}
section.sponsors.with-logos .flex>* {
    flex: initial;
}
section.sponsors.with-logos .sponsor-item img {
    width: auto;
    max-height: 40px;
    max-width: 120px;
}
section.sponsors .sponsors-main { margin-bottom: 50px; }
section.sponsors .sponsors-main .sponsor-item img {
    width: auto;
    max-height: 55px;
    max-width: 235px;
}

/* Sponsors (Text) */
section.sponsors.text .additional-sponsors {
    padding: 0 0 100px;
}
section.sponsors.text ul li {
    font-family: 'Graphik Regular', sans-serif;
    font-size: clamp(0.9em, 3vw, 1.5em);
    line-height: 1.25em;
    font-weight: 600;
    text-wrap: balance;
}

body.page-template-page-sponsors footer.site-footer section.sponsors { display: none; }

/* Footer */
footer.site-footer section.sponsors .sponsors-title h4 {
    margin: 25px auto;
}
footer.site-footer section.sponsors .sponsors-main { margin-bottom: 50px;}


/* =Footer
-------------------------------------------------------------- */
footer.site-footer {
    padding: 25px 0;
}
footer.site-footer .container {
    padding: 25px 0;
    border-top: 1px solid #e6e6e6;
}
footer.site-footer .socials {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
}
footer.site-footer .socials a {
    color: var(--black);
    font-size: 1.35em;
}
footer.site-footer .socials a:hover {
    color: var(--blue);
}
footer.site-footer .copyright {
    color: #5f5f5f;
    font-size: clamp(0.7em, 1vw, 0.75em);
    line-height: 1.5em;
}


/* Overwrites */
body.page-template-page-location footer.site-footer,
body.single-session footer.site-footer {
    background: var(--blue);
}
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
footer.site-footer .container {
    border-top: 1px solid rgba(255, 255, 255, 0.106);
}
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
footer.site-footer .copyright {
    color: #bfc9d1;
} 
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
footer.site-footer .socials a {
    color: var(--gold);
}
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
footer.site-footer .socials a:hover {
    color: var(--white);
}
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
section.sponsors h4 {
    color: #8696a4;
}
body:is(.page-template-page-schedule, .page-template-page-location, .single-session) 
section.sponsors img {
    filter: invert(1);
}


/* =Mobile 
-------------------------------------------------------------- */
@media (max-width: 1024px) {
    /* Schedule */
    section.more-info .columns.flex { gap: 10vw; }
    
    /* Footer */
    section.sponsors.with-logos .flex { gap: 50px; }
}

@media (max-width: 800px) {
    header#masthead { z-index: 99;}
    header#masthead .container {
        display: flex;
        padding: 15px 0;
        align-items: center;
    }
    header#masthead .container .site-branding { order: 1; flex: 2; }
    header#masthead .container .student-login { order: 2; }
    header#masthead .container nav.main-navigation { order: 3; }

    header#masthead .site-branding img { max-width: 140px;}

    /* Student Login */
    header#masthead .student-login {
        border-right: 1px solid rgba(255,255,255,0.2);
        padding: 2px 5vw;
        margin-right: 5vw;
    }
    header#masthead .student-login a {
        position: relative;
        color: transparent;
        font-size: 0;
        line-height: 0;
        background-color: transparent !important;
        border: none !important;
        padding: 0;
    }
    header#masthead .student-login a:after {
        content: "\f007";
        color: var(--white);
        font: var(--fa-font-light);
        font-size: 1.5rem;
        line-height: 1;
        display: inline-block;
        transition: color 0.25s ease-in-out;
    }
    header#masthead .student-login a:hover:after {
        color: var(--gold);
    }
    header#masthead.light .student-login {
        border-color: var(--black);
    }
    header#masthead.light .student-login a:after {
        color: var(--black);
    }
    header#masthead.light .student-login a:hover:after {
        color: var(--gold);
    }

    /* Mobile Navigation */
    nav.main-navigation .menu-toggle span {  background: var(--white);}
    nav.main-navigation.toggled .menu-toggle span {  background: var(--gold);}
    header#masthead.light nav.main-navigation .menu-toggle span {  background: var(--black);}
    header#masthead.light nav.main-navigation.toggled .menu-toggle span {  background: var(--gold);}


    nav.main-navigation.toggled .menu-main-navigation-container {
        overscroll-behavior: contain;
    }
    nav.main-navigation {
        position: relative;
        z-index: 9999;
    }
    nav.main-navigation.toggled .menu-toggle {
        position: fixed;
        top: 32px;
        right: 3.5vw;
        z-index: 10001;
    }
    nav.main-navigation .menu-main-navigation-container {
        position: fixed;
        z-index: 10000;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        padding: 20dvh 7vw;
        background: rgba(0,0,0,0.8);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        overflow-y: auto;
        transform: translateY(-12px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 220ms ease,transform 220ms ease,visibility 0s linear 220ms;
    }
    nav.main-navigation.toggled .menu-main-navigation-container {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity 220ms ease,transform 220ms ease,visibility 0s linear 0s;
    }
    nav.main-navigation .nav-menu {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        align-items: inherit;
        flex-direction: column;
        gap: 25px;
    }
    nav.main-navigation .nav-menu a {
        display: block;
        color: var(--white) !important;
        font-family: 'Graphik Bold', sans-serif;
        font-size: clamp(2em, 4.6vw, 2.5em);
        line-height: 1em;
        letter-spacing: -0.01em;
        text-decoration: none;
    }
    nav.main-navigation .nav-menu a:hover,
    nav.main-navigation .nav-menu a:focus-visible {
        color: var(--gold) !important;
        outline: none;
    }
    nav.main-navigation .nav-menu li.current-menu-item a,
    nav.main-navigation .nav-menu li.current_page_item a {
        color: var(--gold) !important;
    }
    
    /* Page Hero */ 
    header.overlay {
        padding: 40dvh 0 25px;
        min-height: auto;
    }
    header.page-header .presenting-sponsors { gap: 10vw; }
    header.page-header .presenting-sponsors img {
        max-width: 110px;
        max-height: 30px;
    }


    /* Countdown */
    .countdown-bottom .container.flex {
        display: flex;
        flex-direction: column-reverse;
        text-align: center;
        margin: 0 auto;
    }
    .countdown-timer .count-title { letter-spacing: 0; margin: 50px auto 25px; }
    .countdown-timer .timer { gap: 8vw; justify-content: center; }
    .countdown-timer .timer>* { flex: inherit; }
    .countdown-timer .number { min-width: auto; }


    /* Home */
    section.textarea.homepage-about { padding: 50px 0 0; }
    section.textarea.fifty .container.flex,
    section.textarea.fifty.right .container.flex { gap: 30px; flex-direction: column; }
    section.homepage-about .fifty-image-container img.overlay {display: none;}
    section.homepage-about .fifty-image-container, 
    section.homepage-about .fifty-image-container img.thumbnail {
        height: 100%;
    }
    section.homepage-about .fifty-image-container {
        display: block;
        padding: 0;
        width: 100%;
        position: relative;
        aspect-ratio: 3 / 2;
        overflow: hidden;
        border-radius: 8px;
        background: #000;
    }
    header.overlay h1,
    section.resources h3,
    header.text-header h1.xl-title,
    header.light.speaker-header h1.xl-title,
    section.featured.speakers .section-title h3 { width: 100%;}
    
    header.page-header { padding-top: 150px; }
    header.page-header.overlay { padding-top: 40dvh; }
    header.page-header.locations { padding-bottom: 200px; }
    header.text-header h1.xl-title { margin-bottom: 25px;}
    header.text-header.light { padding: 75px 0 50px; }

    /* About */
    header.page-header.stacked {
        padding-bottom: 50px;
    }
    section.media-stacked {
        padding: 0;
    }
    section.media-stacked .container {
        margin: 0;
        width: 100%;
        box-shadow: none;
    }
    section.about-features .section-title {
        border-top: 0;
        padding-top: 25px;
    }

    /* Schedule */
    article.sessions-list { padding: 25px; }
    article.sessions-list,
    article.sessions-list.simple .flex {
        flex-direction: column;
        min-height: auto;
        gap: 0;
        text-wrap: inherit;
    }
    article.sessions-list .session-title { flex: inherit; }

    /* Speaker */
    section.speaker-content .speaker-image {
        width: 100%;
        float: none;
        max-width: auto;
        margin: 0 auto 25px;
        border-radius: 8px;
    }
    
    /* Locations */
    .card .card-content { padding: 25px; }

    /* Schedule - Category */
    .session-date  {
        max-width: 100%;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        margin-bottom: 25px;
    }
    .session-date .cat { margin: 0; }
    .session-date .cat span.eyebrow {
        background: none !important;
        color: var(--gold) !important;
        padding: 5px 0;
    }
    .session-date .date {
        flex: 1 0 100%;
        width: 100%;
        margin-bottom: 5px;
        text-transform: uppercase;
        font-size: 0.9em;
        letter-spacing: 0.06em;
    }
    article.sessions-list .location { font-size: 0.9em;}

    /* Schedule - Image */
    article.sessions-list.featured-image {
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        gap: 0 !important;
        flex-direction: column;
        overflow: hidden;
    }
    article.sessions-list.featured-image .session-image {
        order: 1;
        border: none;
        border-radius: 0;
        height: auto;
        aspect-ratio: 16 / 9;
        max-width: 100%;
    }
    article.sessions-list.featured-image .session-date { order: 2; padding: 25px 25px 0; }
    article.sessions-list.featured-image .session-title { order: 3; padding: 0 25px 25px; }

    /* Location */
    section.photo { aspect-ratio: 3 / 2; }

    /* Sponsors */
    section.sponsors.with-logos .sponsor-item img { width: 100%; height: auto; max-width: 90px; max-height: inherit; }

    section.sponsors .sponsors-title { padding: 0 0 25px; }
    section.sponsors .sponsors-main { margin-bottom: 0;}


    /* Footer */
    footer.site-footer {
        padding: 25px 0 0;
    }
    footer.site-footer .container.flex {
        flex-direction: column-reverse;
        justify-content: center;
        align-items: center;
        text-align: center;
        gap: 15px;
    }
}

@media (max-width: 540px) {
    h1, h2, h3, h4 { line-height: 1em;}

    a.large-cta, .large-cta {
        width: 100%;
        font-size: 0.9em;
        padding: 18px;
    }

    /* Schedule */
    section.more-info { padding: 50px 0 50px;}
    section.more-info .columns.flex { gap: 50px; flex-direction: column; }
    section.more-info .column { text-align: left;}

    /* Location */
    .resource-locations.flex.overflow.four { flex-direction: column; gap: 15px; }
    .resource-locations.flex.overflow.four>* { flex: 1 0 100%; max-width: 100%;}
    .card .card-image { aspect-ratio: 16 / 9; }
    .resource-item .card-content {  min-height: auto; }
    .resource-item strong { font-size: 1.1em; line-height: 1.2em; }
    .resource-item .card-content .directions-link { font-size: 1.5em;}

    /* Sponsors */
    section.sponsors.with-logos .sponsor-item img { width: 100%; height: auto; max-width: 18vw; max-height: inherit; }

    /* Footer */
    footer.site-footer .copyright br { display: none;}
}



