/* Theme Default style
-------------------------------------------------------------- */
* {
    box-sizing: border-box;
}

:root {
    --fc-v5-red: #d02c26;
    --fc-v5-red-hover: #c0351d;
    --fc-v5-blue-dark: rgb(30, 58, 138);
    --fc-v5-blue-light: rgb(239, 246, 255);
    --fc-shadow-premium: 0 10px 30px rgba(0, 0, 0, 0.08);
}

/* Swiper Global Customization */
.swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background: #ccc;
    opacity: 1;
    transition: all 0.3s ease;
}

.swiper-pagination-bullet-active {
    background: var(--fc-primary);
    width: 25px;
    border-radius: 5px;
}

.swiper-pagination {
    position: relative !important;
    margin-top: 20px;
}

/* HTML and Body Styles
--------------------------------------------------------------*/
html,
body {
    font-weight: 400;
    font-size: 14px;
    margin: 0px;
    padding: 0px;
    font-optical-sizing: auto;
    font-style: normal;
    line-height: inherit;
}

/* Link Styles
--------------------------------------------------------------*/
a {
    text-decoration: none;
}

/* Paragraph Styles
--------------------------------------------------------------*/
p {
    margin: 5px 0px;
}

/* Utility Classes
--------------------------------------------------------------*/
.bg-white {
    background-color: #FFF;
}

.bg-blue-light {
    background-color: var(--fc-v5-blue-light) !important;
}

.bg-transparent {
    background: transparent;
}

.overflow-hidden {
    overflow: hidden;
}

.overflow-auto {
    overflow: auto;
}

.overflow-horizontal-auto {
    overflow-x: auto;
}

.overflow-vertical-auto {
    overflow: auto;
}

.bg-v5-blue-dark { background-color: #1e3a8a !important; }
.bg-f1f5f9 { background-color: #f1f5f9 !important; }
.bg-f8fafc { background-color: #f8fafc !important; }

/* Typography Utilities
--------------------------------------------------------------*/
.font11 {
    font-size: 11px !important;
}

.font12 {
    font-size: 12px !important;
}

.font13 {
    font-size: 13px !important;
}

.font14 {
    font-size: 14px !important;
}

.font15 {
    font-size: 15px !important;
}

.font16 {
    font-size: 16px !important;
}

.font18 {
    font-size: 18px !important;
}

.font20 {
    font-size: 20px !important;
}

.font22 {
    font-size: 22px !important;
}

.font24 {
    font-size: 24px !important;
}

.font28 {
    font-size: 28px !important;
}

.font30 {
    font-size: 30px !important;
}

.font32 {
    font-size: 32px !important;
}

.font36 {
    font-size: 36px !important;
}

/* Section Label v5
--------------------------------------------------------------*/
.section-label-v5 {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.section-label-v5::before {
    content: "";
    width: 32px;
    height: 3px;
    background-color: var(--fc-v5-blue-dark);
    border-radius: 999px;
    flex-shrink: 0;
}

.section-label-v5.centered {
    padding: 0 44px;
}

.section-label-v5.centered::before {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}

.section-label-v5.centered::after {
    content: "";
    width: 32px;
    height: 3px;
    background-color: var(--fc-v5-blue-dark);
    border-radius: 999px;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.font-weight-400 {
    font-weight: 400 !important;
}

.font-weight-500 {
    font-weight: 500 !important;
}

.font-weight-600 {
    font-weight: 600 !important;
}

.font-weight-700 {
    font-weight: 700 !important;
}

.font-weight-800 {
    font-weight: 800 !important;
}

.line-height-1-3 {
    line-height: 1.3 !important;
}

.line-height-1-6 {
    line-height: 1.6 !important;
}

.line-height-1-4 {
    line-height: 1.4 !important;
}

/* Spacing Utilities
--------------------------------------------------------------*/

.py-1-5 {
    padding-top: 7.5px !important;
    padding-bottom: 7.5px !important;
}

.py-2-5 {
    padding-top: 12.5px !important;
    padding-bottom: 12.5px !important;
}

.gap-1 {
    gap: 5px !important;
}

.gap-2 {
    gap: 10px !important;
}

.gap-3 {
    gap: 15px !important;
}

.gap-4 {
    gap: 25px !important;
}

/* Gutters */
.g-4 {
    margin: -4px !important;
    display: flex;
    flex-wrap: wrap;
}

.g-4>div,
.g-4>li,
.g-4>.col {
    padding: 6px !important;
}

/* Design Utilities v5 
-------------------------------------------------------------- */

.transition-transform-500 {
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.shadow-premium {
    box-shadow: var(--fc-shadow-premium) !important;
}

.object-fit-cover {
    object-fit: cover !important;
}

.z-2 {
    z-index: 2 !important;
}

.transition-03 { transition: all 0.3s ease !important; }
.transition-05 { transition: all 0.5s ease !important; }

/* Buttons v5 
-------------------------------------------------------------- */
.btn-v5-red {
    background-color: var(--fc-v5-red) !important;
    color: #fff !important;
    border: 2px solid transparent !important;
    padding: 12px 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    border-radius: 10px;
}

.btn-v5-red:hover {
    background-color: var(--fc-v5-red-hover) !important;
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(217, 65, 37, 0.3);
}

.btn-v5-outline-blue {
    background-color: transparent !important;
    color: var(--fc-v5-blue-dark) !important;
    border: 2px solid var(--fc-v5-blue-dark) !important;
    padding: 12px 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
}

.btn-v5-outline-blue:hover {
    background-color: var(--fc-v5-blue-dark) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
}

.btn-view-all-red {
    background: var(--fc-v5-red);
    color: #fff !important;
    border-radius: 10px;
    padding: 12px 30px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
}

.btn-view-all-red:hover {
    background: var(--fc-v5-red-hover);
    transform: scale(1.02);
}

/* UI Components v5
-------------------------------------------------------------- */
.badge-v5 {
    display: inline-block;
    text-transform: uppercase;
}

.aspect-3-2 {
    aspect-ratio: 3 / 2 !important;
}

/* Features v5 
-------------------------------------------------------------- */
.builder-features-v5 {
    background-color: #f8fafc;
}

.features-grid-v5 {
    display: flex !important;
    flex-wrap: wrap !important;
    margin: 0 -12px !important;
}

.features-card-v5 {
    border: 1.5px solid #e2e8f0;
    padding: 24px;
    height: 100%;
}

.features-card-v5:hover {
    border-color: var(--fc-v5-blue-dark);
    box-shadow: 0 20px 25px -5px rgba(30, 58, 138, 0.1), 0 8px 10px -6px rgba(30, 58, 138, 0.1) !important;
    transform: translateY(-8px);
}

.features-icon-box-v5 {
    width: 40px;
    height: 40px;
}

.features-icon-box-v5 img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    filter: brightness(0.8) sepia(1) hue-rotate(190deg) saturate(5);
}

.features-title-v5 {
    line-height: 1.4;
}

.features-card-v5:hover .features-title-v5 {
    color: var(--fc-v5-blue-dark);
}

.features-desc-v5 {
    /* Styles handled by utilities in HTML */
}

/* Projects Section v5 
--------------------------------------------------------------*/
.builder-projects-v5 {
    background-color: #f8fafc;
}

.projects-grid-v5 {
    margin: 0 -12px;
}

.project-card-v5 {
    border: 1.5px solid #e2e8f0;
    padding: 20px;
    width: calc(33.33% - 20px);
    margin: 10px;
}

.project-card-v5:hover {
    border-color: var(--fc-v5-blue-dark);
    box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.08), 0 4px 6px -2px rgba(30, 58, 138, 0.05) !important;
    transform: translateY(-8px);
}

.project-card-v5:hover .project-title-v5 {
    color: var(--fc-v5-blue-dark);
}

/* Prestige Section v5 
--------------------------------------------------------------*/
.builder-prestige-v5 {
    background-color: #ffffff;
}

.prestige-card-main:hover,
.prestige-card-sub:hover {
    border-color: var(--fc-v5-blue-dark);
    box-shadow: 0 5px 10px rgba(30, 58, 138, 0.05) !important;
    transform: translateY(-3px);
}

.prestige-icon-box img {
    width: 22px;
    height: 22px;
    object-fit: contain;
    filter: brightness(0.8) sepia(1) hue-rotate(190deg) saturate(5);
    transition: all 0.3s ease;
}

.prestige-card-main:hover .prestige-icon-box {
    background-color: var(--fc-v5-blue-dark) !important;
}

.prestige-card-main:hover .prestige-icon-box img {
    filter: brightness(0) invert(1) !important;
}

.prestige-image-card:hover .group-hover-scale-110 {
    transform: scale(1.1);
}

.prestige-overlay {
    z-index: 2;
}

.prestige-image-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(15, 23, 42, 0.8), rgba(15, 23, 42, 0) 60%);
    z-index: 1;
    pointer-events: none;
}

/* Typical Clients Section v5 
--------------------------------------------------------------*/
.typical-client-pill-v5 {
    border: 1px solid transparent;
    color: #6b7280;
    /* color-grey */
}

.typical-client-pill-v5:hover {
    border-color: var(--fc-v5-blue-dark);
    background-color: var(--fc-v5-blue-light) !important;
}

.typical-client-pill-v5:hover a,
.typical-client-pill-v5:hover span {
    color: var(--fc-v5-blue-dark) !important;
}

.typical-project-banner {
    transition: all 0.5s ease;
}

.typical-project-overlay {
    background: linear-gradient(to right, rgba(15, 23, 42, 0.7) 0%, rgba(15, 23, 42, 0) 100%) !important;
}

/* Quote & Policy Section v5 
--------------------------------------------------------------*/
.bg-v5-blue-light {
    background-color: #eff6ff !important;
}

.policy-card-v5 {
    background-color: #eff6ff !important;
    border: 1px solid transparent;
}

.policy-card-v5 .policy-icon-box {
    background-color: #ffffff !important;
    border-radius: 14px !important;
    width: 44px !important;
    height: 44px !important;
    box-shadow: none !important;
}

.policy-card-v5:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(30, 58, 138, 0.08) !important;
}

.benefits-list-v5 {
    background-color: #eff6ff !important;
}

.custom-form-v5 label {
    font-size: 14px;
    font-weight: 600;
    color: var(--fc_color_heading);
    margin-bottom: 5px;
    display: block;
}

.custom-form-v5 .wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 15px;
}

.custom-form-v5 input:not([type="submit"]),
.custom-form-v5 textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f8f9fa;
    font-size: 14px;
    color: #111827 !important;
    /* Dark text */
    transition: all 0.3s ease;
    resize: none;
    /* Disable resize */
}

.custom-form-v5 input::placeholder,
.custom-form-v5 textarea::placeholder {
    color: #9ca3af !important;
    /* Subtle placeholder */
}

.custom-form-v5 input:focus,
.custom-form-v5 textarea:focus {
    background: #ffffff !important;
    border-color: var(--fc-v5-blue-dark) !important;
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(30, 58, 138, 0.05) !important;
}

.custom-form-v5 input[type="submit"],
.custom-form-v5 button.wpcf7-submit {
    width: 100%;
    background: var(--fc-v5-red);
    color: #ffffff;
    border: none;
    padding: 14px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.custom-form-v5 input[type="submit"]:hover,
.custom-form-v5 button.wpcf7-submit:hover {
    background: var(--fc-v5-red-hover);
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(217, 65, 37, 0.2);
}

.custom-form-v5 .wpcf7-spinner {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
}

/* About Section v5 
--------------------------------------------------------------*/
.builder-about-section.v5 {
    background-color: #f8f9fa;
}

.about-card-v5 {
    z-index: 10;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.about-content-v5 p {
    margin-bottom: 15px;
}

.about-content-v5 p:last-child {
    margin-bottom: 0;
}

/* Feature List */
.about-features-grid .font-weight-600 {
    font-size: 13.5px;
    color: #111827;
}

.about-actions-v5 {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 15px !important;
    margin-top: 25px !important;
}

/* Image with Case Study */
.about-image-v5 {
    width: 100%;
    aspect-ratio: 3 / 2;
    display: block;
}

@media (max-width: 991px) {
    .about-image-v5 {
        aspect-ratio: 4 / 3;
        /* Tỉ lệ gọn hơn trên mobile */
    }
}

.about-image-v5 .overlay-gradient-v5 {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.4) 40%, transparent 100%);
    position: absolute;
    inset: 0;
    z-index: 1;
}

.case-study-overlay {
    z-index: 5;
}

.case-study-overlay .cs-title {
    line-height: 1.2;
}

.typical-project-overlay .cs-desc,
.case-study-overlay .cs-desc {
    line-height: 1.4;
    color: oklch(88.2% .059 254.128);
}

.group-hover-scale-110 {
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.about-image-v5:hover .group-hover-scale-110,
.news-card-v5:hover .group-hover-scale-110 {
    transform: scale(1.1);
}

/* News Section v5 
--------------------------------------------------------------*/
.news-card-v5 {
    border-color: #f1f5f9;
}

.news-card-v5:hover {
    border-color: var(--fc-v5-blue-dark);
    box-shadow: 0 20px 25px -5px rgba(30, 58, 138, 0.1), 0 8px 10px -6px rgba(30, 58, 138, 0.1) !important;
}

.news-card-v5:hover .news-title-v5 a {
    color: var(--fc-v5-blue-dark);
}

.news-readmore-v5 svg {
    transition: transform 0.3s ease;
}

.news-card-v5:hover .news-readmore-v5 svg {
    transform: translateX(5px);
}

.hover-color-primary:hover {
    color: var(--fc-v5-blue-dark) !important;
}

.font42 {
    font-size: 42px;
}

@media (max-width: 991px) {
    .font42 {
        font-size: 32px;
    }
}

.max-w-450 {
    max-width: 450px;
}

/* CTA Contact Section v5 
--------------------------------------------------------------*/
.builder-cta-contact-v5 {
    background-color: var(--fc-v5-blue-dark);
}

.btn-v5-outline-white {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 28px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1.5px solid rgba(255, 255, 255, 0.4);
    color: #fff !important;
    border-radius: 10px;
}

.btn-v5-outline-white:hover {
    background: #fff;
    color: var(--fc-v5-blue-dark) !important;
    border-color: #fff;
    transform: translateY(-2px);
}

.cta-pill-v5 {
    background: rgba(255, 255, 255, 0.1);
    color: #f8df40;
    border: 1px solid rgba(234, 179, 8, 0.5);
}

.cta-hotline-card-v5,
.cta-stat-card-v5 {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.cta-hotline-card-v5:hover,
.cta-stat-card-v5:hover {
    background: rgba(255, 255, 255, 0.1) !important;
    border-color: rgba(255, 255, 255, 0.3) !important;
    transform: translateY(-3px);
}

.cta-hl-icon-v5 {
    background-color: rgb(253, 224, 71);
    color: var(--fc-v5-blue-dark);
    width: 50px;
    height: 50px;
}

/* Color Utilities
--------------------------------------------------------------*/
.color-primary {
    color: var(--fc_color_primary) !important;
}

.color-secondary {
    color: var(--fc_color_secondary) !important;
}

.color-tertiary {
    color: var(--fc_color_tertiary) !important;
}

.color-heading {
    color: var(--fc_color_heading) !important;
}

.color-white {
    color: #ffffff !important;
}

.color-grey {
    color: #6b7280 !important;
}

.color-blue200 {
    color: #bedbff !important;
}

.text-v5-blue-dark { color: #1e3a8a !important; }
.bg-v5-orange { background-color: #f97316 !important; }
.hover-v5-orange:hover { color: #f97316 !important; }
.text-v5-yellow { color: #facc15 !important; }
.text-64748b { color: #64748b !important; }
.filter-v5-yellow { filter: invert(73%) sepia(85%) saturate(1633%) hue-rotate(345deg) brightness(101%) contrast(97%) !important; }

.color-warning {
    color: #f8df40 !important;
}

.bg-v5-blue {
    background-color: var(--fc-v5-blue-dark) !important;
}

.bg-v5-blue-light {
    background-color: var(--fc-v5-blue-light) !important;
}

.background-white {
    background-color: #ffffff !important;
}

.background-f0 {
    background-color: #f0f0f0 !important;
}

.background-f8 {
    background-color: #f8f9fa !important;
}

/* Border Utilities
--------------------------------------------------------------*/
.border-radius-5 {
    border-radius: 5px !important;
}

.border-radius-8 {
    border-radius: 8px !important;
}

.border-radius-10 {
    border-radius: 10px !important;
}

.border-radius-end-10 {
    border-top-right-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

.border-radius-14 {
    border-radius: 14px !important;
}

.border-radius-15 {
    border-radius: 15px !important;
}

.border-radius-20 {
    border-radius: 20px !important;
}

.border-radius-4 { border-radius: 4px !important; }
.border-radius-12 { border-radius: 12px !important; }
.border-radius-16 { border-radius: 16px !important; }
.border-color-f1f5f9 { border-color: #f1f5f9 !important; }
.border-color-e2e8f0 { border-color: #e2e8f0 !important; }

.border-radius-999 {
    border-radius: 999px !important;
}

.border-f0 {
    border: 1px solid #f0f0f0 !important;
}

/* Sizing Utilities
 --------------------------------------------------------------*/
.container-1200 {
    width: 100%;
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 15px;
    padding-right: 15px;
}

.max-w-400 {
    max-width: 400px !important;
}

.max-w-600 {
    max-width: 600px !important;
}

.max-w-700 {
    max-width: 700px !important;
}

.max-w-800 {
    max-width: 800px !important;
}

.mx-auto {
    margin-left: auto !important;
    margin-right: auto !important;
}

.opacity-70 {
    opacity: 0.7 !important;
}

.opacity-80 {
    opacity: 0.8 !important;
}

.opacity-10 { opacity: 0.1 !important; }
.opacity-90 { opacity: 0.9 !important; }

.inset-0 {
    inset: 0 !important;
}

.letter-spacing-1 {
    letter-spacing: 1px !important;
}

/* Interactive Utilities
 --------------------------------------------------------------*/
.hover-lift-2:hover {
    transform: translateY(-2px) !important;
}

.hover-shift-x { transition: all 0.3s ease !important; }
.hover-shift-x:hover { transform: translateX(5px) !important; }
.hover-opacity-90:hover { opacity: 0.9 !important; }
.hover-bg-f8fafc:hover { background-color: #f8fafc !important; }

.transition-300 {
    transition: all 0.3s ease !important;
}

.transition-500 {
    transition: all 0.5s ease !important;
}

.transition-800 {
    transition: all 0.8s ease !important;
}

.animate-shine:after {
    position: absolute;
    top: 0;
    left: -75%;
    z-index: 2;
    display: block;
    content: '';
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, .3) 100%);
    transform: skewX(-25deg);
}

.animate-shine:hover:after {
    animation: shine .75s;
}

@keyframes shine {
    100% {
        left: 125%;
    }
}

/* Animate Border
--------------------------------------------------------------*/
.animate-border svg {
    right: 0;
    bottom: 0;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%
}

.animate-border rect {
    fill: none;
    stroke: #ffff;
    stroke-width: 2;
    stroke-dasharray: 422, 0;
    transition: all 0.35s linear;
}

.animate-border:hover rect {
    stroke-width: 6px;
    stroke: #ffba00;
    stroke-dasharray: 15, 288;
    stroke-dashoffset: 48
}

/* Loading Spinner
--------------------------------------------------------------*/
.loading-spinner {
    width: 40px;
    height: 40px;
    z-index: 10;
    border: 3px solid #646464;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

.loading-spinner::after {
    content: '';
    box-sizing: border-box;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: 3px solid;
    border-color: #FF3D00 transparent;
}

/* Rotation Animation
--------------------------------------------------------------*/
@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* Clearfix Utility
--------------------------------------------------------------*/
.clear-both {
    clear: both;
}

.clear {
    clear: both;
    width: 100%;
}

/* Responsive Media Elements
--------------------------------------------------------------*/
iframe,
img {
    max-width: 100%;
    height: auto;
}

.mejs-mediaelement iframe {
    height: 100%;
}

/* Text Clipping Classes
--------------------------------------------------------------*/
.line1,
.line2,
.line3,
.line4 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}

.line1 {
    -webkit-line-clamp: 1;
}

.line2 {
    -webkit-line-clamp: 2;
}

.line3 {
    -webkit-line-clamp: 3;
}

.line4 {
    -webkit-line-clamp: 4;
}

/* Shadow Effects
--------------------------------------------------------------*/
.shadow {
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important;
}

.shadow-sm {
    box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important;
}

/* Full Width and Height Utility Classes
--------------------------------------------------------------*/
.width100 {
    width: 100%;
}

.height100 {
    height: 100%;
}

.height-100vh {
    height: 100vh;
}

.width-100vh {
    width: 100vh;
}

.h-100 {
    height: 100% !important;
}

.w-100 {
    width: 100% !important;
}

.d-flex {
    display: flex !important;
}

.flex-column {
    flex-direction: column !important;
}

.flex-wrap {
    flex-wrap: wrap !important;
}

.align-items-center {
    align-items: center !important;
}

.align-items-stretch {
    align-items: stretch !important;
}

.justify-content-center {
    justify-content: center !important;
}

.justify-content-between {
    justify-content: space-between !important;
}

.flex-shrink-0 {
    flex-shrink: 0 !important;
}

.flex-grow-1 {
    flex-grow: 1 !important;
}

/* Background Style
 --------------------------------------------------------------*/
.background-fixed {
    background-attachment: fixed;
}

.background-center {
    background-position: center;
}

.background-no-repeat {
    background-repeat: no-repeat;
}

.background-cover {
    background-size: cover;
}

.background-contain {
    background-size: contain;
}

/* WordPress Editor
--------------------------------------------------------------*/
.alignnone {
    margin: 5px 20px;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto;
}

.alignright {
    float: right;
    margin: 5px 0px 5px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 5px 0px;
}

a img.alignright {
    float: right;
    margin: 5px 0px 5px 20px;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 5px 0px;
}

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption {
    background: #fff;
    border: 0px solid #f0f0f0;
    max-width: 100%;
    padding: 5px 10px;
    text-align: center;
}

/* Text meant only for screen readers
--------------------------------------------------------------*/
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #eee;
    clip: auto !important;
    clip-path: none;
    color: #444;
    display: block;
    font-size: 1em;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* Blockquote Styles
--------------------------------------------------------------*/
blockquote {
    color: #957951;
    background: #F4F2E9;
    padding: 30px;
    margin: 30px 30px;
    position: relative;
}

blockquote:before {
    content: "“";
    font-size: 4em;
    color: #d8c3a5;
    position: absolute;
    left: 10px;
    top: 5px;
    font-family: Inter, Roboto, "SF Pro Display", system-ui, sans-serif;
}

/* Element cursor pointer
--------------------------------------------------------------*/
.cursor-pointer {
    cursor: pointer;
}

/* ratio height 56.25%
--------------------------------------------------------------*/
.ratio-height {
    height: 0px;
    padding-top: 56.25% !important;
}

/* ratio height 70%
--------------------------------------------------------------*/
.ratio70-height {
    height: 0px;
    padding-top: 70% !important;
}

/* Grid style
--------------------------------------------------------------*/
.container {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
    max-width: 1300px;
}

.row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}

.row>* {
    box-sizing: border-box;
    flex-shrink: 0;
    max-width: 100%;
}

.col {
    flex: 0 0 auto;
    width: 100%;
}

.col-auto {
    flex: 0 0 auto;
    width: auto;
}

/* Column width classes (based on a 12-column grid system)
--------------------------------------------------------------*/
.col-1 {
    flex: 0 0 auto;
    width: 8.33333333%;
}

.col-2 {
    flex: 0 0 auto;
    width: 16.66666667%;
}

.col-3 {
    flex: 0 0 auto;
    width: 25%;
}

.col-4 {
    flex: 0 0 auto;
    width: 33.33333333%;
}

.col-5 {
    flex: 0 0 auto;
    width: 41.66666667%;
}

.col-6 {
    flex: 0 0 auto;
    width: 50%;
}

.col-7 {
    flex: 0 0 auto;
    width: 58.33333333%;
}

.col-8 {
    flex: 0 0 auto;
    width: 66.66666667%;
}

.col-9 {
    flex: 0 0 auto;
    width: 75%;
}

.col-10 {
    flex: 0 0 auto;
    width: 83.33333333%;
}

.col-11 {
    flex: 0 0 auto;
    width: 91.66666667%;
}

.col-12 {
    flex: 0 0 auto;
    width: 100%;
}

/* Media query for screens with minimum width of 576px
--------------------------------------------------------------*/
@media (min-width: 576px) {

    /* Default flex behavior for col-sm
    --------------------------------------------------------------*/
    .col-sm {
        flex: 1 0 0;
    }

    /* Flex container with auto width
    --------------------------------------------------------------*/
    .col-sm-auto {
        flex: 0 0 auto;
        width: auto;
    }

    /* Flex classes for 1 to 12 columns with different widths
    --------------------------------------------------------------*/
    .col-sm-1 {
        flex: 0 0 auto;
        width: 8.33333333%;
    }

    .col-sm-2 {
        flex: 0 0 auto;
        width: 16.66666667%;
    }

    .col-sm-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-sm-4 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .col-sm-5 {
        flex: 0 0 auto;
        width: 41.66666667%;
    }

    .col-sm-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-sm-7 {
        flex: 0 0 auto;
        width: 58.33333333%;
    }

    .col-sm-8 {
        flex: 0 0 auto;
        width: 66.66666667%;
    }

    .col-sm-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-sm-10 {
        flex: 0 0 auto;
        width: 83.33333333%;
    }

    .col-sm-11 {
        flex: 0 0 auto;
        width: 91.66666667%;
    }

    .col-sm-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Media query for screens with minimum width of 768px
--------------------------------------------------------------*/
@media (min-width: 768px) {

    /* Default flex behavior for col-md
    --------------------------------------------------------------*/
    .col-md {
        flex: 1 0 0%;
    }

    /* Flex container with auto width
    --------------------------------------------------------------*/
    .col-md-auto {
        flex: 0 0 auto;
        width: auto;
    }

    /* Flex classes for 1 to 12 columns with different widths
    --------------------------------------------------------------*/
    .col-md-1 {
        flex: 0 0 auto;
        width: 8.33333333%;
    }

    .col-md-2 {
        flex: 0 0 auto;
        width: 16.66666667%;
    }

    .col-md-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-md-4 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .col-md-5 {
        flex: 0 0 auto;
        width: 41.66666667%;
    }

    .col-md-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-md-7 {
        flex: 0 0 auto;
        width: 58.33333333%;
    }

    .col-md-8 {
        flex: 0 0 auto;
        width: 66.66666667%;
    }

    .col-md-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-md-10 {
        flex: 0 0 auto;
        width: 83.33333333%;
    }

    .col-md-11 {
        flex: 0 0 auto;
        width: 91.66666667%;
    }

    .col-md-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Media query for screens with minimum width of 992px
--------------------------------------------------------------*/
@media (min-width: 992px) {

    /* Default flex behavior for col-lg
    --------------------------------------------------------------*/
    .col-lg {
        flex: 1 0 0%;
    }

    /* Flex container with auto width
    --------------------------------------------------------------*/
    .col-lg-auto {
        flex: 0 0 auto;
        width: auto;
    }

    /* Flex classes for 1 to 12 columns with different widths
    --------------------------------------------------------------*/
    .col-lg-1 {
        flex: 0 0 auto;
        width: 8.33333333%;
    }

    .col-lg-2 {
        flex: 0 0 auto;
        width: 16.66666667%;
    }

    .col-lg-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-lg-4 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .col-lg-5 {
        flex: 0 0 auto;
        width: 41.66666667%;
    }

    .col-lg-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-lg-7 {
        flex: 0 0 auto;
        width: 58.33333333%;
    }

    .col-lg-8 {
        flex: 0 0 auto;
        width: 66.66666667%;
    }

    .col-lg-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-lg-10 {
        flex: 0 0 auto;
        width: 83.33333333%;
    }

    .col-lg-11 {
        flex: 0 0 auto;
        width: 91.66666667%;
    }

    .col-lg-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Media query for screens with minimum width of 1200px
--------------------------------------------------------------*/
@media (min-width: 1200px) {

    /* Default flex behavior for col-xl
    --------------------------------------------------------------*/
    .col-xl {
        flex: 1 0 0%;
    }

    /* Flex container with auto width
    --------------------------------------------------------------*/
    .col-xl-auto {
        flex: 0 0 auto;
        width: auto;
    }

    /* Flex classes for 1 to 12 columns with different widths
    --------------------------------------------------------------*/
    .col-xl-1 {
        flex: 0 0 auto;
        width: 8.33333333%;
    }

    .col-xl-2 {
        flex: 0 0 auto;
        width: 16.66666667%;
    }

    .col-xl-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-xl-4 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .col-xl-5 {
        flex: 0 0 auto;
        width: 41.66666667%;
    }

    .col-xl-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-xl-7 {
        flex: 0 0 auto;
        width: 58.33333333%;
    }

    .col-xl-8 {
        flex: 0 0 auto;
        width: 66.66666667%;
    }

    .col-xl-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-xl-10 {
        flex: 0 0 auto;
        width: 83.33333333%;
    }

    .col-xl-11 {
        flex: 0 0 auto;
        width: 91.66666667%;
    }

    .col-xl-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Media query for screens with minimum width of 1400px
--------------------------------------------------------------*/
@media (min-width: 1400px) {

    /* Default flex behavior for col-xxl
    --------------------------------------------------------------*/
    .col-xxl {
        flex: 1 0 0%;
    }

    /* Flex container with auto width
    --------------------------------------------------------------*/
    .col-xxl-auto {
        flex: 0 0 auto;
        width: auto;
    }

    /* Flex classes for 1 to 12 columns with different widths
    --------------------------------------------------------------*/
    .col-xxl-1 {
        flex: 0 0 auto;
        width: 8.33333333%;
    }

    .col-xxl-2 {
        flex: 0 0 auto;
        width: 16.66666667%;
    }

    .col-xxl-3 {
        flex: 0 0 auto;
        width: 25%;
    }

    .col-xxl-4 {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .col-xxl-5 {
        flex: 0 0 auto;
        width: 41.66666667%;
    }

    .col-xxl-6 {
        flex: 0 0 auto;
        width: 50%;
    }

    .col-xxl-7 {
        flex: 0 0 auto;
        width: 58.33333333%;
    }

    .col-xxl-8 {
        flex: 0 0 auto;
        width: 66.66666667%;
    }

    .col-xxl-9 {
        flex: 0 0 auto;
        width: 75%;
    }

    .col-xxl-10 {
        flex: 0 0 auto;
        width: 83.33333333%;
    }

    .col-xxl-11 {
        flex: 0 0 auto;
        width: 91.66666667%;
    }

    .col-xxl-12 {
        flex: 0 0 auto;
        width: 100%;
    }
}

/* Border Radius Classes
 --------------------------------------------------------------*/
.radius0 {
    border-radius: 0px;
}

.radius1 {
    border-radius: 5px;
}

.radius2 {
    border-radius: 10px;
}

.radius3 {
    border-radius: 15px;
}

.radius4 {
    border-radius: 20px;
}

.radius5 {
    border-radius: 25px;
}

.radius-circle {
    border-radius: 50%;
}

/* Margin Classes
--------------------------------------------------------------*/
.m-1 {
    margin: 5px;
}

.m-2 {
    margin: 10px;
}

.m-3 {
    margin: 15px;
}

.m-4 {
    margin: 20px;
}

.m-5 {
    margin: 25px;
}

.m-0 {
    margin: 0;
}

.mt-0 {
    margin-top: 0;
}

.me-0 {
    margin-right: 0;
}

.mb-0 {
    margin-bottom: 0;
}

.ms-0 {
    margin-left: 0;
}

/* Padding Classes
 --------------------------------------------------------------*/
.p-0 {
    padding: 0;
}

.p-1 {
    padding: 5px;
}

.p-2 {
    padding: 10px;
}

.p-3 {
    padding: 15px;
}

.p-4 {
    padding: 20px;
}

.p-5 {
    padding: 25px;
}

/* Padding Y (Vertical) Classes
 --------------------------------------------------------------*/
.py-1 {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.py-2 {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

.py-3 {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

.py-4 {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

.py-5 {
    padding-top: 25px !important;
    padding-bottom: 25px !important;
}

.py-6 {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

.py-7 {
    padding-top: 35px !important;
    padding-bottom: 35px !important;
}

.py-8 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}

.py-9 {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
}

.py-10 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

/* Padding X (Horizontal) Classes
 --------------------------------------------------------------*/
.px-1 {
    padding-left: 5px !important;
    padding-right: 5px !important;
}

.px-2 {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.px-3 {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

.px-4 {
    padding-left: 20px !important;
    padding-right: 20px !important;
}

.px-5 {
    padding-left: 25px !important;
    padding-right: 25px !important;
}

.px-6 {
    padding-left: 30px !important;
    padding-right: 30px !important;
}

.px-7 {
    padding-left: 35px !important;
    padding-right: 35px !important;
}

.px-8 {
    padding-left: 40px !important;
    padding-right: 40px !important;
}

.px-9 {
    padding-left: 50px !important;
    padding-right: 50px !important;
}

.px-10 {
    padding-left: 60px !important;
    padding-right: 60px !important;
}

/* Top Padding Classes
 --------------------------------------------------------------*/
.pt-1 {
    padding-top: 5px !important;
}

.pt-2 {
    padding-top: 10px !important;
}

.pt-3 {
    padding-top: 15px !important;
}

.pt-4 {
    padding-top: 20px !important;
}

.pt-5 {
    padding-top: 25px !important;
}

.pt-6 {
    padding-top: 30px !important;
}

.pt-7 {
    padding-top: 35px !important;
}

.pt-8 {
    padding-top: 40px !important;
}

.pt-9 {
    padding-top: 50px !important;
}

.pt-10 {
    padding-top: 60px !important;
}

/* Bottom Padding Classes
 --------------------------------------------------------------*/
.pb-1 {
    padding-bottom: 5px !important;
}

.pb-2 {
    padding-bottom: 10px !important;
}

.pb-3 {
    padding-bottom: 15px !important;
}

.pb-4 {
    padding-bottom: 20px !important;
}

.pb-5 {
    padding-bottom: 25px !important;
}

.pb-6 {
    padding-bottom: 30px !important;
}

.pb-7 {
    padding-bottom: 35px !important;
}

.pb-8 {
    padding-bottom: 40px !important;
}

.pb-9 {
    padding-bottom: 50px !important;
}

.pb-10 {
    padding-bottom: 60px !important;
}

/* Left Padding Classes
 --------------------------------------------------------------*/
/* Left Padding Classes
 --------------------------------------------------------------*/
.ps-1 {
    padding-left: 5px;
}

.ps-2 {
    padding-left: 10px;
}

.ps-3 {
    padding-left: 15px;
}

.ps-4 {
    padding-left: 20px;
}

.ps-5 {
    padding-left: 25px;
}

.ps-6 {
    padding-left: 30px;
}

/* Right Padding Classes
 --------------------------------------------------------------*/
.pe-1 {
    padding-right: 5px;
}

.pe-2 {
    padding-right: 10px;
}

.pe-3 {
    padding-right: 15px;
}

.pe-4 {
    padding-right: 20px;
}

.pe-5 {
    padding-right: 25px;
}

.pe-6 {
    padding-right: 30px;
}

/* Padding 0 Classes
 --------------------------------------------------------------*/
.pt-0 {
    padding-top: 0 !important;
}

.pb-0 {
    padding-bottom: 0 !important;
}

.ps-0 {
    padding-left: 0 !important;
}

.pe-0 {
    padding-right: 0 !important;
}

/* Margin Y (Vertical) Classes
 --------------------------------------------------------------*/
.my-1 {
    margin-top: 5px !important;
    margin-bottom: 5px !important;
}

.my-2 {
    margin-top: 10px !important;
    margin-bottom: 10px !important;
}

.my-3 {
    margin-top: 15px !important;
    margin-bottom: 15px !important;
}

.my-4 {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.my-5 {
    margin-top: 25px !important;
    margin-bottom: 25px !important;
}

.my-6 {
    margin-top: 30px !important;
    margin-bottom: 30px !important;
}

.my-7 {
    margin-top: 35px !important;
    margin-bottom: 35px !important;
}

.my-8 {
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}

.my-9 {
    margin-top: 50px !important;
    margin-bottom: 50px !important;
}

.my-10 {
    margin-top: 60px !important;
    margin-bottom: 60px !important;
}

/* Margin X (Horizontal) Classes
 --------------------------------------------------------------*/
.mx-1 {
    margin-left: 5px !important;
    margin-right: 5px !important;
}

.mx-2 {
    margin-left: 10px !important;
    margin-right: 10px !important;
}

.mx-3 {
    margin-left: 15px !important;
    margin-right: 15px !important;
}

.mx-4 {
    margin-left: 20px !important;
    margin-right: 20px !important;
}

.mx-5 {
    margin-left: 25px !important;
    margin-right: 25px !important;
}

.mx-6 {
    margin-left: 30px !important;
    margin-right: 30px !important;
}

.mx-7 {
    margin-left: 35px !important;
    margin-right: 35px !important;
}

.mx-8 {
    margin-left: 40px !important;
    margin-right: 40px !important;
}

.mx-9 {
    margin-left: 50px !important;
    margin-right: 50px !important;
}

.mx-10 {
    margin-left: 60px !important;
    margin-right: 60px !important;
}

/* Top Margin Classes
 --------------------------------------------------------------*/
.mt-1 {
    margin-top: 5px !important;
}

.mt-2 {
    margin-top: 10px !important;
}

.mt-3 {
    margin-top: 15px !important;
}

.mt-4 {
    margin-top: 20px !important;
}

.mt-5 {
    margin-top: 25px !important;
}

.mt-6 {
    margin-top: 30px !important;
}

.mt-7 {
    margin-top: 35px !important;
}

.mt-8 {
    margin-top: 40px !important;
}

.mt-9 {
    margin-top: 50px !important;
}

.mt-10 {
    margin-top: 60px !important;
}

/* Bottom Margin Classes
 --------------------------------------------------------------*/
.mb-1 {
    margin-bottom: 5px !important;
}

.mb-2 {
    margin-bottom: 10px !important;
}

.mb-3 {
    margin-bottom: 15px !important;
}

.mb-4 {
    margin-bottom: 20px !important;
}

.mb-5 {
    margin-bottom: 25px !important;
}

.mb-6 {
    margin-bottom: 30px !important;
}

.mb-7 {
    margin-bottom: 35px !important;
}

.mb-8 {
    margin-bottom: 40px !important;
}

.mb-9 {
    margin-bottom: 50px !important;
}

.mb-10 {
    margin-bottom: 60px !important;
}

/* Centering Element
 --------------------------------------------------------------*/
.m-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Grid Gap Utilities
 --------------------------------------------------------------*/
.g-0 {
    margin: 0;
}

.g-0>[class*="col-"] {
    padding: 0;
}

.g-1 {
    margin: -2.5px;
}

.g-1>[class*="col-"] {
    padding: 2.5px;
}

.g-2 {
    margin: -5px;
}

.g-2>[class*="col-"] {
    padding: 5px;
}

.g-3 {
    margin: -7.5px;
}

.g-3>[class*="col-"] {
    padding: 7.5px;
}

.g-5 {
    margin: -12.5px;
}

.g-5>[class*="col-"] {
    padding: 12.5px;
}

.g-6 {
    margin: -15px;
}

.g-6>[class*="col-"] {
    padding: 15px;
}

.g-8 {
    margin: -20px;
}

.g-8>[class*="col-"] {
    padding: 20px;
}

/* Horizontal Gap */
.gx-1 {
    margin-left: -2.5px;
    margin-right: -2.5px;
}

.gx-1>[class*="col-"] {
    padding-left: 2.5px;
    padding-right: 2.5px;
}

.gx-2 {
    margin-left: -5px;
    margin-right: -5px;
}

.gx-2>[class*="col-"] {
    padding-left: 5px;
    padding-right: 5px;
}

.gx-3 {
    margin-left: -7.5px;
    margin-right: -7.5px;
}

.gx-3>[class*="col-"] {
    padding-left: 7.5px;
    padding-right: 7.5px;
}

/* Vertical Gap */
.gy-1 {
    margin-top: -2.5px;
    margin-bottom: -2.5px;
}

.gy-1>[class*="col-"] {
    padding-top: 2.5px;
    padding-bottom: 2.5px;
}

.gy-2 {
    margin-top: -5px;
    margin-bottom: -5px;
}

.gy-2>[class*="col-"] {
    padding-top: 5px;
    padding-bottom: 5px;
}

.gy-3 {
    margin-top: -7.5px;
    margin-bottom: -7.5px;
}

.gy-3>[class*="col-"] {
    padding-top: 7.5px;
    padding-bottom: 7.5px;
}

.font35 {
    font-size: 35px;
}

.font40 {
    font-size: 40px;
}

.font45 {
    font-size: 45px;
}

.font50 {
    font-size: 50px;
}

.font60 {
    font-size: 60px;
}

/* Text Alignment Styles
 --------------------------------------------------------------*/
.text-center {
    text-align: center;
}

.text-start {
    text-align: left;
}

.text-end {
    text-align: right;
}

.text-justify {
    text-align: justify;
}

.text-justify-all {
    text-align: justify-all;
}

/* Text Color Styles
--------------------------------------------------------------*/
.text-white {
    color: #FFF !important;
}

.text-black {
    color: #000;
}

.text-red {
    color: #FF0000;
}

/* Text Transform Styles
--------------------------------------------------------------*/
.text-uppercase {
    text-transform: uppercase;
}

.text-transform-none {
    text-transform: none;
}

/* Font Style
--------------------------------------------------------------*/
.text-italic {
    font-style: italic;
}

.text-normal {
    font-style: normal;
}

/* Header Styles: Defines font size, color, margin, and padding for headings
 --------------------------------------------------------------*/
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0;
    padding: 10px 0;
}

/* h1 specific styles
--------------------------------------------------------------*/
.h1,
h1 {
    font-size: 26px;
    padding: 15px 0;
}

/* h2 specific styles
--------------------------------------------------------------*/
.h2,
h2 {
    font-size: 20px;
}

/* h3 specific styles
--------------------------------------------------------------*/
.h3,
h3 {
    font-size: 18px;
}

/* h4, h5, h6 specific styles
--------------------------------------------------------------*/
.h4,
.h5,
.h6,
h4,
h5,
h6 {
    font-size: 16px;
}

/* Line height class for setting line-height to 0
--------------------------------------------------------------*/
.line-height0 {
    line-height: 0;
}

/* Bold font weight
--------------------------------------------------------------*/
.font-weight-bold {
    font-weight: bold;
}

/* Semi-bold font weight
--------------------------------------------------------------*/

/* Light font weight
--------------------------------------------------------------*/
.font-weight-300 {
    font-weight: 300;
}

/* Extra light font weight
--------------------------------------------------------------*/
.font-weight-200 {
    font-weight: 200;
}

/* Thin font weight
--------------------------------------------------------------*/
.font-weight-100 {
    font-weight: 100;
}

/* Display Classes
--------------------------------------------------------------*/

.d-inline-block {
    display: inline-block;
}

.d-block {
    display: block;
}

.d-inline-flex {
    display: inline-flex;
}

.d-none {
    display: none;
}

/* Responsive Display Classes
--------------------------------------------------------------*/
@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }

    .d-lg-block {
        display: block !important;
    }

    .d-lg-flex {
        display: flex !important;
    }

    .d-lg-inline-flex {
        display: inline-flex !important;
    }

    .d-lg-inline-block {
        display: inline-block !important;
    }
}

@media (max-width: 991px) {
    .d-md-none {
        display: none !important;
    }

    .d-md-block {
        display: block !important;
    }

    .d-md-flex {
        display: flex !important;
    }
}

/* Style Flex
--------------------------------------------------------------*/
.flex-row {
    flex-direction: row;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

/* Justify content alignment classes (horizontal axis)
--------------------------------------------------------------*/
.justify-content-start {
    justify-content: flex-start;
}

.justify-content-end {
    justify-content: flex-end;
}

.justify-content-around {
    justify-content: space-around;
}

.justify-content-evenly {
    justify-content: space-evenly;
}

/* Align items alignment classes (vertical axis)
--------------------------------------------------------------*/
.align-items-start {
    align-items: flex-start;
}

.align-items-end {
    align-items: flex-end;
}

.align-items-baseline {
    align-items: baseline;
}

/* Align content classes (when there is extra space in the container along the vertical axis)
--------------------------------------------------------------*/
.align-content-start {
    align-content: flex-start;
}

.align-content-end {
    align-content: flex-end;
}

.align-content-center {
    align-content: center;
}

.align-content-between {
    align-content: space-between;
}

.align-content-around {
    align-content: space-around;
}

.align-content-stretch {
    align-content: stretch;
}

/* Align individual items (overrides align-items)
--------------------------------------------------------------*/
.align-self-auto {
    align-self: auto;
}

.align-self-start {
    align-self: flex-start;
}

.align-self-end {
    align-self: flex-end;
}

.align-self-center {
    align-self: center;
}

.align-self-baseline {
    align-self: baseline;
}

.align-self-stretch {
    align-self: stretch;
}

/* Positioning Classes
--------------------------------------------------------------*/
.position-relative {
    position: relative;
}

.position-absolute {
    position: absolute;
}

.position-fixed {
    position: fixed;
}

/* Alignment Classes
--------------------------------------------------------------*/
.start-0 {
    left: 0px;
}

.start-1 {
    left: 5px;
}

.start-2 {
    left: 10px;
}

.start-3 {
    left: 15px;
}

.start-4 {
    left: 20px;
}

.start-5 {
    left: 25px;
}

.start-100 {
    left: 100%;
}

.end-0 {
    right: 0px;
}

.end-1 {
    right: 5px;
}

.end-2 {
    right: 10px;
}

.end-3 {
    right: 15px;
}

.end-4 {
    right: 20px;
}

.end-5 {
    right: 25px;
}

.end-100 {
    right: 100%;
}

.bottom-0 {
    bottom: 0px;
}

.bottom-1 {
    bottom: 5px;
}

.bottom-2 {
    bottom: 10px;
}

.bottom-3 {
    bottom: 15px;
}

.bottom-4 {
    bottom: 20px;
}

.bottom-5 {
    bottom: 25px;
}

.bottom-100 {
    bottom: 100%;
}

.top-0 {
    top: 0px;
}

.top-1 {
    top: 5px;
}

.top-2 {
    top: 10px;
}

.top-3 {
    top: 15px;
}

.top-4 {
    top: 20px;
}

.top-5 {
    top: 25px;
}

.top-100 {
    top: 100%;
}

/* Centering Classes
--------------------------------------------------------------*/
.position-center {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.position-center-top {
    top: 50%;
    transform: translate(0, -50%);
}

/* Style for dropdown indicator
--------------------------------------------------------------*/
.dropdown-menu {
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #333;
    display: inline-block;
    margin-left: 5px;
}

/* Style for the main menu list
--------------------------------------------------------------*/
.fc-menu-header ul li,
.fc-menu-header ul {
    position: static;
    list-style: none;
    margin: 0px;
    padding: 0px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

/* Style for list items that are not mega-menu items
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item) {
    position: relative;
}

/* Style for links inside list items
--------------------------------------------------------------*/
.fc-menu-header ul a {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
}

/* Padding for list items
--------------------------------------------------------------*/


/* Style for the sub-menu
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item) ul {
    position: absolute;
    box-shadow: 0 10px 10px -1px rgb(0 0 0 / 14%);
    border-radius: 5px;
    width: 300px;
    top: 100%;
    padding: 10px;
    left: 15px;
    transition: all .3s;
    visibility: hidden;
    opacity: 0;
    display: block;
}

/* Display sub-menu when hovering over parent menu item
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item):hover ul {
    visibility: inherit;
    opacity: 1;
    left: 0px;
}

/* Style for the list items inside sub-menu
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item) ul li {
    display: block;
    width: 100%;
    position: relative;
    padding: 7px 15px;
}

/* Style for nested sub-menus inside the sub-menu
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item) ul li ul {
    position: absolute;
    top: 0px;
    visibility: hidden !important;
    opacity: 0 !important;
    left: 110% !important;
}

/* Display nested sub-menu when hovering over parent sub-menu item
--------------------------------------------------------------*/
.fc-menu-header ul li:not(.mega-menu-item) ul li:hover ul {
    visibility: inherit !important;
    opacity: 1 !important;
    left: 100% !important;
}

.fc-menu-header .image-item-menu {
    display: inline-block;
    margin-right: 5px;
    max-width: 20px;
    max-height: 20px;
}

/* Style list menu content
--------------------------------------------------------------*/
.fc-menu-header .mega-menu-content ul,
.fc-menu-header .mega-menu-content li {
    display: block;
}

/* Style mega menu content
--------------------------------------------------------------*/
.fc-menu-header .mega-menu-content {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    width: 100%;
    left: 0;
    background-color: #fff;
    padding: 20px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    top: 90%;
    border-radius: 10px;
    z-index: 99;
    font-weight: 400;
}

.fc-menu-header .mega-menu-content .widget {
    background: transparent;
    box-shadow: none !important;
    transform: none !important;
    border: 0;
    padding: 0 !important;
    margin: 0 !important;
}

.fc-menu-header li.mega-menu-item:hover .mega-menu-content {
    visibility: visible;
    opacity: 1;
}

/* Style column for mega menu
--------------------------------------------------------------*/
.fc-menu-header .mega-menu-content .mega-menu-widget {
    padding: 10px;
}

.fc-menu-header .mega-menu-content.columns-1 .mega-menu-widget {
    width: 100%;
}

.fc-menu-header .mega-menu-content.columns-2 .mega-menu-widget {
    width: 50%;
}

.fc-menu-header .mega-menu-content.columns-3 .mega-menu-widget {
    width: calc(100% / 3);
}

.fc-menu-header .mega-menu-content.columns-4 .mega-menu-widget {
    width: calc(100% / 4);
}

.fc-menu-header .mega-menu-content.columns-5 .mega-menu-widget {
    width: calc(100% / 5);
}

.fc-menu-header .mega-menu-content.columns-6 .mega-menu-widget {
    width: calc(100% / 6);
}

/* Style widget title in mega menu
--------------------------------------------------------------*/
.fc-menu-header .mega-menu-widget .widgettitle {
    font-size: 16px;
    font-weight: 600;
    margin: 0 !important;
    text-transform: uppercase;
}

.fc-menu-header .mega-menu-widget .widget ul {
    list-style: none;
    padding: 0;
    margin: 0 !important;
}

.fc-menu-header .mega-menu-widget .widget ul li a {
    text-decoration: none;
    font-size: 14px;
}

/* Style select in mega menu
--------------------------------------------------------------*/
.fc-menu-header .mega-menu select {
    width: 100%;
    padding: 10px;
    border-radius: 4px;
    border: 1px solid #ccc;
    background-color: #fff;
    font-size: 14px;
    margin: 5px 0;
}

/* Search form Widget
--------------------------------------------------------------*/
.search-form {
    border-radius: 25px;
    overflow: hidden;
}

.search-form .input-search {
    padding: 10px 15px;
    border: 1px solid #ccc;
    border-radius: 25px;
    outline: none;
    width: 300px;
    max-width: 100%;
    height: 38px;
    background: #fff;
}

/* Style button search form
--------------------------------------------------------------*/
.search-form .btn-search-submit {
    border: 0;
    outline: none;
    right: 0;
    padding: 5px 15px;
    background: #000;
    color: #FFF;
    border-radius: 25px;
}

/* Style Pagination Style
--------------------------------------------------------------*/
.fc-pagination ul,
.fc-pagination ul li {
    list-style: none;
    margin: 0;
    padding: 0;
    display: inline-block;
}

.fc-pagination ul li span,
.fc-pagination ul li a {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #ccc;
}

/* Style Post password form
-------------------------------------------------------------- */
.post-password-form {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    background: #EEE;
    padding: 15px;
    border-radius: 5px;
    margin: 15px 0px;
}

.post-password-form p {
    display: block;
    width: 100%;
}

.post-password-form label {
    display: inline-block;
}

.post-password-form input {
    border: 0px;
    box-shadow: none;
    outline: none;
    padding: 7px 15px;
    height: 32px;
}

/* Style button submit in post password form
--------------------------------------------------------------*/
.post-password-form input[type='submit'] {
    background: #000;
    color: #FFF;
    padding: 7px 30px;
}

@media (max-width:576px) {

    .post-password-form label,
    .post-password-form input {
        width: 100%;
    }

    .post-password-form input {
        margin-top: 5px;
    }
}

/* Star Ratings Legend
--------------------------------------------------------------*/
.kk-star-ratings .kksr-legend {
    font-size: 14px !important;
}

/* Swiper Background Image
--------------------------------------------------------------*/
.swiper-slide-bg {
    height: 100% !important;
}

/* Elementor Navigation Menu Image
--------------------------------------------------------------*/
.elementor-nav-menu img {
    max-width: 20px !important;
}

/* Elementor Section Container
--------------------------------------------------------------*/
.elementor-section .elementor-container {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}

/* EAEL Data Table Styling
--------------------------------------------------------------*/
.elementor-element table.eael-data-table {
    border-collapse: collapse !important;
}

/* Mega Menu Description (Hide)
--------------------------------------------------------------*/
.mega-menu-description {
    display: none !important;
}

/* Contact Form 7
--------------------------------------------------------------*/
form.wpcf7-form {
    position: relative;
}

/* Contact Form 7: Remove line breaks
--------------------------------------------------------------*/
.wpcf7-form br {
    display: none !important;
}

/* Contact Form 7: Form Controls
--------------------------------------------------------------*/
.wpcf7-form .wpcf7-form-control,
.wpcf7-form .wpcf7-form-control-wrap {
    width: 100%;
    position: relative;
    display: block;
    text-align: left;
}

/* Contact Form 7: Form Paragraph Styling
--------------------------------------------------------------*/
.wpcf7-form p {
    margin: 0px;
}

/* Contact Form 7: Input Fields
--------------------------------------------------------------*/

/* Contact Form 7: Form Control Wrapper
--------------------------------------------------------------*/
.wpcf7-form .wpcf7-form-control-wrap {
    margin-bottom: 10px;
}

/* Contact Form 7: Validation Tip
--------------------------------------------------------------*/
.wpcf7-form .wpcf7-not-valid-tip {
    font-size: 12px;
    margin-top: 3px;
    display: none;
}

.wpcf7 form .wpcf7-response-output {
    margin: 10px 0px !important;
    font-size: 13px;
}

/* Contact Form 7: Submit Button
--------------------------------------------------------------*/
.wpcf7-form .wpcf7-submit {
    transition: all 0.3s;
    border-radius: 2px;
    width: auto;
    display: inline-block;
    text-transform: uppercase;
    border: 0px;
    min-width: 120px;
    text-align: center;
    background: #000;
    color: #FFF;
}

/* Contact Form 7: Spinner
--------------------------------------------------------------*/
.wpcf7-spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0px;
}

/* Style Icon Quote
-------------------------------------------------------------- */
.icon-quote:after {
    content: "\201C";
    font-family: Inter, Roboto, "SF Pro Display", system-ui, sans-serif;
    position: absolute;
    font-size: 100px;
    left: 50%;
    top: 0px;
    line-height: 0px;
    transform: translate(0, -50%);
}

/* Style Index
-------------------------------------------------------------- */
.z-index1 {
    z-index: 5;
}

.z-index2 {
    z-index: 10;
}

.z-index3 {
    z-index: 15;
}

.z-index4 {
    z-index: 20;
}

.z-index5 {
    z-index: 25;
}

.z-index6 {
    z-index: 30;
}

.z-index7 {
    z-index: 35;
}

.z-index8 {
    z-index: 40;
}

.z-index9 {
    z-index: 45;
}

.z-index10 {
    z-index: 50;
}

/* Style Opacity
-------------------------------------------------------------- */
.opacity9 {
    opacity: 0.9;
}

.opacity8 {
    opacity: 0.8;
}

.opacity7 {
    opacity: 0.7;
}

.opacity6 {
    opacity: 0.6;
}

.opacity5 {
    opacity: 0.5;
}

.opacity4 {
    opacity: 0.4;
}

.opacity3 {
    opacity: 0.3;
}

.opacity2 {
    opacity: 0.2;
}

.opacity1 {
    opacity: 0.1;
}

.opacity0 {
    opacity: 0;
}

/* Style Animate Scroll
-------------------------------------------------------------- */
.animate-scroll {
    transition: all 0.8s ease-out;
    position: relative;
    opacity: 0;
    visibility: hidden;
}

.animate-scroll.active {
    opacity: 1;
    visibility: inherit;
}

/* Animate Fade
-------------------------------------------------------------- */
.fade-left {
    transform: translateX(-100%);
}

.fade-left.active {
    transform: translateX(0px);
}

.fade-right {
    transform: translateX(100%);
}

.fade-right.active {
    transform: translateX(0%);
}

.fade-up {
    transform: translateY(100%);
}

.fade-up.active {
    transform: translateY(0px);
}

/* Play Button
-------------------------------------------------------------- */
.play-button {
    width: 80px;
    height: 80px;
    background-color: transparent;
    border: 4px solid #000;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: relative;
    transition: 0.3s ease-in-out;
}

.play-button::before {
    content: "";
    width: 0;
    height: 0;
    border-left: 20px solid #000;
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
    position: absolute;
    left: 50%;
    transform: translate(-50%, 0);
}

/* Style Map container
-------------------------------------------------------------- */
.map-container {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
    /* Tỷ lệ 16:9 */
}

.map-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Style Table container
-------------------------------------------------------------- */
.content-editor table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #ddd;
}

.content-editor table th,
.content-editor table td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: left;
}

/* Style Iframe container
-------------------------------------------------------------- */
.content-editor iframe {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.content-editor iframe:not([style*="height"]) {
    aspect-ratio: 16 / 9;
}

.builder-statics-v5 {
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    position: relative;
    z-index: 10;
}

.stat-item-premium {
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 15px;
    height: 100%;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

/* Bỏ vạch ở cuối hàng trên PC */
.col-lg-3:last-child .stat-item-premium {
    border-right: none;
}

.stat-item-premium:hover {
    background: transparent;
}

.stat-icon-box-v5 {
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.15);
    flex-shrink: 0;
}

.stat-icon-box-v5 img {
    width: 17px !important;
    height: 17px !important;
    object-fit: contain;
    filter: brightness(0) invert(1);
}

.stat-number-premium {
    line-height: 1.1;
    margin-bottom: 1px;
    letter-spacing: -0.2px;
}

.stat-label-premium {
    color: rgba(255, 255, 255, 0.5);
    line-height: 1.3;
    font-size: 12px !important;
}

/* Hero Section v5
-------------------------------------------------------------- */
.hero-section-v5 .hero-row {
    min-height: 750px;
    background: #0c1529;
}

.hero-section-v5 .slider-content-inner {
    padding: 80px 40px 80px 10%;
    max-width: 650px;
}

.hero-section-v5 .slider-dot-pattern {
    background: radial-gradient(circle at 1px 1px, #fff 0.5px, transparent 0px) 0 0/25px 25px;
    opacity: 0.1;
}

.hero-section-v5 .slider-checklist li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(203, 213, 225, 0.85);
    font-size: 0.88rem;
}

.hero-section-v5 .swiper-pagination-bullet {
    background: rgba(255, 255, 255, 0.3);
    opacity: 1;
    width: 10px;
    height: 10px;
}

.hero-section-v5 .swiper-pagination-bullet-active {
    background: var(--fc-v5-red);
    width: 30px;
    border-radius: 5px;
}

.hero-section-v5 .swiper-button-next,
.hero-section-v5 .swiper-button-prev {
    color: #fff;
    width: 50px;
    height: 50px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.hero-section-v5 .swiper-button-next:after,
.hero-section-v5 .swiper-button-prev:after {
    font-size: 18px;
    font-weight: bold;
}

.hero-section-v5 .swiper-button-next:hover,
.hero-section-v5 .swiper-button-prev:hover {
    background: var(--fc-v5-red);
}

/* Line Clamp Utilities 
-------------------------------------------------------------- */
.line1 {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Aspect Ratio Utilities 
-------------------------------------------------------------- */
.aspect-ratio-16-9 {
    position: relative;
    width: 100%;
    padding-top: 56.25%;
}

.aspect-ratio-16-9>* {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.aspect-ratio-square {
    position: relative;
    width: 100%;
    padding-top: 100%;
}

.aspect-ratio-square>* {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.policy-badge {
    padding-top: 3px;
    padding-bottom: 3px;
}

/* Hero Section V5 Custom */
.hero-breadcrumbs-v5,
.hero-breadcrumbs-v5 a {
    color: rgba(255, 255, 255, 0.8) !important;
    text-decoration: none;
    transition: all 0.3s ease;
}

.hero-breadcrumbs-v5 a:hover {
    color: #fff !important;
}

.hero-breadcrumbs-v5 .separator {
    color: rgba(255, 255, 255, 0.6) !important;
    margin: 0 8px;
}

.btn-v5-outline-white:hover {
    background-color: #fff !important;
    color: #1e3a8a !important;
}

/* Custom Utility Classes for Hero */
.opacity-85 {
    opacity: 0.85 !important;
}

.opacity-50 {
    opacity: 0.50 !important;
}

.min-h-600 {
    min-height: 600px !important;
}

.hover-opacity-80:hover {
    opacity: 0.8 !important;
}

.bg-warning {
    background-color: #f8df40 !important;
}

.border-white {
    border-color: #ffffff !important;
}

/* Solution Tabs Utility Classes */
.problem-box-v5,
.solution-box-v5 {
    position: relative;
    overflow: hidden;
}

.problem-box-v5::before,
.solution-box-v5::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 20px;
    border-top-left-radius: 15px;
    border-bottom-left-radius: 15px;
    pointer-events: none;
}

.problem-box-v5::before {
    border-left: 4px solid #ef4444;
    border-top: 0px solid #ef4444;
    border-bottom: 0px solid #ef4444;
}

.solution-box-v5::before {
    border-left: 4px solid #1e3a8a;
    border-top: 0px solid #1e3a8a;
    border-bottom: 0px solid #1e3a8a;
}

.bg-v5-red-light {
    background-color: #fef2f2 !important;
}

.border-v5-red {
    border-color: #ef4444 !important;
}

.color-v5-red {
    color: #dc2626 !important;
}

.border-v5-blue {
    border-color: #1e3a8a !important;
}

.color-v5-blue {
    color: #1e3a8a !important;
}

.bg-v5-green-light {
    background-color: #f0fdf4 !important;
}

.color-v5-green {
    color: #16a34a !important;
}

.bg-v5-grey-light {
    background-color: #f8f9fa !important;
}

.nav-pills-v5 .nav-link {
    border: 1px solid #1e3a8a !important;
    color: #1e3a8a !important;
    background-color: transparent;
    border-radius: 10px;
    padding: 12px 20px;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.3s ease;
}

.nav-pills-v5 .nav-link:hover,
.nav-pills-v5 .nav-link.active {
    background-color: #1e3a8a !important;
    color: #ffffff !important;
}

.icon-svg-tich {
    display: inline-block;
    background-color: currentColor;
    -webkit-mask: url('../icons/svg-tich.svg') no-repeat center / contain;
    mask: url('../icons/svg-tich.svg') no-repeat center / contain;
}

.icon-svg-right {
    display: inline-block;
    background-color: currentColor;
    -webkit-mask: url('../icons/svg-right.svg') no-repeat center / contain;
    mask: url('../icons/svg-right.svg') no-repeat center / contain;
}

/* Solution Tabs v5 Navigation & Content Switching */
.nav-pills-v5 {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 3rem 0 !important;
}

.nav-pills-v5 li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.builder-solution-tabs-v5 .tab-content .tab-pane {
    display: none;
}

.builder-solution-tabs-v5 .tab-content .tab-pane.active {
    display: block;
}

.builder-solution-tabs-v5 .tab-content .tab-pane.fade {
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.builder-solution-tabs-v5 .tab-content .tab-pane.fade.show {
    opacity: 1;
}

/* Process Section v5 
--------------------------------------------------------------*/
.bg-v5-yellow {
    background-color: #f8df40 !important;
}

.border-radius-50 {
    border-radius: 50% !important;
}

.filter-white {
    filter: brightness(0) invert(1) !important;
}

.builder-process-v5 {
    background-color: #ffffff;
}

.process-container-v5 {
    position: relative;
    padding-top: 20px;
}

.process-line-v5 {
    position: absolute;
    top: 55px; /* Adjust based on icon size + padding */
    left: 10%;
    right: 10%;
    height: 1px;
    background-color: #e2e8f0;
    z-index: 1;
}

.process-item-v5 {
    position: relative;
    z-index: 2;
    padding: 0 10px;
}

.process-icon-wrapper-v5 {
    display: inline-block;
}

.process-icon-box-v5 {
    width: 70px;
    height: 70px;
}

.process-icon-box-v5 img {
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.process-item-v5:hover .process-icon-box-v5 {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(30, 58, 138, 0.2) !important;
}

.process-badge-v5 {
    position: absolute;
    top: 0;
    right: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(30%, -30%);
    border: 2px solid #ffffff;
}

.process-item-v5:hover .process-badge-v5 {
    transform: translate(30%, -40%);
}

.process-item-v5:hover .process-title-v5 {
    color: var(--fc-v5-blue-dark) !important;
}

/* Why Choose Section v5 
--------------------------------------------------------------*/
.builder-why-choose-v5 {
    background-color: var(--fc-v5-blue-dark);
}

.why-choose-card-v5 {
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 30px 20px;
    height: 100%;
}

.why-choose-card-v5:hover {
    background-color: rgba(255, 255, 255, 0.08);
    border-color: var(--fc-v5-yellow);
    transform: translateY(-5px);
}

.why-choose-icon-box-v5 {
    width: 50px;
    height: 50px;
}

.why-choose-icon-box-v5 img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.filter-v5-blue-dark {
    filter: brightness(0) saturate(100%) invert(18%) sepia(87%) saturate(2250%) hue-rotate(215deg) brightness(89%) contrast(97%) !important;
}

/* Contact Form Section v5 
--------------------------------------------------------------*/
.builder-contact-form-v5 {
    background-color: #f8fafc;
}

.contact-image-wrap-v5 {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.contact-image-wrap-v5 img {
    transition: transform 0.5s ease;
}

.contact-image-wrap-v5:hover img {
    transform: scale(1.03);
}

.contact-features-box-v5 {
    border: 1px solid #e2e8f0;
    background-color: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

.contact-feature-item-v5 {
    padding: 2px 0;
}

.contact-feature-icon-v5 {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: var(--fc-v5-blue-light);
    color: var(--fc-v5-blue-dark);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-feature-icon-v5 svg {
    width: 14px;
    height: 14px;
}

.contact-banner-v5 {
    background-color: var(--fc-v5-blue-dark);
    border-radius: 15px;
    padding: 16px 20px;
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(30, 58, 138, 0.15);
}

.contact-banner-v5 .banner-icon-v5 {
    width: 36px;
    height: 36px;
    background-color: rgba(255, 255, 255, 0.15);
    color: #facc15;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-banner-v5 .banner-icon-v5 svg {
    width: 18px;
    height: 18px;
}

/* Right Column: Form Card */
.contact-form-card-v5 {
    border: 1px solid #e2e8f0;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.contact-form-header-v5 {
    background-color: var(--fc-v5-blue-dark);
    padding: 20px 24px;
    color: #ffffff;
}

.contact-form-header-v5 .header-icon-v5 {
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-form-header-v5 .header-icon-v5 svg {
    width: 18px;
    height: 18px;
}

.contact-form-body-v5 {
    padding: 24px;
}

@media (min-width: 768px) {
    .contact-form-body-v5 {
        padding: 30px 35px;
    }
}

/* Custom styling for CF7 in cards */
.custom-cf7-v5 .wpcf7-form-control-wrap {
    display: block;
    margin-bottom: 12px;
}

.custom-cf7-v5 label {
    font-size: 13px;
    font-weight: 700;
    color: var(--fc-v5-blue-dark);
    margin-bottom: 5px;
    display: block;
}

.custom-cf7-v5 input[type="text"],
.custom-cf7-v5 input[type="email"],
.custom-cf7-v5 input[type="tel"],
.custom-cf7-v5 select,
.custom-cf7-v5 textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e2e8f0;
    background-color: #ffffff;
    border-radius: 10px;
    font-size: 14px;
    color: var(--fc-v5-blue-dark);
    outline: none;
    transition: all 0.3s ease;
}

/* Native select custom arrow styling */
.custom-cf7-v5 select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231e3a8a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 16px;
    padding-right: 40px;
}

.custom-cf7-v5 input::placeholder,
.custom-cf7-v5 select::placeholder,
.custom-cf7-v5 textarea::placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}
.custom-cf7-v5 input::-webkit-input-placeholder,
.custom-cf7-v5 select::-webkit-input-placeholder,
.custom-cf7-v5 textarea::-webkit-input-placeholder {
    color: #9ca3af !important;
}
.custom-cf7-v5 input::-moz-placeholder,
.custom-cf7-v5 select::-moz-placeholder,
.custom-cf7-v5 textarea::-moz-placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}
.custom-cf7-v5 input:-ms-input-placeholder,
.custom-cf7-v5 select:-ms-input-placeholder,
.custom-cf7-v5 textarea:-ms-input-placeholder {
    color: #9ca3af !important;
}

.custom-cf7-v5 input:focus,
.custom-cf7-v5 select:focus,
.custom-cf7-v5 textarea:focus {
    border-color: var(--fc-v5-blue-dark);
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.1);
}

.custom-cf7-v5 textarea {
    height: 100px;
    resize: none;
}

/* Submit button styling with airplane mask */
.custom-cf7-v5 .wpcf7-submit {
    width: 100%;
    padding: 14px 20px;
    background-color: var(--fc-v5-blue-dark) !important;
    color: #ffffff !important;
    font-size: 15px;
    font-weight: 700;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.custom-cf7-v5 .wpcf7-submit:hover {
    background-color: #172554 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(30, 58, 138, 0.2);
}

.custom-cf7-v5 .wpcf7-submit::before {
    content: "";
    display: inline-block;
    width: 15px;
    height: 15px;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'%3E%3C/path%3E%3Cpath d='m21.854 2.147-10.94 10.939'%3E%3C/path%3E%3C/svg%3E") no-repeat center;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'%3E%3C/path%3E%3Cpath d='m21.854 2.147-10.94 10.939'%3E%3C/path%3E%3C/svg%3E") no-repeat center;
    mask-size: contain;
    -webkit-mask-size: contain;
}

/* Remove CF7 default paragraph spacing inside the grid */
.custom-cf7-v5 form p {
    margin-bottom: 0;
}
.custom-cf7-v5 form br {
    display: none;
}

.custom-cf7-v5 .wpcf7-response-output {
    margin: 15px 0 0 0;
    padding: 10px 15px;
    border-radius: 8px;
    font-size: 13px;
}

/* FAQ Accordion Section v5
--------------------------------------------------------------*/
.faq-accordion-v5 {
    display: flex;
    flex-direction: column;
}

.faq-item-v5 {
    border: 1px solid #e2e8f0;
    background-color: #ffffff;
    border-radius: 15px;
    margin-bottom: 16px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item-v5:hover {
    border-color: #cbd5e1;
    box-shadow: 0 10px 15px -3px rgba(30, 58, 138, 0.05), 0 4px 6px -2px rgba(30, 58, 138, 0.02);
}



.faq-item-v5.active .faq-toggle-v5 {
    border-bottom: 1px solid #e2e8f0;
}

.faq-toggle-v5 {
    padding: 20px 24px;
    background: transparent;
    border: none;
    outline: none;
    box-shadow: none !important;
}

.faq-q-text-v5 {
    transition: color 0.25s ease;
}

.faq-icon-v5 {
    color: #94a3b8;
    transition: color 0.25s ease, transform 0.25s ease;
}

.faq-toggle-v5:hover .faq-q-text-v5 {
    color: var(--fc-v5-blue-dark) !important;
}

.faq-toggle-v5:hover .faq-icon-v5 {
    color: var(--fc-v5-blue-dark);
}

.faq-item-v5.active .faq-q-text-v5 {
    color: var(--fc-v5-blue-dark) !important;
}

.faq-item-v5.active .faq-icon-v5 {
    color: var(--fc-v5-blue-dark);
}

/* ============================================================
   Contact Image Form Section v5 (builder-contact-image-form)
   ============================================================ */

/* ---- Left column ---- */
.cif-img-wrap-v5 {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.cif-img-wrap-v5 img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.cif-img-wrap-v5:hover img {
    transform: scale(1.04);
}

/* "Vì sao chọn" box */
.cif-why-box-v5 {
    background-color: #ffffff;
    border: 1px solid #e8edf5;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.cif-why-title-v5 {
    color: var(--fc-v5-blue-dark);
    font-size: 15px;
    font-weight: 800;
}

/* Check item */
.cif-check-icon-v5 {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background-color: var(--fc-v5-blue-light);
    color: var(--fc-v5-blue-dark);
    flex-shrink: 0;
}

/* Banner xanh */
.cif-banner-v5 {
    background-color: var(--fc-v5-blue-dark);
    border-radius: 16px;
    padding: 16px 20px;
    color: #ffffff;
    box-shadow: 0 8px 24px rgba(30, 58, 138, 0.18);
}

.cif-banner-icon-v5 {
    width: 40px;
    height: 40px;
    background-color: rgba(255, 255, 255, 0.15);
    color: #facc15;
    flex-shrink: 0;
}

.cif-banner-title-v5 {
    color: #ffffff;
    line-height: 1.3;
}

.cif-banner-sub-v5 {
    color: rgba(255, 255, 255, 0.80);
    line-height: 1.4;
}

/* ---- Right column: card ---- */
.cif-card-v5 {
    background-color: #ffffff;
    border-radius: 20px;
    border: 1px solid #e8edf5;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
}

.cif-card-header-v5 {
    background-color: var(--fc-v5-blue-dark);
    color: #ffffff;
}
.cif-header-title-v5 {
    color: #ffffff;
    line-height: 1.3;
}

.cif-header-sub-v5 {
    color: rgba(255, 255, 255, 0.80);
    line-height: 1.4;
}

/* Override nút gửi với màu vàng cho riêng builder CIF */
.custom-cf7-cif-v5 .wpcf7-submit {
    background-color: #fcd34d !important;
    color: var(--fc-v5-blue-dark) !important;
}

.custom-cf7-cif-v5 .wpcf7-submit:hover {
    background-color: #f59e0b !important;
    box-shadow: 0 4px 14px rgba(245, 158, 11, 0.25);
    transform: translateY(-2px);
}

/* Security note */
.cif-security-v5 {
    color: #6b7280;
}

/* ============================================================
   Branches / Store Locations Section v5 (builder-branches)
   ============================================================ */

.branches-label-bar-v5 {
    display: inline-block;
    width: 4px;
    height: 16px;
    background-color: var(--fc-v5-blue-dark);
    border-radius: 2px;
    flex-shrink: 0;
}

.branches-subtitle-v5 {
    max-width: 360px;
}

/* ---- Branch Card ---- */
.branch-card-v5 {
    background-color: #ffffff;
    border: 1px solid #e8edf5;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.branch-card-v5:hover {
    box-shadow: 0 8px 30px rgba(30, 58, 138, 0.10);
    transform: translateY(-3px);
}

/* Main branch card — nền xanh nhạt nổi bật */
.branch-card-main-v5 {
    background-color: #f0f4ff;
    border: 2px solid var(--fc-v5-blue-dark);
    box-shadow: 0 4px 24px rgba(30, 58, 138, 0.10);
}

/* Badge */
.branch-badge-v5 {
    background-color: var(--fc-v5-blue-light);
    color: var(--fc-v5-blue-dark);
    border-radius: 6px;
    padding: 3px 10px;
}

.branch-card-main-v5 .branch-badge-v5 {
    background-color: var(--fc-v5-blue-dark);
    color: #ffffff;
}

/* Icon chung: nền tròn nhỏ */
.branch-icon-v5 {
    width: 22px;
    height: 22px;
    color: var(--fc-v5-blue-dark);
    flex-shrink: 0;
}

/* Icon phone: màu đỏ cam nổi bật */
.branch-icon-phone-v5 {
    color: #e53e3e;
}

.branch-phone-v5 {
    color: var(--fc-v5-blue-dark) !important;
}

.branch-phone-v5:hover {
    color: var(--fc-v5-red) !important;
}

/* Đường kẻ trước link Maps */
.branch-map-link-v5 {
    border-top: 1px solid #e8edf5;
}

.branch-map-link-v5 a {
    color: var(--fc-v5-blue-dark) !important; /* Màu xanh chủ đạo */
}

.branch-map-link-v5 a:hover {
    color: var(--fc-v5-red) !important;
    text-decoration: underline !important;
}

/* ============================================================
   Contact Channels & Hours Section v5 (builder-contact-channels)
   ============================================================ */
.support-channel-card-v5 {
    background-color: #ffffff;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.support-channel-card-v5:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(30, 58, 138, 0.08);
}
.support-icon-wrap-v5 {
    width: 56px;
    height: 56px;
    background-color: var(--fc-v5-blue-light);
    border-radius: 14px; /* Bo góc 14px theo yêu cầu */
}
.support-c-title-v5 {
    font-size: 11px;
}
.support-c-val-v5 {
    transition: color 0.3s ease;
}

.support-hours-card-v5 {
    background-color: #ffffff;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    border: 1px solid #e8edf5;
}
.hours-icon-v5 {
    width: 24px;
    height: 24px;
}
.hours-block-v5 {
    border-radius: 14px;
}
.hours-bg-green { background-color: #f0fdf4; }
.hours-bg-red { background-color: #fef2f2; }
.hours-bg-yellow { background-color: #fefce8; }

.status-dot-v5 {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}
.status-color-green { color: #16a34a; }
.status-color-green .status-dot-v5 { background-color: #16a34a; }
.status-color-red { color: #dc2626; }
.status-color-red .status-dot-v5 { background-color: #dc2626; }
.status-color-yellow { color: #d97706; }
.status-color-yellow .status-dot-v5 { background-color: #d97706; }

/* ============================================================
   CTA Section v5 (builder-cta)
   ============================================================ */
.builder-cta-v5 {
    border-radius: 20px;
}
.cta-badge-v5 {
    background-color: rgba(0, 0, 0, 0.15);
    padding: 6px 14px;
    border-radius: 30px;
}
.color-v5-yellow {
    color: #facc15 !important;
}
.cta-desc-v5 {
    max-width: 600px;
}
.cta-actions-v5 .btn-v5-red {
    background-color: #dc2626;
    min-width: 260px;
    transition: all 0.3s ease;
}
.cta-actions-v5 .btn-v5-red:hover {
    background-color: #b91c1c;
    box-shadow: 0 4px 14px rgba(220, 38, 38, 0.3);
    transform: translateY(-2px);
}
.cta-actions-v5 .btn-v5-outline-white {
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    min-width: 260px;
    transition: all 0.3s ease;
}
.cta-actions-v5 .btn-v5-outline-white:hover {
    background-color: rgba(255, 255, 255, 0.1);
    border-color: #ffffff;
    transform: translateY(-2px);
}
/* Shapes */
.cta-shape-v5 {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.05);
    z-index: 0;
}
.cta-shape-1-v5 {
    width: 300px;
    height: 300px;
    top: -100px;
    left: -50px;
}
.cta-shape-2-v5 {
    width: 500px;
    height: 500px;
    bottom: -200px;
    right: -100px;
    background: rgba(255, 255, 255, 0.03);
}

/* ============================================================
   About Us Section v5 (builder-about-us)
   ============================================================ */
.about-label-bar-v5 {
    display: inline-block;
    width: 4px;
    height: 16px;
    background-color: var(--fc-v5-blue);
    border-radius: 2px;
}
.about-check-v5 {
    width: 20px;
    height: 20px;
}
.about-check-icon-v5 {
    display: inline-block;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    background-color: var(--fc-v5-blue-dark);
    -webkit-mask: url('../icons/svg-tich.svg') no-repeat center;
    mask: url('../icons/svg-tich.svg') no-repeat center;
    -webkit-mask-size: contain;
    mask-size: contain;
}
.about-features-v5 {
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.about-features-v5 li {
    line-height: 1.5;
}
.about-actions-v5 .btn-v5-primary {
    background-color: var(--fc-v5-blue-dark);
    transition: all 0.3s ease;
}
.about-actions-v5 .btn-v5-primary:hover {
    background-color: var(--fc-v5-blue);
    box-shadow: 0 4px 14px rgba(30, 58, 138, 0.25);
    transform: translateY(-2px);
}
.about-actions-v5 .btn-v5-outline-primary {
    background-color: #ffffff;
    border: 1px solid var(--fc-v5-blue-dark);
    transition: all 0.3s ease;
}
.about-actions-v5 .btn-v5-outline-primary:hover {
    background-color: var(--fc-v5-blue-light);
    transform: translateY(-2px);
}
.about-images-v5 {
    padding-bottom: 30px;
    padding-left: 30px;
}
.about-img-wrap-v5 img {
    transition: transform 0.5s ease;
}
.about-img-wrap-v5:hover img {
    transform: scale(1.05);
}
.about-floating-box-v5 {
    background-color: var(--fc-v5-blue-dark);
    bottom: 0;
    left: 0;
    min-width: 140px;
    height: 80px;
    box-shadow: 0 8px 24px rgba(30, 58, 138, 0.2);
    z-index: 2;
}

/* ============================================================
   Vision & Mission Section v5 (builder-vision-mission)
   ============================================================ */
.vm-card-vision-v5 {
    background-color: var(--fc-v5-blue-dark);
    box-shadow: 0 8px 30px rgba(30, 58, 138, 0.15);
}
.vm-card-mission-v5 {
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
    border: 1px solid #f1f5f9;
}
.vm-icon-vision-v5 {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
}
.vm-icon-mission-v5 {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background-color: var(--fc-v5-blue-light);
}
.vm-tag-v5 {
    background-color: var(--fc-v5-blue-light);
}
.vm-shape-vision-v5 {
    width: 160px;
    height: 160px;
    background-color: rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    top: -50px;
    right: -50px;
    opacity: 0.8;
}
.vm-shape-mission-v5 {
    width: 160px;
    height: 160px;
    background-color: #f8fafc;
    border-radius: 50%;
    top: -50px;
    right: -50px;
}
.vm-core-card-v5 {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    border: 1px solid #f1f5f9;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.vm-core-card-v5:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}
.vm-core-icon-v5 {
    width: 40px;
    height: 40px;
    background-color: var(--fc-v5-blue-light);
    border-radius: 14px;
}

/* ============================================================
   Capabilities Section v5 (builder-capabilities)
   ============================================================ */
.cap-card-v5 {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    border: 1px solid #f1f5f9;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cap-card-v5:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}
.cap-card-icon-v5 {
    width: 48px;
    height: 48px;
}
.cap-card-shape-v5 {
    width: 130px;
    height: 130px;
    background-color: #f4f5f9;
    border-radius: 50%;
    top: -50px;
    right: -50px;
    z-index: 0;
}

/* ============================================================
   Solutions Section v5 (builder-solutions)
   ============================================================ */
.sol-card-v5 {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.02);
    border: 1px solid #f8fafc;
}
.sol-card-v5:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
    transform: translateY(-3px);
    border-color: #bfdbfe;
}
.sol-card-v5:hover .sol-card-title-v5 {
    color: var(--fc-v5-blue-dark) !important;
}
.sol-card-v5:hover .sol-card-arrow-v5 svg {
    transform: translateX(3px);
    stroke: var(--fc-v5-blue-dark);
    opacity: 1;
}
.sol-card-icon-v5 {
    width: 48px;
    height: 48px;
}

/* ============================================================
   Partners & Clients Section v5 (builder-partners)
   ============================================================ */
.partner-pill-v5 {
    background-color: #f8fafc;
    border: 1px solid #f8fafc;
}
.partner-pill-v5:hover {
    background-color: #eff6ff;
    border-color: #bfdbfe;
    transform: translateY(-2px);
}
.partner-pill-v5:hover span {
    color: var(--fc-v5-blue-dark) !important;
    opacity: 1 !important;
}
.partner-project-card-v5:hover img {
    transform: scale(1.05);
}
.partner-project-overlay-v5 {
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.3) 60%, rgba(0,0,0,0) 100%);
    min-height: 50%;
}
.partner-testimonial-v5 {
    background-color: #eff6ff;
    border: 1px solid #bfdbfe;
}
.pt-icon-v5 {
    background-color: #1e3a8a;
    width: 50px;
    height: 50px;
}

@media (min-width: 992px) {
    .text-lg-start { text-align: left !important; }
    .text-lg-center { text-align: center !important; }
    .text-lg-end { text-align: right !important; }
    .flex-lg-row { flex-direction: row !important; }
}

.fst-italic {
    font-style: italic !important;
}

/* ============================================================
   Process Section v5 (builder-process-v5)
   ============================================================ */

/* Utility Filters & Z-index */
.filter-white {
    filter: brightness(0) invert(1);
}
.filter-blue {
    filter: brightness(0) saturate(100%) invert(18%) sepia(51%) saturate(2852%) hue-rotate(213deg) brightness(96%) contrast(98%);
}
.z-index-1 { z-index: 1; }
.z-index-2 { z-index: 2; position: relative; }
.z-index-3 { z-index: 3; }

/* Desktop Timeline */
.process-line-wrapper-v5 {
    top: 21px;
    left: 10%;
    right: 10%;
    height: 2px;
    z-index: 1;
}
.process-line-bg-v5 {
    background-color: #e2e8f0;
}
.process-line-active-v5 {
    top: 0;
    left: 0;
    width: 0%;
    background-color: var(--fc-v5-blue-dark);
    transition: width 0.4s ease;
}
.process-nav-item-v5 {
    position: relative;
    flex: 1 1 0%;
    width: 20%;
}
.process-nav-circle-v5 {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: #ffffff;
    color: var(--fc-v5-blue-dark);
    border: 2px solid #e2e8f0;
    position: relative;
    z-index: 3;
}
.process-nav-title-v5 {
    color: #64748b;
    margin-top: 15px;
}

/* Active & Completed States */
.process-nav-item-v5.active .process-nav-circle-v5,
.process-nav-item-v5.completed .process-nav-circle-v5 {
    background-color: var(--fc-v5-blue-dark);
    color: #ffffff;
    border-color: var(--fc-v5-blue-dark);
}
.process-nav-item-v5.active .process-nav-circle-v5 {
    box-shadow: 0 0 0 6px rgba(30, 58, 138, 0.12);
}
.process-nav-item-v5.active .process-nav-title-v5,
.process-nav-item-v5.completed .process-nav-title-v5 {
    color: var(--fc-v5-blue-dark);
}

/* Desktop Card & Buttons */
.process-card-icon-v5 {
    background-color: var(--fc-v5-blue-dark);
    width: 56px;
    height: 56px;
}
.btn-process-nav-v5 {
    width: 40px;
    height: 40px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    cursor: pointer;
    color: var(--fc-v5-blue-dark);
}
.process-nav-buttons-v5 {
    right: 3rem;
    top: 50%;
    transform: translateY(-50%);
}
.btn-process-nav-v5:hover {
    background-color: var(--fc-v5-blue-dark) !important;
    border-color: var(--fc-v5-blue-dark) !important;
    color: #ffffff !important;
}

/* Mobile Vertical List */
.process-mobile-item {
    padding-bottom: 2.5rem;
}
.process-mobile-item:last-child {
    padding-bottom: 0;
}
.process-mobile-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50px;
    left: 25px;
    bottom: 0;
    width: 2px;
    background-color: #e2e8f0;
    transform: translateX(-50%);
    z-index: 1;
}
.process-mobile-circle-v5 {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: var(--fc-v5-blue-dark);
    box-shadow: 0 0 0 4px #f8fafc;
}
.process-mobile-icon-v5 {
    width: 16px;
    height: 16px;
    color: var(--fc-v5-blue-dark);
}
