:root {
    color-scheme: light dark;

    --color-midnight:   #000000;
    --color-love:       #da5c3f;
    --color-dustBold:   #e6dfd1;
    --color-dust:       #fbfaf8;
    --color-sky:        #b9d5ec;
    --color-sunset:     #cfadc8;

    --size-clamp: 1.17rem + 3.176vw;

    --size-h1:      2.804rem;           /* midpoint of 1.125 and 1.25 step ratios, no-clamp fallback */
    --size-h1min:   2.027rem;           /* 1.125 step ratio */
    --size-h1max:   3.815rem;           /* 1.25 step ratio */
    --ratio-h1:     1.463rem + 2.509vw; /* https://utopia.fyi/type/calculator, between 360px and 1500px vw */
    --clamp-h1:     clamp(var(--size-h1min), var(--ratio-h1), var(--size-h1max));

    --size-h2:      2.361rem;
    --size-h2min:   1.802rem;
    --size-h2max:   3.052rem;
    --ratio-h2:     1.407rem + 1.75vw;
    --clamp-h2:     clamp(var(--size-h2min), var(--ratio-h2), var(--size-h2max));

    --size-h3:      1.989rem;
    --size-h3min:   1.602rem;
    --size-h3max:   2.441rem;
    --ratio-h3:     1.337rem + 1.178vw;
    --clamp-h3:     clamp(var(--size-h3min), var(--ratio-h3), var(--size-h3max));

    --size-h4:      1.675rem;
    --size-h4min:   1.424rem;
    --size-h4max:   1.953rem;
    --ratio-h4:     1.257rem + 0.743vw;
    --clamp-h4:     clamp(var(--size-h4min), var(--ratio-h4), var(--size-h4max));

    --size-h5:      1.410rem;
    --size-h5min:   1.266rem;
    --size-h5max:   1.563rem;
    --ratio-h5:     1.172rem + 0.417vw;
    --clamp-h5:     clamp(var(--size-h5min), var(--ratio-h5), var(--size-h5max));

    --size-h6:      1.188rem;
    --size-h6min:   1.125rem;
    --size-h6max:   1.25rem;
    --ratio-h6:     1.086rem + 0.175vw;
    --clamp-h6:     clamp(var(--size-h6min), var(--ratio-h6), var(--size-h6max));

}

* {
    box-sizing: border-box;
}
html {
    font-size: 112.5%;
}
body {
    margin: 0;
    padding: 0;
    font-family: "Helvetica Neue", Arial, sans-serif;
    height: 100vh;
}

h1 {
    font-size: var(--size-h1);
    font-size: var(--clamp-h1);
    line-height: 1.1;
}
h2 {
    font-size: var(--size-h2);
    font-size: var(--clamp-h2);
    line-height: 1.1;
}
h3 {
    font-size: var(--size-h3);
    font-size: var(--clamp-h3);
    line-height: 1.1;
}
h4 {
    font-size: var(--size-h4);
    font-size: var(--clamp-h4);
    line-height: 1.1;
}
h5 {
    font-size: var(--size-h5);
    font-size: var(--clamp-h5);
    line-height: 1.1;
}
p {
    margin: 0.75rem 0;
    line-height: 1.4;
}
article {
    max-width: 50rem;
    margin: auto;
}
    article > section {
        border-top: 1px solid;
        margin: 3rem auto;
    }
    article > section:first-of-type {
        border-top: 0;
    }
a {
    color: inherit;
}
li > ol,
li > ul {
    margin-top: 0.5rem;
}
ol > li {
    list-style-type: decimal;
}
ol > li > ol > li {
    list-style-type: lower-latin;
}
li {
    margin-bottom: 0.75rem;
    line-height: 1.4rem;
}
dl {
    display: grid;
    position: relative;
    grid-gap: 1rem 1.5rem;
    grid-template-columns: max-content;
}
dt {
    font-weight: bold;
    margin-left: 1.5rem;
    position: relative;
    line-height: 1.25;
}
    dt::before {
        content: '\2192';
        position: absolute;
        left: -1.5rem;
        line-height: 1;
    }
dd {
    margin: 0;
    grid-column-start: 2;
    line-height: 1.25;
}
fieldset {
    margin: 2rem 0;
}
fieldset legend {
    font-size: 1.1em;
    font-weight: bold;
}



/*******************************************/
/* DEFAULT COLOURS
/*******************************************/
body {
    background-color: var(--color-dustBold);
    color: var(--color-midnight);
    border-color: var(--color-midnight);
}
    svg path {
        fill: var(--color-midnight);
    }
button, a.button, input.button {
    background-color: transparent;
    color: inherit;
}
    button:hover, a.button:hover, input.button:hover {
        background-color: var(--color-midnight);
        color: var(--color-dust);
        border-color: var(--color-midnight);
    }
    @media (prefers-color-scheme: dark) {
        body {
            background-color: var(--color-midnight);
            color: var(--color-dust);
            border-color: var(--color-dust);
        }
        svg path {
            fill: var(--color-dust);
        }
        button:hover, a.button:hover, input.button:hover {
            background-color: var(--color-dust);
            color: var(--color-midnight);
            border-color: var(--color-dust);
        }
    }


/*******************************************/
/* COLOUR THEMES
/*******************************************/
@media screen {
    [data-section-theme="midnight"] {
        background-color: var(--color-midnight);
        color: var(--color-dust);
        border-color: var(--color-dust);
    }
        [data-section-theme="midnight"] svg path {
            fill: var(--color-dust);
        }
        [data-section-theme="midnight"] button:hover,
        [data-section-theme="midnight"] a.button:hover
        [data-section-theme="midnight"] input.button:hover {
            border-color: var(--color-dust);
            background-color: var(--color-dust);
            color: var(--color-midnight);
        }
    [data-section-theme="love"] {
        background-color: var(--color-love);
        color: var(--color-midnight);
        border-color: var(--color-midnight);
    }
        [data-section-theme="love"] svg path {
            fill: var(--color-midnight);
        }
    [data-section-theme="dust"] {
        background-color: var(--color-dustBold);
        color: var(--color-midnight);
        border-color: var(--color-midnight);
    }
        [data-section-theme="dust"] svg path {
            fill: var(--color-midnight);
        }
        @media (prefers-color-scheme: dark) {
            [data-section-theme="dust"] {
                background-color: var(--color-midnight);
                color: var(--color-dust);
                border-color: var(--color-dust);
            }
            [data-section-theme="dust"] svg path {
                fill: var(--color-dust);
            }
        }
}
/*******************************************/



.print {
    display: none !important;
}
button, a.button, input.button {
    display: inline-block;
    margin: 1rem 0;
    padding: 1rem 2rem;
    text-decoration: none;
    font-size: 1.1rem;
    text-align: center;
    border-width: 0.15em;
    border-style: solid;
}

#header {
    padding: 1rem calc(max(1rem,3vw));
}
#main > article,
#main > section,
#footer {
    padding: 1rem calc(max(1rem,3vw)) 6rem;
}

#header {
    position: relative;
    padding-top: 2rem;
    padding-bottom: 2rem;
}
    #header h1 {
        margin-top: 0;
        padding-bottom: 0;
    }
    #header a {
        text-decoration: none;
        display: inline-block;
    }
        #header a.mfbcWordmark {
            font-size: var(--clamp-h4);
            font-weight: bold;
        }
        #header a.mfbcWordmark .BC {
            font-weight: 300;
        }
#siteBanner {
    position: relative;
    min-height: calc(min(38rem,75vh));
}
    #siteBanner > * {
        position: relative;
    }
    #siteBanner::before {
        content: ' ';
        position: absolute;
        top: -6rem;
        left: 0;
        width: 100%;
        height: 100%;
        min-height: calc(min(46rem,85vh));
        background-image: url('/images/backgroundHeart.webp');
        background-position: 80% 55%;
        background-repeat: no-repeat;
        background-size: auto 100%;
        filter: brightness(90%);
    }
        @media (prefers-color-scheme: dark) {
            #header.siteBanner::before {
                filter: brightness(85%);
            }
        }
    #siteBanner h2 {
        margin-top: clamp(0rem, calc(-9.375rem + 33.75vh), 7.5rem);
    }
    #siteBanner .subheader,
    .importantMessage {
        font-size: var(--clamp-h6);
        margin: 0.5rem 0;
        font-weight: bold;
        line-height: 1.4;
    }
    .importantMessage {
        font-size: var(--clamp-h5);
    }


section#whenwhere {
    padding-bottom: 1rem;
}
    #whenwhere p {
        line-height: 1.1;
        font-size: var(--clamp-h6);
        font-weight: bold;
    }
    @media (min-width: 700px) {
        #whenwhere p {
            display: inline-block;
            width: 49%;
        }
        #whenwhere p:last-child {
            text-align: right;
        }
    }


#visual {
    position: relative;
    height: clamp(18rem, 9rem + 45vw, 40rem);
    overflow: hidden;
}
    #visual img {
        position: absolute;
        left: 0;
        bottom: 0;
        height: 100%;
        width: 100%;
        object-fit: cover;
        object-position: 50% 50%;
        z-index: 0;
    }
    #visual video {
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 50% 40%;
        z-index: 1;
    }


#whatis {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch;
    align-content: stretch;
    gap: 3rem;
}
    #whatis h2 {
        width: 100%;
    }
    #whatis figure {
        flex-basis: 100%;
        flex-grow: 1;
        display: inline-block;
        margin: 0;
    }
    #whatis figure img {
        width: 5rem;
        height: 5rem;
    }
    @media (prefers-color-scheme: dark) {
        #whatis figure:nth-of-type(2) img {
            filter: invert(1);
        }
    }
    @media screen and (min-width: 700px) {
        #whatis figure {
            flex-basis: 40%;
        }
        #whatis figure h3 {
            word-spacing: 25vw;
        }
        #whatis details {
            min-height: 7.75rem;
        }
    }
    @media screen and (min-width: 800px) {
        #whatis details {
            min-height: 6.5rem;
        }
    }
    @media screen and (min-width: 1200px) {
        #whatis figure {
            flex-basis: 20%;
        }
        #whatis details {
            min-height: 7.75rem;
        }
    }
    @media screen and (min-width: 2000px) {
        #whatis figure h3 {
            word-spacing: unset;
        }
        #whatis details {
            min-height: 6.5rem;
        }
    }

details {
    border-top: 0.1rem solid;
    border-bottom: 0.1rem solid;
}
    summary {
        display: block;
        width: 100%;
        padding: 2rem 2.5rem 2rem 0;
        position: relative;
    }
        summary::marker,
        summary::-webkit-details-marker {
            display: none;
        }
    summary::after {
        content: ' ';
        position: absolute;
        right: 0.25rem;
        top: 1.8rem;
        border-style: solid;
        border-width: 0 0.1rem 0.1rem 0;
        display: inline-block;
        padding: 0.5rem;
        transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
    }
    details[open] summary::after {
        top: 2.4rem;
        transform: rotate(-135deg);
        -webkit-transform: rotate(-135deg);
    }

#main > section#exhibitors {
    padding-top: 6rem;
}
    #exhibitors figure {
        overflow: hidden;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: stretch;
        align-content: stretch;
        gap: 0;
        max-width: 90rem;
        margin: 0;
    }
    #exhibitors figcaption {
        background-image: url('/images/gradientSunset.jpg');
        background-size: cover;
        font-size: var(--clamp-h5);
        line-height: 2;
        padding: 4rem 2rem;
        height: max-content;
        flex-grow: 1;
        align-self: stretch;
        color: var(--color-midnight);
    }
    #exhibitors figure img {
        height: 12rem;
        width: 100%;
        flex-grow: 1;
        align-self: stretch;
    }
        #exhibitors figure img {
            display: block;
            object-fit: cover;
            object-position: 50% 50%;
        }
    #exhibitors blockquote {
        font-size: var(--clamp-h5);
        max-width: 70rem;
        margin: 3rem auto;
        padding: 0 4rem;
    }
        #exhibitors blockquote p {
            font-style: italic;
        }
        #exhibitors cite {
            display: block;
            text-align: right;
            font-size: 1.1rem;
            padding: 1rem 0;
        }
    @media screen and (min-width: 700px) {
        #exhibitors figcaption {
            padding: 4rem;
        }
    }
    @media screen and (min-width: 1200px) {
        #exhibitors figure {
            margin: 0 auto;
        }
        #exhibitors figcaption {
            height: auto;
            width: 30%;
            padding: 7rem 4rem;
        }
        #exhibitors figure img {
            height: unset;
            min-height: 20rem;
            width: 70%;
        }
    }


#worship {
}
    #worship figure {
        padding-top: 3rem;
        overflow: hidden;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: stretch;
        align-content: stretch;
        gap: 0;
        max-width: 90rem;
        margin: 0;
    }
        #worship figure::after {
            content: ' ';
            height: 2rem;
            display: flex;
            width: 100%;
            background-image: url('/images/textureEuropeana-wMb9Kt_qjJA-unsplash_slice.webp');
            background-size: 70%;
            background-position: center;
        }
    #worship figcaption {
        background-image: url('/images/gradientOrange.jpg');
        background-size: cover;
        font-size: var(--clamp-h5);
        line-height: 2;
        padding: 4rem 2rem;
        height: max-content;
        flex-grow: 1;
        align-self: stretch;
    }
        @media (prefers-color-scheme: dark) {
            #worship figcaption {
                filter: brightness(90%);
            }
        }
        #worship blockquote {
            margin: 0;
            padding: 0;
            color: var(--color-midnight);
        }
        #worship cite {
            display: block;
            text-align: right;
            font-size: 1.1rem;
            padding: 1rem 0;
        }
    #worship figure img {
        height: 24rem;
        width: 100%;
        flex-grow: 1;
        align-self: stretch;
    }
        #worship figure img {
            display: block;
            object-fit: cover;
            object-position: 50% 38%;
        }
    @media screen and (min-width: 700px) {
        #worship figcaption {
            padding: 4rem;
        }
    }
    @media screen and (min-width: 1200px) {
        #worship figure {
            margin: 0 auto;
        }
        #worship figcaption {
            height: auto;
            width: 50%;
            padding: 7rem 4rem;
        }
        #worship figure img {
            height: unset;
            min-height: 32rem;
            width: 50%;
        }
    }


#footer {
    border-top: 0.5px inset var(--color-dust);
    padding-top: 4rem;
    --size-h2: var(--size-h2) * 0.7;
    --size-h3: var(--size-h3) * 0.7;
    --size-h4: var(--size-h4) * 0.7;
}
    #footer section {
        margin-bottom: 8rem;
        break-inside: avoid-column;
    }
    @media screen and (min-width: 1000px) {
        #footer {
            column-count: 2;
        }
    }

#branding {
}
    #branding h2 {
        margin-top: 0;
    }
    #branding p {
        font-size: 1.2rem;
        margin: 2rem 0;
        line-height: 1.8;
    }
    #branding p.presentedBy {
        font-style: italic;
    }
    #branding p.presentedBy img {
        display: inline-block;
        margin-top: 0.75rem;
    }
#socialMedia {
}
    #socialMedia a {
        display: inline-block;
        margin-right: 2rem;
    }
    #socialMedia svg {
        height: 3rem;
        width: 3rem;
    }


#mailchimpSignup {
}
    #mailchimpSignup h2 {
        margin-top: 0;
        margin-bottom: 0.5rem;
    }
    #mailchimpSignup h4 {
        margin-bottom: 0;
    }

    form .indicates-required p {
        display: inline-block;
        margin: 0 0 0 0.5rem;
    }
        form .indicates-required p.description {
            font-style: italic;
        }
    form .field-group,
    form .indicates-required {
        padding-left: 1rem;
        margin-bottom: 1rem;
    }
    label {
        display: block;
        line-height: 1.4;
        padding: 0.5rem;
    }
    #mailchimpSignup label {
        display: inline-block;
    }
    #mailchimpSignup form .text label {
        position: relative;
        width: 0;
    }
    #mailchimpSignup form label .textlabel {
        position: absolute;
        left: -5000rem;
    }
    form .asterisk,
    form .required label:before {
        content: '*';
        position: relative;
        display: inline-block;
        margin-left: -1rem;
        top: 0.75rem;
        color: red;
        font-size: 2rem;
    }
    form .input-group {
        padding: 1rem 0;
        margin-bottom: 0;
    }
    form ul {
        position: relative;
        margin-top: 0;
        margin-bottom: 0;
        list-style-type: none;
    }
    form .input-group li {
        margin-bottom: 0.5rem;
        line-height: 2.2;
    }
    input[type="text"],
    input[type="email"] {
        border-radius:0;
        padding: 0.5rem;
        border-width: 0.02rem;
        border-style: solid;
        font-size: 1.1rem;
        width: 90%;
    }
        #footer input[type="text"],
        #footer input[type="email"] {
            padding: 1rem;
            width: auto;
        }
    input[type="checkbox"] {
        display: inline-block;
        position: absolute;
        left: 1rem;
        height: 2rem;
    }
    select {
        line-height: 1.4;
        padding: 0.5rem;
        font: inherit;
        font-size: 1rem;
        width: 90%;
    }
    option {
        white-space: wrap;
        height: unset !important;
        min-height: 38px;
    }
    textarea {
        width: 90%;
        font: inherit;
        font-size: 1rem;
    }


@media print {
    * {
        background: none;
        background-color: transparent;
    }
    html {
        font-size: 95%;
    }
    #header {
        min-height: unset;
    }
        #header::before {
            filter: none;
        }
    a[href]::after {
        display: block;
        content: '[ ' attr(href) ' ]';
    }
    #mailchimpSignup {
        display: none;
    }
    .screen {
        display: none !important;
    }
    .print {
        display: revert !important;
    }
}
