
:root {
    --col-turquoise: #03bee3;

    --col-yellow: #ffd150;
    --col-yellow-hover: #ffc127;

    --col-light: #ffffff;
    --col-light-hover: #e8e8e8;

    --col-pink: #d60034;
    --col-pink-hover: #C70032;

    --col-deep-blue: #004762;


    --col-table-odd: #ffd076;
    --col-table-even: #ffdda3;

}


body {

    margin: 0px;
    padding: 0px;
    font-size: 18px;
    color: var(--col-deep-blue);
    font-family: 'Geologica', sans-serif;
    font-weight: 100;
}


h1 {
    font-size: 38px;
    font-family: 'Londrina Solid', sans-serif;
    color: var(--col-turquoise);
    text-transform: uppercase;
    margin-top: 48px;
}

h2 {
    /*text-transform: uppercase;*/
    font-size: 24px;
    color: var(--col-pink);
    margin-block-start: 0;
    margin-block-end: 0;
    margin: 20px 0px 10px 0px;
}

dark {
    font-weight: 300;
}

strong {
    font-weight: 600;
}

stronger {
    font-weight: 900;
}

.center {
    text-align: center;
}

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

.pink {
    color: var(--col-pink);
}

.btn-deep-blue {
    background-color: var(--col-deep-blue);
    color: white !important;
}

section.foh {
    height: 100vh;
    width: 100vw;
    display: grid;
    grid-auto-rows: min-content auto min-content;
    grid-template-areas: "foh-header" "foh-body" "foh-footer";
    background-image: url("/img/poster.webp");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    justify-content: center;

}

section.foh:after {
    background-color: rgba(255, 0, 0, 0.5);
}

div.container {
    width: min(85vw, 1100px);
    margin: auto;
}

div.foh-header {
    grid-area: foh-header;
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    width: min(85vw, 1100px);
    margin: 30px 0px;
    /*background-color: red;*/

}

div.foh-body {
    grid-area: foh-body;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: min(30px, 10vw);
    width: min(85vw, 1100px);
}


div.foh-body-logo {
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("/logos/defialpin.svg");
    width: min(214px, 40vw);
    height: min(280px, 30vh);
}

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

div.foh-body-date {
    font-size: min(66px, 14vw);
    font-family: 'Londrina Solid', sans-serif;
    color: white;
    text-align: center;
    margin:auto;
}

div.foh-body-inscription {
    font-size: min(56px, 12vw);
    font-family: 'Londrina Solid', sans-serif;
    color: var(--col-yellow);
    text-align: center;
    margin:auto;
}

div.foh-body-location {
    color: white;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    width: 100%;
    gap: 20px;
}

div.tracks {

}

div.foh-footer {
    grid-area: foh-footer;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    width: min(85vw, 1100px);
    margin: 20px 0;
    color: white;
}

a, a:visited {
    color: inherit;
    text-decoration: none;
}

a.link {
    color: var(--col-turquoise);
    text-decoration: none;
}

a.white-link {
    color: white;
}

a.white-link:hover {
    color: var(--col-yellow);
}

a.white-link svg {
    fill: #FFFFFF;
    width: 28px;
}

a.white-link:hover svg {
    fill: var(--col-yellow-hover);
    width: 28px;
}

#logo-entourage svg {
    width: 145px;
}

.btn {
    text-transform: uppercase;
    padding: 10px 20px;
    border-radius: 3px;
    border: 0px;
    font-size: 14px;
    cursor: pointer;
}

.btn-icon {

    display: flex;
    align-items: center;
    cursor: pointer;
}

.btn-icon svg {
    width: 30px;
}

.btn-icon line {
    stroke: #FFFFFF;
}

.btn-icon:hover line {
    stroke: var(--col-yellow-hover);

}

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

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


.btn-light {
    background-color: var(--col-light);
}

.btn-light:hover {
    background-color: var(--col-light-hover);
}

.btn-pink {
    background-color: var(--col-pink);
    color: white;
}

.btn-pink:visited {
    color: white;
}


.btn-pink:hover {
    background-color: var(--col-pink-hover);
}


div.table-responsive {
    max-width: 100%;
    overflow-x: scroll;
}

table.table {
    width: 100%;
    border: none;
    margin: 0px;
    /*border-collapse: collapse;*/
    /*border-spacing: 0;*/
    border-collapse: separate;
    border-spacing: 2px 0;


}

table.table thead td {
    font-weight: 800;
    background-color: var(--col-table-even);
    padding: 20px;
}

table.table tbody td {
    margin: 0;
    padding: 20px;
    font-weight: 400;
}

td.center {
    text-align: center;
}

td.middle {
    vertical-align: middle;
}

table.table tr:nth-child(even) {
    background-color: var(--col-table-even);
}

table.table tr:nth-child(odd) {
    background-color: var(--col-table-odd);
}


.collapsible-title {
    display: flex;
    justify-content: space-between;
    cursor: pointer;

    border-bottom: 1px solid var(--col-pink);

}

.collapsible-description {
    margin-top: 20px;
    display: none;

}

.hero {

    padding: 40px;
    background: radial-gradient(circle, rgba(0, 107, 128, 1) 10%, rgba(0, 71, 98, 1) 100%);
    color: white;
    text-transform: uppercase;
}

.hero div {
    text-align: center;
    margin: auto;
    font-weight: bold;
}

.angle-down {
    width: 23px;
}

.form-group {
    margin: 10px 0;
}

label {
    display: block;
    font-weight: 300;
    font-size: 12px;
}

.form-control {
    width: 90%;
    padding: 10px;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: 5px;
}

.alert {
    padding: 20px 0;
    margin: 20px 0;
}

.flash-message.success, .alert-success {
    padding: 20px;
    background-color: #d4edda; /* Light green background color for success message */
    color: #155724; /* Dark green text color for success message */
}

.flash-message.warning, .alert-warning {
    background-color: #fff3cd; /* Light yellow background color for warning message */
    color: #856404; /* Dark yellow text color for warning message */
}

.flash-message.info, .alert-info {
    background-color: #d1ecf1; /* Light blue background color for info message */
    color: #0c5460; /* Dark blue text color for info message */
}

.flash-message.error, .alert-danger {
    background-color: #f8d7da; /* Light red background color for error message */
    color: #721c24; /* Dark red text color for error message */
}


.footer {
    background-color: var(--col-deep-blue);
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    padding: 40px 0;
    color: white;
    gap: 20px
}

.copyright {
    margin-top: 10px;
    text-align: center;
    font-size: 10px;
}

div.responsive {
    overflow-x: scroll;
}


div.menu {
    width: 100vw;
    min-height: 100vh;
    z-index: 10;
    position: absolute;
    background: radial-gradient(circle, rgba(0, 107, 128, 1) 10%, rgba(0, 71, 98, 1) 100%);
    display: none;

    grid-auto-rows: min-content auto min-content;
    grid-template-areas: "menu-header" "menu-body" "menu-footer";
    transition: opacity 1s ease, visibility 1s ease;
}

div.menu-header {
    grid-area: menu-header;
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    width: min(85vw, 1100px);
    margin: 30px 0px;
}


div.menu-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    align-content: space-around;
    justify-content: center;
    gap: 20px;
    width: min(85vw, 1100px);
    margin: 20px 0px;

}

div.menu-body a {
    color: var(--col-light);
    text-transform: uppercase;
}


div.menu-body a:hover {
    color: var(--col-yellow-hover);
}


div.partenaires {

    display: grid;
    grid-template-columns: 1fr 1fr .6fr .6fr;
    justify-content: center;
    gap: 4vw;
}

div.commanditaires {
    display: grid;
    grid-template-columns: repeat(auto-fill, 175px);
    justify-content: center;
    gap: max(60px, 6vw) max(40px, 4vw);
}

a.partenaire {
    height: 100px;
    /*background-color: red;*/
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}


.d-none {
    display: none;
}

@media screen and (min-width: 576px) {
    .d-sm-block {
        display: block;
    }

}
