﻿.common-header {
    background-color: var(--footer-link-active-color);
    margin-bottom: 10px;
}

@media (max-width: 1199px) {
    .common-header .container {
        width: 100%;
        margin-left: 15px;
    }
}

.common-header h1 {
    font-size: clamp(20px, 2.5vw, 36px);
    font-family: Aleo;
    margin: 15px 0px 10px;
}

.navbar-default {
    background-color: var(--profile-color);
    color: #fff;
    border-bottom: 4px solid #fff;
    border-image-source: linear-gradient(to right, var(--profile-color-light), #fff 45%, #fff 55%, var(--profile-color-light));
    border-image-slice: 1;
}

.navbar-brand {
    position: fixed;
    width: 90px;
    height: 90px;
    left: 50%;
    top: 7.5px;
    margin-left: -45px !important;
    border-radius: 50%;
    background: #0f7164 url(/Images/new_logo.png) center center no-repeat;
    background-size: contain;
    transition: all .35s;
    background-blend-mode: screen;
    border: 4px solid #f8f8f8;
}

@media (max-width: 1000px) {
    .navbar-brand {
        height: 40px;
        width: 40px;
        left: 55px;
        top: 6px;
        border-width: 2px;
    }
}

.navbar-toggle {
    z-index: 3;
}

.background-startpage {
    background: url('/Images/Headers/bg_1940.jpg') center center repeat-x scroll;
}

.background-sf {
    background: url('/Images/Headers/sf.jpg') center center no-repeat scroll;
}

.background-nature-hills-sport-bike {
    background: url('/Images/Headers/nature-hills-sport-bike.jpg') center center no-repeat scroll;
}

.headerlogo {
    height: 170px;
    margin-top: 30px;
}

@media (max-width: 480px) {
    .headerlogo {
        height: 85px;
        margin-top: 15px;
    }
}

.fullwidthimage {
    width: 100%;
    height: 110px;
}

.container-full {
}

.puff-container {
    background-color: #f8f392;
    margin: 20px 0;
}

.contactInfo {
    margin-top: 15px;
    margin-bottom: 15px;
}

    .contactInfo .contactName {
        font-weight: bold;
        font-size: 16px;
    }

.alert-validation-summary ul {
    margin-bottom: 0px;
}

.divider-line {
    height: 1px;
    background-color: #999;
}

footer a {
    color: var(--footer-link-color);
}

    footer a:hover,
    footer a:focus {
        color: var( --footer-link-active-color);
    }

.footer-logo {
    margin: 10px 0 0 -10px;
    border-radius: 50%;
    background: #044e4b url(/Images/new_logo.png) no-repeat center center;
    background-size: contain;
    display: inline-block;
    width: 70px;
    height: 70px;
    background-blend-mode: lighten;
    transition: all .35s;
}

    .footer-logo:hover {
        background-color: var(--profile-color);
    }

@media (max-width: 1000px) {
    .navbar-header {
        float: none;
    }

    .navbar-left, .navbar-right {
        float: none !important;
    }

    .navbar-toggle {
        display: block;
    }

    .navbar-collapse {
        border-top: 1px solid transparent;
        box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
    }

    .navbar-fixed-top {
        top: 0;
        border-width: 0 0 1px;
    }

    .navbar-collapse.collapse {
        display: none !important;
    }

    .navbar-nav {
        float: none !important;
        margin-top: 7.5px;
    }

        .navbar-nav > li {
            float: none;
        }

            .navbar-nav > li > a {
                padding-top: 10px;
                padding-bottom: 10px;
            }

    .collapse.in {
        display: block !important;
    }
}

.refs {
    margin-top: 40px;
}

    .refs .row {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        justify-content: center;
    }

.alert-transparent {
    background-color: transparent;
}

/* Calendar styles */

.button-wrapper {
    display: flex;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto 5px;
    padding: 0 25px;
}

    .button-wrapper .btn {
        margin: 5px;
        min-width: 3.1em;
        background-color: #999;
        color: #fff;
        font-weight: 700;
        opacity: 0.85;
        transition-duration: .15s;
    }

        .button-wrapper .btn:hover {
            opacity: 1;
        }

        .button-wrapper .btn > span:first-of-type {
            margin-left: 1ex;
        }

    .button-wrapper .btn-calendar-all {
        background-color: #333;
    }

    .button-wrapper .btn-calendar-run {
        background-color: green;
    }

    .button-wrapper .btn-calendar-bike {
        background-color: #c93d8e;
    }

    .button-wrapper .btn-calendar-tri {
        background-color: orange;
    }

        .button-wrapper .btn-calendar-tri i {
            transform: rotate(-42.5deg);
            font-size: 1.3em;
            transform-origin: 67%;
        }

.calendar-wrapper h1 {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 65px;
    padding-left: 30px;
    font-size: 30px;
    font-weight: 900;
    font-family: 'Aleo';
}

.calendar {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
    max-width: 1200px;
}

    .calendar .month-divider {
        flex-basis: 100%;
        margin: 10px;
        padding: 6px 0 4px;
        background-color: #063359;
        color: #fff;
        text-align: center;
        font-weight: 700;
    }


    .calendar + .button-wrapper {
        text-align: center;
    }

.button-wrapper .btn-page {
    margin-top: 20px;
}

.subcomp-name {
    font-weight: bold;
    font-size: 16px;
}

.comp-info {
    display: block;
    font-size: 10px;
}

    .comp-info a {
        color: #333;
    }

.comp-signup {
    position: absolute;
    right: 20px;
    bottom: 5px;
}

/* Triathlon filter */

.filter-wrapper {
    position: sticky;
    top: 0;
    max-width: 1200px;
    margin: 0 auto 0;
    padding-top: 20px;
    background-color: #fff;
    z-index: 1;
}

h2.filter-header {
    margin: 0 17px 20px;
    padding: 6px;
    text-align: center;
    background-color: #063359;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.tri-icon-images {
    margin: 0 17px;
    padding-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    column-gap: .4em;
    justify-content: center;
    border-bottom: 1px solid #063359;
}

    .tri-icon-images input {
        margin-bottom: 1.25em;
    }

@supports selector(:has(+ *)) {
    .tri-icon-images input {
        display: none;
    }
}

.tri-icon-images img {
    filter: grayscale(1) contrast(.5);
    max-height: 40px;
}

.tri-icon-image-wrapper:has(input:checked) img {
    filter: none;
}

.tri-icon-image-wrapper {
    text-align: center;
    min-width: 56px;
}

    .tri-icon-image-wrapper label {
        margin-top: -1em;
        cursor: pointer;
    }

.tri-icon-label {
    font-size: .8em;
    color: #999;
    padding: 1px 2px;
    border-radius: 3px;
}

.tri-icon-image-wrapper:has(input:checked) .tri-icon-label {
    color: #fff;
    background-color: #5f9ea0;
}

.calendar.filtered .calendar-item:not(.filter-on) {
    display: none;
}

/* Calendar items */

.calendar-item {
    border: 1px solid #ccc;
    background-color: #fff;
    color: #344;
    margin: 15px 10px;
    box-shadow: 0 4px 8px rgb(0 0 0 / 10%);
    position: relative;
    flex-basis: 100%;
    flex-grow: 0;
    transition-duration: 200ms;
}

    .calendar-item:hover {
        box-shadow: 0 7px 10px rgb(0 0 0 / 25%);
    }

    .calendar-item a {
        color: #333;
    }

        .calendar-item a:hover, .calendar-item a:active {
            text-decoration: none;
        }

        .calendar-item a:focus {
            outline-color: #23527c;
            outline-offset: 0;
        }

            .calendar-item a:focus .info-box {
                background-color: #f8f8ff;
            }

    .calendar-item .race-banner {
        width: 100%;
    }

    .calendar-item .info-box {
        padding: 10px;
    }

        .calendar-item .info-box > div {
            margin-left: 2rem;
        }

    .calendar-item .race-icon {
        margin-left: -2rem;
        margin-right: .5rem;
        width: 1.5rem;
        text-align: center;
    }

    .calendar-item h3 {
        font-family: Aleo;
        font-size: 18px;
        font-weight: 700;
        text-overflow: ellipsis;
        max-width: 100%;
        margin-top: 5px;
        -webkit-font-smoothing: antialiased;
    }

    .calendar-item i.race-type-badge {
        position: absolute;
        left: -13px;
        top: -13px;
        display: inline-block;
        width: 2.5rem;
        height: 2.5rem;
        border-radius: 50%;
        font-size: 1.7rem;
        text-align: center;
        line-height: 1.5em;
        background-color: #999;
        color: #fff;
    }

    .calendar-item.type-0 i.race-type-badge {
        background-color: green;
    }

        .calendar-item.type-0 i.race-type-badge:before {
            content: "\f70c";
        }

    .calendar-item.type-1 i.race-type-badge {
        background-color: #c93d8e;
        font-size: 1.5rem;
        line-height: 1.6;
    }

        .calendar-item.type-1 i.race-type-badge:before {
            content: "\f84a";
        }

    .calendar-item.type-4 i.race-type-badge,
    .calendar-item.type-9 i.race-type-badge {
        background-color: orange;
        font-weight: 300;
        filter: none;
        transform: rotate(-45deg);
    }

        .calendar-item.type-4 i.race-type-badge:before,
        .calendar-item.type-9 i.race-type-badge:before {
            content: "\f39b";
        }

    .calendar-item .info-box > div.race-tri-icons-container {
        display: flex;
        flex-wrap: wrap;
        column-gap: 9px;
        row-gap: 10px;
        margin: 1em -15px 4px 3px;
    }

    .calendar-item .race-tri-icons-container img {
        height: 32px;
        max-width: calc((100% - 45px) / 6);
    }

    .calendar-item a.btn-results {
        float: right;
        margin: -45px 12px;
        background-color: #090;
        color: #fff;
        font-weight: 700;
        opacity: 0.65;
        transition-duration: .15s;
    }

        .calendar-item a.btn-results:hover {
            opacity: 1;
        }


.calendar .pagination-container {
    text-align: center;
    padding-top: 20px;
    flex-basis: 100%;
}

.btn-page {
    min-width: min(15em, calc(50% - 35px));
    margin-bottom: 1em;
    background-color: var(--profile-color);
    color: #fff;
    transition-duration: .15s;
}

    .btn-page:hover {
        color: #fff;
        background-color: var(--profile-color-dark);
    }

    .btn-page i {
        padding: 0 .5em;
        font-size: 1.5em;
        vertical-align: middle;
        line-height: 0;
    }

    .btn-page .hide-xs {
        padding: 0 .5em;
    }

@media (min-width: 600px) {
    .calendar-item {
        flex-basis: calc(50% - 20px);
    }

    .show-xs {
        display: none;
    }
}

@media (max-width: 599px) {
    .hide-xs {
        display: none;
    }
}

@media (min-width: 992px) {
    .calendar-item {
        flex-basis: calc(33.33% - 20px);
    }

    .show-s {
        display: none;
    }
}

@media (max-width: 991px) {
    .hide-s {
        display: none;
    }
}

@media (min-width: 1440px) {
    .calendar-item {
        flex-basis: calc(25% - 20px);
    }
}

/* Styling for Swedish Triathlon's in-frame */

.calendar-wrapper.no-headers {
    font-size: 11.5px;
    background-color: #fbfbfb;
}

    .calendar-wrapper.no-headers .calendar {
        padding: 7px;
    }

    .calendar-wrapper.no-headers .calendar-item .race-type-badge {
        display: none;
    }

    .calendar-wrapper.no-headers .calendar-item h3 {
        font-family: Georgia;
        font-size: 15px;
        font-weight: 400;
        color: #000;
    }

    .calendar-wrapper.no-headers .calendar-item .info-box > div {
        color: #666;
    }

/* end of Calendar styles */

.navbar-left li {
    border-right: 1px solid #eee;
    border-image-source: linear-gradient(transparent, rgba(255 255 255 / 50%), transparent);
    border-image-slice: 1;
}

.navbar-left li:first-of-type {
    border-left: 1px solid #eee;
}

.navbar-default .navbar-toggle .icon-bar {
    background-color: #fff;
}

.startpage-top {
    margin-bottom: 20px;
    background-color: var(--menu-item-level2-background-color);
    padding: 70px 0 20px;
    background-blend-mode: multiply;
}

@media (max-width: 1000px) {
    .startpage-top {
        padding-top: 30px;
    }
}

.startpage-top-content span {
    font-size: clamp(1.25em, 2vw, 2em);
    text-shadow: 0px 2px 5px #555, 3px 2px 10px #333;
    color: #fff;
    font-family: 'Aleo';
    letter-spacing: 0.75px;
}

.startpage-top-button {
    margin: 8px 15px;
    font-weight: 600;
    padding: .25em 1em;
    background-color: var(--profile-color-dark);
    color: #fff !important;
    box-shadow: 0 0 12px 2px white;
    border-color: #fff;
    transition-duration: .2s;
    font-size: clamp(18px, 2vw, 28px);
}

    .startpage-top-button:hover {
        background-color: var(--footer-background-color);
        border-color: #fff;
    }

.navbar-default .navbar-nav > li > a {
    color: #fff;
    transition: all .15s;
}

    .navbar-default .navbar-nav > li > a:hover,
    .navbar-default .navbar-nav > li > a:focus {
        color: #fff;
        background-color: var(--footer-background-color);
    }