html {
    --yellow: #F8F1BD;
    --blue: #59BDFD;
    --gray: #ECEBE8;
    --track-size: 57rem;
    --page-padding: 1.2rem;
    --header-height: 7rem;
    --mobile-header-height: 7rem;
    --header-padding: 0.5rem;
    font-size: 1.1em;
}
body {
    display: flex;
    flex-direction: column;
    margin: 0;
}
* {
    box-sizing: border-box;
}
@font-face {
    font-family: alembiclogo;
    src: url("../assets/fonts/alembiclogov1.woff");
}
@font-face {
    font-family: alchemy;
    src: url("../assets/fonts/alcw-mi.woff");
}
@font-feature-values alchemy {
    @stylistic {
        alt: 2;
    }
}
@font-face {
    font-family: montserrat;
    src: url("../assets/fonts/montserrat.woff2");
}
@font-face {    
    font-family: montaga;
    src: url("../assets/fonts/montaga.woff2");
}
@font-face {
    font-family: cinzel;
    src: url("../assets/fonts/cinzel.woff2");
}
@font-face {
    font-family: inconsolata;
    src: url("../assets/fonts/Inconsolata.ttf");
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Light.woff2");
    font-weight: 200;
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Book.woff2");
    font-weight: 300;
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Regular.woff2");
    font-weight: 400;
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Medium.woff2");
    font-weight: 500;
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Semibold.woff");
    font-weight: 600;
}
@font-face {
    font-family: amethyst;
    src: url("../assets/fonts/AmethystPro-Bold.woff2");
    font-weight: 700;
}
.alt-glyph {
    font-variant-alternates: stylistic(alt);
}
.small-caps {
    font-variant: small-caps;
}
.no-ligature {
    font-variant-ligatures: none;
}
.discretionary-ligature {
    font-variant-ligatures: discretionary-ligatures;
}
#header {
    position: sticky;
    z-index: 1;
    background-color: #FFFFFF;
    left: 0;
    top: 0;
    width: 100%;
    height: var(--header-height);
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    padding-inline: var(--page-padding);
    padding-block: var(--header-padding);
    gap: 2rem;
    border-bottom: 1px solid #CCCCCC;
}
#logo, #mobile-logo {
    width: 5.21309rem; /* This line is needed for WebKit. */
}
#logo img {
    max-width: none;
    height: 100%;
}
#textlogo {
    color: black;
    text-decoration: none;
    align-self: flex-start;
}
#wordmark {
    font: 2.2rem alembiclogo;
}
#nav-split {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: 0.5rem;
}
#tagline {
    color: #515051;
    font: 1.08rem amethyst;
    font-weight: 500;
    margin-left: -0.05em;
    margin-top: -0.2rem;
    letter-spacing: 0.145em;
}
#nav {
    display: flex;
    flex-direction: row;
}
#mobile-header {
    display: none;
    position: sticky;
    z-index: 1;
    top: 0;
    flex-direction: row;
    justify-content: center;
    height: var(--mobile-header-height);
    background-color: white;
    border-bottom: 1px solid #CCCCCC;
    padding-block: var(--header-padding);
}
#mobile-logo img {
    max-width: none;
    height: 100%;
}
#hamburger-button {
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    width: 5rem;
    height: var(--mobile-header-height);
    background: url("/assets/images/hamburger.svg") no-repeat center / 1.5rem;
    top: 0;
    left: 0;
}
#hamburger-button.close {
    background: url("/assets/images/close.svg") no-repeat center / 1.5rem;
}
#mobile-menu {
    display: none;
    flex-direction: column;
    position: fixed;
    top: var(--mobile-header-height);
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    background-color: white;
    z-index: 1;
}
#mobile-menu-header {
    display: flex;
    flex-direction: row;
    justify-content: end;
    height: 2rem;
}
#mobile-menu-close {
    width: 5rem;
    background: url("/assets/images/close.svg") no-repeat center / 1.5rem;
}
.mobile-tab {
    padding: 1rem;
    font: 1rem montserrat;
    letter-spacing: 0.1rem;
    border-bottom: 1px solid #cccccc;
}
.mobile-tab span {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
}
.mobile-tab span::before {
    content: "";
    display: block;
    background: url("/assets/images/chevron.svg") no-repeat center / contain;
    transform: rotate(-90deg);
    width: 1em;
    height: 1em;
}
.mobile-tab.open span::before {
    transform: none;
}
.mobile-submenu {
    display: none;
    flex-direction: column;
    font: 1rem montserrat;
    letter-spacing: 0.05rem;
    padding: 1rem;
    padding-left: 3rem;
    border-bottom: 1px solid #cccccc;
}
.mobile-submenu a {
    padding-block: 0.5rem;
    color: black;
    text-decoration: none;
}
.mobile-submenu a:hover {
    text-decoration: underline;
}
.mobile-submenu.open {
    display: flex;
}
.nav-tab-block {
    user-select: none;
    padding-inline: 1.5rem;
    font: 0.9rem montserrat;
    letter-spacing: 0.1em;
    padding-block: 0.3rem;
    cursor: pointer;
}
.nav-tab:first-child .nav-tab-block {
    padding-left: 0;
}
.nav-tab.open span::before {
    transform: rotate(180deg);
}
.nav-tab-block span {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: center;
    position: relative;
    white-space: nowrap;
}
.nav-tab-block span::before {
    content: "";
    display: block;
    background: url("/assets/images/chevron.svg") no-repeat center / contain;
    width: 1em;
    height: 1em;
}
/*
.nav-tab.open span::after {
    content: "";
    position: absolute;
    bottom: -0.4rem;
    inset-inline: 0;
    height: 0.2rem;
    background-color: var(--blue);
    border-radius: 0.2rem;
}
*/
.nav-tab {
    position: relative
}
.nav-tab::after { /* invisble bottom extension for hover */
    content: "";
    cursor: pointer;
    position: absolute;
    inset-inline: 0;
    top: 100%;
    height: calc(var(--header-padding) + 1px); /* bottom padding + border */
}
.submenu {
    display: none;
    position: fixed;
    top: var(--header-height);
    min-height: 12rem;
    background: white;
    border-bottom: 1px solid #CCCCCC;
    inset-inline: 0;
    flex-direction: column;
    align-items: start;
    padding-top: 0.5rem;
    padding-bottom: 1rem;
    gap: 0.5rem;
}
.nav-tab.open .submenu {
    display: flex;
}
.submenu a {
    font: 0.9rem montserrat;
    letter-spacing: 0.05em;
    color: black;
    text-decoration: none;
}
.submenu a:hover {
    text-decoration: underline;
}
.submenu-row {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}
.submenu-column {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.submenu-list {
    display: flex;
    flex-direction: column;
    min-width: 11rem;
    gap: 0.5rem;
}
.submenu h1 {
    margin-top: 0.1rem;
    font: 0.9rem montserrat;
    font-weight: bold;
    letter-spacing: 0.1em;
}
#footer {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    background: #333333;
    margin-top: 10rem;
    padding-block: 3rem;
    padding-inline: 4rem;
    font: 0.9rem montserrat;
    color: #CCCCCC;
}
#footer-top {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}
#footer-logo-address-container {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 1rem;
}
#footer-address {
    font: 0.9rem montaga;
}
.footer-links {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
#footer-socials {
    display: flex;
    flex-direction: column;
    margin-top: -0.5rem;
}
#footer-socials img {
    width: 2rem;
    vertical-align: middle;
}
.footer-social-text {
    margin-left: 0.5rem;
}
.footer-links a, #footer-socials a {
    color: inherit;
    text-decoration: none;
}
.footer-links a:hover, #footer-socials a:hover {
    text-decoration: underline;
}
#footer-legal {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    color: #999999;
}
main {
    display: flex;
    flex-direction: column;
    padding-top: 2rem;
}
h1 {
    font-size: 3rem;
    margin: 0;
    font-weight: normal;
    font-family: alchemy;
}
h2 {
    font-size: 2rem;
    margin: 0;
    font-weight: normal;
    font-family: cinzel;
    text-transform: lowercase;
}
h3 {
    font-size: 0.9rem;
    font-weight: normal;
    letter-spacing: 0.1em;
    font-family: montserrat;
    margin-inline: 0;
    margin-block: 0.5em;
}
p, ul {
    margin-block: 0.1rem;
    font-family: amethyst;
    font-weight: 300;
    text-align: justify;
    font-size: 1.2rem;
    color: #222;
}
ul li::marker {
    font-size: 0.8rem;
}
p {
    text-indent: 1em;
    line-height: 1.6;
}
.no-indent {
    text-indent: 0;
}
button {
    all: unset;
}
.button {
    background-color: var(--blue);
    color: white;
    font: 0.8rem montserrat;
    padding-inline: 2em;
    padding-block: 0.8em;
    text-decoration: none;
    letter-spacing: 0.1em;
    text-align: center;
    cursor: pointer;
}
.button:hover {
    background-color: #4eaae2;
}
.collumn {
    display: flex;
    flex-direction: column; 
}
.flex-1 {
    flex: 1;
}
.self-center {
    align-self: center;
}
.center {
    text-align: center;
}
img {
    max-width: 100%;
    height: auto;
}
iframe {
    max-width: 100%;
}
.heading-group {
    text-align: center;
    line-height: normal;
}

.fine-print {
    margin-block: 0.5rem;
    line-height: 1.2;
    font-size: 1rem;
    font-weight: 200;
}

#hero {
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding-inline: var(--page-padding);
    padding-bottom: 1rem;
}

#hero-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    max-width: var(--track-size);
}

.hero-description {
    font-family: amethyst;
    font-size: 1.2rem;
    font-weight: 300;
    line-height: 1.6;
    max-width: 30rem;
    margin: 0 auto;
    color: #333;
    text-align: left;
    text-indent: 0;
}

.hero-description table {
    border-width: 1px;
    border-style: solid;
    border-color: #b2b2b2 #4c4c4c #4c4c4c #b2b2b2;
    border-spacing: 0;
    width: 100%;
    font: 1rem sans-serif;
    line-height: 1.2;
    margin-bottom: 2rem;
}

.hero-description td {
    border-width: 1px;
    border-style: solid;
    border-color: #4c4c4c #b2b2b2 #b2b2b2 #4c4c4c;
    padding: 5px;
}

.hero-description h2 {
    line-height: 1;
    margin-top: 0.5rem;
}


#about {
    display: flex;
    flex-direction: row;
    justify-content: center;
    background-color: var(--yellow);
    padding-inline: var(--page-padding);
    padding-top: 2rem;
    padding-bottom: 1rem;
}

#about-container {
    display: flex;
    flex-direction: column;
    flex: 1;
    max-width: calc(var(--track-size) + 2rem);
    gap: 1rem;
}

#about-container p {
    columns: 3;
    column-gap: 2.5rem;
    text-indent: 0;
}

.sow-container {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.color-strip {
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding-inline: var(--page-padding);
    padding-block: 1rem;
}

.yellow {
    background-color: var(--yellow);
}

.thin-section .color-strip-container {
    max-width: 40rem;
}

.heading-color-strip .color-strip-container {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto 1fr;
    gap: 0 5rem;
    grid-template-areas: 
        "image heading"
        "image body";
}

.heading-color-strip .color-strip-image {
    grid-area: image;
}

.heading-color-strip .color-strip-heading-group {
    grid-area: heading;
}

.heading-color-strip .color-strip-body {
    grid-area: body;
}

.color-strip-container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 5rem;
    max-width: var(--track-size);
    padding: 1rem;
    flex: 1;
}

.color-strip-image {
    align-self: center;
    justify-self: center;
}

.image-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.fc-end {
    display: flex;
    flex-direction: row;
    justify-content: center;
    padding-inline: var(--page-padding);
    padding-block: 2rem;
}

.fc-end-container {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 5rem;
    max-width: var(--track-size);
    flex: 1;
}

.fc-specs {
    flex: 1;
}

.fc-wallpaper {
    flex: 1;
    text-align: right;
}

.wallpaper-imgs {
    display: flex;
    flex-direction: row;
    margin-bottom: 0.5rem;
    gap: 0.5rem;
}

.wallpaper-img {
    object-fit: contain;
    min-height: 0;
    min-width: 0;
}

.wallpaper-res {
    font-family: amethyst;
    font-weight: 300;
    font-size: 1.2rem;
    color: #222;
}

#teeny-nav {
    display: grid;
    justify-content: center;
    gap: 4px;
    padding-inline: var(--page-padding);
    padding-block: 2rem;
    grid-template-columns: repeat(8, auto);
}

.category-link {
    height: 5rem;
    width: 6.5rem;
    display: flex;
}

.category-link a {
    display: flex;
    flex: 1
}

.category-link img {
    flex: 1;
    object-fit: cover;
}

[data-fancybox] {
    cursor: pointer;
}

@media (max-width: 800px) {
    #about-container p {
        columns: 1;
    }
    .color-strip-container, .fc-end-container {
        flex-direction: column;
        gap: 2rem;
    }
    .color-strip-image {
        order: -1;
    }
    .heading-color-strip .color-strip-container {
        display: grid;
        grid-template-rows: auto auto auto;
        grid-template-columns: 1fr;
        grid-template-areas:
            "heading"
            "image"
            "body";
    }
    .fc-wallpaper {
        text-align: left;
    }
    #teeny-nav {
        display: none;
    }
    .f-button.is-arrow.is-prev, .f-button.is-arrow.is-next {
        display: none;
    }
    #footer-top {
        flex-direction: column;
        gap: 1rem;
    }
    #footer-logo {
        align-self: center;
        margin-bottom: 1rem;
    }
    #footer-address {
        display: none;
    }
    .footer-links a {
        text-align: center;
    }
    #footer-socials {
        margin-top: 1rem;
        flex-direction: row;
        align-self: center;
        gap: 0.5rem;
    }
    .footer-social-text {
        display: none;    
    }
    #footer-legal {
        font-size: 0.7rem;
        flex-direction: column;
        align-items: center;
        gap: 0.3rem;
    }
}

@media (max-width: 1000px) {
    #header {
        display: none;
    }
    #mobile-header {
        display: flex;
    }
    #teeny-nav {
        grid-template-columns: repeat(4, auto);
    }
}