/* --- BANNERS --- */
#bannerNonPano, #bannerPano {
    width: 100%;
    margin-top: -40px;
    margin-bottom: 20px;
    height: 25rem;
    overflow: hidden;
    background-repeat: no-repeat;
    background-position: center center;
}

#bannerNonPano {
    background-image: url('/go/tripimage/maxwidth?id=[[${firstImage.getEncodedId()}]]&size=1920');
    background-size: cover;
}

#bannerPano {
    background-size: 100% 25rem;
    background-image: url('/go/image?i=[[${panoImage?.imagePath}]]');
}

@media (max-width: 992px) {
    #bannerNonPano, #bannerPano { background-image: url('/go/tripimage/maxwidth?id=[[${firstImage.getEncodedId()}]]&size=992') }
}
@media (max-width: 768px) {
    #bannerNonPano, #bannerPano { background-image: url('/go/tripimage/maxwidth?id=[[${firstImage.getEncodedId()}]]&size=768') }
}
@media (max-width: 576px) {
    #bannerNonPano, #bannerPano { background-image: url('/go/tripimage/maxwidth?id=[[${firstImage.getEncodedId()}]]&size=576') }
}

/* --- WEATHER WIDGET --- */
.weather-wrapper-float {
    float: right;
    margin: 15px 0 15px 20px;
    width: 280px;
}

.weather-container {
    background: #fffafa; /* Light red tint */
    border: 1px solid #f9eaea;
    border-radius: 8px;
    padding: 12px;
    box-shadow: 0 2px 4px rgba(212, 6, 6, 0.05);
}

.weather-flex {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.weather-day {
    text-align: center;
    flex: 1;
}

.weather-date {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #7f8c8d;
    margin-bottom: 4px;
}

.weather-temps {
    font-size: 0.85rem;
    font-weight: 600;
}

.weather-temps .high { color: #2c3e50; }
.weather-temps .low { color: #95a5a6; }
.weather-temps .temp-sep { color: #eee; margin: 0 2px; }

.weather-footer {
    text-align: center;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid #f9eaea;
}

.weather-footer a {
    font-size: 0.75rem;
    color: #d40606; /* Brand Red */
    text-decoration: none;
    font-weight: 700;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    .weather-wrapper-float {
        float: none;
        width: 100%;
        margin-left: 0;
    }
}

/* --- BETA OVERVIEW & STATS --- */
#beta_overview {
  line-height: 1.2;
}
#beta_overview .beta_item {
    font-size: 0.9rem;
    color: #7f8c8d;
    margin-top: 8px;
}

#beta_overview .beta_item a {
    color: #2c3e50;
    font-weight: 600;
    text-decoration: none;
}

#beta_overview .beta_item a span {
    color: #d40606; /* Brand Red */
}

#beta_overview strong.overviewLabel {
    display: inline-block;
    width: 105px;
    font-size: 0.75rem;
    color: #7f8c8d;
    letter-spacing: 0.5px;
}

#beta_overview div > span,
#beta_overview div > a {
    font-size: 0.95rem;
    color: #2c3e50;
    text-decoration: none;
}

#beta_overview > .row > .col-sm-12 > div {
    margin-bottom: 6px;
}

#ratingCountArea {
    display: inline-block;
    font-size: 0.85rem;
    color: #95a5a6;
    margin-left: 5px;
}

#ratingCountArea a { color: #95a5a6; text-decoration: none; }

/* Force the rating widget and the text to align on the same center line */
.br-theme-fontawesome-stars-o .br-widget {
    display: flex;
    align-items: center;
    line-height: 1; /* Reset any tall line-heights */
}

/* Ensure the text span is also vertically centered within the parent flexbox */
#ratingCountArea {
    display: flex;
    align-items: center;
    height: 100%;
    margin-left: 10px;
    line-height: 1;
}

/* If the "3" (current rating) text inside the stars is causing a misalignment */
.br-current-rating {
    display: inline-block;
    vertical-align: middle;
    margin-left: 10px;
}


/* --- PHOTO GALLERY --- */
#gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

#gallery a {
    height: 250px;
    flex-grow: 1;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
}

#gallery a img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

#gallery a:hover img { transform: scale(1.05); }

.thumb-caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 20px 10px 8px 10px;
    color: white;
    font-size: 0.85rem;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#gallery a:hover .thumb-caption { opacity: 1; }
#gallery::after { content: ""; flex-grow: 999999; }

/* --- ACCORDIONS & WAYPOINTS --- */
.custom-wp-accordion {
    border: 1px solid #eee;
    border-radius: 8px;
    overflow: hidden;
    margin-top: 15px;
}

.custom-wp-accordion .accordion-button {
    background-color: #fcfdfe;
    color: #2c3e50;
    font-weight: 600;
    box-shadow: none !important;
}

.custom-wp-accordion .accordion-button:not(.collapsed) {
    background-color: #fffafa; /* Light red tint */
    color: #d40606; /* Brand Red */
    border-bottom: 1px solid #f9eaea;
}

.wp-row {
    display: flex;
    justify-content: space-between;
    padding: 10px 15px;
    border-bottom: 1px solid #f5f5f5;
}

.wp-row:nth-child(even) { background-color: #fafafa; }
.wp-row:last-child { border-bottom: none; }

.wp-desc { flex: 1; font-size: 0.95rem; color: #444; }

.wp-coords {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 180px;
}

.wp-coords code {
    font-size: 0.8rem;
    color: #777;
    font-family: ui-monospace, monospace;
}

@media (max-width: 600px) {
    .wp-row { flex-direction: column; align-items: flex-start; gap: 5px; }
    .wp-coords { align-items: flex-start; min-width: unset; }
}

/* --- USER EXPERIENCE SECTION --- */
.experience-card {
    border: 1px solid #f9eaea;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(212, 6, 6, 0.05);
    overflow: hidden;
}

.experience-header {
    background: #fffafa;
    padding: 12px 15px;
    border-bottom: 1px solid #f9eaea;
}

.experience-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #2c3e50;
    display: flex;
    align-items: center;
    gap: 8px;
}

.experience-row {
    padding: 12px 15px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-bottom: 1px solid #fcf6f6;
}

.experience-row:last-child { border-bottom: none; }

.row-label {
    font-weight: bold;
    color: #7f8c8d;
    font-size: 0.8rem;
    text-transform: uppercase;
}

.btn-text {
    color: #d40606; /* Brand Red */
    text-decoration: none;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}

.btn-text.active { color: #27ae60; } /* Keep green for "Success/On Todo" */

.btn-add-tick {
    background: #d40606;
    color: white;
    border: none;
    padding: 5px 14px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: bold;
}

.trip-log-item {
    display: flex;
    gap: 12px;
    padding: 10px;
    background: #fffafa;
    border: 1px solid #f9eaea;
    border-radius: 6px;
    margin-bottom: 6px;
    font-size: 0.9rem;
}

/* --- UTILITY BAR (PDF/GPX) --- */
.download-bar {
    background-color: #fffafa; /* Light red tint */
    border-radius: 8px;
    padding: 10px 15px;
    border: 1px solid #f9eaea;
}


/* Update the download-nav to center items horizontally */
.download-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 25px;
    align-items: center;
    justify-content: center; /* Centers items horizontally */
    text-align: center;
}

/* Mobile Adjustments: Keep them centered when stacked */
@media (max-width: 768px) {
    .download-nav {
        flex-direction: column;
        align-items: center; /* Centers the items in column mode */
        gap: 12px;
    }

    .download-item {
        border-bottom: 1px solid rgba(212, 6, 6, 0.05);
        width: 100%;
        max-width: 300px; /* Optional: prevents bars from being too long on mobile */
        padding-bottom: 8px;
    }

    .download-item:last-child {
        border-bottom: none;
    }
}


.download-item a {
    color: #2c3e50;
    font-weight: 700;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
}

.download-item a i { color: #d40606; font-size: 1.1rem; }

.download-item.donate-link a,
.download-item.donate-link a i { color: #d40606; }

@media (max-width: 768px) {
    .download-nav { flex-direction: column; gap: 12px; }
    .download-item { border-bottom: 1px solid rgba(212, 6, 6, 0.05); width: 100%; padding-bottom: 8px; }
}

/* --- LOGIN CTA --- */
.login-cta {
    display: flex;
    justify-content: center; /* Centers the entire content block horizontally */
    padding: 20px;
    background-color: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    margin: 20px 0;
}

.cta-content {
    display: flex;
    align-items: center;    /* Vertically aligns icon and text */
    text-align: left;       /* Keeps text left-aligned relative to the icon */
    gap: 15px;              /* Space between icon and text */
}

.cta-icon {
    font-size: 1.8rem;
    line-height: 1;         /* Prevents icon height from bloating the container */
}

.cta-text {
    margin: 0;
    font-size: 1.05rem;
    color: #2c3e50;
}

.login-link {
    color: #d40606;
    font-weight: bold;
    text-decoration: none;
}

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

/* Mobile: Stack them if the screen is too narrow */
@media (max-width: 480px) {
    .cta-content {
        flex-direction: column;
        text-align: center;
        gap: 8px;
    }
}




.jumpTo {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Centers items horizontally */
    align-items: center;
    gap: 15px; /* Adds consistent spacing between items */
    margin-bottom: 20px;
    font-size: 1.1rem;
    font-weight: 500;
}

/* Optional: Style the links to be a bit more robust on mobile */
.jumpTo a {
    color: #2c3e50;
    text-decoration: none;
    white-space: nowrap; /* Prevents a single link from breaking across lines */
    transition: color 0.2s ease;
}

.jumpTo a:hover {
    color: #d40606; /* Brand Red */
    text-decoration: none;
}

/* Style the Font Awesome icons within the jumpTo bar */
.jumpTo i {
    color: #d40606;
    margin-right: 5px;
}

/* Mobile Adjustments */
@media (max-width: 576px) {
    .jumpTo {
        gap: 10px;
        font-size: 0.95rem;
    }
}


/** Quality **/
.br-theme-fontawesome-stars-o .br-widget {
    height: 28px;
    white-space: nowrap;
}
.br-theme-fontawesome-stars-o .br-widget a {
    font: normal normal normal 20px/1 FontAwesome;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    text-decoration: none;
    margin-right: 2px;
}
.br-theme-fontawesome-stars-o .br-widget a:after {
    content: '\f006';
    color: #d2d2d2;
}
.br-theme-fontawesome-stars-o .br-widget a.br-active:after {
    content: '\f005';
    color: #EDB867;
}
.br-theme-fontawesome-stars-o .br-widget a.br-selected:after {
    content: '\f005';
    color: #EDB867;
}
.br-theme-fontawesome-stars-o .br-widget a.br-fractional:after {
    content: '\f123';
    color: #EDB867;
}
.br-theme-fontawesome-stars-o .br-widget .br-current-rating {
    display: none;
}
.br-theme-fontawesome-stars-o .br-readonly a {
    cursor: default;
}
.br-theme-fontawesome-stars-o .br-reverse a.br-fractional {
    display: inline-block;
    transform: scaleX(-1);
    -moz-transform: scaleX(-1);
    -webkit-transform: scaleX(-1);
    filter: FlipH;
    -ms-filter: "FlipH";
}
@media print {
    .br-theme-fontawesome-stars-o .br-widget a:after {
        content: '\f006';
        color: black;
    }
    .br-theme-fontawesome-stars-o .br-widget a.br-active:after,
    .br-theme-fontawesome-stars-o .br-widget a.br-selected:after {
        content: '\f005';
        color: black;
    }
    .br-theme-fontawesome-stars-o .br-widget a.br-fractional:after {
        content: '\f123';
        color: black;
    }
}
