header .navbar-brand {
    padding: 20px 0px;
}

.btn.btn-base-color,
.btn.btn-base-color:not(:hover),
.btn.btn-base-color span,
.btn.btn-base-color .btn-double-text,
.btn.btn-base-color i {
    color: #ffffff !important;
}

.btn.btn-transparent-light-gray,
.btn.btn-transparent-light-gray:active,
.btn.btn-transparent-light-gray:hover {
    background: rgba(255, 191, 0, .2);
    color: rgba(0, 0, 0, .65);
}

.bg-dark-gray,
.bg-dark-gray:focus {
    background-color: var(--base-color);
}

.event-style-03 .nav-tabs .nav-link {
    color: #ffffff !important;
}

.event-style-03 .nav-tabs .nav-link:hover {
    color: var(--base-color) !important;
}

.event-style-03 .nav-tabs .nav-link.active {
    color: var(--base-color) !important;
    background-color: #ffffff !important;
}

.bg-gradient-very-light-gray-transparent {
    background: linear-gradient(to right, rgba(255, 191, 0, .15), rgba(110, 44, 255, 0));
}

.bg-base-transparent-light {
    background: rgba(255, 191, 0, .2);
    color: rgba(0, 0, 0, .65);
}

.bg-light-medium-gray {
    background: rgba(255, 191, 0, .2);
    color: rgba(0, 0, 0, .65);
}

.border-color-base-transparent {
    border-color: rgba(255, 191, 0, .3) !important;
}

/* Fix checkboxes and radios being stretched/styled weirdly by global input styles */
.form-check-input {
    width: 1em !important;
    height: 1em !important;
    padding: 0 !important;
    margin-top: 0.25em !important;
    vertical-align: top !important;
    background-color: #fff !important;
    background-image: var(--bs-form-check-bg-image, none) !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    border: 1px solid rgba(0,0,0,0.25) !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    float: left !important;
}

.form-check-input[type=checkbox] {
    border-radius: 0.25em !important;
}

.form-check-input[type=radio] {
    border-radius: 50% !important;
}

.form-check-input:checked {
    background-color: var(--base-color) !important;
    border-color: var(--base-color) !important;
}

.form-check-input:checked[type=checkbox] {
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e") !important;
    background-image: var(--bs-form-check-bg-image) !important;
}

.form-check-input:checked[type=radio] {
    --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e") !important;
    background-image: var(--bs-form-check-bg-image) !important;
}

.form-check-input:focus {
    box-shadow: 0 0 0 0.25rem rgba(81, 20, 214, 0.25) !important;
    border-color: var(--base-color) !important;
    outline: 0 !important;
}

/* ==========================================================================
   Selfie Capture & Passport Photo Styles
   ========================================================================== */

/* Card Photo Container */
#photo-preview-container {
    transition: all 0.3s ease;
}

#photo-preview-container.is-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

/* Invalid State for Photo Field */
#form-photo-input.is-invalid + #photo-preview-container {
    border-color: #d9534f !important;
    box-shadow: 0 0 0 0.25rem rgba(217, 83, 79, 0.25) !important;
}

/* Selfie Modal Overlay with Glassmorphism */
.selfie-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    background-color: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.selfie-modal-overlay.show {
    opacity: 1;
    visibility: visible;
}

/* Modal Content Card */
.selfie-modal-content {
    background: #ffffff;
    border-radius: 16px;
    width: 380px;
    max-width: 90%;
    padding: 30px 25px;
    position: relative;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    transform: scale(0.9);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.selfie-modal-overlay.show .selfie-modal-content {
    transform: scale(1);
}

/* Modal Close Button */
.selfie-modal-close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: #f1f5f9;
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #475569;
    transition: all 0.2s ease;
}

.selfie-modal-close:hover {
    background: #e2e8f0;
    color: #0f172a;
    transform: scale(1.05);
}

/* Guide Oval Overlay */
.selfie-oval-overlay {
    position: absolute;
    top: 15%;
    left: 20%;
    width: 60%;
    height: 65%;
    border: 2px dashed rgba(255, 255, 255, 0.85);
    border-radius: 50%;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.4);
    pointer-events: none;
    z-index: 5;
    animation: oval-glow 3s infinite ease-in-out;
}

@keyframes oval-glow {
    0% {
        border-color: rgba(255, 255, 255, 0.7);
        box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45), 0 0 10px rgba(255, 255, 255, 0.2);
    }
    50% {
        border-color: var(--base-color, #ffbf00);
        box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.35), 0 0 20px rgba(255, 191, 0, 0.6);
    }
    100% {
        border-color: rgba(255, 255, 255, 0.7);
        box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.45), 0 0 10px rgba(255, 255, 255, 0.2);
    }
}

/* Loading Overlay */
#selfie-modal-loading {
    z-index: 10;
    transition: opacity 0.3s ease;
}

/* Mirror camera feed for a natural user experience */
#selfie-video {
    transform: scaleX(-1);
}

/* Signature Pad Styles */
#signature-container {
    transition: all 0.3s ease;
}

#signature-pad {
    display: block;
    cursor: crosshair;
}

/* Invalid State for Signature Field */
#form-signature-input.is-invalid + #signature-container {
    border-color: #d9534f !important;
    box-shadow: 0 0 0 0.25rem rgba(217, 83, 79, 0.25) !important;
}

/* Shared title treatment for common information and service pages. */
.library-page-title {
    background-color: #f3d66b;
    background-image: linear-gradient(105deg, rgba(255, 248, 216, 0.94), rgba(243, 214, 107, 0.82)), url('../images/homeHero.jpg');
    background-position: center;
    background-size: cover;
}

.content-detail-list {
    margin: 0 0 20px;
    padding-left: 1.4rem;
}

.content-detail-list li {
    margin-bottom: 10px;
    padding-left: 4px;
}

.content-detail-steps li::marker {
    color: var(--base-color);
    font-weight: 700;
}

.footer-brand-logo {
    width: auto;
    max-width: 210px;
    max-height: 82px;
    filter: brightness(0) invert(1);
}
