/* Theme Default style
-------------------------------------------------------------- */
* {
    box-sizing: border-box;
}

/* HTML and Body Styles
--------------------------------------------------------------*/
html,
body {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    margin: 0px;
    padding: 0px;
    font-optical-sizing: auto;
    font-style: normal;
}

/* Link Styles
--------------------------------------------------------------*/
a {
    text-decoration: none;
}

/* Paragraph Styles
--------------------------------------------------------------*/
p {
    margin: 5px 0px;
}

/* Utility Classes
--------------------------------------------------------------*/
.bg-white {
    background-color: #FFF;
}
.bg-transparent{
    background: transparent;
}
.overflow-hidden {
    overflow: hidden;
}
.overflow-auto {
    overflow: auto;
}
.overflow-horizontal-auto {
    overflow-x: auto;
}
.overflow-vertical-auto {
    overflow-y: auto;
}
/* Animate skew
--------------------------------------------------------------*/
.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 var(--fc_color_border, #E1E5DF);
    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: var(--fc_color_primary, #3F6234) 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);
}

/* Full Width and Height Utility Classes
--------------------------------------------------------------*/
.width100 {
    width: 100%;
}

.height100 {
    height: 100%;
}

.height-100vh {
    height: 100vh;
}

.width-100vh {
    width: 100vh;
}

/* 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;
}

/* Style Max Width Utilities
--------------------------------------------------------------*/
.max-w-500 {
    max-width: 500px;
}
.max-w-700 {
    max-width: 700px;
}

/* Screen-reader only (vùng thông báo aria-live, nhãn ẩn)
--------------------------------------------------------------*/
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* 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: #eee;
    border: 1px 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: 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
 --------------------------------------------------------------*/
/* Biodino UI Kit Radius Tokens (8px, 12px, 16px, 999px) */
.radius-8,
.radius-sm,
.radius8px {
    border-radius: var(--fc_radius_sm, 8px) !important;
}

.radius-12,
.radius-md,
.radius12px {
    border-radius: var(--fc_radius_md, 12px) !important;
}

.radius-16,
.radius-lg,
.radius16px {
    border-radius: var(--fc_radius_lg, 16px) !important;
}

.radius-999,
.radius-pill,
.radius-full,
.pill,
.badge-pill {
    border-radius: var(--fc_radius_pill, 999px) !important;
}

/* Numeric scale legacy support */
.radius0 {
    border-radius: 0px;
}

.radius1 {
    border-radius: 5px;
}

.radius2 {
    border-radius: 10px;
}

.radius3 {
    border-radius: 15px;
}

.radius4 {
    border-radius: 20px;
}

.radius5 {
    border-radius: 25px;
}

.radius6 {
    border-radius: 30px;
}

.radius7 {
    border-radius: 35px;
}

.radius8 {
    border-radius: 40px;
}

.radius-circle {
    border-radius: 50% !important;
}

/* ==============================================================
   Biodino UI Kit Foundation Components
   ============================================================== */

/* Kicker: dòng nhãn nhỏ in hoa phía trên tiêu đề khối
 -------------------------------------------------------------- */
.section-kicker {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--fc_color_primary, #3F6234);
    margin: 0;
}

/* Buttons (Touch target >= 44px, Primary commerce = 48px)
   `.btn-primary` / `.btn-outline-secondary` / `.btn-secondary` là tên class theo quy ước
   Bootstrap được các template trong theme gọi tới; gộp vào cùng rule để không lặp khai báo.
 -------------------------------------------------------------- */
.btn-ui,
.btn-primary-ui,
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    min-height: 44px;
    min-width: 44px;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    color: var(--fc_color_surface, #FFFFFF) !important;
    background-color: var(--fc_color_primary, #3F6234);
    border: none;
    border-radius: var(--fc_radius_md, 12px);
    cursor: pointer;
    text-align: center;
    text-decoration: none !important;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.btn-ui:hover,
.btn-primary-ui:hover,
.btn-primary:hover {
    background-color: var(--fc_color_secondary, #263C22);
    box-shadow: var(--fc_shadow_sm, 0 1px 3px rgba(0, 0, 0, 0.05));
}

.btn-ui:active,
.btn-primary-ui:active,
.btn-primary:active {
    transform: scale(0.98);
}

.btn-secondary-ui,
.btn-outline-secondary,
.btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    min-height: 44px;
    padding: 10px 20px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    color: var(--fc_color_primary, #3F6234) !important;
    background-color: var(--fc_color_surface, #FFFFFF);
    border: 1.5px solid var(--fc_color_primary, #3F6234);
    border-radius: var(--fc_radius_md, 12px);
    cursor: pointer;
    text-decoration: none !important;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.btn-secondary-ui:hover,
.btn-outline-secondary:hover,
.btn-secondary:hover {
    background-color: var(--fc_color_soft_green, #EEF5E8);
}

.btn-icon-ui,
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: var(--fc_radius_sm, 8px);
    border: 1px solid var(--fc_color_border, #E1E5DF);
    background-color: var(--fc_color_surface, #FFFFFF);
    color: var(--fc_body_color, #3C443B);
    cursor: pointer;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.btn-icon-ui:hover,
.btn-icon:hover {
    border-color: var(--fc_color_primary, #3F6234);
    color: var(--fc_color_primary, #3F6234);
    background-color: var(--fc_color_soft_green, #EEF5E8);
}

/* Chip & Filter Selector (12px radius)
 -------------------------------------------------------------- */
.chip,
.chip-ui {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--fc_body_color, #3C443B);
    background-color: var(--fc_color_surface, #FFFFFF);
    border: 1px solid var(--fc_color_border, #E1E5DF);
    border-radius: var(--fc_radius_md, 12px);
    cursor: pointer;
    user-select: none;
    transition: all 0.2s ease;
}

.chip:hover,
.chip-ui:hover {
    border-color: var(--fc_color_primary, #3F6234);
}

.chip.active,
.chip-ui.active {
    background-color: var(--fc_color_soft_green, #EEF5E8);
    border-color: var(--fc_color_primary, #3F6234);
    color: var(--fc_color_primary, #3F6234);
    font-weight: 600;
}

/* Tag & Status Badges (8px tag nhỏ, 999px pill)
 -------------------------------------------------------------- */
.tag-sm,
.tag-sm-ui {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    border-radius: var(--fc_radius_sm, 8px);
    background-color: var(--fc_color_soft_green, #EEF5E8);
    color: var(--fc_color_primary, #3F6234);
}

.badge-pill,
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    border-radius: var(--fc_radius_pill, 999px);
    background-color: var(--fc_color_soft_green, #EEF5E8);
    color: var(--fc_color_primary, #3F6234);
}

.badge-pill.warning,
.status-pill.warning {
    background-color: #FEF3D6;
    color: var(--fc_color_warning_text, #684C1E);
    border: 1px solid var(--fc_color_warning, #F2BB5F);
}

/* Card & Panel (16px radius, Border first over shadow)
 -------------------------------------------------------------- */
.card-ui {
    background-color: var(--fc_color_surface, #FFFFFF);
    border: 1px solid var(--fc_color_border, #E1E5DF);
    border-radius: var(--fc_radius_lg, 16px);
    padding: 20px;
    box-sizing: border-box;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.card-ui:hover {
    border-color: rgba(63, 98, 52, 0.3);
}

.panel-ui {
    background-color: var(--fc_color_surface, #FFFFFF);
    border: 1px solid var(--fc_color_border, #E1E5DF);
    border-radius: var(--fc_radius_lg, 16px);
    padding: 24px;
    box-sizing: border-box;
}

/* Form Inputs (12px radius, Height 46-48px)
 -------------------------------------------------------------- */
.form-control-ui,
.input-ui {
    width: 100%;
    height: 48px;
    min-height: 44px;
    padding: 10px 16px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--fc_body_color, #3C443B);
    background-color: var(--fc_color_surface, #FFFFFF);
    border: 1px solid var(--fc_color_border, #E1E5DF);
    border-radius: var(--fc_radius_md, 12px);
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control-ui:focus,
.input-ui:focus {
    border-color: var(--fc_color_primary, #3F6234);
    box-shadow: 0 0 0 3px rgba(63, 98, 52, 0.15);
}

/* Semantic Background & Color Utilities
 -------------------------------------------------------------- */
.color-primary {
    color: var(--fc_color_primary, #3F6234) !important;
}

.color-secondary,
.color-heading {
    color: var(--fc_color_heading, #263C22) !important;
}

.color-tertiary {
    color: var(--fc_color_tertiary, #8EAE68) !important;
}

.color-body {
    color: var(--fc_body_color, #3C443B) !important;
}

.color-white {
    color: var(--fc_color_surface, #FFFFFF) !important;
}

.color-permalink {
    color: var(--fc_color_permalink, #3F6234) !important;
}

.color-text-muted {
    color: var(--fc_color_text_muted, #6B7569) !important;
}

.color-deep {
    color: var(--fc_color_secondary, #263C22) !important;
}

.color-warning-text {
    color: var(--fc_color_warning_text, #684C1E) !important;
}

.background-soft {
    background-color: var(--fc_color_soft_green, #EEF5E8) !important;
}

.background-surface {
    background-color: var(--fc_color_surface, #FFFFFF) !important;
}

.background-warm {
    background-color: var(--fc_body_background_color, #FBFAF5) !important;
}

.border-ui {
    border: 1px solid var(--fc_color_border, #E1E5DF) !important;
}

.border-soft {
    border: 1px solid rgba(63, 98, 52, 0.2) !important;
}

.border-0,
.border-none,
.border0 {
    border: 0 !important;
}

.border-top-ui {
    border-top: 1px solid var(--fc_color_border, #E1E5DF) !important;
}

.border-bottom-ui {
    border-bottom: 1px solid var(--fc_color_border, #E1E5DF) !important;
}

/* Alias ngắn dùng trong template (`.border-top` / `.border-bottom`) */
.border-top {
    border-top: 1px solid var(--fc_color_border, #E1E5DF);
}

.border-bottom {
    border-bottom: 1px solid var(--fc_color_border, #E1E5DF);
}
/* 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;
}
.pt-0 {
    padding-top: 0;
}

.pe-0 {
    padding-right: 0;
}

.pb-0 {
    padding-bottom: 0;
}

.ps-0 {
    padding-left: 0;
}

/* Top Padding Classes
 --------------------------------------------------------------*/
.pt-1 {
    padding-top: 5px;
}

.pt-2 {
    padding-top: 10px;
}

.pt-3 {
    padding-top: 15px;
}

.pt-4 {
    padding-top: 20px;
}

.pt-5 {
    padding-top: 25px;
}
.pt-6 {
    padding-top: 30px;
}
.pt-7 {
    padding-top: 35px;
}
.pt-8 {
    padding-top: 40px;
}
.pt-9 {
    padding-top: 50px;
}
.pt-10 {
    padding-top: 60px;
}
/* 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;
}

/* ==========================================================================
   Vertical & Horizontal Padding Utilities (py-* / px-*)
   Thang 4px đồng bộ với Biodino UI Kit (--fc_space_*) và hệ .gap-*
   ========================================================================== */
.py-0 { padding-top: 0; padding-bottom: 0; }
.py-1 { padding-top: 4px; padding-bottom: 4px; }
.py-2 { padding-top: 8px; padding-bottom: 8px; }
.py-3 { padding-top: 12px; padding-bottom: 12px; }
.py-4 { padding-top: 16px; padding-bottom: 16px; }
.py-5 { padding-top: 24px; padding-bottom: 24px; }
.py-6 { padding-top: 32px; padding-bottom: 32px; }

.px-0 { padding-left: 0; padding-right: 0; }
.px-1 { padding-left: 4px; padding-right: 4px; }
.px-2 { padding-left: 8px; padding-right: 8px; }
.px-3 { padding-left: 12px; padding-right: 12px; }
.px-4 { padding-left: 16px; padding-right: 16px; }
.px-5 { padding-left: 24px; padding-right: 24px; }
.px-6 { padding-left: 32px; padding-right: 32px; }
/* Bottom Padding Classes
--------------------------------------------------------------*/
.pb-1 {
    padding-bottom: 5px;
}

.pb-2 {
    padding-bottom: 10px;
}

.pb-3 {
    padding-bottom: 15px;
}

.pb-4 {
    padding-bottom: 20px;
}

.pb-5 {
    padding-bottom: 25px;
}
.pb-6 {
    padding-bottom: 30px;
}
.pb-7 {
    padding-bottom: 35px;
}
.pb-8 {
    padding-bottom: 40px;
}
.pb-9 {
    padding-bottom: 50px;
}
.pb-10 {
    padding-bottom: 60px;
}
/* Centering Element
 --------------------------------------------------------------*/
.m-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Margin Top Classes
--------------------------------------------------------------*/
.mt-1 {
    margin-top: 5px;
}

.mt-2 {
    margin-top: 10px;
}

.mt-3 {
    margin-top: 15px;
}

.mt-4 {
    margin-top: 20px;
}

.mt-5 {
    margin-top: 25px;
}
.mt-6 {
    margin-top: 30px;
}

/* Margin Left Classes
--------------------------------------------------------------*/
.ms-1 {
    margin-left: 5px;
}

.ms-2 {
    margin-left: 10px;
}

.ms-3 {
    margin-left: 15px;
}

.ms-4 {
    margin-left: 20px;
}

.ms-5 {
    margin-left: 25px;
}

/* Margin Right Classes
--------------------------------------------------------------*/
.me-1 {
    margin-right: 5px;
}

.me-2 {
    margin-right: 10px;
}

.me-3 {
    margin-right: 15px;
}

.me-4 {
    margin-right: 20px;
}

.me-5 {
    margin-right: 25px;
}

/* Margin Bottom Classes
--------------------------------------------------------------*/
.mb-1 {
    margin-bottom: 5px;
}

.mb-2 {
    margin-bottom: 10px;
}

.mb-3 {
    margin-bottom: 15px;
}

.mb-4 {
    margin-bottom: 20px;
}

.mb-5 {
    margin-bottom: 25px;
}
.mb-6 {
    margin-bottom: 30px;
}

/* Margin trục dọc / tự động (thang 5px cho đồng bộ với .mt-* / .mb-*) */
.my-3 {
    margin-top: 15px;
    margin-bottom: 15px;
}

/* Căn giữa khối theo chiều ngang (dùng kèm .max-w-*) */
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

/* Đẩy phần tử xuống đáy trong flex column */
.mt-auto {
    margin-top: auto;
}

/* Font Size Classes
--------------------------------------------------------------*/
.font9 {
    font-size: 9px;
}

.font10 {
    font-size: 10px;
}

.font11 {
    font-size: 11px;
}

.font12 {
    font-size: 12px;
}

.font13 {
    font-size: 13px;
}

.font14 {
    font-size: 14px;
}

.font15 {
    font-size: 15px;
}

.font16 {
    font-size: 16px;
}

.font17 {
    font-size: 17px;
}

.font18 {
    font-size: 18px;
}

.font19 {
    font-size: 19px;
}

.font20 {
    font-size: 20px;
}

.font21 {
    font-size: 21px;
}

.font22 {
    font-size: 22px;
}

.font23 {
    font-size: 23px;
}

.font24 {
    font-size: 24px;
}

.font25 {
    font-size: 25px;
}

.font26 {
    font-size: 26px;
}

.font27 {
    font-size: 27px;
}

.font28 {
    font-size: 28px;
}

.font29 {
    font-size: 29px;
}

.font30 {
    font-size: 30px;
}


.font35 {
    font-size: 35px;
}

.font36 {
    font-size: 36px;
}

.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-muted {
    color: var(--fc_color_text_muted, #6B7569) !important;
}

/* Text Decoration & Inheritance Utilities
--------------------------------------------------------------*/
.text-decoration-none {
    text-decoration: none !important;
}

.text-inherit {
    color: inherit !important;
}
/* 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-700 {
    font-weight: 700;
}

.font-weight-800 {
    font-weight: 800;
}

.font-weight-900 {
    font-weight: 900;
}

/* Semi-bold font weight
--------------------------------------------------------------*/
.font-weight-500 {
    font-weight: 500;
}

/* Strong font weight
--------------------------------------------------------------*/
.font-weight-600 {
    font-weight: 600;
}

/* Normal font weight
--------------------------------------------------------------*/
.font-weight-400 {
    font-weight: 400;
}

/* 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-flex {
    display: flex;
}

.d-inline-flex {
    display: inline-flex;
}

/* .d-none PHẢI luôn thắng mọi rule `display` khác.
   Lý do: các component như .biodino-icon, .bd-savings-badge... đặt `display` riêng
   và nằm SAU trong file này, cùng specificity (0,1,0) nên sẽ ghi đè .d-none,
   khiến phần tử đáng lẽ bị ẩn vẫn hiển thị (bug icon +/− accordion, check swatch...).
   Dùng !important để biến .d-none thành utility ẩn đáng tin cậy. */
.d-none {
    display: none !important;
}

/* Responsive Display Utilities (Mobile-First, đồng bộ với hệ thống Grid)
   Cho phép ẩn/hiện phần tử theo breakpoint mà không cần khai báo trong responsive.css */
@media (min-width: 576px) {
    .d-sm-none { display: none; }
    .d-sm-block { display: block; }
    .d-sm-flex { display: flex; }
    .d-sm-inline-flex { display: inline-flex; }
}

@media (min-width: 768px) {
    .d-md-none { display: none; }
    .d-md-block { display: block; }
    .d-md-flex { display: flex; }
    .d-md-inline-flex { display: inline-flex; }
}

@media (min-width: 992px) {
    .d-lg-none { display: none; }
    .d-lg-block { display: block; }
    .d-lg-flex { display: flex; }
    .d-lg-inline-flex { display: inline-flex; }
}

@media (min-width: 1200px) {
    .d-xl-none { display: none; }
    .d-xl-block { display: block; }
    .d-xl-flex { display: flex; }
    .d-xl-inline-flex { display: inline-flex; }
}

.list-unstyled {
    padding-left: 0;
    list-style: none;
}

/* Style Flex
--------------------------------------------------------------*/
.flex-row {
    flex-direction: row;
}
.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

/* Co giãn flex item (v7.md §7.3 — bảng tra cứu Flexbox) */
.flex-grow-1 {
    flex-grow: 1;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

/* Flex Gap Utilities
--------------------------------------------------------------*/
.gap-0 { gap: 0px !important; }
.gap-1 { gap: 4px !important; }
.gap-2 { gap: 8px !important; }
.gap-3 { gap: 12px !important; }
.gap-4 { gap: 16px !important; }
.gap-5 { gap: 24px !important; }

/* Tự động tính toán trừ khoảng Gap cho các cặp cột 12 Bootstrap trong .row.gap-4 */
@media (min-width: 992px) {
    /* Cột `col-md-*` vẫn hiệu lực ở mốc >= 992px (giống Bootstrap) nên cũng phải bù gap.
       Thiếu 3 rule này, cặp col-md-6 + col-md-6 thành 50% + 16px gap + 50% > 100% -> rớt dòng.
       BẮT BUỘC đặt TRƯỚC các rule `col-lg-*` bên dưới: khi một cột có cả col-md-* và col-lg-*,
       mốc lớn hơn phải thắng (cùng specificity nên thứ tự nguồn quyết định). */
    .row.gap-4 > .col-md-4 {
        flex: 0 0 calc(33.333333% - 10.67px) !important;
        max-width: calc(33.333333% - 10.67px) !important;
        width: calc(33.333333% - 10.67px) !important;
    }
    .row.gap-4 > .col-md-8 {
        flex: 0 0 calc(66.666667% - 5.33px) !important;
        max-width: calc(66.666667% - 5.33px) !important;
        width: calc(66.666667% - 5.33px) !important;
    }
    .row.gap-4 > .col-md-6 {
        flex: 0 0 calc(50% - 8px) !important;
        max-width: calc(50% - 8px) !important;
        width: calc(50% - 8px) !important;
    }

    .row.gap-4 > .col-lg-3 {
        flex: 0 0 calc(25% - 12px) !important;
        max-width: calc(25% - 12px) !important;
        width: calc(25% - 12px) !important;
    }
    .row.gap-4 > .col-lg-9 {
        flex: 0 0 calc(75% - 4px) !important;
        max-width: calc(75% - 4px) !important;
        width: calc(75% - 4px) !important;
    }
    .row.gap-4 > .col-lg-4 {
        flex: 0 0 calc(33.333333% - 10.67px) !important;
        max-width: calc(33.333333% - 10.67px) !important;
        width: calc(33.333333% - 10.67px) !important;
    }
    .row.gap-4 > .col-lg-8 {
        flex: 0 0 calc(66.666667% - 5.33px) !important;
        max-width: calc(66.666667% - 5.33px) !important;
        width: calc(66.666667% - 5.33px) !important;
    }
    .row.gap-4 > .col-lg-5 {
        flex: 0 0 calc(41.666667% - 9.33px) !important;
        max-width: calc(41.666667% - 9.33px) !important;
        width: calc(41.666667% - 9.33px) !important;
    }
    .row.gap-4 > .col-lg-7 {
        flex: 0 0 calc(58.333333% - 6.67px) !important;
        max-width: calc(58.333333% - 6.67px) !important;
        width: calc(58.333333% - 6.67px) !important;
    }
    .row.gap-4 > .col-lg-6 {
        flex: 0 0 calc(50% - 8px) !important;
        max-width: calc(50% - 8px) !important;
        width: calc(50% - 8px) !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .row.gap-4 > .col-md-4 {
        flex: 0 0 calc(33.333333% - 10.67px) !important;
        max-width: calc(33.333333% - 10.67px) !important;
        width: calc(33.333333% - 10.67px) !important;
    }
    .row.gap-4 > .col-md-8 {
        flex: 0 0 calc(66.666667% - 5.33px) !important;
        max-width: calc(66.666667% - 5.33px) !important;
        width: calc(66.666667% - 5.33px) !important;
    }
    .row.gap-4 > .col-md-6 {
        flex: 0 0 calc(50% - 8px) !important;
        max-width: calc(50% - 8px) !important;
        width: calc(50% - 8px) !important;
    }
}

/* Justify content alignment classes (horizontal axis)
--------------------------------------------------------------*/
.justify-content-start {
    justify-content: flex-start;
}

.justify-content-end {
    justify-content: flex-end;
}

.justify-content-center {
    justify-content: center;
}

.justify-content-between {
    justify-content: space-between;
}

.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-center {
    align-items: center;
}

.align-items-baseline {
    align-items: baseline;
}

.align-items-stretch {
    align-items: stretch;
}

/* 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;
}

/* Search form Widget
--------------------------------------------------------------*/
.search-form {
    border-radius: 25px;
    overflow: hidden;
}

.search-form .input-search {
    padding: 10px 15px;
    border: 1px solid var(--fc_color_border, #E1E5DF);
    border-radius: 25px;
    outline: none;
    width: 300px;
    max-width: 100%;
    height: 38px;
    background: var(--fc_color_surface, #FFFFFF);
    color: var(--fc_body_color, #3C443B);
}
/* Style button search form
--------------------------------------------------------------*/
.search-form .btn-search-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    outline: none;
    right: 0;
    padding: 5px 15px;
    background: var(--fc_color_secondary, #263C22);
    color: var(--fc_color_surface, #FFFFFF);
    border-radius: 25px;
    cursor: pointer;
}
/* 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
--------------------------------------------------------------*/
.wpcf7-form .wpcf7-form-control {
    padding: 12px 18px;
    font-size: 14px;
    color: #555555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #00a806;;
    box-shadow: none !important;
    outline: none !important;
    border-radius: 2px;
}

/* 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: 'Georgia';
    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;
}
.opacity-50{
    opacity: 0.5;
}
/* 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 var(--fc_color_permalink_hover, #8EAE68);
    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 var(--fc_color_permalink_hover, #8EAE68);
    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;
}

/* Biodino Icon System V1
-------------------------------------------------------------- */
.biodino-icon,
.guidance-icon {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.icon-16,
.biodino-icon.icon-sm {
    width: 16px;
    height: 16px;
}

/* Cỡ icon bổ sung theo thang Biodino Icon System V1 */
.icon-14 {
    width: 14px;
    height: 14px;
}

.icon-18 {
    width: 18px;
    height: 18px;
}

.icon-20,
.biodino-icon.icon-md {
    width: 20px;
    height: 20px;
}

.icon-24,
.biodino-icon.icon-lg {
    width: 24px;
    height: 24px;
}

.icon-28 {
    width: 28px;
    height: 28px;
}

.icon-32,
.biodino-icon.icon-xl {
    width: 32px;
    height: 32px;
}

.icon-40 {
    width: 40px;
    height: 40px;
}

/* Cỡ 44px — khớp touch target tối thiểu của v7.md §4.3 */
.icon-44,
.biodino-icon.icon-44 {
    width: 44px;
    height: 44px;
}

.icon-48 {
    width: 48px;
    height: 48px;
}

.icon-btn-wrap {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: var(--fc_radius_sm, 8px);
    color: var(--fc_color_primary, #3F6234);
    background: var(--fc_color_soft_green, #EEF5E8);
}