
/* Custom styles */

body {
    font-family: 'MabryRegular';
    font-weight: normal;
    font-size: 14px;
    overflow-x: hidden;
}

.text-bold {
    font-weight: 700;
}

.fixed {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
}

span.glyphicon-info-sign {
    color: #10466f;
}

ul.menu-items {
    display: none;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
}

.ui-widget {
    font-size: 1em
}

.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
    font-size: 1em
}

.navbar {
    padding-left: 15px;
    padding-right: 15px;
}

.navbar .logo {
    width: 50px;
    height: 50px;
    float: left;
}

.navbar-brand {
    font-family: MabryRegular;
    color: #FFF;
}

.navbar a {
    font-family: MabryRegular;
    color: #FFF;
}

.navbar-right {
    margin-right: -5px;
}

.navbar-default .navbar-brand {
    color: #fff
}

.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
    color: #fff;
    background-color: transparent
}

.navbar-inverse {
    background-color: #194642;
}

    .navbar-inverse .navbar-brand {
        color: #fff
    }

        .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {
            color: #fff;
            background-color: transparent
        }

    .navbar-inverse .navbar-text {
        color: #fff
    }

    .navbar-inverse .navbar-nav > li > a {
        color: #fff
    }

        .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
            color: #fff;
            background-color: transparent;
        }

        .navbar-inverse .navbar-nav > li > a.login-out-link {
            background: -webkit-linear-gradient(#4f738c, #13294b); /* For Safari 5.1 to 6.0 */
            background: -o-linear-gradient(#4f738c, #13294b); /* For Opera 11.1 to 12.0 */
            background: -moz-linear-gradient(#4f738c, #13294b); /* For Firefox 3.6 to 15 */
            background: linear-gradient(#4f738c, #13294b); /* Standard syntax */
            background-color: #4f738c;
            text-transform: uppercase;
        }

            .navbar-inverse .navbar-nav > li > a.login-out-link:hover, .navbar-inverse .navbar-nav > li > a.login-out-link:focus {
                color: #fff;
                background: -webkit-linear-gradient(#4f738c, #4f738c); /* For Safari 5.1 to 6.0 */
                background: -o-linear-gradient(#4f738c, #4f738c); /* For Opera 11.1 to 12.0 */
                background: -moz-linear-gradient(#4f738c, #4f738c); /* For Firefox 3.6 to 15 */
                background: linear-gradient(#4f738c, #4f738c); /* Standard syntax */
                background-color: #4f738c;
            }

.hero {
    width: 100%;
}

.hero-remove-padding {
    position: relative;
    width: 110%;
    left: -30px;
    top: -20px;
}

h1 {
    font-weight: normal;
    color: #000;
    font-size: 40px;
    text-transform: uppercase;
    border-bottom: 1px dotted;
}

h2 {
    font-size: 26px;
    text-transform: none;
    color: #000;
    border-bottom: 1px dotted;
}

h1 .small, h1.small {
    font-size: 26px;
    text-transform: none;
}

h1.small {
    padding-bottom: 6px;
}

.nav > li > a {
    color: #13294b;
}

    .nav > li > a:hover, .nav > li > a:focus {
        color: #13294b;
        background-color: #fff;
        text-decoration: none;
    }

    .nav > li > a.selected {
        color: #13294b;
        background-color: #fff;
        text-decoration: none;
    }

    .nav > li > a.selectedSection {
        color: #fff;
        background-color: #13294b;
    }

.nav > li.active > a, .nav > li.active > a:hover, .nav > li.active > a:focus {
    color: #13294b;
    background-color: #fff
}

.nav > li > ul > li > a {
    position: relative;
    display: block;
    padding: 16px 18px;
}

    .nav > li > ul > li > a:hover, .nav > li > ul > li > a:focus {
        color: #13294b;
        background-color: #fff;
        text-decoration: none;
    }

.nav > li > ul > li > a {
    background-color: #4f738c;
    color: #fff;
    text-decoration: none;
}

    .nav > li > ul > li > a.selected {
        color: #13294b;
        background-color: #fff;
        text-decoration: none;
    }

.nav-stacked > li + li {
    margin: 0;
}

.nav-tabs {
    margin-bottom: 10px;
    border-bottom: 1px solid #f2d6a0;
}

    .nav-tabs > li {
        background: #f5f2ed;
        color: #f2d6a0;
        border: 1px solid #f2d6a0;
        margin-bottom: -1px;
    }

        .nav-tabs > li > a {
            margin-right: 0px;
            border-radius: 0;
            color: #f2d6a0;
        }

            .nav-tabs > li > a:hover {
                color: #333;
                background-color: #e6e6e6;
            }

        .nav-tabs > li.active {
            background: #94836A;
        }

            .nav-tabs > li.active > a,
            .nav-tabs > li.active > a:hover,
            .nav-tabs > li.active > a:focus {
                background: #94836A;
                color: #fff;
                border-color: #94836A;
                border-bottom-color: #94836A;
            }

.btn {
    /*color: #fff;*/
    text-transform: uppercase;
    text-align: center;
    font-size: 14px;
    line-height: 1.33;
    border-radius: 0;
    padding-top:10px;
}

.btn-default {
    background: #4f738c;
    color: #fff;
    border: 1px solid #4f738c;
}

.btn-lg {
    background: #4f738c;
    padding: 8px 18px 7px 18px;
    font-size: 14px;
    line-height: 1.33;
    color: #f2d6a0;
    border: 1px solid #4f738c;
    text-transform: uppercase;
}

.form-control {
    border-radius: 0;
    padding-top: 9px;
    height: 35px;
}

.input-sm {
    border-radius: 0
}

.input-lg {
    border-radius: 0
}

label {
    font-family: 'source-sans-pro',Helvetica,Arial,sans-serif;
    /*font-weight: normal;*/
}

.btn-group.btn-group-toggle .btn {
    border: 1px solid #13294b;
    background: #F5F2ED;
    color: #13294b;
    padding-bottom: 4px;
    padding-left: 10px;
    padding-right: 10px;
}

    .btn-group.btn-group-toggle .btn.active {
        box-shadow: none;
        -webkit-box-shadow: none;
        background: #13294b;
        color: #fff;
    }

.btn-primary {
    background: #194642;
    color: #fff;
    border-color: #13294b;
}

.btn-secondary {
    background: #194642;
    color: #fff;
    border-color: #13294b;
}

.btn-danger {
    color: #fff;
}

.no-right-padding {
    padding-right: 0;
}

.no-left-padding {
    padding-left: 0;
}

.btn-subtle {
    padding: 0;
}

.btn-right-margin {
    margin-right: 10px;
}

.list-group-item:first-child {
    border-top-right-radius: 0;
    border-top-left-radius: 0
}

.list-group-item:last-child {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0
}

.fade-enter-active, .fade-leave-active {
    transition: all .3s ease;
}

.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
    /*transform: translateX(-100px);*/
    opacity: 0;
}


/* ======================= */


.fadeHeight-enter-active,
.fadeHeight-leave-active {
    transition: all 0.2s;
    max-height: 400px;
}

.fadeHeight-enter,
.fadeHeight-leave-to {
    max-height: 0px;
}

.loader {
    z-index: 1;
    width: 60px;
    height: 60px;
    border: 8px solid #f3f3f3;
    border-radius: 50%;
    border-top: 8px solid #94836A;
    width: 60px;
    height: 60px;
    -webkit-animation: spin 2s linear infinite;
    animation: spin 2s linear infinite;
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    top: 45%;
}

@-webkit-keyframes spin {
    0% {
        -webkit-transform: rotate(0deg);
    }

    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/*
input[type="checkbox"], input[type="radio"] {
    margin-right: 8px;
}
    */
select:not([multiple]) {
    -webkit-appearance: none;
    -moz-appearance: none;
    background-position: right 50%;
    background-repeat: no-repeat;
    background-image: url('data:image/svg+xml;utf8,<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="12" version="1"><path d="M4 8L0 4h8z"/></svg>');
    padding: .5em;
    padding-right: 1.5em;
    border: 1px solid #C4C4C4;
}
/*
select {
    margin-left: 8px;
    border-radius: 0;
}
*/
/*need to try and get consistent cancel button to clear the input?*/
input[type="search"] {
    -webkit-appearance: searchfield;
}

    input[type="search"]::-webkit-search-cancel-button {
        -webkit-appearance: searchfield-cancel-button;
    }

@media(min-width:768px) {
    .sidebar .nav > li > a {
        padding-top: 18px;
        padding-bottom: 16px;
    }

        .sidebar .nav > li > a .glyphicon {
            float: right;
        }

    .sidebar {
        top: 50px;
        padding: 0;
        border: none;
        background-color: #f2d6a0;
        padding-left: 0;
        padding-right: 0;
    }

        .sidebar ul ul {
            list-style: none;
            padding-left: 0;
        }
}

@media(min-width:992px) {
    .searchbar {
        display: table;
        width: 100%;
    }

    .searchbar-input,
    .searchbuttons {
        display: table-cell;
    }

    .searchbuttons {
        width: 430px;
        padding-left: 10px;
    }
}

.alert {
    border-radius: 0px;
    padding: 8px 16px 7px 16px;
}

.alert-warning {
    border: none;
}

hr {
    border-top: 1px dotted #94836A;
    margin-top: 20px;
    margin-bottom: 20px;
}

.table {
    border-collapse: collapse;
    box-shadow: 0 2px 4px rgba(0,0,0,.15);
    margin-top: 20px;
}

    .table tbody tr th {
        background: #efefef;
    }

    .table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
        border-bottom: 1px solid #ddd;
        border-top: none;
        padding-left: 10px;
    }

    .table tbody tr.draft td {
        background: #fbfbfb;
    }

        .table tbody tr.draft td .draft-label {
            font-size: 12px;
            text-transform: uppercase;
            color: #777;
            padding-left: 20px;
        }

.questionnaire-question {
    box-shadow: 0 2px 4px rgba(0,0,0,.15);
    margin: 20px 0;
    padding: 20px;
}

    .questionnaire-question .details {
        padding: 16px 20px 20px 20px;
        background: #fbfbfb;
    }

.questionnaire-section .btn-subtle {
    background: none;
}

.hint {
    color: #777777;
}

.questionnaire-section {
    margin-bottom: 30px;
    border: 1px solid #bbb;
}

.questionnaire-section-header {
    background: #fbfbfb;
    padding: 20px 20px 20px 20px;
}

    .questionnaire-section-header h3 {
        margin-top: 0;
    }

.questionnaire-section-questions {
    padding: 0px 20px 20px 20px;
}

.question-buttons button {
    margin-left: 20px;
}

.questionnaire-section .dl-horizontal .dl-horizontal {
    margin-top: 10px;
}

.questionnaire-section .dropdown-source {
    margin-top: 10px;
    display: inline-block;
    list-style: none;
    padding: 0px;
}

    .questionnaire-section .dropdown-source li {
        display: inline;
    }

        .questionnaire-section .dropdown-source li::after {
            content: ", ";
        }

        .questionnaire-section .dropdown-source li:last-child::after {
            content: "";
        }


.checkbox-select {
    overflow-x: auto;
    height: 100px;
}

    .checkbox-select .checkbox-row {
        margin: 0;
        padding: 0;
    }

        .checkbox-select .checkbox-row.selected {
            background-color: #ccc;
        }

.loading-spinner {
    animation-name: spin;
    animation-duration: 4000ms;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}


.gtb-generate-all-status-center {
    display: inline-block;
}

.gtb-generate-all-status-pulse {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgb(242 214 160 / 65%);
    box-shadow: 0 0 0 rgb(242 214 160 / 65%);
    animation: pulsing 2s infinite;
    transition: all 0.2s;
    cursor: pointer;
    margin-right: 7px;
}

@keyframes pulsing {
    from {
        box-shadow: 0 0 0 0 rgb(236 215 176 / 65%);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(95,139,250,0);
    }

    to {
        box-shadow: 0 0 0 0 rgba(95,139,250,0);
    }
}

.css-tooltip {
    position: relative;
    display: inline-block;
}

    .css-tooltip .tooltiptext {
        visibility: hidden;
        width: auto;
        background-color: black;
        color: #fff;
        text-align: center;
        border-radius: 6px;
        padding: 3px 8px;
        position: absolute;
        z-index: 1;
        bottom: 150%;
        left: 50%;
        margin-left: -60px;
        font-size: 12px;
    }

        .css-tooltip .tooltiptext::after {
            content: "";
            position: absolute;
            top: 100%;
            left: 50%;
            margin-left: -5px;
            border-width: 5px;
            border-style: solid;
            border-color: black transparent transparent transparent;
        }

    .css-tooltip:hover .tooltiptext {
        visibility: visible;
    }

#login-heading {
    margin-top: 15px;
    font-size: 2.5em;
    font-family: 'BradfordLLWeb-Regular';
    color: #000000;
    text-align: center;
}

.custom-btn {
    border-radius: 20px;
    float: right;
    background: #194642 !important
}

.custom-btn:hover {
    background: rgba(0,46,87, 0.6) !important;
}

footer {
    background: #194642;
    color: #fff;
    padding: 20px 0;
    text-align: center;
    overflow-x: hidden;
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    box-sizing: border-box;
}

footer * {
    color: inherit;
}

footer .footer-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 0 15px;
    box-sizing: border-box;
}

footer .footer-col {
    flex: 1;
    padding: 10px 5px;
    text-align: center;
    box-sizing: border-box;
}

footer img {
    max-height: 40px;
    max-width: 100%;
    width: auto;
    height: auto;
    background-color: white;
    padding: 5px;
    border-radius: 5px;
    box-sizing: border-box;
}
footer a:hover {
    color:#fff;
}

/* Mobile responsive */
@media (max-width: 768px) {
    footer .footer-row {
        flex-direction: column;
        gap: 15px;
        padding: 0 10px;
    }
    
    footer .footer-col {
        width: 100%;
        flex: none;
        padding: 5px;
    }
    
    footer img {
        max-width: 200px;
        background-color: white;
        padding: 8px;
        border-radius: 5px;
    }
}

.container,
.container-fluid,
.container-xxl,
.container-xl,
.container-lg,
.container-md,
.container-sm {
    padding-left: 0;
    padding-right: 0;
}

@media (min-width: 1400px) {
    #footer-container {
        max-width: none !important;
        width: 100%;
    }
}

@media (min-width: 1200px) {
    #footer-container {
        max-width: none !important;
        width: 100%;
    }
}

@media (min-width: 992px) {
    #footer-container {
        max-width: none !important;
        width: 100%;
    }
}

@media (min-width: 768px) {
    #footer-container {
        max-width: none !important;
        width: 100%;
    }
}

@media (min-width: 576px) {
    #footer-container {
        max-width: none !important;
        width: 100%;
    }
}
.custom-label {
    font-family: 'MabryRegular';
    text-align: right;
    font-weight: bold;
}
.btn, input.btn {
    font-family: 'MabryRegular';
}
#help-line-one,
#help-line-two{
    color: #000000
}
#main-content {
    padding-left: 20px;
    padding-right: 20px;
    position:relative;
}
.booking-activity {
    padding-left: 5px;
    padding-right: 5px;
}
.booking-activity a {
    padding-left: 0;
    padding-right: 0;
}
#booking-heading {
    font-family: 'BradfordLLWeb-Regular';
}
#booking-results-heading{
    margin-top:10px;
    text-align: center;
}
#booking-overlay {
    position: absolute;
    top: 40px;
    opacity:0.9;
    background-color: #fff;
    width:90%;
    margin: 0 auto;
    /*padding: 25px 20px;*/
    margin-bottom: 50px;
    z-index: 10;
}
#days-to-go {
    text-align: center;
    margin: 10px auto 0 auto;
    width: 100%;
    height: auto;
    overflow: hidden;
}

#days-to-go span {
    font-size: 25px;
    padding: 10px 15px;
    margin-bottom: 0;
    background-color: #194642;
    display: inline-block;
}
a.btnNav,
div.custom-media {
    border: 2px solid #194642;
    color:#000;
}

    a.btnNav-active,
    a.btnNav:hover {
        border: 4px solid #194642;
    }
div.btnNavIcon {
    background-color: #194642;
}
.custom-media h4,
.custom-media h5 {
    color: #000;
}
h3.booking-title,
.custom-media h1 {
    color: #194642;
}
#participation-logo,
.form-logo {
    width: 500px;
    margin: 0 auto;
}
#participation-agreement
{
    padding-bottom:50px;
}
#participation-agreement h1,
#bike-selection h1
#dietary-selection h1 {
    text-align: center;
    font-size: 2em;
    margin-top: 20px;
}
#participation-agreement h2{
    margin-top:40px;
}
#acknowledge-form h3{
    margin-top:20px;
    font-size:1.5em;
}
.outer-div {
    margin: auto;
    padding: 10px;
    border: 2px solid #194642;
    border-radius: 20px;
    margin-top: 10px;
    margin-bottom: 20px;
}
.custom-div-tc {
    text-align: center;
    margin: auto;
    justify-content: center;
}
.welcome-header{
    text-align:center;
}
#confirm-registration{
    padding-top:20px;
    min-height:300px;
}
#confirm-registration div {
    padding-top: 50px;
    height: 210px;
    text-align: center;
}

/* Banner Image Zoom-Stable Styling */
.banner-image {
    width: 100vw;
    object-fit: cover;
    object-position: center;
    display: block;
    position: relative;
    top: 0;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    max-width: 100vw;
    /* Prevent zooming from affecting image size beyond viewport */
    image-rendering: -webkit-optimize-contrast;
    image-rendering: optimize-contrast;
    /* Ensure smooth rendering during zoom */
    transform-origin: center top;
    /* Set transform origin for consistent scaling */
}

/* Responsive Banner Heights */
/* Mobile Small: up to 479px */
@media (max-width: 479px) {
    .banner-image {
        height: 136px;
    }
    #main-content {
        padding-top: 15px; /* Minimal padding for small screens */
    }
    #main-content.booking-content {
        padding-top: 0px; /* Minimal padding for small screens */
    }
    #booking-overlay {
        position:relative;
        top:0;
    }
}

/* Mobile: 480px to 767px */
@media (min-width: 480px) and (max-width: 767px) {
    .banner-image {
        height: 136px;
    }
    #main-content {
        padding-top: 50px; /* Keep content above fold */
    }
    #main-content.booking-content {
        padding-top: 0px; /* Minimal padding for small screens */
    }    
}

/* Tablet: 768px to 991px */
@media (min-width: 768px) and (max-width: 991px) {
    .banner-image {
        height: 176px;
    }
    #main-content {
        padding-top: 50px; /* Moderate padding for tablets */
    }
    #main-content.booking-content {
        padding-top: 0px; /* Minimal padding for small screens */
    }
    #booking-overlay {
        position:relative;
        top:0;
    }
}

/* Desktop Small: 992px to 1199px */
@media (min-width: 992px) and (max-width: 1199px) {
    .banner-image {
        height: 213px;
    }
    #main-content {
        padding-top: 50px; /* Increased padding for desktop */
    }
    #main-content.booking-content {
        padding-top: 0px; /* Minimal padding for small screens */
    }
    #booking-overlay {
        top:10px;
        width:95%;
        background-color: #fff;
        opacity: 1;
    }
    #booking-activities {
        padding-top: 280px;
        z-index: 5;
        position: relative;
    }
    .nav-item a,
    .navbar-text {
        font-size: 1.25em;
    }
}

/* Desktop Large: 1200px+ */
@media (min-width: 1200px) {
    .banner-image {
        height: 340px;
    }
    #main-content {
        padding-top: 50px; /* Target padding for large screens */
    }
    #main-content.booking-content {
        padding-top: 0px; /* Minimal padding for small screens */
    }
    #booking-overlay {
        max-width:1330px;
        min-height: 268.2px;
    }
    .nav-item a,
    .navbar-text {
        font-size:1.25em;
    }
}
.circle {
    background: #194642;
    margin-top: 10px;
}
.navbar-toggler
{
    color:#fff;
}
.navbar-toggler-icon {
    --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23ffffff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
#create-account-link,
#log-in-link
{
    display:none;
}
#logout-link {
    cursor: pointer;
}
#no-trips-message
{
    font-size:1.4em;
    text-align:center;
}
#todo-footer-message
{
    text-align:center;
    font-size:1.2em;
    margin-bottom:20px;
}
.todo-header-message {
    text-align: center;
    font-size: 1.2em;
    margin-bottom: 20px;
}
#tour-length,
#registrationNotes,
input#bookingSummaryForm {
    display: none;
}
#registrationTasksTable {
    width: 50%;
    margin: 0 auto;
}
#registrationTasksTable tr th {
    font-size:20px;
}
#registrationTasksTable tr td,
#registrationTasksTable tr td a,
#travelDocs ul li a
 {
    color: #555;
    font-size: 15px;
}
#registrationUserInfo div p {
    text-align: center;
    font-size: 18px;
}
#travelDocs h2,
#travelDocs h3
{
    text-align: center;
    margin-top:10px;
}
#travelDocs h3
{
    font-size:1.3em;
    margin-bottom:20px;
}
#travelDocs p,
#travelDocs ul
{
    width:70%;
    margin:10px auto;
    list-style-type:none;
    padding-left:0;
}
#editAccountInformation
{
    display:none;
}
.city-doc div p
{
    margin-bottom:5px;
}