/*!
Theme Name: Divi-Child
Template: Divi
Theme URI: http://www.elegantthemes.com/gallery/divi/
Version: 1.0.0
Description: Smart. Flexible. Beautiful. Divi is the most powerful theme in our collection.
Author: Elegant Themes
Author URI: http://www.elegantthemes.com
Tags: responsive-layout, one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-background, custom-colors, featured-images, full-width-template, post-formats, rtl-language-support, theme-options, threaded-comments, translation-ready
License: GNU General Public License v2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
    --body-font: 'Plus Jakarta Sans',Helvetica,Arial,Lucida,sans-serif;
    --heading-font: 'Poppins',Helvetica,Arial,Lucida,sans-serif;
    --menu-mid-width: 30vw;
    --menu-width: clamp(250px, var(--menu-mid-width), 360px);
    --primary-accent: #4a3048;
    --primary-accent-darker: #c44708;
    --secondary-accent: #ce5f28;
    --button-transition: 0.25s ease;
}

/**
 * Divi resets
 */
 .et_pb_slide_description {
    text-shadow: none !important;
}

h1 {
    padding: 0;
}

p {
    padding: 0;
    margin: 0 0 20px 0;
}

p:last-child {
    margin: 0;
}

a {
    text-decoration: underline;
    color: #256e79;
}

a:focus,
a:hover {
    text-decoration: underline;
}

/**
 * Common
 */
a,
button {
    transition: var(--button-transition);
}

html,
body {
    color: var(--primary-accent);
    font-family: var(--body-font);
}

.et_builder_inner_content {
    z-index: 2;
}

.et_pb_section {
    background-color: transparent;
}

.center {
    text-align: center;
}

.heading-font {
    font-family: var(--heading-font);
}

.body-font {
    font-family: var(--body-font);
}

.et_pb_row.center-vertically {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.et_pb_row.flex-end {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}

#page-container {
    margin-left: var(--menu-width);
    overflow: hidden;
    position: relative;
}

#main-content {
    position: relative;
    z-index: 2;
}

#header {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--menu-width);
    background: #f9f5f0;
    z-index: 10;
    overflow: hidden;
}

#header > div {
    width: 100%;
    height: 100%;
    overflow-y: scroll;
    padding: 50px 40px;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

#header > div::-webkit-scrollbar { 
    display: none;
}

#header .logo img {
    display: block;
    margin: 0 0 70px 0;
}

/* Slide version */
#header nav {
    --level: 0;
    --speed: 0s;
    font-size: 21px;
    line-height: 32px;
    font-weight: 700;
    margin: 0 -40px;
    padding: 0 40px;
    position: relative;
    overflow: hidden;
}

#header nav a,
#header nav button.back,
#header nav button.toggle {
    color: var(--primary-accent);
    text-decoration: none;
    padding: 0;
    margin: 0;
    display: inline-block;
    text-align: left;
    cursor: pointer;
    border: none;
    background: none;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    position: relative;
}

#header nav a:hover,
#header nav a:focus,
#header nav button.back:hover,
#header nav button.back:focus,
#header nav button.toggle:hover,
#header nav button.toggle:focus {
    text-decoration: underline;
    color: var(--primary-accent-darker);
}

#header nav > ul > li.menu-item-has-children > a:after,
#header nav button.toggle:after {
    padding-right: 20px;
    font-family: 'ETmodules';
    content: "5";
    font-size: 32px;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top: -3px;
    margin: 0;
    padding: 0;
}

#header nav ul ul button.toggle {
    background: none;
    padding: 0;
}

#header nav ul ul button.toggle:after {
    font-size: 20px;
}

#header nav ul ul button.toggle[aria-expanded="true"]:after {
    transform: rotate(90deg);
}

#header nav button.back {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    border: none;
    font-family: inherit;
    font-size: 16px;
    font-weight: 900;
    line-height: inherit;
    color: var(--primary-accent);
    text-align: inherit;
    text-transform: uppercase;
    display: inline-block;
}

#header nav button.back:before {
    font-family: 'ETmodules';
    content: "4";
    display: inline-block;
    vertical-align: middle;
    position: relative;
    top: -3px;
    margin-right: 3px;
}

#header nav li {
    margin: 0 0 10px 0;
}

#header nav li.donate {
    margin: 50px 0 0 0;
}

#header nav > ul {
    position: relative;
    left: calc(var(--menu-width) * var(--level) * -1);
    transition: 0.15s ease-out;
    transition-duration: var(--speed);
}

#header nav > ul > li > ul {
    position: absolute;
    left: var(--menu-width);
    width: 100%;
    top: 0;
    padding: 0;
    margin: 0;
    line-height: 25px;
}

#header nav > ul > li > a {
    line-height: 32px;
}

#header nav > ul > li > ul > li > ul {
    margin: 0;
    padding: 5px 0 0 20px;
    font-size: 14px;
    font-weight: normal;
}

#header nav > ul > li > ul > li > ul > li {
    margin: 0 0 5px 0;
}

#header nav button.toggle + ul {
    display: none;
}

#header nav button.toggle[aria-expanded="true"] + ul {
    display: block;
}

#header nav ul ul ul li {
    margin: 0 0 5px 0;
}

#header nav ul ul a {
    text-decoration-thickness: 2px;
}

#header nav ul ul ul a {
    font-weight: 500;
}

#header nav .section-title {
    font-size: 21px;
    font-weight: 900;
    color: #4a3048;
    margin: 0 0 15px 0;
}

#header nav button.toggle[aria-expanded="true"]:after {
    transform: rotate(90deg);
}

#header nav button.toggle[aria-expanded="true"] + ul {
    display: block;
}

#header nav > ul ul {
    display: none;
    padding: 10px 0 0 20px;
    font-size: 16px;
}

#header nav li.current-menu-item > a {
    color: var(--primary-accent-darker);
    position: relative;
}

/* Tweaks for non-slide */
#header nav > ul > li.current-menu-item > ul,
#header nav > ul > li.current-menu-ancestor > ul,
#header nav > ul > li > ul > li.current-menu-item > ul,
#header nav > ul > li > ul > li.current-menu-ancestor > ul {
    display: block;
}

/* Non-slide version */
/*
#header nav {
    font-size: 21px;
    line-height: 25px;
    font-weight: 700;
    position: relative;
}

#header nav a,
#header nav button.toggle {
    color: var(--primary-accent);
    text-underline-offset: 3px;
    text-decoration: underline;    
    text-decoration-thickness: 3px;
    text-decoration-color: transparent;
    padding: 0;
    margin: 0;
    display: inline-block;
    text-align: left;
    cursor: pointer;
    border: none;
    background: none;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    position: relative;
}

#header nav a:focus,
#header nav a:hover,
#header nav button.toggle:focus,
#header nav button.toggle:hover {
    text-decoration-color: var(--primary-accent);
}

#header nav button.toggle {
    padding-right: 20px;
    background: url(images/chevron-right.svg) no-repeat right center;
    background-size: 10px auto;
}

#header nav button.toggle[aria-expanded="true"] {
    background-image: url(images/chevron-up.svg);
    background-size: 17px auto;
}
*/

/*
#header nav > ul > li.menu-item-has-children > a:after,
#header nav button.toggle:after {
    display: inline-block;
    content: '';
    width: 10px;
    height: 20px;
    background: url(images/chevron-right.svg) no-repeat right center;
    background-size: 10px auto;
    margin-left: 7px;
    vertical-align: middle;
    position: relative;
    top: -2px;
}
*/

#header .donate {
    margin: 40px 0 100px 0;
}

#header .search {
    border-bottom: solid 1px #e7e1df;
    display: flex;
    align-items: center;
    position: relative;
    color: var(--primary-accent);
    font-size: 21px;
    line-height: 25px;   
    padding: 0 0 5px 0; 
    font-weight: bold;
}

#header .search input {
    border: none;
    background: none;
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 25px;
    color: var(--primary-accent);
    padding: 0;
    width: calc(100% - 40px);
    display: block;
    position: relative;
}

#header .search button {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    text-align: inherit;
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: solid 1px transparent;
    border-radius: 50%;
}

#header .search button:focus,
#header .search button:hover {
    border-color: var(--primary-accent);
}

#header .search button svg {
    width: 18px;
    height: auto;
}

#footer-container {
    background: var(--primary-accent);
    container-type: inline-size;
    container-name: footer;
    position: relative;
    z-index: 1;
}

body.page-template-template-circles:not(.page-id-49090) .et_pb_section_0:before {
	content: '';
	display: block;
	position: absolute;
	right: 0;
	top: 240px;
	width: 257px;
	height: 719px;
	background: url(../png/bg-right-artistic-rings.png) no-repeat;
}

body.home #footer-container:before /* Home page */ {
    position: absolute;
    content: '';
    width: 253px;
    height: 507px;
    background: url(../jpg/bg-half-moon.jpg) no-repeat;
    top: -639px;
    left: 0;
}

body.page-id-49094 #footer-container:before /* About page */ {
    position: absolute;
    content: '';
    width: 214px;
    height: 437px;
    background: url(../png/bg-lower-left-rings.png) no-repeat;
    top: -567px;
    left: 0;
}

body.page-template-template-circles #et-main-area > .et-l,
body.single-tribe_events #et-main-area > div > .et-l {
    position: relative;
}

body.page-template-template-circles:not(.page-id-49647) #et-main-area > .et-l:before {
    position: absolute;
    content: '';
    width: 214px;
    height: 437px;
    background: url(../png/bg-lower-left-rings.png) no-repeat;
    top: calc(50% - 218px);
    left: 0;
}

body.page-template-template-circles #footer-container {
    margin-top: 194px;
}

body.page-template-template-circles #footer:before {
    position: absolute;
    content: '';
    width: 183px;
    height: 154px;
    background: url(../png/bg-event-cta-dots.png) no-repeat;
    top: -174px;
    right: 0;
}

#footer {
    color: #fff;
    font-size: 16px;
    line-height: 26px;
    padding: 70px 0 !important;
    margin: 0 auto;
    width: 80%;
    max-width: 1160px;
}

#footer h2 {
    font-weight: 900;
    color: #efe5da;
    text-transform: uppercase;
    margin: 0 0 20px 0;
    font-size: 16px;
    line-height: 20px;
    padding: 0;
}

#footer a {
    color: #fff;
    text-decoration: none;
}

#footer a:focus,
#footer a:hover {
    text-decoration: underline;
}

#footer .btn {
    border: solid 2px var(--secondary-accent);
}

#footer .privacy a {
    color: #dac3da;
    font-size: 13px;
}

#footer .upper {
    margin: 0 0 40px 0;
    display: flex;
    justify-content: space-between;
    gap: 40px;
}

#footer .upper > .left {
    width: 50%;
    max-width: 460px;
}

#footer .upper > .right {
    width: 50%;
    display: flex;
    flex-wrap: wrap;
}

#footer .upper > .right > div {
    width: 33.3333%;
    padding: 0 30px 0 0;
}

#footer .upper > .right ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    line-height: 20px;
}

#footer .upper > .right li + li {
    margin-top: 15px;
}

#footer .contact {
    margin: 40px 0 0 0;
}

#footer .contact > div {
    display: flex;
    gap: 20px;
    justify-content: space-between;
    flex-wrap: wrap;
}

#footer .contact h2 {
    margin: 0 0 5px 0;
}

#footer .social {
    margin-bottom: 50px;
}

#footer .social a:after {
    background: #fff;
}

#footer .social svg {
    height: 27px;
    width: auto;
}

#footer .social path {
    fill: #fff;
}

#footer .lower {
    font-size: 13px;
    line-height: 20px;
    color: #dac3da;
    display: flex;
    justify-content: space-between;
    gap: 40px;
    flex-wrap: wrap;
    align-items: center;
}

#footer .newsletter form {
    display: flex;
    gap: 10px;
    margin: 15px 0;
    position: relative;
    font-size: 16px;
    line-height: 20px;
}

#footer .newsletter form:before {
    position: absolute;
    content: '';    
    top: 13px;
    left: 25px;
    background: url(../svg/envelope.svg) no-repeat;
    background-size: 26px auto;
    width: 26px;
    height: 26px;
}

#footer .newsletter label {
    top: 15px;
    left: 70px;
    color: var(--primary-accent);
}

#footer .newsletter label.focused {
    top: 0;
    font-weight: bold;
}

#footer .newsletter input {
    padding: 15px 20px 15px 70px;
    background: #fff;
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 20px;
    color: var(--primary-accent);
    flex-grow: 1;
    border-radius: 30px;
    border: solid 2px transparent;
    width: 100%;
}

#footer .newsletter input:focus {
    border-color: var(--secondary-accent);
}

#footer .newsletter button {
    flex-grow: 0;
    white-space: nowrap;
}

@container footer (max-width: 1040px) {

    #footer .upper {
        flex-wrap: wrap;
    }

    #footer .upper > .left {
        width: 100%;
        max-width: 100%;
    }

    #footer .upper > .right {
        width: 100%;
    }

}

@container footer (max-width: 750px) {

    #footer .upper > .right > div {
        width: 100%;
        padding: 0;
    }

    #footer .upper > .right > div + div {
        margin-top: 40px;
    }

}

@container footer (max-width: 480px) {

    #footer .newsletter form {
        flex-wrap: wrap;
    }

    #footer .newsletter button {
        width: 100%;
    }

}

label.eyebrow {
    position: absolute;
    top: 0;
    left: 0;
    transition: 0.25s ease;
}

label.eyebrow.focused {
    top: -18px;
    font-size: 12px;
}

hr {
    height: 2px;
    background: #dbd6da;
    border: none;
    margin: 40px 0;
}

.underline-on-focus {
    text-decoration: none;
}

.underline-on-focus:focus,
.underline-on-focus:hover {
    text-decoration: underline;
}

.social {
    display: flex;
    gap: 20px;
    margin: 0;
    padding: 0 !important;
    list-style-type: none !important;
}

.social a {
    display: inline-block;
}

.social a:after {
    content: '';
    display: block;
    height: 2px;
    background: #4a3048;
    opacity: 0;
}

.social a:focus:after,
.social a:hover:after {
    opacity: 1;
}

.social svg {
    height: 27px;
    width: auto;
}

.social path {
    fill: #4a3048;
}

.btn,
.gform_button[type="submit"],
#calendar .btn,
#IATS_ProcessAction_Button {    
    font-size: 19px;
    line-height: 20px;
    border-radius: 30px;
    border: none;
    cursor: pointer;
    margin: 0;
    display: inline-block;
    padding: 15px 40px;
    background: var(--secondary-accent);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}

.btn:focus,
.btn:hover,
.gform_button[type="submit"]:focus,
.gform_button[type="submit"]:hover,
#calendar .btn:focus,
#calendar .btn:hover,
#IATS_ProcessAction_Button:focus,
#IATS_ProcessAction_Button:hover {
    background: var(--primary-accent);
    text-decoration: none;
}

.btn.arrow:after {
    content: '';
    margin-left: 10px;
    background: url(../svg/arrow-right-white.svg) no-repeat;
    background-size: contain;
    display: inline-block;
    width: 16px;
    height: 14px;
    vertical-align: middle;
}

.btn.back-arrow:before {
    content: '';
    margin-right: 10px;
    background: url(../svg/arrow-right-white.svg) no-repeat;
    background-size: contain;
    display: inline-block;
    width: 16px;
    height: 14px;
    transform: rotate(180deg);
}

.btn.accent {
    background: var(--primary-accent);
    color: #fff;
}

.btn.accent:focus,
.btn.accent:hover {
    background: var(--secondary-accent);
}

#calendar .btn {
    min-width: 140px;
    text-align: center;
    padding: 10px 15px;
}

.read-more {
    text-decoration: none;
}

.read-more:after {
    content: '';
    margin-left: 5px;
    background: url(../svg/arrow-right-plum.svg) no-repeat;
    background-size: contain;
    display: inline-block;
    width: 16px;
    height: 14px;
    vertical-align: middle;
}

.read-more:focus,
.read-more:hover {
    text-decoration: underline;
}

.read-more.peach {
    color: #e89e6c;
}

.read-more.peach:after {
    background-image: url(../svg/arrow-right-peach.svg);
}

.pluses-left {
    background: url(../png/pluses.png) no-repeat left center;
}

.featured-card-wrapper {
    position: relative;
    padding: 0 !important;
}

.featured-card-wrapper:before {
    content: '';
    display: block;
    position: absolute;
    left: -35px;
    bottom: -30px;
    width: 68px;
    height: 143px;
    background: url(../svg/petal-teal.svg) no-repeat;
    background-size: contain;
}

.featured-card-wrapper > div {
    width: 100%;
}

.featured-card .read-more {
    font-weight: bold;
}

.home-upper-tiles {
    position: relative;
    z-index: 1;
}

.home-upper-tiles:before {
    content: '';
    display: block;
    position: absolute;
    right: -100px;
    top: 220px;
    width: 217px;
    height: 217px;
    background: url(../jpg/bg-orange-field.jpg) no-repeat;
    background-size: contain;
}

.home-upper-tiles:after {
    content: '';
    display: block;
    position: absolute;
    right: -234px;
    bottom: -194px;
    width: 440px;
    height: 440px;
    background: url(../svg/target-rings.svg) no-repeat;
    background-size: contain;
    z-index: -1;
    opacity: 0.15;
}

.home-middle-tiles {
    position: relative;
    z-index: 1;
}

.home-middle-tiles:before {
    content: '';
    display: block;
    position: absolute;
    left: -56px;
    top: -160px;
    width: 255px;
    height: 249px;
    background: url(../svg/four-circle-shapes.svg) no-repeat;
    background-size: contain;
}

.home-lower-tiles .tile:nth-child(2):before {
    content: '';
    display: block;
    position: absolute;
    right: -55px;
    bottom: -24px;
    width: 119px;
    height: 60px;
    background: url(../svg/half-circle-dome-teal.svg) no-repeat;
    background-size: contain;
    z-index: -1;
}

.find-event-callout {
    background: url(../png/bg-event-cta-dots.png) no-repeat calc(100% - 40px) bottom;
}

#menu-toggle {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    border: none;
    position: absolute;
    top: 17px;
    right: 40px;
    display: none;
    z-index: 15;
}

#menu-toggle svg {
    width: 24px;
    height: auto;
}

.tiles-container {
    container: tiles / inline-size;
}

.tiles {
    --columns: 2;
    --gap: 50px;    
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.tiles > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.tile {
    display: flex;
    flex-direction: column;
    background: #e0ebec;
    padding: 20px 27px;
    font-size: 16px;
    line-height: 20px;
    color: var(--primary-accent);
    position: relative;
}

.tile h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-family: var(--body-font);
    font-weight: 900;
    padding: 0;
    margin: 0 0 20px 0;
}

.tile a {
    color: var(--primary-accent);
    text-decoration: none;
}

.tile a:focus,
.tile a:hover {
    text-decoration: underline;
}

.tile .category {
    font-family: var(--heading-font);
    font-size: 16px;
    line-height: 20px;
    font-weight: bold;
    text-transform: uppercase;
    padding: 0;
    margin: 0 0 20px 0;
}

.tile .thumb {
    padding-bottom: 53%;
    position: relative;
    margin: 0 0 25px 0;
    background: var(--secondary-accent);
}

.tile .thumb img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tile .eyebrow {
    margin: 0 0 5px 0;
}

.tile .eyebrow .separator {
    margin: 0 5px;
}

.tile .more {
    margin-top: auto;
    font-weight: bold;
}

@container tiles (max-width: 751px) {
    
    .tiles {
        --columns: 1;
    }

}

.hw-numbers-container {
    container: hw-numbers / inline-size;
}

.hw-numbers {
    display: flex;
    flex-wrap: wrap;
    font-size: 26px;
    line-height: 1.31em;
    color: #256e79;
    font-weight: 900;
    text-align: center;
}

.hw-numbers .number {
    --font-size: clamp(50px, 5vw, 104px);
    display: block;
    font-size: var(--font-size);
    line-height: var(--font-size);
    margin: 0 0 10px 0;
}

.hw-numbers > div {
    padding-top: 65px;
    background: no-repeat left top;
}

.hw-numbers > div > div {
    margin: 0 auto;
}

.hw-numbers .locations {
    width: 23%;
    color: #ce5f28;
    background-image: url(../svg/combo-orange.svg);
    background-size: 135px auto;
}

.hw-numbers .attendance {
    width: 48%;
    background-image: url(../svg/combo-teal.svg);
    background-size: 160px auto;
    background-position: left 35px;
}

.hw-numbers .attendance > div {
    max-width: 330px;
}

.hw-numbers .partners {
    width: 29%;
    color: #4a3048;
    padding-left: 100px;
    background-image: url(../svg/combo-purple.svg);
    background-size: 250px auto;    
}

@container hw-numbers (max-width: 850px) {

    .hw-numbers .locations,
    .hw-numbers .attendance,
    .hw-numbers .partners {
        width: 100%;
        padding: 0;
    }

    .hw-numbers > div + div {
        margin-top: 80px;
    }

}

ul.generic,
article ul,
.et_pb_text ul {
    margin: 20px 0;
    padding: 0 0 0 40px;
    list-style-type: disc;
}

ul.generic li + li,
article li + li ,
.et_pb_text ul li + li {
    margin-top: 20px;
}

.et_pb_text ol {
    margin: 20px 0;
    padding: 0 0 0 40px;
    list-style-position: outside;
}

.et_pb_text ol li + li {
    margin-top: 20px;
}

.about-section-one:before {
    content: '';
    display: block;
    position: absolute;
    right: 0;
    top: 240px;
    width: 257px;
    height: 719px;
    background: url(../png/bg-right-artistic-rings.png) no-repeat;
}

.spark-title {
    padding-bottom: 16.87%;
    background: url(../png/spark-title.png) no-repeat;
    background-size: contain;
    border-bottom: solid 2px #dbd6da;
    position: relative;
}

.spark-title a {
    position: absolute;
    display: block;
    width: 100%;
    height: 100%;
}

.subnav {
    font-family: var(--heading-font);
    padding: 20px 0;
    font-size: 16px;
    line-height: 20px;
    text-transform: uppercase;
    font-weight: 900;
}

.subnav ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 10px 20px;
}

.subnav a {
    color: var(--primary-accent);
    text-decoration-color: transparent;
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
}

.subnav a:focus,
.subnav a:hover {
    text-decoration-color: var(--primary-accent);
}

.featured-story {
    color: var(--primary-accent);
    text-align: center;
    font-size: 16px;
    border-bottom: solid 2px #dbd6da;
    padding: 0 0 30px 0;
    margin: 0 0 60px 0;
}

.featured-story h2 {
    font-size: 48px;
    line-height: 1.24em;
    font-weight: 900;
    margin: 0 0 10px 0;
    padding: 0;
    color: inherit;
}

.featured-story .excerpt {
    margin: 0 auto 20px auto;
    max-width: 850px;
    font-size: 26px;
    line-height: 1.38em;
}

.featured-story .photo {
    position: relative;
    padding-bottom: 44%;
    margin: 0;
}

.featured-story .photo:before {
    content: '';
    display: block;
    position: absolute;
    width: 15%;
    left: -6%;
    bottom: -7%;
    padding-bottom: 100%;
    background: url(../svg/bg-petal.svg) no-repeat center bottom;
    background-size: 100% auto;
    z-index: -1;
}

.featured-story .photo img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.featured-story .eyebrow {
    margin: -30px auto 40px auto;
    text-align: center;
    position: relative;
}

.featured-story .eyebrow span {
    display: inline-block;
    padding: 20px 30px;
    background: #ce5f28;
    color: #fff;
    text-transform: uppercase;
    font-size: 16px;
    line-height: 20px;
    font-weight: 900;
}

.read-more-arrow {
    display: inline-block;
    width: 52px;
    height: 52px;
    background: var(--secondary-accent) url(../svg/arrow-right-white.svg) no-repeat center center;
    background-size: 24px auto;
    margin: 0 auto;
    border-radius: 26px;
}

.read-more-arrow:focus,
.read-more-arrow:hover {
    background-color: var(--primary-accent);
}

.posts {
    --columns: 3;
    --gap: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
    margin: 0 0 70px 0;
}

.posts > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.posts > div.more {
    width: 100%;
    text-align: center;
}

.posts h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-family: var(--body-font);
    padding: 0;
    margin: 0 0 5px 0;
    font-weight: 900;
}

.posts .photo {
    padding-bottom: 61%;
    position: relative;
    margin: 0 0 20px 0;
}

.posts .photo img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.spark-subscribe-callout {
    padding: 60px 50px 60px 20px;
    background: #e0ebec;
    display: flex;
    flex-wrap: wrap;
    position: relative;
}

.spark-subscribe-callout .decoration {
    width: 100%;
    padding-bottom: 50%;
    position: absolute;
    top: 0;
    left: 0;
}

.spark-subscribe-callout .decoration:before {
    content: '';
    display: block;
    position: absolute;
    width: 20%;
    top: -23%;
    right: -6%;
    padding-bottom: 100%;
    background: url(../svg/bg-geo-shapes.svg) no-repeat center top;
    background-size: 100% auto;
    z-index: -1;
}

.spark-subscribe-callout .lower-decoration {
    width: 100%;
    padding-bottom: 50%;
    position: absolute;
    bottom: 0;
    left: 0;
}

.spark-subscribe-callout .lower-decoration:before {
    content: '';
    display: block;
    position: absolute;
    width: 11%;
    bottom: -10%;
    left: -2.5%;
    padding-bottom: 100%;
    background: url(../svg/bg-dots-grid.svg) no-repeat center bottom;
    background-size: 100% auto;
    z-index: -1;
}

.spark-subscribe-callout h2 {
    margin: 0 0 10px 0;
    padding: 0;
    font-weight: 900;
    font-size: 26px;
    line-height: normal;
    font-family: var(--body-font);
}

.spark-subscribe-callout .left {
    width: 50%;
    position: relative;
}

.spark-subscribe-callout .right {
    width: 50%;
    padding: 0 0 0 40px;
    position: relative;
}

.print-archives-callout {
    margin: 80px 0;
    text-align: center;
}

#page-container .spark-subscribe-form [type="text"],
#page-container .spark-subscribe-form [type="email"],
#page-container .spark-subscribe-form select {
    padding: 15px 20px;
    border-radius: 50px;
    background: #fff;
    border: solid 1px #b1ced0;
}

#page-container .spark-subscribe-form label {
    line-height: normal;
    margin-bottom: 4px;
}

.no-padding {
    padding: 0 !important;
}

.single-post {
    color: var(--primary-accent);
    font-size: 21px;
    line-height: 1.52em;
    margin: 0 0 50px 0;
}

.single-post .header {
    text-align: center;
    max-width: 750px;
    margin: 40px auto;
}

.single-post .header h1 {
    font-size: clamp(36px, 5vw, 48px);
    line-height: 1.1em;
    color: inherit;
    font-weight: 900;
    font-family: var(--heading-font);
}

.single-post .header .excerpt {
    margin: 10px 0 20px 0;
}

.single-post .header .meta {
    font-size: 16px;;
}

.single-post .featured-image {
    font-size: 14px;
    line-height: 20px;
    background: #f9f5f0;
    font-style: italic;
}

.single-post .featured-image img {
    display: block;
    width: 100%;
}

.single-post .featured-image .caption {
    padding: 10px 0 0 0;
    background: #fff;
}

.single-post .speaker-photo {
    --width: clamp(100px, 20vw, 200px);
    max-width: var(--width);
    margin: 0 auto;
    position: relative;
}

.single-post .speaker-photo img {
    width: var(--width);
    height: var(--width);
    object-fit: cover;
    border-radius: 50%;
    margin: calc(var(--width) / 2 * -1) auto 0 auto;
    border: solid 4px #fff;
}

.single-post .content {
    font-family: "Georgia", serif;
    margin: 60px auto 0 auto;
    max-width: 680px;
}

/*
.spark-post .content > p:first-child:first-letter {
    font-size: 108px;
    float: left;
    padding: 0 5px 0 0;
}

@supports (initial-letter: 1 1) {
    .spark-post .content > p:first-child:first-letter {
        initial-letter: 3 2;
    }
}
*/

.single-post .first-letter {
    font-size: 108px;
    line-height: 108px;
    float: left;
    margin: -10px 5px 0 0;
}

.single-post .share {
    margin: 50px 0;
    padding: 15px 0;
    border: solid 2px #dbd6da;
    border-width: 2px 0;
    display: flex;
    gap: 10px;
    align-items: center;
}

.single-post .share h2 {
    margin: 0;
    padding: 0;
    font-size: 16px;
    line-height: 20px;
    text-transform: uppercase;
    font-weight: bold;
}

.single-post blockquote {
    font-size: 22px;
    line-height: 1.59em;
    color: #4d868e;
    padding: 130px 30px;
    float: right;
    max-width: 50%;
    margin: 20px 0 20px 20px;
    text-align: center;
    font-weight: 800;
    font-family: var(--body-font);
    border: none;
    background: url(../png/quote-left.png) no-repeat center 70px, url(../png/quote-right.png) no-repeat center calc(100% - 70px);
    background-color: #f9f5f0;
}

.single-post.single-story .header {
    text-align: left;
    max-width: 100%;
}

.single-post.single-story .content {
    font-family: var(--body-font);
    margin: 60px 0 0 0;
    max-width: 100%;
}

.single-post.single-event .location {
    margin: 0;
}

.single-post.single-event .content {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: wrap;
    max-width: 100%;
    font-family: var(--body-font);
}

.single-post.single-event .content .left {
    width: 70%;
    padding: 0 100px 0 0;
}

.single-post.single-event .content .right {
    width: 30%;
    font-family: var(--body-font);
}

.post-callout,
.single-post.single-event .about-program {
    padding: 40px;
    background: #f9f5f0;
    margin: 40px 0;
    font-size: 16px;
    line-height: 1.625em;
    font-family: var(--heading-font);
}

.single-post.single-event .about-program h2 {
    color: var(--primary-accent);
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
}

.single-post.single-event .featured-image {
    position: relative;
}

.single-post.single-event .featured-image:before {
    content: '';
    display: block;
    position: absolute;
    top: -25%;
    right: -13%;
    width: 20%;
    padding-bottom: 100%;
    background: url(../svg/bg-four-circle-shapes.svg) no-repeat;
    background-size: 100% auto;
    z-index: -1;
}

.single-speaker {
    font-size: 20px;
    line-height: 1.6em;
    margin: 0 0 60px 0;
}

.single-speaker h1 {
    font-size: 48px;
    line-height: 1.1em;
    font-weight: 900;
    margin: 0 0 30px 0;
    color: var(--primary-accent);
}

.single-speaker p:not(:last-child) {
    margin-bottom: 30px;
}

.single-speaker .content {
    display: flex;
    flex-wrap: wrap;
}

.single-speaker .presentation {
    width: 72%;
    padding: 0 50px 0 0;
}

.single-speaker .about {
    width: 28%;
    font-size: 16px;
    line-height: 1.6em;
}

.single-speaker .about h2 {
    font-weight: 900;
    color: var(--primary-accent);
    font-size: 16px;
    margin: 0 0 5px 0;
    padding: 0;
    text-transform: uppercase;
}

.single-speaker .featured-image {
    margin: 0 0 30px 0;
}

.single-speaker .featured-image img {
    display: block;
    width: 100%;    
}

.single-speaker .featured-image .caption {
    margin: 5px 0 0 0;
    font-style: italic;
    font-size: 16px;
}

.single-speaker .photo {
    background: url(../png/bg-speaker-photo.png) no-repeat right top;
    background-size: contain;
    padding: 50px 0 60px 10px;
}

.single-speaker .photo > div {
    position: relative;
    padding-bottom: 100%;
}

.single-speaker .photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 50%;
}

.speaker-events h2 {
    margin: 0 0 20px 0;
}

.speaker-events .event + .event {
    border-top: solid 1px var(--primary-accent);
    padding-top: 20px;
    margin-top: 20px;
}

.speaker-events .event + h2 {
    margin-top: 40px;
}

.speaker-events .event-details {
    margin-bottom: 20px;
}

.event-details > div + div {
    margin-top: 20px;
}

.event-details h3 {
    font-weight: 900;
    margin: 0;
    padding: 0;
    color: var(--primary-accent);
    text-transform: uppercase;
    font-size: 16px;
}

.events-grid {
    --columns: 2;
    --gap: clamp(40px, 5vw, 100px);
    display: flex;
    flex-wrap: wrap;
    gap: 40px var(--gap);
    font-size: 16px;
    line-height: 1.625em;
    margin: 0 auto 60px auto;
}

.events-grid > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.events-grid h3 {
    margin: 0;
    padding: 0;
    font-size: 16px;
    font-weight: 800;
    font-family: var(--body-font);
    line-height: inherit;
}

.events-grid h3 a {
    text-decoration: none;
    color: var(--primary-accent);
}

.events-grid h3 a:focus,
.events-grid h3 a:hover {
    text-decoration: underline;
}

.events-grid .thumb {
    padding-bottom: 53%;
    position: relative;
    margin: 0 0 20px 0;
    background: var(--secondary-accent);   
}

.events-grid .thumb img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.events-grid .details-wrapper {
    display: flex;
    gap: 20px;
}

.events-grid .speaker-photo {
    width: 90px;
    flex-shrink: 0;
    flex-grow: 0;
}

.events-grid .speaker-photo img {
    display: block;
    width: 90px;
    height: 90px;
    object-fit: cover;
    border-radius: 50%;
}

.events-grid .details {
    flex-grow: 1;
}

.events-grid .meta {
    font-size: 13px;
    line-height: 17px;
}

.events-grid .meta > span + span:before {
    content: '|';
    margin: 0 5px;
}

.events-list {
    --columns: 2;
    --gap: 80px;
    display: flex;
    flex-wrap: wrap;
    gap: 40px var(--gap);
    line-height: 1.6em;
}

.events-list > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.events-list > div > div {
    display: flex;
    justify-content: space-between;
}

.events-list > div > div + div {
    margin-top: 40px;
}

.events-list h3 {
    font-size: 16px;
    line-height: inherit;
    font-weight: 900;
}

.events-list a {
    color: var(--primary-accent);
}

.events-list .date {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #4d868e;
    width: 55px;
    height: 55px;
    color: #fff;
    font-size: 12px;
    line-height: 18px;
    text-align: center;
    margin-top: 5px;
    text-transform: uppercase;
}

.events-list .date .day {
    font-size: 22px;
    font-weight: 900;
    display: block;
}

.events-list .details {
    width: calc(100% - 85px);
}

.event-tabs {
    margin: 0 0 20px 0;
    display: flex;
    gap: 20px;
}

.event-tabs button {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    border: none;
    border-bottom: solid 2px transparent;
    font-family: inherit;
    font-size: inherit;
    font-weight: bold;
    line-height: inherit;
    color: inherit;
    text-align: inherit;
}

.event-tabs button:focus,
.event-tabs button:hover {
    border-bottom-color: var(--primary-accent);
}

.event-tabs button[aria-selected="true"] {
    border-bottom-color: var(--primary-accent);
}

.upcoming-events-container {
    container-type: inline-size;
    container-name: upcoming-events;
}

.upcoming-events {
    color: var(--primary-accent);
    font-size: 21px;
}

.upcoming-events h3 {
    font-size: 26px;
    line-height: 1.31em;
    font-weight: 900;
    font-family: var(--body-font);
}

.upcoming-events h3 a {
    text-decoration: none;
    color: var(--primary-accent);
}

.upcoming-events h3 a:focus,
.upcoming-events h3 a:hover {
    text-decoration: underline;
}

.upcoming-events .event {
    display: flex;
    margin: 0 0 30px 0;
}

.upcoming-events .photo {
    width: 28%;
}

.upcoming-events .photo img {
    display: block;
}

.upcoming-events .content {
    width: 72%;
    padding: 20px 0 0 50px;
}

.upcoming-events .meta {
    margin: 0;
    font-size: 16px;
}

.upcoming-events .meta span + span:before {
    content: "|";
    margin: 0 5px;
}

@container upcoming-events (max-width: 750px) {

    .upcoming-events {
        font-size: 16px;
    }

    .upcoming-events .event {
        flex-wrap: wrap;
    }

    .upcoming-events .photo {
        width: 100%;
        margin: 0 0 20px 0;
    }

    .upcoming-events .content {
        width: 100%;
        padding: 0;
    }

}

.talks-filter {
    margin: 0 0 30px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    align-items: center;
}

.talks {
    --headshot-size: clamp(60px, 10vw, 150px);
}

.talks h2 {
    margin: 0 0 50px 0;
    background: #f4edf4;
    font-size: 48px;
    line-height: 1.2em;
    padding: 21px 40px;
    font-weight: 900;
    color: var(--primary-accent);
}

.talks h3 {
    margin: 0;
    font-size: 26px;
    line-height: 1.31em;
    color: inherit;
    font-weight: 800;
    font-family: var(--body-font);
}

.talks a {
    text-decoration: none;
}

.talks a:focus,
.talks a:hover {
    text-decoration: underline;
}

.talks > .topic + .topic {
    margin-top: 60px;
}

.talks > .topic > div {
    --columns: 2;
    --gap: clamp(40px, 5.5vw, 100px);    
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 40px var(--gap);
}

.talks > .topic > div > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.talks .photo {
    position: relative;
    padding-bottom: 53%;
    margin: 0 0 20px 0;
}

.talks .photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

.talks .photo .headshot {
    position: absolute;
    left: 0;
    bottom: calc(var(--headshot-size) / 2 * -1);
    width: var(--headshot-size);
    height: var(--headshot-size);
    border-radius: 50%;
    object-fit: cover;
    overflow: hidden;
}

.talks .content {
    padding: 0 0 0 calc(var(--headshot-size) + 20px);
}

.talks .author {
    margin: 0 0 5px 0;
    font-size: 21px;
}

.talks .author a {
    color: #256e79;
}

.custom-select {
    display: inline-block;
    border: solid 1px #e5d5c3;
    background: #f9f5f0;
    border-radius: 100px;
    position: relative;
}

.custom-select:before {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    right: 20px;
    width: 0;
    height: 0;
    border: 8px solid transparent;
    border-color: var(--primary-accent) transparent transparent transparent;
    transform: translateY(calc(50% - 12px));
}

.custom-select select {
    padding: 10px 20px;
    border: none;
    background: none;
    font-size: 16px;
    line-height: 20px;
    font-family: var(--body-font);
    color: var(--primary-accent);
    appearance: none;
    position: relative;
}

.generic-page-section {
    padding: 60px 0;
}

.page-title {
    font-weight: 900;
    margin: 0 0 30px 0;
    border-bottom: solid 2px #dbd6da;
    font-size: 21px !important;
    line-height: 1em;
    padding: 0 0 12px 0;
    text-transform: uppercase;
    color: var(--primary-accent);
    font-family: var(--heading-font);
}

.page-subtitle {
    font-size: 48px;
    line-height: 1.1em;
    color: var(--primary-accent);
    margin: 0 0 30px 0;
    padding: 0;
    font-weight: 900;
}

.featured-event-container {
    container-type: inline-size;
    container-name: featured-event;
}

.featured-event {
    color: #fff;
    position: relative;
    z-index: 1;
    margin: 0 0 40px 0;
}

.featured-event:before {
    position: absolute;
    content: '';
    width: 68px;
    height: 143px;
    background: url(../svg/petal-teal.svg) no-repeat;
    top: -60px;
    right: -20px;
    z-index: -1;
}

.featured-event > div {
    padding: 27px;
    background: var(--primary-accent);
    display: flex;
    flex-wrap: wrap;
}

.featured-event h2 {
    margin: 0 0 10px 0;
    text-transform: uppercase;
    color: #e89e6c;
    font-size: 16px;
    padding: 0;
    font-weight: 900;
}

.featured-event h3 {
    font-size: 36px;
    line-height: 1.28em;
    font-family: var(--body-font);
    font-weight: 900;
}

.featured-event h3 a {
    color: #fff;
    text-decoration: none;
}

.featured-event h3 a:focus,
.featured-event h3 a:hover {
    text-decoration: underline;
}

.featured-event .photo {
    width: 45%;
    padding-bottom: 29%;
    position: relative;
}

.featured-event .photo img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.featured-event .content {
    width: 55%;
    padding: 0 0 0 50px;
}

.featured-event .meta {
    margin: 0 0 10px 0;
    font-size: 16px;
}

.featured-event .meta span + span:before {
    content: "|";
    margin: 0 5px;
}

.featured-event .read-more {
    font-weight: bold;
}

#main-content form.contact .gfield-choice-input {
    margin: 7px 5px 0 0;
    vertical-align: top;
}

@container featured-event (max-width: 750px) {

    .featured-event .photo,
    .featured-event .content {
        width: 100%;
    }

    .featured-event .photo {
        padding-bottom: 53%;
        margin: 0 0 20px 0;
    }

    .featured-event .content {
        padding: 0;
    }

}

.newsletter-signup-form label {
    margin: 0 0 2px 0;
    line-height: 20px;
}

.dialog {
    max-width: 600px;
    padding: 40px;
    background: #fff;
    margin: 0 auto;
    position: relative;
}

button.mfp-close {
    opacity: 1;
}

button.mfp-close:focus,
button.mfp-close:hover {
    background: var(--primary-accent);
    color: #fff;
}

input::not(.IATS_PaymentInputField, [name="IATS_Payment_CVV2"], [name="IATS_PaymentItemInput_State2"]),
input[type="email"],
input[type="phone"],
input[type="url"],
input[type="submit"],
textarea,
select:not([name="IATS_Payment_ExpiryMonth"]):not([name="IATS_Payment_ExpiryYear"]) {
    display: block;
    width: 100%;
    border: solid 1px var(--primary-accent);
    padding: 10px;
    font-size: 16px;
    line-height: 20px;
    font-family: var(--body-font);
}

div.search-results {
    max-width: 680px;
    margin: 0 auto;
}

div.search-results > div + div {
    margin-top: 30px;
    padding-top: 30px;
    border-top: solid 1px #dbd6da;
}

div.search-results h2 {
    font-weight: 900;
    margin: 0;
    padding: 0;
}

.pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 30px 0;
}

.pagination a {
    text-decoration: none;
}

.pagination a:focus,
.pagination a:hover {
    text-decoration: underline;
}

.stories {
    --columns: 3;
    --gap: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: var(--gap);
}

.stories > div {
    width: calc((100% / var(--columns)) - var(--gap) + (var(--gap) / var(--columns)));
}

.stories h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-family: var(--body-font);
    font-weight: 900;
    margin: 0 0 5px 0;
    padding: 0;
}

.stories h2 a {
    text-decoration: none;
}

.stories h2 a:focus,
.stories h2 a:hover {
    text-decoration: underline;
}

.stories .photo {
    position: relative;
    padding-bottom: 53%;
    background: var(--secondary-accent);
}

.stories .photo img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.stories .date {
    margin: 0 0 5px 0;
}

/**
 * Calendar
 */
:root {
    --tec-color-text-day-of-week-month: #fff;
    --tec-color-border-secondary-month-grid: var(--primary-accent);
    --tec-font-size-1: 12px;
    --tec-border-radius-default: 0;
}

.events-page-container {
    position: relative;
}

body.post-type-archive-tribe_events .events-page-container:before {
    content: '';
    position: absolute;
    top: 35%;
    right: 0;
    width: 100px;
    height: 290px;
    background: url(../svg/bg-arc-with-dots.svg) no-repeat;
    background-size: 100px auto;
    z-index: -1;
}

body.single-tribe_events .events-page-container:before {
    content: '';
    position: absolute;
    top: 25%;
    left: 0;
    width: 275px;
    height: 626px;
    background: url(../svg/bg-half-moon-with-shapes.svg) no-repeat;
    background-size: 100% auto;
    z-index: -1;
}

.events-page-container:after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    width: 410px;
    height: 235px;
    background: url(../png/bg-building-circle-birds.png) no-repeat;
    background-size: contain;
    z-index: -1;
}

.events-page-container .generic-page-section {
    padding-bottom: 200px;
}

.calendar-header {
    background: url(../svg/bg-shapes-row.svg) no-repeat center top;
    margin: 50px 0 0 0;
    padding: 115px 0 0 0;
    background-size: 100% auto;
}

.calendar-header h2 {
    margin: 0;
    padding: 0;
    font-weight: 900;
    font-size: 48px;
    line-height: 52px;
    text-align: center;
    color: var(--secondary-accent);
}

.calendar .tribe-events .tribe-events-l-container {
    padding: 0;
}

.calendar .tribe-events-calendar-month .tribe-events-calendar-month__header {
    background: #4a3048;
    color: #fff;
}

.calendar .tribe-events .tribe-events-calendar-month__header .tribe-events-calendar-month__header-column {
    padding: 10px;
}

.calendar .tribe-events .tribe-events-calendar-month__header h3 {
    font-size: 14px;
    text-align: center;
    font-weight: 900;
    font-family: var(--body-font);
}

.calendar .tribe-events-calendar-month__body .tribe-events-calendar-month__day-date {
    padding: 8px 10px;
    background: #efe7db;
    font-size: 12px;
    line-height: 14px;
    color: var(--primary-accent);
    font-weight: bold;
    opacity: 1;
    margin: 0 0 10px 0;
}

.calendar .tribe-events .tribe-events-calendar-month__week:not(:last-child) .tribe-events-calendar-month__day {
    border-bottom: none;
}

.calendar .tribe-events-c-subscribe-dropdown__container {
    display: none;
}

.calendar .tribe-events-calendar-month__calendar-event-details {
    color: var(--primary-accent);
}

.calendar .tribe-events-calendar-month__calendar-event-details .location {
    font-size: var(--tec-font-size-1);
    font-weight: bold;
    margin: 0 0 2px 0;
    text-transform: uppercase;
    line-height: 14px;
}

.calendar .tribe-events-calendar-month__calendar-event-details a {
    color: var(--primary-accent);
}

.calendar .tribe-events .tribe-events-calendar-month__calendar-event {
    margin: 0;
    padding: 0 10px 20px 10px;
}

.calendar .tribe-events .tribe-events-calendar-month__day--past .tribe-events-calendar-month__calendar-event {
    opacity: 1;
}

.calendar .tribe-events-c-view-selector {
    display: none;
}

.calendar .tribe-events-header__events-bar {
    display: none;
}

.tooltipster-base.tribe-events-tooltip-theme {
    padding: 16px;
    background: #f9f5f0;
    box-shadow: 0 0 24px 0 rgba(0,0,0,0.4);
    font-size: 12px;
    line-height: 14px;
    color: var(--primary-accent);
    border-radius: 0;
}

.tooltipster-base.tribe-events-tooltip-theme .thumb img {
    display: block;
    width: 100%;
    margin: 0 0 15px 0;
}

.tooltipster-base.tribe-events-tooltip-theme .title {
    font-size: 14px;
    line-height: 17px;
    font-weight: bold;
    margin: 0 0 3px 0;
}

.tooltipster-base.tribe-events-tooltip-theme .title a {
    color: var(--primary-accent);
}

.tooltipster-base.tribe-events-tooltip-theme .title a:focus,
.tooltipster-base.tribe-events-tooltip-theme .title a:hover {
    text-decoration: underline;
}

.tooltipster-base.tribe-events-tooltip-theme .date {
    margin: 0 0 10px 0;
}

.tooltipster-base.tribe-events-tooltip-theme .format {
    text-transform: uppercase;
}

.tribe-events-calendar-month__calendar-event-tooltip {
    font-size: 12px;
    line-height: 14px;
    color: var(--primary-accent);
}

.calendar-top-container {
    container-name: calendar-top;
    container-type: inline-size;
    width: 100%;
}

.calendar .calendar-top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 30px 0;
    gap: 20px;
}

.calendar .calendar-top .title {
    font-size: 26px;
    line-height: 30px;
    color: var(--primary-accent);
    font-weight: 900;
    margin: 0;
    padding: 0;
    flex-grow: 1;
    text-align: center;
}

.calendar .calendar-top .prev {
    order: -1;
}

.calendar-search {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 20px 40px;
    align-items: center;
    margin: 0 0 40px 0;
    background: #efe7db;
    padding: 20px;
    line-height: 1.2em;
}

.calendar-search > div {
    display: flex;
    align-items: center;
}

.calendar-search label {
    white-space: nowrap;
}

.calendar-search .btn {
    padding: 6px 20px;
}

.calendar-search .keywords {
    gap: 10px;
}

.calendar-search .keywords-field {
    border: solid 1px #e5d5c3;
    border-radius: 15px;
    background: #fff url(../svg/search.svg) no-repeat 10px center;
    background-size: 16px auto;
}

.calendar-search [type="text"] {
    width: 100%;
    max-width: 290px;
    font-size: 16px;
    line-height: 30px;
    background: none;
    border: none;
    padding: 0;
    font-family: var(--body-font);
    padding: 0 10px 0 30px;
}

.calendar-search .format {
    gap: 20px;
}

.custom-checkbox {
    position: absolute;
    left: -100000px;
}

.custom-checkbox + label {
    font-weight: bold;
    display: flex;
    align-items: center;
}

.custom-checkbox + label:before {
    content: '';
    display: inline-block;
    width: 22px;
    height: 22px;
    border: solid 1px #e5d5c3;
    margin-right: 10px;
    background: #fff;
}

.custom-checkbox:checked + label:before {
    background: var(--secondary-accent);
}

@container calendar-top (max-width: 767.5px) {

    .calendar .calendar-top {
        width: auto;
        justify-content: center;
    }

    .calendar .calendar-top .title {
        width: 100%;        
    }

    .calendar .calendar-top .prev {
        order: 0;
    }

}

#tribe-events-pg-template {
    padding: 0;
    max-width: 100%;
}

.program-cols {
    gap: 6px;
}

.program-cols a {
    font-weight: 900;
    text-decoration: underline;
}

.program-cols a:focus,
.program-cols a:hover {
    text-decoration: none;
}

.program-cols .green a {
    color: #256e79;
}

.program-cols .green .squares li:before {
    background-color: #4d868e;;
}

.program-cols .purple a {
    color: #4a3048;
}

.program-cols .purple .squares li:before {
    background-color: #4a3048;;
}

.program-cols .orange a {
    color: #954821;
}

.program-cols .heading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px;
}

.program-tiles-row h3 {
    font-family: var(--body-font);
}

.program-tiles-row h3 a {
    text-decoration: none;
}

.program-tiles-row h3 a:focus,
.program-tiles-row h3 a:hover {
    text-decoration: underline;
}

.program-tiles-row .et_pb_column {
    display: flex;
    align-items: center;
}

ul.squares {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

ul.squares li {
    padding-left: 30px;
    position: relative;
}

ul.squares li:before {
    content: "";
    position: absolute;
    top: 8px;
    left: 0;
    width: 12px;
    height: 12px;
    background: #ce5f28;
}

ul.squares li + li {
    margin-top: 20px;
}

.headshot-blurb .et_pb_main_blurb_image {
    position: absolute;
    top: -95px;
    left: -170px;
}

.headshot-blurb h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-weight: bold;
}

.headshot-blurb a {
    text-decoration: none;
}

.headshot-blurb a:focus,
.headshot-blurb a:hover {
    text-decoration: underline;
}

#donate-dialog #IATS_PaymentBoxDiv {
    margin: 0;
    width: 100% !important;
}

.translation-toggle {
    left: 20px;
    bottom: 20px;
    font-size: 16px;
    line-height: 20px;
    z-index: 10;
    position: fixed;
}

.translation-toggle .toggle {
    display: flex;
    align-items: center;
}

.translation-toggle .toggle .large-expand {
    border: none;
    background: #fff;
    color: #5a422d;
    cursor: pointer;
    display: flex;
    align-items: center;
    margin: 0;
}

.translation-toggle .toggle .large-expand .fa {
    font-size: 16px;
    font-weight: 400;
}

.translation-toggle .collapse {
    border: none;
    background: none;
    color: #5a422d;
    cursor: pointer;
    padding: 0;
    margin: 0 0 0 10px;
}

.translation-toggle .collapse .fa {
    font-weight: 400;
}

.translation-toggle .expand {
    display: none;
    background: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    font-size: 25px;
    color: #a2522d;
    border: none;
}

.translation-toggle .langs {
    display: none;
    padding: 8px 30px 8px 10px;
    background: #fff;
    position: relative;
    border-radius: 20px;
    box-shadow: 0 0 20px 0 rgba(0,0,0,0.2);
}

.translation-toggle .langs .lang {
    display: flex;
    align-items: center;
    color: var(--primary-accent);
    background: none;
    padding: 0;
    margin: 0;
    border: none;
    cursor: pointer;    
}

.translation-toggle .langs .lang:focus,
.translation-toggle .langs .lang:hover {
    text-decoration: underline;
}

.translation-toggle .langs .lang + .lang {
    margin-top: 5px;
}

.translation-toggle .langs .lang:not(.on) .code {
    background: var(--primary-accent);
}

.translation-toggle .langs .close {
    background: none;
    padding: 0;
    margin: 0;
    border: none;
    cursor: pointer;
    position: absolute;
    top: 10px;
    right: 10px;
}

.translation-toggle .langs .close svg {
    width: 12px;
    height: auto;
}

.translation-toggle .code {
    padding: 3px 5px;
    text-transform: uppercase;
    color: #fff;
    font-size: 12px;
    line-height: 14px;
    font-weight: bold;
    border-radius: 5px;
    background: var(--primary-accent);
    margin-right: 7px;
}

.translation-toggle.on .toggle,
.translation-toggle.on .expand {
    display: none;
}

.translation-toggle.on .langs {
    display: block;
}

.translation-toggle.collapsed .collapse,
.translation-toggle.collapsed .large-expand {
    display: none;
}

.translation-toggle.collapsed .expand {
    display: block;
    padding: 8px;
    border-radius: 10px;
    box-shadow: 0 0 20px 0 rgba(0,0,0,0.2);
    background: #fff;    
}

.translation-toggle.collapsed .expand svg {
    width: 28px;
    height: auto;
    display: block;
}

.wp-caption {
    padding: 0;
    background: #f9f5f0;
    font-size: 14px;
    line-height: 20px;
    color: #4a3048;
    font-family: var(--body-font);
    text-align: left;
    border: none;;
}

.wp-caption img {
    display: block;
    width: 100%;
}

.wp-caption p.wp-caption-text {
    padding: 10px 20px;
}

body.blog .spark-subnav .current_page_item a,
body.single-post .spark-subnav .current_page_parent a {
    text-decoration-color: var(--primary-accent);
}

.IATS_Disabled {
    opacity: .2;
}

.press h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-weight: 800;
    color: var(--primary-accent);
}

.press a {
    text-decoration: none;
}

.press a:focus,
.press a:hover {
    text-decoration: underline;
}

.press .meta span + span:before {
    content: '|';
    margin: 0 5px;
}

.press .article + .article {
    margin-top: 40px;
}

.animate {
    opacity: 0;
    transform: translateY(-20px);
    transition: opacity 0.8s, transform 0.8s;
}

.animate.animated {
    opacity: 1;
    transform: translateY(0);
}

.icon-headline {
    display: flex;
    align-items: center;
}

.icon-headline h2 {
    padding: 0;
}

.sb-eval-form .wFormContainer .wForm {
    background: #fff;
}

.sb-eval-form .wFormContainer {
    margin: 0;
}

.sb-eval-form .wForm {
    padding: 0;
}

.disclosure-toggle {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: none;
    border: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    color: inherit;
    text-align: inherit;
    display: inline-flex;
    align-items: center;
    text-transform: inherit;
    position: relative;
}

.disclosure-toggle:after {
    position: absolute;
    content: '';
    left: 0;
    bottom: 0;
    right: 0;
    background: transparent;
    height: 1px;
}

.disclosure-toggle .icon:after {
    content: '5';
    font-family: 'ETmodules';
    font-size: 26px;
}

.disclosure-toggle[aria-expanded="true"] .icon {
    transform: rotate(90deg);
}

.disclosure-toggle:focus:after,
.disclosure-toggle:hover:after {
    background: currentColor;
}

.alert-banner {
    background: #f00;
    font-size: 19px;
    line-height: 1.1em;
    padding: 24px;
    text-align: center;
    font-weight: bold;
    color: #fff;
}

.alert-banner a {
    color: #fff;
    text-decoration: underline;
}

.alert-banner .read-more {
    white-space: nowrap;
}

.alert-banner .read-more:after {
    background-image: url(../svg/arrow-right-white.svg);
}

/**
 * HAAP Projects
 */
.haap-projects-container {
    container: haap-projects / inline-size;
}

.haap-projects {
    font-size: 21px;
    line-height: 1.31em;
    color: var(--primary-accent);
}

.haap-projects h2 {
    font-size: 26px;
    line-height: 1.31em;
    font-weight: 900;
    color: var(--primary-accent);
    margin: 0 0 20px 0;
}

.haap-projects h2 a {
    text-decoration: none;
}

.haap-projects h2 a:focus,
.haap-projects h2 a:hover {
    text-decoration: underline;
}

.haap-projects h3 {
    margin: 0;
    padding: 0;
    font-size: 21px;
    line-height: 1.2em;
    font-weight: bold;
    color: var(--primary-accent);
}

.haap-projects > div {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 70px 0;
}

.haap-projects > div > .photo {
    width: 36%;
}

.haap-projects > div > .photo img {
    display: block;
    width: 100%;
}

.haap-projects > div > .details {
    width: 64%;
    padding: 0 0 0 40px;
}

.haap-projects .artists {
    display: flex;
    gap: 20px 40px;
    margin: 0 0 30px 0;
    flex-wrap: wrap;
}

.haap-projects .artists > div {
    width: calc(50% - 20px);
    display: flex;
}

.haap-projects .artists > div > .photo {
    width: 30%;
    max-width: 100px;
}

.haap-projects .artists > div > .photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
}

.haap-projects .artists > div > .name {
    width: 70%;
    padding-left: 20px;    
}

@container haap-projects (max-width: 800px) {

    .haap-projects .artists > div {
        width: 100%;
    }

}

@container haap-projects (max-width: 600px) {

    .haap-projects > div > .photo {
        width: 100%;
    }

    .haap-projects > div > .details {
        width: 100%;
        padding: 0;
    }

}

.haap-project {
    container: haap-project / inline-size;
}

.haap-project h1 {
	font-size: 48px;
	line-height: 1.1em;
	font-weight: 900;
	margin: 0 0 30px 0;
	color: var(--primary-accent);
}

.haap-project .intro {
    display: flex;
    background: #e0ebec;
    margin: 0 0 40px 0;
    font-size: 20px;
    line-height: 1.6em;
}

.haap-project .intro .photo {
    width: 68%;
    position: relative;
}

.haap-project .intro .photo img {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.haap-project .intro .summary {
    width: 32%;
    padding: 50px;
    min-height: 420px;
    display: flex;
    align-items: center;
    min-width: 360px;
}

.haap-project .artist {
    display: flex;
    gap: 20px 50px;
    align-items: center;
    font-size: 20px;
    line-height: 1.6em;   
}

.haap-project .artist + .artist {
    margin-top: 40px;
    padding-top: 40px;
    border-top: solid 2px #dbd6da;
}

.haap-project .artist h2 {
    font-size: 16px;
    line-height: 1.2em;
	font-weight: 900;
    text-transform: uppercase;
    color: var(--primary-accent)
}

.haap-project .artist h3 {
    font-size: 26px;
    line-height: 1.2em;
	font-weight: 900;
    color: var(--primary-accent)
}

.haap-project .artist .photo {
    width: 21%;
    flex-shrink: 0;
    flex-grow: 0;
    max-width: 250px;
    min-width: 100px;
}

.haap-project .artist .photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 50%;
}

.quote-slider {
    background: url(../svg/bg-quote.svg) no-repeat left top;
    background-size: 150px auto;
    padding: 40px 50px 0 100px;
    font-style: italic;
    color: #256e79;
    font-size: 36px;
    line-height: 1.4em;
    font-weight: 900;
    margin: 40px 0;
}

.quote-slider p:not(.author) {
    margin-bottom: 40px;
}

.quote-slider .author {
    font-size: 20px;
    line-height: 1.2em;
    font-style: normal;
    padding-right: 200px;
    color: var(--primary-accent);
}

.quote-slider .slick-dots {
    margin: 0;
    padding: 0;
    list-style-type: none;
    position: absolute;
    right: 0;
    bottom: 6px;
    display: flex;
    gap: 0 10px;
}

.quote-slider .slick-dots li {
    margin: 0;
}

.quote-slider .slick-dots button {
    margin: 0;
    padding: 0;
    cursor: pointer;
    background: #efe5da;
    border: none;
    text-align: inherit;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: block;
    text-indent: -1000px;
    font-size: 0px;
    line-height: 1em;
    overflow: hidden;
}

.quote-slider .slick-dots .slick-active button {
    background: #dc7c27;
}

@container haap-project (max-width: 700px) {

    .haap-project .intro {
        flex-wrap: wrap;
    }

    .haap-project .intro .photo,
    .haap-project .intro .summary {
        width: 100%;
        min-height: 1px;
        min-width: 1px;
    }

    .haap-project .intro .summary {
        padding: 30px;
    }

    .haap-project .intro .photo img {
        position: relative;
    }

    .haap-project .artist {
        flex-wrap: wrap;
        gap: 20px;
    }

}

@container haap-project (max-width: 400px) {

    .haap-project h1 {
        font-size: 32px;
    }

    .haap-project .intro,
    .haap-project .artist {
        font-size: 16px;
    }

}

@media screen and (max-width: 1300px) {

    .home-middle-tiles:before {
        width: 120px;
        height: 120px;
        left: -30px;
        top: -60px;
    }

}

@media screen and (max-width: 1200px) {

    .posts {
        --columns: 2;
    }

    .spark-subscribe-callout {
        padding: 40px;
    }

    .spark-subscribe-callout .left {
        width: 100%;
        margin: 0 0 40px 0;
    }

    .spark-subscribe-callout .right {
        width: 100%;
        padding: 0;
    }

    .single-speaker .presentation {
        width: 100%;
        padding: 0 0 40px 0;
        margin: 0 0 40px 0;
        border-bottom: solid 2px #dbd6da;
    }

    .single-speaker .about {
        width: 100%;
    }

    .single-speaker .photo {
        max-width: 400px;
        margin: 0 auto;
    }
}

@media screen and (max-width: 980px) {
    
    :root {
        --menu-width: calc(100% + 40px);
    }

    #page-container {
        margin: 60px 0 0 0;
    }

    #header {
        bottom: auto;
        min-height: 60px;
        width: auto;
        right: 0;
        padding: 0;
        z-index: 9999;
    }

    #header:before {
        position: absolute;
        top: 0;
        right: 20px;
        left: 20px;
        height: 60px;
        background: #f9f5f0;
        content: "";
        z-index: 1;
    }

    #header > div {
        padding: 0;
    }

    #header .logo {
        position: absolute;
        top: 13px;
        left: 40px;
        width: 200px;
        z-index: 15;
    }

    #header .logo img {
        margin: 0;
    }

    #header nav li {
        margin: 0 0 5px 0;
    }

    #header nav > ul > li > ul > li > ul {
        padding-top: 0;
    }

    #header nav > ul > li > ul > li > ul > li {
        margin: 0;
    }

    #header nav .section-title {
        margin: 0 0 5px 0;
    }

    #header .donate {
        margin: 15px 0 40px 0;
    }

    #header .search {
        font-size: 16px;
        margin: 0 0 20px 0;
    }

    #menu-toggle {
        display: block;
    }

    #main-menu {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background: #f9f5f0;
        display: flex;
        height: 0;
        overflow: hidden;
        transition: height .8s cubic-bezier(.83,0,.17,1);
        /* align-items: flex-end; */
        overflow: scroll;
    }

    #main-menu > div {
        padding: 60px 40px 40px 40px;
        opacity: 0;
        transition: 0.8s ease;
        transition-delay: 0s;
        width: 100%;
    }

    body.menu-expanded {
        overflow: hidden;
    }

    body.menu-expanded #main-menu {
        height: 100vh;
    }

    body.menu-expanded #main-menu > div {
        opacity: 1;
        transition-delay: .5s;
    }

    .events-grid {
        --columns: 1;
    }
    
    .talks > .topic > div {
        --columns: 1;
    }

    .page-subtitle,
    .calendar-header h2 {
        font-size: 36px;
        line-height: 1.2em;
    }

    .stories {
        --columns: 2;
    }

    .program-cols .et_pb_column + .et_pb_column {
        margin-top: 40px !important;
    }

    .program-tiles-row .et_pb_column + .et_pb_column {
        margin-top: 20px !important;
    }

    .single-post.single-event .content .left {
        width: 100%;
        padding: 0;
    }

    .single-post.single-event .content .right {
        width: 100%;
        margin: 0 0 60px 0;
    }

    .spark-subscribe-callout:before {
        top: -6%;
    }

}

@media screen and (max-width: 767px) {

    .events-list {
        --columns: 1;
    }

    .headshot-blurb .et_pb_main_blurb_image {
        left: -80px;
        top: -50px;
    }
    
    .alignleft,
    .alignright {
        margin: 0 0 20px 0;
        float: none;
        width: 100% !important;
    }

    .quote-slider {
        font-size: 26px;
        padding: 23px 0px 0 70px;
        background-size: 100px auto;
    }

    .quote-slider .author {
        padding: 0;
    }

    .quote-slider .slick-dots {
        position: static;
        margin-top: 20px;
        justify-content: center;
    }
}

@media screen and (max-width: 650px) {

    .posts {
        --columns: 1;
    }
    
    .single-post blockquote {
        float: none;
        margin: 20px 0;
        max-width: 100%;
    }

    .calendar-search > div {
        flex-wrap: wrap;
    }

    .calendar-search .keywords label {
        width: 100%;
    }

    .stories {
        --columns: 1;
    }

    .subnav {
        font-size: 12px;
    }

    .subnav ul {
        gap: 10px;
    }
    
    .single-post .first-letter {
        font-size: 60px;
        line-height: 60px;
        margin: 0 5px 0 0;
    }

}

@media screen and (max-width: 624px) {

    .tribe-events .tribe-events-calendar-month__body {
        background: #000;
        border: solid 1px #000;
    }

    .tribe-events .tribe-events-calendar-month__week {
        gap: 1px;
    }

    .tribe-events-calendar-month__week + .tribe-events-calendar-month__week {
        border-top: solid 1px #000;
    }

    .tribe-events .tribe-events-calendar-month__day {
        background: #f9f5f0;
    }
    
    .tribe-events .tribe-events-calendar-month__day-cell--mobile {
        background: #f9f5f0;
    }

    .calendar .tribe-events-calendar-month__body .tribe-events-calendar-month__day-date {
        background: transparent;
        margin: 0;
    }

    .tribe-events .tribe-events-calendar-month__mobile-events-icon--event {
        background: var(--primary-accent);
    }

    .tribe-events-calendar-month__day-cell--selected .tribe-events-calendar-month__day-date-daynum {
        color: #fff;
    }

    .tribe-events .tribe-events-calendar-month__day-cell--selected,
    .tribe-events .tribe-events-calendar-month__day-cell--selected:focus,
    .tribe-events .tribe-events-calendar-month__day-cell--selected:hover {
        background: var(--secondary-accent);
    }

}

@media screen and (max-width: 480px) {

    /*
    #header nav {
        font-size: 18px;
        line-height: 22px;
    }
    */

    .events-grid .speaker-photo {
        width: 60px;
    }

    .events-grid .speaker-photo img {
        width: 60px;
        height: 60px;
    }

    .page-subtitle,
    .calendar-header h2 {
        font-size: 26px;
        line-height: 1.2em;
    }

}

@media screen and (min-width: 981px) {

    #main-menu {
        display: block !important;
    }

}