body {
    background: #f3f7fd;
}

.align-items-start {
    align-items: flex-start !important;
}

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

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

.py-3 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important
}

.py-4 {
    padding-top: 1.5rem !important;
    padding-bottom: 1.5rem !important
}

.gap-2 {
    gap: .5rem !important
}

.gap-3 {
    gap: 1rem !important
}

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

.d-flex {
    display: flex !important
}

.overflow-auto {
    overflow: auto !important
}

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

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

.text-dark {
    color: #212529 !important
}

.text-decoration-none {
    text-decoration: none !important
}

.p-2 {
    padding: .5rem !important
}

.p-3 {
    padding: 1rem !important
}

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

.d-block {
    display: block !important
}

.mb-1 {
    margin-bottom: .25rem !important
}

.mb-2 {
    margin-bottom: .5rem !important
}

.mb-3 {
    margin-bottom: 1rem !important
}

.mt-2 {
    margin-top: .5rem !important
}

.d-none {
    display: none !important
}

.accordion {
    --bs-accordion-color: #212529;
    --bs-accordion-bg: #fff;
    --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
    --bs-accordion-border-color: #dee2e6;
    --bs-accordion-border-width: 1px;
    --bs-accordion-border-radius: .375rem;
    --bs-accordion-inner-border-radius: calc(.375rem - (1px));
    --bs-accordion-btn-padding-x: 1.25rem;
    --bs-accordion-btn-padding-y: 1rem;
    --bs-accordion-btn-color: #212529;
    --bs-accordion-btn-bg: #fff;
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns= 'http://www.w3.org/2000/svg' viewBox= '0 0 16 16' fill= '%23212529' %3e%3cpath fill-rule= 'evenodd' d= 'M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z' /%3e%3c/svg%3e");
    --bs-accordion-btn-icon-width: 1.25rem;
    --bs-accordion-btn-icon-transform: rotate(-180deg);
    --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns= 'http://www.w3.org/2000/svg' viewBox= '0 0 16 16' fill= '%23052c65' %3e%3cpath fill-rule= 'evenodd' d= 'M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z' /%3e%3c/svg%3e");
    --bs-accordion-btn-focus-border-color: #86b7fe;
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    --bs-accordion-body-padding-x: 1.25rem;
    --bs-accordion-body-padding-y: 1rem;
    --bs-accordion-active-color: #052c65;
    --bs-accordion-active-bg: #cfe2ff;
}

.accordion-item {
    border: 0;
    border-bottom: 1px solid #eceff3;
    border-radius: 0;
    background-color: transparent;
}

.accordion-item:first-of-type {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.accordion-header {
    margin-bottom: 0
}

.accordion-item:first-of-type .accordion-button {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.accordion-button,
.accordion-button:not(.collapsed) {
    background-color: transparent;
    box-shadow: none;
}

.accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    transform: rotate(-180deg);
}

.collapsing {
    height: 0;
    overflow: hidden;
    transition: height .35s ease
}

.accordion-button::after {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    margin-left: auto;
    content: "";
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-size: 1.25rem;
    transition: transform 0.2s ease-in-out;
}

.accordion-button:focus {
    z-index: 3;
    border-color: #86b7fe;
    outline: 0;
    box-shadow: none;
}

.accordion-button {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 1rem 0;
    font-size: 16px;
    color: #212529;
    text-align: left;
    background-color: #fff;
    border: 0;
    border-radius: 0;
    overflow-anchor: none;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
}

.accordion-body {
    padding: 1rem 1.25rem
}

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

.small {
    font-size: 14px;
}

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

.form-select-sm {
    padding-top: .25rem;
    padding-bottom: .25rem;
    padding-left: .5rem;
    font-size: .875rem;
    border-radius: .25rem;
}

.form-select {
    display: block;
    width: 100%;
    padding: .375rem 2.25rem .375rem .75rem;
    -moz-padding-start: calc(0.75rem - 3px);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #212529;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right .75rem center;
    background-size: 16px 12px;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch
}

.text-muted {
    color: #6c757d !important
}

.text-center {
    text-align: center !important
}

.feature-list .tab-trigger {
    width: 100%;
    text-align: left;
    padding-left: .5rem;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.feature-list .feature-card.tab-trigger:hover:not(.active) {
    background: #e9f6f5;
}

/* optional visual for active tab */
.feature-list .feature-card.tab-trigger.active,
.feature-list .feature-card.tab-trigger.active:hover {
    background: #e9f6f5;
    border-bottom: 5px solid #00b8a6;
    border-radius: 0;
    color: #00a79b !important;
    padding-left: .9rem;
    transform: none;
    box-shadow: none;
}

.tab-trigger.active .small {
    color: #00a79b;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 0;
}

.accordion-button:focus {
    box-shadow: none;
}

/* nha-dau-tu styles */
.stock-header {
    text-align: center;
    margin-bottom: 2rem;
}

.stock-header h2 {
    font-size: 32px;
    font-weight: bold;
    color: #333;
}

.stock-info-wrapper {
    display: flex;
    gap: 2rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
}

.stock-left {
    flex: 0 0 260px;
    min-width: 220px;
}

.stock-price {
    font-size: 38px;
    font-weight: bold;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.text-success {
    color: #28a745;
}

.text-danger {
    color: #dc3545;
}

.stock-change {
    color: #d32f2f;
    font-weight: 500;
    font-size: 18px;
    margin-top: 0.3rem;
}

.stock-date {
    color: #999;
    font-size: 14px;
    margin-top: 1rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 1rem;
}

.stock-details {
    margin-top: 1rem;
    font-size: 16px;
}

.stock-details-row {
    display: flex;
    justify-content: space-between;
    padding: 0.4rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.stock-details-label {
    font-weight: 500;
    color: #666;
}

.stock-details-value {
    color: #333;
    text-align: right;
}

.stock-right {
    flex: 1;
    min-width: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.chart-container {
    position: relative;
    width: 100%;
    max-width: 880px;
    height: 400px;
    background: #fff;
    border-radius: 0.5rem;
    padding: 1rem;
    border: 1px solid #e9ecef;
    margin: 0 auto;
}

.zoom-buttons {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.zoom-buttons button {
    padding: 0.4rem 0.8rem;
    font-size: 14px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 0.3rem;
    cursor: pointer;
    transition: all 0.2s;
}

.zoom-buttons button.active {
    background: #0b3d3a;
    color: #fff;
    border-color: #0b3d3a;
}

.zoom-buttons button:hover {
    background: #f0f0f0;
}

.zoom-buttons button.active:hover {
    background: #0b3d3a;
}

.credit-rating-section {
    margin-top: 1.5rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    padding: 1rem;
}

.credit-rating-title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #243447;
}

.credit-rating-toolbar {
    display: flex;
    gap: .5rem;
    align-items: center;
    justify-content: flex-end;
    /*margin-bottom: .75rem;*/
}

.credit-rating-toolbar label {
    font-size: 14px;
    color: #5c6773;
    margin-bottom: 0;
}

.credit-rating-toolbar select {
    max-width: 140px;
}

.credit-rating-table {
    width: 100%;
    border-collapse: collapse;
}

.credit-rating-table th,
.credit-rating-table td {
    padding: .65rem .5rem;
    border-bottom: 1px solid #f1f3f5;
    font-size: .92rem;
}

.credit-rating-table th {
    color: #5c6773;
    font-weight: 600;
    background: #fafbfc;
}

.credit-rating-table td {
    color: #2f3b45;
}

.credit-rating-table tr:last-child td {
    border-bottom: none;
}

.rating-badge {
    display: inline-block;
    padding: .2rem .5rem;
    border-radius: .35rem;
    font-weight: 600;
    font-size: .82rem;
    background: #eef7ff;
    color: #1f5f9f;
}

/* thong-tin-cong-bo styles */
.news-item {
    padding: .75rem 0;
    border-bottom: 0;
}

.news-item .time {
    color: #6c757d;
    font-size: .875rem;
}

.level-indent {
    margin-left: .6rem;
}

.news-item a.title-link {
    text-decoration: none;
    color: inherit;
}

.news-item a.title-link:hover {
    color: #009688;
    text-decoration: none;
}

.news-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.news-main {
    min-width: 0;
    display: flex;
    align-items: center;
    /*gap: .45rem;*/
    flex-wrap: wrap;
}

.news-title-link {
    /*font-weight: 500;*/
    font-size: 16px;
    line-height: 20px;
    color: #000000;
    margin-bottom: 0;
}

.news-title-link:hover {
    color: #009688;
    text-decoration: none;
}

.news-date-inline {
    margin-bottom: 0;
    flex-shrink: 0;
    margin-left: 6px;
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
    letter-spacing: 0.1px;
    color: #aeaeae;
}

.news-detail-link {
    flex-shrink: 0;
    /*font-weight: bold;*/
    font-size: 14px;
    line-height: 16px;
    color: #000;
    display: inline-block;
    white-space: nowrap;
}

.news-detail-link:hover {
    color: #009688;
    text-decoration: none;
}

.finance-list-section .news-item {
    border-bottom: 0;
    padding: 0 0 .7rem 0;
}

.finance-list-section .accordion,
.finance-list-section .accordion-item,
.finance-list-section .accordion-button,
.finance-list-section .accordion-collapse {
    border: 0;
    box-shadow: none;
}

.finance-list-section .accordion-item {
    border-bottom: 1px solid #eceff3;
    border-radius: 0;
}
.finance-list-section .accordion-item:last-child {
    border-bottom: 0;
}
.finance-list-section .news-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .75rem;
}

.contact-item {
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    padding: .75rem;
    background: #fff;
}

.contact-item .label {
    font-size: 14px;
    color: #008f91;
    margin-bottom: .25rem;
    text-transform: uppercase;
    font-weight: 600;
}

.contact-item .value {
    font-size: 16px;
    color: #0f172a;
}

.icon-wrap {
    border-radius: 6px;
    display: flex;
    align-items: center;
    color: #0b7a75;
}

.icon-wrap .bi,
.icon-wrap i {
    font-size: 32px;
    line-height: 1;
    display: inline-block;
    width: 32px;
    height: 32px;
}

.feature-card {
    background: #fff;
    border-radius: 12px;
    transition: transform .15s ease, box-shadow .15s ease;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 96px;
    color: #0b4f4a;
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 22px rgba(12, 40, 40, 0.06);
    text-decoration: none;
}

/* small text size like design */
.feature-card .small {
    line-height: 1.1;
}

.feature-list {
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    /*padding-bottom: 6px; !* tránh che nền khi cuộn *!*/
    /* keep flex behavior */
    display: flex;
    gap: 1rem;
    overflow-x: auto;
}

.feature-col {
    flex: 0 0 auto;
    scroll-snap-align: start;
    min-width: 200px;
}

@media (max-width: 576px) {

}

@media (min-width: 1200px) {
    .h2, h2 {
        font-size: 32px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .collapsing {
        transition: none
    }
}

@media (max-width: 768px) {
    .rating-card-grid {
        grid-template-columns: 1fr;
    }
}

/*!* adjust spacing on very wide screens *!*/
/*@media (min-width: 1400px) {*/
/*    .row.g-3 {*/
/*        gap: 1.5rem;*/
/*    }*/
/*}*/

.product-banner {
    height: 590px;
    overflow: hidden;
    position: relative;
}

.product-banner .wrapper {
    position: relative;
    height: 590px;
}

.product-banner .wrapper .img-box {
    height: 100%;
    overflow: hidden;
}

.product-banner .wrapper .img-box picture {
    height: 100%;
    width: 100%;
    display: block;
}

.product-banner .wrapper .img-box picture img {
    width: 100%;
    height: 100%;
    max-width: none;
    -o-object-fit: cover;
    object-fit: cover;
}

.product-banner .wrapper .info {
    color: #fff;
    position: absolute;
    z-index: 3;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
}

.product-banner .wrapper .info .title {
    font-weight: bold;
    font-size: 48px;
    line-height: 53px;
    margin-bottom: 15px;
    width: 730px;
    max-width: 100%;
}

.product-banner .wrapper .info .desc {
    font-size: 16px;
    line-height: 20px;
    margin-bottom: 35px;
}

.product-banner .wrapper .info .button-box {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-align-items: center;
    align-items: center;
}

.rating-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
    margin-top: .5rem;
}

.credit-agency-card {
    border: 1px solid #e9ecef;
    border-radius: .5rem;
    padding: 1rem 1.25rem;
    background: #fafbfc;
}

.credit-agency-card .agency-logo-text {
    line-height: 1;
}

.credit-agency-card .agency-logo-text img {
    height: 52px;
    object-fit: contain;
}

.credit-agency-card .agency-date {
    font-size: 14px;
    color: #6c757d;
    white-space: nowrap;
}

.credit-agency-card table {
    width: 100%;
    margin-top: .75rem;
    caption-side: bottom;
}

.credit-agency-card table th {
    color: #5c6773;
    font-weight: 600;
    background: #f0f2f5;
    font-size: 14px;
    padding: .5rem;
    border-bottom: 1px solid #e2e6ea;
}

.credit-agency-card table td {
    padding: .5rem;
    border-bottom: 1px solid #f1f3f5;
    font-size: 16px;
    color: #2f3b45;
}