/*
 * =========================================
 * Global - Brand Variables
 * =========================================
 */
:root {
    
    --brand-white: #ffffff;
    --brand-grey-light: #e6e6e6;
    --brand-grey-med: #9e9e9e;
    --brand-grey-dark: #232323;
    --brand-black: #000000;
    --brand-green-primary: #146e46;
    --brand-green-highlight: #28965a;
    --brand-green-lowlight: #0f5a32;
    --brand-red: #ff4242;
    --brand-error-text: #ff7272;

    --brand-border-radius-sm: 5px;
    
}

body {
    background-color: var(--brand-grey-dark);
    color: var(--brand-white);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

h1 {
    font-size: 2rem;
    font-weight: bold;
}

h2 {
    font-size: 1.8rem;
    font-weight: bold;
}

h3 {
    font-size: 1.6rem;
    font-weight: bold;
}

h4 {
    font-size: 1.4rem;
    font-weight: bold;
}

h5, .h5 {
    font-size: 1.2rem;
    font-weight: bold;
}

h6 {
    font-size: 1.1rem;
    font-weight: bold;
}

p {
    font-size: 1rem;
    font-weight: normal;
    line-height: 1.5;
    margin-bottom: 1rem;
}

a {
    color: var(--brand-grey-light);
    text-decoration: underline;
}

a:hover {
    color: var(--brand-white);
    text-decoration: underline;
}

.btn.btn-green-solid {
    color: var(--brand-white);
    border: none;
    border-radius: 50rem;
    background-color: var(--brand-green-primary);
    background-image: linear-gradient(
            to bottom,
            var(--brand-green-highlight) 0%,
            var(--brand-green-primary) 50%,
            var(--brand-green-lowlight) 100%
    );
    transition: background-color 0s;
}

.btn.btn-green-solid:hover {
    border: none;
    color: var(--brand-white);
    background-color: var(--brand-green-highlight);
    background-image: none;
}

.form-group:has(:required) label::after {
    content: " *";
    color: var(--brand-red);
    margin-left: 0.25rem;
}

.error-text {
    color: var(--brand-error-text);
    font-weight: bold;
}

.grecaptcha-badge {
    visibility: hidden !important;
}

.recaptcha-container {
    color: var(--brand-grey-med);
}

/*
 * =========================================
 * HEADER WIDGET
 * =========================================
 */

.header-section .navbar-brand {
    font-size: 1.75rem;
    font-weight: bold;
}

.header-section span {
    font-size: 1.1rem;
}

.header-section a {
    color: var(--brand-white) !important;
}

.header-section .dropdown-item {
    color: var(--brand-grey-dark) !important;
}

.promo-banner-bg {
    background-color: var(--brand-green-primary);
}

.promo-banner-link {
    color: var(--brand-grey-light);
    font-weight: bold;
    text-decoration: underline;
}

.promo-banner-link:hover {
    color: var(--brand-white);
}

/*
 * =========================================
 * SERVICE CARDS
 * =========================================
 */

.service-card {
    border-radius: var(--brand-border-radius-sm);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.service-card-badge {
    background-color: var(--brand-green-primary);
    color: var(--brand-black);
    font-weight: bold;
    font-size: 0.75rem;
    padding: 0.25rem 0.75rem;
}

.service-card-icon-main {
    width: 80px;
    height: 80px;
    background-color: #343a40; /* Not a brand color, left as-is */
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--brand-white);
    font-size: 2rem;
}

.service-card-body {
    flex-grow: 1;
}

.service-card-title {
    font-weight: bold;
}

.service-card-text {
    color: var(--brand-grey-med);
}

.service-card-text a {
    color: var(--brand-grey-light);
    font-weight: bold;
    text-decoration: underline;
}

.service-card-text a:hover {
    color: var(--brand-white);
}

.service-card-icon-footer-group {
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.service-card-icon-footer {
    width: 30px;
    height: 30px;
    background-color: var(--brand-grey-med);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 0.8rem;
    color: var(--brand-white);
}

.crypto-icon-list {
    
}

/*
 * =========================================
 * LOCATION WIDGETS
 * =========================================
 */

.location-card {
    background-color: var(--brand-grey-dark); /* Dark charcoal background */
    color: var(--brand-white); /* Default text color */
    border-radius: 0.5rem;
}

.location-badge {
    background-color: var(--brand-green-primary);
    color: var(--brand-white);
    padding: 0.25rem 0.75rem;
    border-radius: 0.375rem;
    font-weight: 600;
    font-size: 0.875rem;
    display: inline-block;
}

.location-currency-badge {
    background-color: var(--brand-green-primary);
    color: var(--brand-white);
    padding: 0.25rem 0.75rem;
    border-radius: 0.95rem;
    font-weight: 400;
    font-size: 1rem;
    display: inline-block;
}

.location-carousel-image {
    max-height: 500px;
    object-fit: contain;
}

.location-info::before {
    font-family: "bootstrap-icons";
    content: "\F431";
    margin-right: 0.5rem;
    font-size: 1.1em;
    vertical-align: -0.125em;
}

.location-filter {
    background-color: var(--brand-green-primary);
    color: var(--brand-white);
    border-radius: 0.375rem;
    font-weight: 600;
    font-size: 1rem;
    display: inline-block;
}

@media (min-width: 992px) {
    .location-col-separator {
        border-right: 1px solid var(--brand-green-lowlight);
    }
}

.location-address {
    font-size: 1.2rem;
    text-indent: 30px;
    display: inline-block;
}

.location-separator {
    border-top: 1px solid var(--brand-green-lowlight); 
}

.direction-link {
    color: var(--brand-green-highlight);
    text-decoration: none;
    transition: color 0.2s ease;
    font-weight: 600;
}

.direction-link:hover {
    color: var(--brand-green-primary);
}

.marker-info-window {
    background-color: var(--brand-grey-dark);
    color: var(--brand-white);
    padding-right: 16px;
    white-space: normal;
    overflow-wrap: break-word;
}

/* Override map marker defaults */
.gm-style-iw.gm-style-iw-c {
    background-color: var(--brand-grey-dark) !important;
    color: var(--brand-white) !important;
    max-width: max-content !important;
}
.gm-style-iw-d {
    overflow: hidden !important;
}
.gm-style-iw-tc::after {
    background-color: var(--brand-grey-dark) !important;
}
.gm-ui-hover-effect {
    filter: invert(1);
}

/*
 * =========================================
 * ARTICLE WIDGETS
 * =========================================
 */

.articles-list-section a {
    text-decoration: none;
}

.articles-list-section a:hover .article-hyperlink,
.articles-list-section a:focus .article-hyperlink,
.articles-list-section a:active .article-hyperlink {
    text-decoration: underline;
}

.articles-list-section h6 {
    font-size: 1.1rem;
    font-weight: normal;
}

.article-list-badge {
    background-color: var(--brand-green-primary);
    border: 2px solid var(--brand-green-lowlight);
    color: var(--brand-white);
    padding: 0.25rem 0.75rem;
    border-radius: 0.375rem;
    text-decoration: none;
    display: inline-block;
}

.article-list-badge::before {
    font-family: "bootstrap-icons";
    content: "\F38B";
    margin-right: 0.5rem;
    font-size: 1.1em;
    vertical-align: -0.125em;
}

.announcement-list-badge {
    background-color: var(--brand-green-primary);
    border: 2px solid var(--brand-green-highlight);
    color: var(--brand-white);
    padding: 0.25rem 0.75rem;
    border-radius: 0.375rem;
    text-decoration: none;
    display: inline-block;
}

.announcement-list-badge::before {
    font-family: "bootstrap-icons";
    content: "\F483";
    margin-right: 0.5rem;
    font-size: 1.1em;
    vertical-align: -0.125em;
}

/* Shared Heading Properties */
.article-content-section h1,
.article-content-section h2,
.article-content-section h3,
.article-content-section h4,
.article-content-section h5,
.article-content-section h6 {
    margin-top: 0.5rem;
    margin-bottom: 1.2rem;
    font-weight: 500;
    line-height: 1.2;
}

/* Specific Heading Sizes */
.article-content-section h1 {
    font-size: 2rem;
}

.article-content-section h2 {
    font-size: 1.8rem;
}

.article-content-section h3 {
    font-size: 1.6rem;
}

.article-content-section h4 {
    font-size: 1.4rem;
}

.article-content-section h5 {
    font-size: 1.2rem;
}

.article-content-section h6 {
    font-size: 1rem;
}

.article-content-section p {
    margin-top: 0;
    margin-bottom: 1.5rem;
    line-height: 1.5;
}

.article-content-section ul {
    margin-top: 0;
    margin-bottom: 1.5rem;
    padding-left: 2rem;
}

.article-content-section ul li {
    line-height: 1.5;
    margin-bottom: 0.25rem;
}

.article-content-section ol {
    margin-top: 0;
    margin-bottom: 1.5rem;
    padding-left: 2rem;
}

.article-content-section ol li {
    line-height: 1.5;
    margin-bottom: 0.25rem;
}

.article-content-section ul ul,
.article-content-section ul ol,
.article-content-section ol ul,
.article-content-section ol ol {
    margin-bottom: 0;
}


/*
 * =========================================
 * FOOTER WIDGET
 * =========================================
 */

.footer-section {
    background-color: var(--brand-green-primary);
    color: var(--brand-white);
    border-bottom-left-radius: var(--brand-border-radius-sm);
    border-bottom-right-radius: var(--brand-border-radius-sm);
}

.footer-logo-placeholder {
    width: 200px;
    height: 200px;
    background-color: var(--brand-grey-light);
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--brand-grey-dark);
    font-weight: bold;
    opacity: 0.5;
}

.footer-title {
    font-size: 1.5rem;
    font-weight: bold;
    margin-bottom: 1rem;
}

.footer-links {
    list-style: none;
    padding-left: 0;
}

.footer-links li {
    margin-bottom: 0.1rem;
}

.footer-link {
    color: var(--brand-white);
    text-decoration: none;
    transition: all 0.2s ease;
}

.footer-link:hover {
    color: var(--brand-grey-light);
    text-decoration: underline;
}

.footer-copyright {
    font-size: 1rem;
    color: var(--brand-grey-light);
}