:root{
    --fs-primary:#008cba;
    --fs-secondary:#eee;
    --fs-success:#43ac6a;
    --fs-info:#5bc0de;
    --fs-warning:#e99002;
    --fs-danger:#f04124;
    --fs-light:#eee;
    --fs-dark:#222;
    --fs-medium: #888;
    --fs-white: #fff;

    --fs-font-sans-serif:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";

    --fs-font-wieght-normal: 300;
    --fs-font-weight-bold: 500;
    --fs-font-size-x-small: .5rem;
    --fs-font-size-small: .75rem;
    --fs-font-size-normal: 1rem;
    --fs-font-size-large: 1.5rem;
    --fs-font-size-x-large: 2rem;
    --fs-font-size-xx-large: 3rem;
    --fs-font-size-hero: 5rem;

    --fs-body-font-family:var(--fs-font-sans-serif);
    --fs-body-font-weight:300;
    --fs-body-line-height:1.5;
    --fs-body-color:var(--fs-dark);
    --fs-body-bg: var(--fs-light);

    --fs-hdr-font-size:2rem;
    --fs-hdr-font-weight:300;
    --fs-hdr-color:var(--fs-secondary);

    --fs-hdr-link-font-size:1rem;
    --fs-hdr-link-font-weight:300;
    --fs-hdr-link-color:var(--fs-secondary);

    --fs-con-hdr-font-size: 1.5rem;
    --fs-con-hdr-font-weight: 300;
    --fs-con-hdr-color: var(--fs-dark);

    --fs-ftr-font-size: .75rem;
    --fs-ftr-font-weight: 300;
    --fs-ftr-color: var(--fs-light);

    --fs-border-width:1px;
    --fs-border-style:solid;
    --fs-border-color:#dee2e6;
    --fs-border-color-translucent:rgba(0, 0, 0, 0.175);
    --fs-border-radius:0;
    --fs-border-radius-sm:0;
    --fs-border-radius-lg:0;
    --fs-border-radius-xl:1rem;
    --fs-border-radius-2xl:2rem;
    --fs-border-radius-pill:50rem;

    --fs-link-color:var(--fs-dark);
    --fs-link-hover-color:#007095;
    --fs-code-color:#e83e8c;
    --fs-highlight-bg: #fbe9cc;
}


html, body, .viewport {
    width: 100%;
    height: 100%;
    margin: 0px;
}

html {
    font-size: 100%;
}

body {
    font-family: var(--fs-font-sans-serif);
    font-weight: var(--fs-font-wieght-normal);
    font-size: var(--fs-font-size-normal);
    line-height: var(--fs-body-line-height);
    color: var(--fs-body-color);
    background-color: var(--fs-body-bg);
}

a {
    text-decoration: none;
    color: var(--fs-link-color);
}




/* Top Level Layout */

.layout {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    min-height: 100vh;
}


/* Header */

.hdr {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--fs-primary);
    padding: .5rem;
    width: 100%;
}

.hdr-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.hdr-logo-link {
    color: var(--fs-hdr-color);
    font-size: var(--fs-hdr-font-size);
    font-weight: var(--fs-hdr-font-weight);
    display: flex;
    align-items: center;
}

.hdr-logo-img {
    padding-right: 0px;
    vertical-align: middle;
    height: var(--fs-hdr-font-size);
    width: var(--fs-hdr-font-size);
    fill: var(--fs-hdr-color);
}

.hdr-nav-link {
    color: var(--fs-hdr-link-color);
    font-size: var(--fs-hdr-link-font-size);
    font-weight: var(--fs-hdr-link-font-weight);
}

a.hdr-nav-link:hover {
    text-decoration: underline;
}


.hdr-mobile-nav-btn {
    background-color:var(--fs-primary) ;
    border: var(--fs-primary) var(--fs-border-width) var(--fs-border-style);
}


.hdr-mobile-nav-btn > svg {
    pointer-events: none; /* pass events through to button */
    fill: var(--fs-hdr-color);
    height: var(--fs-hdr-font-size);
    width: var(--fs-hdr-font-size);
}

.hdr-nav-list {
    list-style-type: none;
    display: flex;
    justify-self: flex-end;
    margin: 0px;
    padding: 0px;
    gap: 16px;
}

.hdr-nav-list-mobile {
    list-style-type: none;
    display: flex;
    flex-direction: column;
    margin: 0px;
    padding: 0px;
    gap: .5rem;
}

.mobile-nav-list {
    align-self: flex-end;
    padding-right: 1.5rem;
}





/* Footer */

.ftr {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--fs-dark);
    padding: 1.25rem;
    margin-top: 2.5rem;
    color: var(--fs-ftr-color);
}

.ftr-copy {
    color: var(--fs-ftr-color);
    font-size: var(--fs-font-size-normal);
    font-weight: var(--fs-ftr-font-weight);
}

.ftr-box {
    display: flex;
    justify-content: space-between;
}

.git-img {
    fill: var(--fs-white);
    width: 2rem;
    height: 2rem;
}





/* Content */

.con {
    display: flex;
    flex: 1;
    flex-grow: 1;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.con-hdr {
    display: flex;
    justify-content: space-between;
    margin-top: 1.25rem;
    align-items: center;
}

.con-body {
    gap: 2rem;
}

.con-box {
    margin: .5rem .5rem;
    border: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-radius: var(--fs-border-radius-lg);
    padding: .75rem;
    background-color: var(--fs-white);
}

.con-box-hdr {
    display: flex;
    justify-content: space-between;
}

.con-box-hdr-text {
    display: flex;
    flex-direction: column;
}

.con-box-hdr-title {
    font-size: var(--fs-con-hdr-font-size);
    font-weight: var(--fs-con-hdr-font-weight);
    color: var(--fs-con-hdr-color);
    display: flex;
    justify-content: space-between;
}

.con-box-hdr-title > a:hover {
    text-decoration: underline;
}


.con-box-hdr-subtitle {
    font-size: smaller;
    color: var(--fs-medium);
}

.con-box-body {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}

.con-hdr-title {
    font-size: var(--fs-con-hdr-font-size);
    font-weight: var(--fs-con-hdr-font-weight);
    color: var(--fs-con-hdr-color);
    display: flex;
    align-items: flex-start;
    align-content: flex-start;
}


.con-hdr-img {
    vertical-align: middle;
    height: 4rem;
    margin-right: 2.5rem;
}



/* Filters */
.con-fltr {
    gap: .5rem;
    border-top: lightgray 1px solid;
    padding: 5px 5px;
    margin: 5px;
    color: black;
    font-size: small;
    display: flex;
}

.con-fltr-btns {
    display: flex;
    align-items: center;
    font-size: medium;
}

.con-fltr-lgnd {
    display: flex;
    margin: 0px;
    padding: 0px;
    gap: 1rem;
    font-size: var(--fs-font-size-normal);
}

.con-fltr-btn-active {
    background-color: var(--fs-info);
    color: var(--fs-secondary);
}

.con-fltr-btn-inactive {
    background-color: var(--fs-white);
    color: var(--fs-mendium);
}

.con-fltr-btn {
    padding: .5rem .75rem .5rem .75rem;
    margin: .5rem;
    height: fit-content;
    border: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-radius: var(--fs-border-radius-pill);
    font-size: var(--fs-font-size-normal);
}

.con-fltr-btn:hover {
    background-color: var(--fs-info);
    color: var(--fs-secondary);
}









/* Forecast Summary */

.fcst-sum {
    margin: .75rem .5rem;
    border: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-radius: var(--fs-border-radius-lg);
    padding: .75rem;
    background-color: var(--fs-white);
}

.fcst-sum-hdr {
    display: flex;
    justify-content: space-between;
}

.fcst-sum-hdr-text {
    display: flex;
    flex-direction: column;
}

.fcst-sum-hdr-title {
    font-size: var(--fs-con-hdr-font-size);
    font-weight: var(--fs-con-hdr-font-weight);
    color: var(--fs-con-hdr-color);
    display: flex;
    justify-content: space-between;
}

.fcst-sum-hdr-title > a:hover {
    text-decoration: underline;
}


.fcst-sum-hdr-subtitle {
    font-size: smaller;
    color: var(--fs-medium);
}

.fcst-sum-body {
    display: flex;
    flex: 1;
}

.fcst-sum-prev {
    margin: .5rem;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    border-right: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
}

.fcst-sum-today {
    margin: .5rem;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.fcst-sum-next {
    flex-basis: 100%;
    max-width: fill-available;
    max-width: stretch;
    margin: .5rem;
    display: flex;
    flex-direction: column;
    align-content: space-between;
    justify-content: space-between;
}

.fcst-sum-title {
    display: flex;
    justify-content: center;
    text-align: center;
    padding: .25rem;
    align-items: space-between;
    flex-direction: column;
    font-weight: var(--fs-font-weight-bold);
}



.fcst-sum-table-cell {
    padding: .2rem .5rem;
    text-align: center;
}


.fcst-sum-next-span {
    flex: 1;
    border-top: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-left: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-right: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    padding: .25rem;
}


.fcst-sum-today-span {
    padding: .25rem;
}

.fcst-sum-prev-today {
    display: flex;
    flex-wrap: nowrap;
    flex-basis: 100%;
}




/* favorite button */

.fav-btn {
    background-color: var(--fs-white);
    border:none;
    padding: 0px;
    height: 1.5rem;
}

/* make it so the pointer events pass through the svg to the button */
.fav-btn > svg {
    pointer-events: none;
    fill: var(--fs-warning);
    height: 1.5rem;
    width: 1.5rem;
}

.hidden {
    display: none;
}

.showing {
    display: block;
}



/* Info Boxes */

.info {
    margin: .5rem .2rem;
    padding: .5rem;
    border: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-radius: .5rem;
}

.info-hdr {
    font-size: 1.5rem;

}

.info-body {
    gap: .75rem;
}

.info-map {
    display: flex;
    flex-direction: column;
}

.info-text {
    padding: .75rem;
    font-size: var(--fs-font-size-large);
}

.info-img-box {
    float: right;
    padding: 0px 0px 0px 0px;
    display: flex;
    flex-direction: column;
}

.info-resort-list {
    display: flex;
    justify-content: center;
    width: 100%;
}

.info-resort-column {
    flex: 1;
}

.info-table {
    padding: .5rem;
    width: 100%;
}



.info-value-good {
    color: var(--fs-success);
    text-align: center;
}

.info-value-bad {
    color: var(--fs-danger);
    text-align: center;
}

.info-value {
    text-align: center;
}

.info-table-label {
    text-align: right;
}






/*  About Page */

.hero-pane {
    width: 100%;
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 100px 0px 100px 0px;
    background-color: var(--fs-primary);
    background: url("/static/images/aaron-doucett-wcnLUi-s-eQ-unsplash.jpg") 50% 50%  no-repeat;
    min-height: 500px;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.hero-box {
    display: flex;
    flex-direction: column;
    background: rgba(0, 0, 0, 0.5);
    text-align: center;
    padding: .75rem;
}

.hero-main-title {
    font-size: var(--fs-font-size-hero);
    font-weight: var(--fs-font-weight-bold);
    color: var(--fs-secondary);
    opacity: 1;
}

.hero-subtext {
    font-size: var(--fs-font-size-x-large);
    color: #e5e7eb;
}

/* Alert Box */

.alert {
    margin: .75rem .25rem .75rem .25rem;
    border: none;
    border-radius: var=var(--fs-border-radius);
    padding: 1rem;
    background-color: var(--fs-info);
    font-size: 2rem;
    font-weight: var(--fs-font-wieght-normal);
    color: var(--fs-secondary);
    text-align: center;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.alert-link {
    text-decoration: none;
    color: var(--fs-secondary);
}

.alert-link:hover {
    text-decoration: underline;
}

.alert-pane {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--fs-info);
    width: 100%;
    padding: 2rem 0 2rem 0;
}

.action-button {
    padding: 8px 20px;
    border: var(--fs-border-color) var(--fs-border-width) var(--fs-border-style);
    border-radius: .5rem;
    background-color: var(--fs-light);
    color: var(--fs-dark);
    font-weight: bold;
    font-size: 18px;
}


.about-pane {
    width: 100%;
    display: flex;
    justify-content: center;
}

.about-box {
    margin: .5rem .5rem;
    padding: 1rem;
}

.aboutbox-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.resorts-pane {
    display: flex;
    justify-content: center;
    background-color: var(--fs-primary);
    width: 100%;
    padding: 2rem 0 2rem 0;
}

.resorts-box {
    margin: .5rem .5rem;
    padding: .75rem;
    color: var(--fs-light);
    font-size: var(--fs-font-size-large);
}

.resorts-title {
    width: 100%;
    text-align: center;
    font-size: var(--fs-font-size-x-large);
    font-weight: var(--fs-font-weight-bold);
    padding: 1rem;
}

.credits-title {
    font-size: var(--fs-font-size-x-large);
    
}

.credits-table {
    width: 100%;
    font-size: var(--fs-font-size-normal);
}

.credits-table-hdr {
    font-weight: var(--fs-font-weight-bold);
}

.resource-pane {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem;
    justify-content: center;
}

.resource-box {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    width: 13rem;
}

.resource-img {
    border-radius: .5rem;
    width: 10rem;
}

.resource-text {
    font-size: var(--fs-font-size-normal);
}

.resource-text a {
    text-decoration: underline;
    color: var(--fs-primary);
}

.resource-meteo {
    background: url('/static/images/open-meteo.jpeg') 50% 50% no-repeat; /* 50% 50% centers image in div */
    width: 13rem;
    height: 13rem;
    border-radius: 1rem;
}

.resource-photo {
    background: url('/static/images/aaron-doucett-wcnLUi-s-eQ-unsplash.jpg') 50% 50% no-repeat; /* 50% 50% centers image in div */
    width: 13rem;
    height: 13rem;
    border-radius: 1rem;
}


/* Typography */

.image-icon {
    vertical-align: middle;
}

.image-icon > path {
    stroke: var(--fs-medium);
    stroke-width: .001rem;
}

.amount {
    font-size: 2rem;
    text-align: center;
    font-weight: var(--fs-font-weight-bold);
    color:var(--fs-info);
}

.measure {
    font-size: .75rem;
    text-align: center;
    color:var(--fs-info);
}

.footnote {
    font-size: small;
    text-align: center;
    font-weight: bold;
}

.resort-open {
    color: var(--fs-success);
}

.resort-closed {
    color: var(--fs-danger);
}

.day {
    text-align: center;
    font-size: .75rem;
}

.temp {
    text-align: center;
    font-size: .75rem;
}






/* Media Queries */
/* Small Screens */
@media screen and (max-width: 920px) {
    html {
        font-size:95%;
    }
    .hdr-nav, .con-box, .con-hdr, .con-fltr, .alert, .ftr-box, .hero-box, .about-box, .resorts-box {
        width: 90%;
    }
    .large-forecast, .con-hdr-img, .hdr-nav-list {
        display: none;
    }
    
    .info-resort-list, .con-fltr {
        flex-direction: column;
        align-items: center;
    }

    .hdr-mobile-nav-btn {
        display: block;
    }
    
    .fcst-sum-body {
        flex-direction: column;
        align-items: center;
        flex-wrap: wrap;
    }

    .info-img {
        width: 100%;
    }

    .hero-main-title {
        font-size: var(--fs-font-size-xx-large);
    }

    .detail-table {
        font-size: 80%;
    }

    .hero-pane {
        background-attachment: scroll;
    }

}

/* Large Screens */
@media screen and (min-width: 920px) {
    .hdr-nav, .con-box, .con-hdr, .con-fltr, .alert, .ftr-box, .hero-box, .about-box, .resorts-box {
        width: 880px;
    }
    .small-forecast, .hdr-mobile-nav-btn {
        display: none;
    }

    .con-hdr-img, .detail-table {
        display: block;
    }

    .con-fltr {
        justify-content: space-between;
        align-items: center;
    }

    .info-img {
        width: 100%;
    }

}