@charset "UTF-8";
@import "heritage-fonts.css";
@import "heritage-icons.css";
@import "heritage-org_leaflet.css";

/* Color variables */
:root {
    --color-scheme: light !important;
    color-scheme: light !important;

    --light-sail: rgb(214, 242, 255);
    --dark-teal: #264A59;
    --deep-cove: #061D46;
    --fire-engine-red: #DA181A;
    --link-blue-dark: #027DBD;
    --light-green: #DEF2CC;
    --bs-border-radius: 20px !important;
    --bs-primary-bg-subtle: white !important;
    --bs-primary-text: var(--deep-cove) !important;
    --bs-border-color-translucent: #0093d0 !important;
    --maroon: #981900;

    --dv-black: rgb(15, 15, 15);
    --dv-dark-gray: rgb(172, 172, 172);
    --map-albers-fill: #f0f0f0;
    --map-albers-fill-hover: #e8e8e8;
    --map-albers-fill-selected: #dfdfdf;

    /* Category colors */
    --circle-category-1: #50990c;
    --circle-category-2: #f2c437;
    --circle-category-3: #ee8420;
    --circle-category-0: #959595;

    /* Lighter backgrounds (very light, for contrast with dark text) */
    --circle-category-1-light: #eaf7df;
    /* very pale green */
    --circle-category-2-light: #fff9e2;
    /* very pale yellow */
    --circle-category-3-light: #fff1e4;
    /* very pale orange */
    --circle-category-0-light: #f5f5f5;
    /* very light gray */

    /* Darker text colors (for strong contrast on light backgrounds) */
    --circle-category-1-dark: #2d5707;
    /* dark green */
    --circle-category-2-dark: #7a6700;
    /* dark gold/brown */
    --circle-category-3-dark: #a3540f;
    /* dark orange-brown */
    --circle-category-0-dark: #7a7a7a;
    /* dark gray */

    /* Font families */
    --font-family-sans-serif: 'gotham a', 'gotham b', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
    --font-family-serif: 'chronicle display a', 'chronicle display b', 'TimesNewRoman', 'Times New Roman', 'Times', 'Baskerville', 'Georgia', serif;
    --font-family-script: 'lily wang', serif;
    --font-family-heritage-icons: 'heritage-icons';
}

/* Reset some Bootstrap styles */
.form-check-input:checked[type=checkbox] {
    --bs-form-check-bg-image: none !important;
}

.accordion {
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(0, 147, 208, 0.2) !important;
}

.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
    --bs-gutter-x: 2rem !important;
}

.btn-primary {
    --bs-btn-color: var(--deep-cove) !important;
    --bs-btn-bg: var(--light-sail) !important;
    --bs-btn-border-color: var(--bs-border-color-translucent) !important;
    --bs-btn-hover-bg: var(--deep-cove) !important;
    --bs-btn-hover-border-color: var(--deep-cove) !important;
}

.btn-outline-primary {
    --bs-btn-color: #027DBD !important;
    --bs-btn-border-color: #027DBD !important;
    --bs-btn-hover-bg: #027DBD !important;
    --bs-btn-hover-border-color: #027DBD !important;
    --bs-btn-focus-shadow-rgb: var(--light-sail) !important;
    --bs-btn-active-bg: #027DBD !important;
    --bs-btn-active-border-color: #027DBD !important;
    --bs-btn-disabled-color: #027DBD !important;
    --bs-btn-disabled-bg: transparent !important;
    --bs-btn-disabled-border-color: #027DBD !important;
}

/* Load fonts from files */
@font-face {
    font-family: "lily wang";
    src: url("/assets/fonts/heritage-fonts/lily-wang/lily-wang.otf") format("opentype");
    font-style: normal;
}

nav.position-fixed {
    z-index: 1050 !important;
    /* Higher than Bootstrap modals and dropdowns */
}

.text-balance {
    text-wrap: balance;
}

body {
    font-family: var(--font-family-sans-serif);
    margin: 0;
    padding: 0;
    color: var(--deep-cove);
    background-color: var(--light-sail) !important;
    line-height: 1.5;
    text-wrap: pretty;
}

nav {
    background-color: var(--light-sail);
}

.logo a {
    text-decoration: none;
    font-size: 24px;
}

.nav-links {
    list-style-type: none;
    display: flex;
    gap: 2rem;
    margin-bottom: 0;
}

.nav-links li a {
    text-decoration: none;
    margin: 0;
    color: var(--link-blue-dark) !important;
}

.nav-links li a:hover {
    color: var(--fire-engine-red) !important;
}

.mobile-menu {
    display: none;
}

.nav-container {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
}

.navbar-above-svg {
    position: relative;
    z-index: 10;
}

.subtitle {
    font-size: 5.7vw;
    font-family: var(--font-family-script);
    padding-top: 0;
    margin-top: -25px;
    line-height: 1;
    z-index: 1;
    color: #006c9b !important;
    opacity: 0.7;
}

h1 {
    color: var(--deep-cove) !important;
    line-height: 1 !important;
    position: relative;
    z-index: 2;
}

#historic-sites-title {
    font-family: var(--font-family-serif);
    font-size: 8vw;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: 0.5vw;
    text-transform: uppercase;
    width: 100vw;
    max-width: 100%;
    white-space: nowrap;
}

@media (min-width: 1500px) {
    #historic-sites-title {
        font-size: 120px;
        letter-spacing: 5px;
        width: auto;
        white-space: nowrap;
    }

    .subtitle {
        font-size: 80px;
    }
}

#title-overline {
    color: #061D46;
    font-family: "Chronicle Text G1", serif !important;
    font-size: 24px;
    font-style: normal;
    font-weight: 375;
    line-height: normal;
    letter-spacing: 5.1px;
    text-transform: uppercase;
}


h2 {
    color: var(--deep-cove, #061D46) !important;
    font-size: 24px !important;
    letter-spacing: 1px;
    text-transform: uppercase;
}

#homepage-hero {
    overflow-x: hidden;
    position: relative;
}

.header-big-p {
    font-size: 1.3rem;
    line-height: 1.4;
    color: var(--deep-cove);
    /* wrap style pretty */
    text-wrap: pretty !important;
    /*max-width: 1000px;*/
}

.header-small-p {
    font-size: 1.05rem;
    line-height: 1.4;
    font-family: var(--font-family-sans-serif);
    font-weight: 500;
}

#homepage-hero p {
    color: var(--dark-teal);
    z-index: 100;
}

#homepage-hero .carousel-caption p {
    color: white !important;
}

#homepage-hero .carousel-caption {
    left: 0;
    right: 0;
    padding-left: 4rem;
    padding-right: 4rem;
    text-align: left;
    max-width: 700px;
    text-wrap: balance;
}

.form-label {
    font-weight: 500;
    opacity: 0.7;
}

#reviewed-sites .card {
    display: flex;
    flex-direction: column;
    height: 410px;
    /* Standard card height */
    max-height: 410px;
    border-color: #0093d0;
    border-radius: 20px !important;
    overflow: hidden;
    transition: 0.2s ease-in-out;
}

#reviewed-sites .card-img-top {
    width: 100%;
    height: 200px;
    /* Fixed image height */
    object-fit: cover;
    /* Crop to fit, maintain aspect ratio */
    object-position: center;
}

#reviewed-sites .card-body {
    flex-grow: 1;
    overflow: hidden;
}

#reviewed-sites .card.card-green:hover {
    border-color: var(--circle-category-1);
    box-shadow: 0 0 0 2px var(--circle-category-1);
}

#reviewed-sites .card.card-yellow:hover {
    border-color: var(--circle-category-2);
    box-shadow: 0 0 0 2px var(--circle-category-2);
}

#reviewed-sites .card.card-orange:hover {
    border-color: var(--circle-category-3);
    box-shadow: 0 0 0 2px var(--circle-category-3);
}

#reviewed-sites .card.card-default:hover {
    border-color: var(--fire-engine-red);
    box-shadow: 0 0 0 2px var(--fire-engine-red);
}

#reviewed-sites .card-body p.card-text {
    line-height: normal;
}

#featureCarousel {
    border-radius: 40px;
}

#featureCarousel,
#featureCarousel .carousel-inner,
#featureCarousel .carousel-item {
    height: 620px;
    overflow: hidden;
    width: 100%;
}

#featureCarousel .carousel-item {
    position: relative;
    height: 100%;
    min-height: 600px;
    overflow: hidden;
}

#featureCarousel .carousel-item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    /* Lower than captions/controls */
    pointer-events: none;
    background: linear-gradient(180deg, rgba(62, 162, 224, 0.00) 51.74%, #0A4463 100%);
}

#featureCarousel .carousel-item img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    display: block;
}

/* Ensure captions and controls are above the overlay */
#featureCarousel .carousel-caption,
#featureCarousel .carousel-control-prev,
#featureCarousel .carousel-control-next {
    position: absolute;
    z-index: 2;
    opacity: 1;
}

#featureCarousel .carousel-control-next,
#featureCarousel .carousel-control-prev {
    width: 10%;
}

#featureCarousel .carousel-indicators {
    bottom: 8px;
    z-index: 200;
}

/* Carousel indicators as outlined white circles, active filled in white */
#featureCarousel .carousel-indicators [data-bs-target] {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 2px solid #fff;
    background-color: transparent;
    opacity: 1;
    margin: 0 6px;
    transition: background-color 0.3s, border-color 0.3s;
}

#featureCarousel .carousel-indicators .active {
    background-color: #fff;
    border-color: #fff;
}

#featureCarousel .carousel-caption {
    font-size: 18px;
    line-height: 1.2;
}

#homepage-hero {
    background-color: var(--light-sail);
}

#sites-list_filters label {
    color: var(--deep-cove);
    font-weight: 500;
    font-size: 16px;
}

#sites-list_filters button {
    color: var(--fire-engine-red);
    font-weight: 500;
    background-color: rgb(237, 237, 237);
}

#filters-container {
    display: flex;
    flex-wrap: wrap;
}

#state-filter-container,
#search-filter-container,
#cat-filter-container {
    min-width: auto;
}

/* Stack vertically below md (768px) */
@media (max-width: 767.98px) {
    #filters-container {
        flex-direction: column;
        align-items: stretch;
        /* Full width for stacked items */
    }

    #state-filter-container,
    #search-filter-container,
    #cat-filter-container,
    #resetBtn {
        min-width: 100%;
        /* Full width on mobile */
    }
}

#filterByState,
#siteSearch {
    width: 100%;
}

#resetBtn {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

#reviewed-sites a {
    text-decoration: none;
}

#reviewed-sites .card-title {
    font-family: var(--font-family-serif);
    color: var(--deep-cove) !important;
    font-size: 1.5rem;
    text-wrap: balance;
}

.rating-container {
    display: inline-flex;
    flex-direction: row-reverse;
    align-items: center;
    padding: 4px 8px;
    background-color: #cefae3;
    font-size: 14px;
    border-radius: 8px;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.site-page-rating-container {
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
}

#accuracy-label {
    font-size: 18px;
    font-weight: 500;
    padding-bottom: 1px;
}

.green {
    color: var(--circle-category-1-dark);
    background-color: var(--circle-category-1-light);
}

.yellow {
    color: var(--circle-category-2-dark);
    background-color: var(--circle-category-2-light);
}

.orange {
    color: var(--circle-category-3-dark);
    background-color: var(--circle-category-3-light);
}

.gray {
    color: var(--circle-category-0-dark);
    background-color: var(--circle-category-0-light);
}

.siteCircles[style*="--circle-category-0"] {
    fill: #959595;
}

.rating-dot {
    width: 27px;
    height: 27px;
    border-radius: 50%;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    font-size: 20px;
    margin-left: 10px;
    padding-left: 0.2px;
    padding-bottom: 1px;
}

#sitePage .rating-dot {
    width: 25px;
    height: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    font-size: 20px;
    margin-left: 10px;
    padding-left: 0.2px;
    padding-bottom: 1px;
    background-color: rgba(255, 255, 255, 0.9);
    /* outline and color set dynamically via JS */
}

.rating-grade {
    font-weight: 600;
    font-size: 40px;
    margin-left: 8px;
    color: var(--circle-category-3);
    display: none;
}

/* Footer Styles */
footer a {
    color: var(--link-blue-dark);
    text-decoration: none;
}

footer .privacy-copyright,
.privacy-copyright a {
    font-size: 14px;
    color: rgb(81, 85, 90) !important;
}

.privacy-copyright a:hover {
    color: var(--fire-engine-red) !important;
}

/*Site Review Page Styles*/
#sitePage {
    background-color: white;
    color: var(--deep-cove);
}

#sitePage h1 {
    font-family: var(--font-family-serif);
    font-weight: 500;
    margin-bottom: 0;
    margin-top: 20px;
    font-size: calc(24px + 2vw);
    line-height: 1;
    text-wrap: balance;
}

#sitePage .subtitle {
    font-family: var(--font-family-sans-serif);
    font-size: 18px;
    margin-bottom: 14px;
    margin-top: 0;
    font-weight: 400;
    line-height: 1.2;
    color: var(--deep-cove) !important;
    opacity: 0.9;
}

#site-review-date-container {
    line-height: 1.2;
}

#latest-review-date-label {
    font-size: 14px;
    opacity: 0.8;
    font-weight: 500;
    color: #005171 !important;
    display: flex;
    align-items: end;
}

#latest-review-date {
    opacity: 0.8;
    color: var(--deep-cove) !important;
    font-size: 14px;
    display: flex;
    align-items: end;
}

#print-button {
    color: #005171 !important;
    line-height: 1;
    font-size: 14px;
    font-weight: 500;
    align-items: end;
    padding-bottom: 2px;
}

#print-button:hover {
    color: var(--fire-engine-red) !important;
    background: none !important;
}

#site-website-link {
    color: var(--link-blue-dark);
    text-decoration: none;
    font-size: 16px;
    font-weight: 400;
}

#site-website-link:hover {
    color: var(--fire-engine-red);
}

.details-label {
    color: #386274;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 0;
}

#sitePage .card,
#sitePage .accordion {
    color: var(--deep-cove);
    border-radius: 20px !important;
}

#sitePage .card {
    padding: 20px 20px 4px 20px;
}

#sitePage #site-photo-rating-card {
    overflow: hidden;
    border-radius: 20px;
    max-height: 100%;
    /* Let it shrink to match the content */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    z-index: 1000;
}

#site-photo-rating-card img {
    height: 375px;
    /* Adjust this value as needed */
    width: 100%;
    object-fit: cover;
    display: block;
}

#sitePage h3 {
    color: #006A96;
}

#sitePage #site-photo-rating-card p {
    line-height: 1.3;
    margin: 0;
}

#sitePage #fun-fact-block {
    background-color: #D6F2FF;
    border-radius: 20px !important;
    border: none !important;
    color: #007DB0;
    line-height: 1.3;
    text-wrap: balance;
}

#rec-reading-block {
    color: var(--deep-cove) !important;
}

#rec-reading-block h3 {
    font-size: 20px;
}

#rec-reading-block ul,
#rec-reading-block li {
    list-style: disc;
    line-height: 1.3;
}

#rec-reading-block ul {
    padding-left: 16px;
}

#rec-reading-block li {
    margin-bottom: .5rem;
}

#site-details {
    height: 100%;
}

#site-details #map {
    height: 200px;
    width: 100%;
}

#site-details #map p {
    text-align: center;
    margin: 0;
    padding: 10px;
    color: #666;
}

#site-details #map .map-fallback {
    position: relative;
    height: 100%;
    width: 100%;
}

#site-details #map .map-fallback img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%) opacity(0.5);
}

#site-details #map .map-fallback-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #333;
    font-size: .875rem;
    font-weight: bold;
    line-height: 1.3;
    text-align: center;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.9);
    padding: .5rem .875rem;
    border-radius: 4px;
}

#site-details #map .leaflet-control-attribution {
    font-size: 10px;
    background: rgba(255, 255, 255, 0.8);
    padding: 2px 5px;
}

#siteReviewAccordion .accordion-item {
    border-color: #0093d0;
}

#siteReviewAccordion .accordion-item .accordion-body {
    line-height: 1.3;
}

#siteReviewAccordion .accordion-item .accordion-body p:last-child {
    margin-bottom: 0;
}

#siteReviewAccordion .accordion-item .accordion-body ul,
#siteReviewAccordion .accordion-item .accordion-body li {
    list-style: disc;
}

#siteReviewAccordion .accordion-item .accordion-body li {
    margin-bottom: .5rem;
}

#siteReviewAccordion .accordion-body ul[style="list-style-type: none;"] li {
    list-style: none;
    padding-left: 1em;
    text-indent: -1em;
}

.accordion-button {
    font-size: 20px !important;
    font-weight: 500 !important;
    color: #006A96 !important;
}

.reviewer-name {
    font-weight: 500;
    text-decoration: none;
    font-size: 20px;
}

.reviewer-title {
    opacity: 0.7;
}

#contact-section h2 {
    text-transform: none;
    letter-spacing: 0;
}

/* Responsive styles */
@media (max-width: 1000px) {
    .site-page-top-bg {
        height: 600px !important;
    }

    .site-page-top-bg svg {
        height: 600px !important;
    }
}

@media (max-width: 600px) {
    .nav-links {
        display: none;
        flex-direction: column;
        position: absolute;
        z-index: 2000;
        background-color: var(--light-sail);
        width: 100%;
        top: 80px;
        left: 0;
        gap: 0;
        border-top: rgba(255, 255, 255, 0.787) 1px solid;
        box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        padding-bottom: 0.5rem;
    }

    .nav-links.active {
        display: flex;
    }

    .header-big-p {
        font-size: 1.15rem;
        margin-top: 1rem;
    }

    #sitePage title {
        justify-content: start;
    }

    #sitePage h1 {
        margin-top: 0;
    }

    #featureCarousel {
        height: 400px;
    }

    #featureCarousel .carousel-item {
        height: 400px;
    }

    #featureCarousel .carousel-item img {
        height: 400px;
    }

    #featureCarousel .carousel-item::before {
        background: linear-gradient(180deg, rgba(62, 162, 224, 0.00) 15%, #0A4463 100%);
    }

    #featureCarousel .carousel-caption {
        font-size: 1.2rem;
        top: 47%;
        padding-left: 0;
        padding-right: 0;
        text-align: center;
    }

    #featureCarousel .carousel-caption p {
        display: none;
        /* Hide captions on small screens */
    }

    #featureCarousel .carousel-control-prev,
    #featureCarousel .carousel-control-next {
        width: 40px;
        height: 100%;
    }

    #featureCarousel .carousel-control-prev-icon,
    #featureCarousel .carousel-control-next-icon {
        width: 20px;
        height: 20px;
    }

    .nav-links li a {
        font-size: 1rem !important;
    }

    .nav-links li a:hover {
        color: var(--fire-engine-red) !important;
    }

    .subtitle {
        font-size: 8vw;
        padding-top: 0;
        margin-top: -10px;
        text-align: left;
        margin-bottom: 40px;
    }

    #historic-sites-title {
        font-size: 10vw;
        letter-spacing: 0.5vw;
        font-weight: 500;
        width: 100vw;
        white-space: nowrap;
    }

    #title-overline {
        font-size: 5.5vw;
        letter-spacing: 3px;
        width: 100vw;
        white-space: nowrap;
    }

    .mobile-menu {
        display: block;
        position: absolute;
        top: 10px;
        right: 10px;
    }

    .mobile-menu img {
        width: 30px;
        height: 30px;
    }

    .nav-links li {
        margin: 0.5rem 0;
    }

    .nav-links li a {
        font-size: 1.2rem;
    }

}

@media (min-width: 768px) {
    .site-card {
        width: 48%;
    }
}

@media (min-width: 1200px) {
    .site-card {
        max-width: 330px;
    }
}

@media (min-width: 1200px) and (max-width: 1400px) {
    #site-photo-rating-card {
        max-width: 530px;
    }
}

/* ------- */
/* Tooltip */
/* ------- */

#tooltip {
    position: absolute;
    text-align: center;
    pointer-events: none;
    visibility: hidden;
    color: black;
    background: white;
    border: .03125rem solid rgba(0, 0, 0, .25);
    border-radius: 16px;
    max-width: 220px;
    height: auto;
    z-index: 999;
    -webkit-box-shadow: 0 10px 6px -6px rgba(0, 0, 0, .25);
    -moz-box-shadow: 0 10px 6px -6px rgba(0, 0, 0, .25);
    box-shadow: 0 10px 6px -6px rgba(0, 0, 0, .25);
    overflow: hidden;
}

.tooltip-photo {
    width: 100%;
    height: 150px;
    /* Smaller height for tooltip to fit */
    max-width: 300px;
    /* Constrain width for tooltip */
    object-fit: cover;
    object-position: center;
}

.tooltipTextContainer {
    padding: 0.25rem 0.75rem 0.5rem 0.75rem;
}

.tootipNameBold {
    font-size: 1.125rem;
    font-weight: 600;
}

.tooltipTextBook {
    font-size: 1rem;
    font-weight: 500;
    color: var(--link-blue-dark);
}

/* ---------- */
/* Map styles */
/* ---------- */

path {
    stroke-linejoin: round;
}

.mapAlbersPath {
    fill: var(--map-albers-fill);
    stroke: white;
    stroke-width: 2;
}

.mapAlbersPath:hover {
    fill: var(--map-albers-fill-hover);
}

.mapAlbersPathSelected {
    fill: var(--map-albers-fill-selected);
}

/* @media (max-width: 991px) {

    #mapAlbers {
        display: none;
    }

    #mapAlbers-zoom {
        display: none;
    }

    #mapAlbers-fallback {
        display: block;
    }

}

@media (min-width: 992px) {

    #mapAlbers {
        display: block;
    }

    #mapAlbers-zoom {
        display: block;
    }

    #mapAlbers-fallback {
        display: none;
    }

} */

.TGM-state-labels {
    pointer-events: none;
    user-select: none;
}

.collegeCircles {
    stroke: none;
}

.collegeCircles:hover {
    stroke: var(--dv-black);
}

#categoryDescriptions {
    font-family: var(--font-family-sans-serif);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}

.form-group .category-checkbox label {
    font-size: 1rem;
}

.form-check-inline {
    display: inline-flex;
    align-items: center;
    margin-right: 1rem;
    gap: 0.5em;
}

.form-check-inline label,
.category-checkbox label {
    margin-bottom: 0;
    line-height: 1.25;
    vertical-align: middle;
    display: flex;
    align-items: center;
}

.form-check-input {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    vertical-align: middle !important;
}

.form-group label {
    font-size: 1rem;
    text-wrap: balance;
}

#resultsCount {
    text-wrap: balance;
}

.form-inline .form-control {
    border-radius: .125em;
}

.input-group-text {
    border-radius: 0 !important;
    background-color: white !important;
    border: 0 !important;
    padding: 0 !important;
    margin-right: 1rem;
}

.input-group {
    width: auto !important;
}

.results-per-page {
    margin-right: 16px;
}

@media (min-width: 1200px) {

    .results-per-page {
        margin-right: 28px;
    }

}

@media (max-width: 576px) {

    .form-inline .form-control {
        width: calc(3.5em + .75rem + 2px);
    }

}

/* --------------- */
/* Custom Checkbox */
/* --------------- */

[type=checkbox] {
    width: 1.25rem !important;
    height: 1.25rem !important;
    vertical-align: middle !important;
    -webkit-appearance: none;
    background: none;
    border: 0 !important;
    outline: 0;
    flex-grow: 0;
    border-radius: 50% !important;
    background-color: #FFFFFF;
    transition: background 300ms;
    cursor: pointer;
}

/* Pseudo element for check styling */
[type=checkbox]::before {
    content: "";
    color: transparent;
    display: block;
    width: inherit;
    height: inherit;
    border-radius: inherit;
    border: 0;
    background-color: transparent;
    background-size: contain;
    box-shadow: inset 0 0 0 1px #CCD3D8;
}

/* Checked */
[type=checkbox]:checked {
    background-color: currentcolor !important;
}

[type=checkbox]:checked::before {
    box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.88 8.29L10 14.17l-1.88-1.88a.996.996 0 1 0-1.41 1.41l2.59 2.59c.39.39 1.02.39 1.41 0L17.3 9.7a.996.996 0 0 0 0-1.41c-.39-.39-1.03-.39-1.42 0z' fill='%23fff'/%3E%3C/svg%3E");
}

/* Disabled */
[type=checkbox]:disabled {
    background-color: #CCD3D8 !important;
    opacity: 0.84;
    cursor: not-allowed;
}

/* IE */
[type=checkbox]::-ms-check {
    content: "";
    color: transparent;
    display: block;
    width: inherit;
    height: inherit;
    border-radius: inherit;
    border: 0;
    background-color: transparent;
    background-size: contain;
    box-shadow: inset 0 0 0 1px #CCD3D8;
}

[type=checkbox]:checked::-ms-check {
    box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E %3Cpath d='M15.88 8.29L10 14.17l-1.88-1.88a.996.996 0 1 0-1.41 1.41l2.59 2.59c.39.39 1.02.39 1.41 0L17.3 9.7a.996.996 0 0 0 0-1.41c-.39-.39-1.03-.39-1.42 0z' fill='%23fff'/%3E %3C/svg%3E");
}

/* --------------- */
/* Custom Buttons */
/* --------------- */

.btn {
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .025rem;
    border-radius: 0;
}

a.btn {
    text-decoration: none;
}

.btn.btn-floating {
    display: inline-flex;
    position: relative;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.btn.btn-cyan-web {
    color: var(--white);
    background-color: var(--cyan-web);
    border-color: var(--cyan-web);
}

.btn.btn-cyan-web:hover {
    color: var(--white);
    background-color: #007eb3;
    border-color: #007eb3;
}

.btn.btn-cyan-web:focus,
.btn.btn-cyan-web.focus {
    color: var(--white);
    background-color: #007eb3;
    border-color: #007eb3;
    box-shadow: 0 0 0 0.2rem rgba(0, 126, 179, 0.5);
}

.btn.btn-cyan-web.disabled,
.btn.btn-cyan-web:disabled {
    color: var(--white);
    background-color: var(--cyan-web);
    border-color: var(--cyan-web);
}

.btn.btn-cyan-web:not(:disabled):not(.disabled):active,
.btn.btn-cyan-web:not(:disabled):not(.disabled).active,
.show>.btn.btn-cyan-web.dropdown-toggle {
    color: var(--white);
    background-color: #007eb3;
    border-color: #007eb3;
}

.btn.btn-cyan-web:not(:disabled):not(.disabled):active:focus,
.btn.btn-cyan-web:not(:disabled):not(.disabled).active:focus,
.show>.btn.btn-cyan-web.dropdown-toggle:focus {
    box-shadow: 0 0 0 0.2rem rgba(0, 126, 179, 0.5);
}

.btn.btn-link-cyan-web {
    color: var(--cyan-web);
    text-decoration: none;
}

.btn.btn-link-cyan-web:hover {
    color: #007eb3;
    text-decoration: none;
}

.btn.btn-outline-primary.btn-outline-cyan-web {
    color: var(--cyan-web);
    border-color: var(--cyan-web);
}

.btn.btn-outline-primary.btn-outline-cyan-web:hover {
    color: var(--white);
    background-color: #007eb3;
    border-color: #007eb3;
}

.btn.btn-outline-primary.btn-outline-cyan-web:not(:disabled):not(.disabled).active,
.btn.btn-outline-primary.btn-outline-cyan-web:not(:disabled):not(.disabled):active,
.show>.btn.btn-outline-primary.btn-outline-cyan-web.dropdown-toggle {
    color: var(--white);
    background-color: #007eb3;
    border-color: #007eb3;
}

.btn.btn-outline-primary.btn-outline-cyan-web.focus,
.btn.btn-outline-primary.btn-outline-cyan-web:focus {
    box-shadow: 0 0 0 0.2rem rgba(0, 126, 179, 0.5);
}

#resetBtn {
    margin-top: -20px;
}

#print-button {
    z-index: 1;
    padding-bottom: 2px !important;
}

/* ----------------- */
/* Custom Select Box */
/* ----------------- */

.custom-select {
    border-radius: .125em;
}

.visually-hidden {
    display: none !important;
}

/* Form Styles */
.cbdOWJP {
    background: none !important;
}

.dteSOD {
    background: none !important;
}

.cbdOWJ {
    background: none !important;
}

#fsform-container-6337043 input,
#fsform-container-6337043 select,
#fsform-container-6337043 textarea {
    border-radius: 24px !important;
    border-color: lightgray !important;
}

.dwNzxr,
#fsSubmitButton6337043 {
    background-color: #027DBD !important;
    border-radius: 16px !important;
}

.dwNzxr:hover,
#fsSubmitButton6337043:hover {
    background-color: #004B8D !important;
}

#fsform-container-6337043 #fsForm-6337043 {
    font-family: 'Gotham', sans-serif !important;
}

.gEMHBT {
    color: #061D46 !important;
}

.ihIYnq {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

#fsSubmit6337043 {
    text-align: left !important;
}

.geKvTG {
    display: block !important;
}

.DNPCm {
    padding-top: 0 !important;
}

.jCWcAZ,
.kRJTNe {
    background-color: transparent !important;
}

@media (max-width: 40em) {
    .cbdOWJ {
        padding: 1rem 0 !important;
    }
}

/* Print Styles */
@media print {
    body {
        background: #fff !important;
        color: #000 !important;
    }

    nav,
    footer,
    #featureCarousel,
    .modal,
    .btn,
    .no-print,
    #map,
    #site-website-link {
        display: none !important;
    }

    /* Remove backgrounds and box-shadows */
    * {
        background: none !important;
        box-shadow: none !important;
        color: #000 !important;
    }

    /* Make content full width */
    .container,
    .row,
    .col,
    main,
    section,
    .accordion,
    .site-card {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Adjust headings and text for print */
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: #000 !important;
        page-break-after: avoid;
    }

    a:after {
        content: " (" attr(href) ")";
        font-size: 90%;
    }

    img {
        max-width: 100% !important;
        height: 375px !important;
        page-break-inside: avoid;
    }

    /* Avoid page breaks inside cards or important blocks */
    .card,
    .site-card,
    #site-photo-rating-card,
    #site-details,
    .accordion-collapse,
    .accordion-body {
        page-break-inside: avoid;
        break-inside: avoid;
        border: none !important;
    }

    .accordion-item {
        border: none !important;
    }

    #sitePage #site-photo-rating-card {
        border-radius: 0 !important;
    }

    /* ...existing print styles... */

    /* Show all accordion content for print */
    .accordion-collapse,
    .accordion-body,
    .collapse {
        display: block !important;
        height: auto !important;
        visibility: visible !important;
        opacity: 1 !important;
        overflow: visible !important;
    }

    /* Optionally, hide accordion toggle buttons/icons */
    .accordion-button::after,
    .accordion-button.collapsed::after,
    .site-page-top-bg,
    #contact-section,
    #fun-fact-block {
        display: none !important;
    }
}