/*!
Theme Name: HaNoi Centre
Theme URI: https://hanoicentre.com.vn
Author: Chuongnv
Author URI: http://chuongnv.com
Description: Powered by Chuongnv
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: HaNoi Centre
*/
/*.menu-mega .menu-primary li.dropdown .dropdown-menu li.current-menu-item a {
    color: #f0aa32;
}*/
.page-footer__form .just-validate-error-label {
    position: absolute;
    font-size: 12px;
    top: calc(100% + 5px);
}
.page-contact__form.loading .form-control, .page-footer__form.loading .form-control{
    pointer-events: none;
}
.page-footer__form.loading .btn-submit, .page-contact__form.loading .page-contact__submit-btn {
    position: relative;
    pointer-events: none;
    display: flex;
    align-items: center;
    gap: 15px;
}
/* Thêm spinner bằng pseudo-element */
.page-footer__form.loading .btn-submit::before {
    content: "";
    box-sizing: border-box;
    position: relative;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2.5px solid rgba(255,255,255,0.15);
    border-top-color: rgba(255,255,255,0.95);
    animation: spin .9s linear infinite;
    transform-origin: 50% 50%;
    display: inline-flex;
}
.page-contact__form.loading .page-contact__submit-btn::before {
    content: "";
    box-sizing: border-box;
    position: relative;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2.5px solid rgba(255,255,255,0.15);
    border-top-color: rgb(239, 163, 31);
    animation: spin .9s linear infinite;
    transform-origin: 50% 50%;
    display: inline-flex;
}

/* Animation */
@keyframes spin{
    to { transform: rotate(360deg); }
}

/* Khuyến nghị: để screen-reader biết */
.form-book-calender.loading, .page-contact__form.loading { aria-busy: true; }

#imageModal .btn-close {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: unset;
    z-index: 10;
    padding: 0;
    opacity: 1;
    background: url("images/icons/icon-close-black.svg") 50%/1em auto no-repeat;
}
#imageModal .modal-dialog {
    max-width: 1280px;
}
#imageModal .modal-dialog img {
    width: 100%;
}
.ongoing-events__slider .slick-list {
    min-width: 100%;
}
.menu-mega::before {
    background-image: var(--bg-menu);
}
@media (min-width: 992px) {
    .ongoing-events__4 .post-event {
        margin-right: 0;
    }
    .ongoing-events__4 .ongoing-events__header {
        left: 31.417vw;
    }
}
.post-event {
    justify-content: space-between;
}
.post-event__title {
    flex: 1;
}
.about__07-second--01::after {
    content: attr(data-text);
}
html[lang="vi"] .widget-header-title {
    padding-top: 12px;
}
html[lang="vi"] .home-promotion .item-title {
    padding-top: 4px;
}
.modal-success {
    text-align:center
}
.modal-success-icon {
    margin-bottom:30px
}
.modal-success-title {
    font-size:36px;
    font-weight:700;
    color:#ffa827;
    margin-bottom:20px;
    text-transform:uppercase;
    font-family: Wylie Voigen,sans-serif;
}
@media (max-width:575px) {
    .modal-success-title {
        font-size:28px
    }
}
.cookie-setting .cookie-banner-content {
    pointer-events: auto;
}
.cookie-setting .cookie-banner {
    pointer-events: none;
}
.home-collection .item-slide .item-desc, .home-what-hot .item-slide .item-desc {
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    min-height: 68px;
}
.home-collection .item-slide .item-title, .home-what-hot .item-slide .item-title {
    text-overflow: ellipsis;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    overflow: hidden;
    -webkit-box-orient: vertical;
}
.brands__detail-contact-item .value a {
    color: #fff;
    text-decoration: underline;
}
.page-footer__contact ul .no-tag a {
    opacity: .5;
    text-decoration: unset;
}
.page-service__item .item-desc {
    -webkit-box-orient: vertical;
}
.brands__detail-info > * {
    z-index: 3;
    position: relative;
}
.brands__item.loading, .home-collection .item-slide.loading {
    pointer-events: none;
}
.page-header .menu-target .current-menu-item .nav-link {
    color: #efa31f;
}
.primary-toc .primary-toc__item.active a {
    color: #C61E4F;
}
.item-slide .item-thumb{
    overflow: hidden;
}
.item-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}
.item-slide:hover img {
    transform: scale(1.05);
}
.tabs-infomation__content.is-loading .post-loading {
    height: 300px;
    margin-bottom: 60px;
    background: linear-gradient(
        90deg,
        #f0f0f0 0%,
        #e0e0e0 20%,
        #f0f0f0 40%,
        #f0f0f0 100%
    );
    background-size: 200% 100%;
    animation: shimmer 1.5s ease-in-out infinite;
    border-radius: 8px;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}
.about__06-note .item::before {
    background: var(--item-color);
}

/*Table*/
.content-entry-page table {
    width: 100%;
    border-collapse: collapse;
    color: #333;
    margin: 1.5em 0;
    background: #fff;
    border: 1px solid #e5e7eb;
}

.content-entry-page th, .content-entry-page td {
    padding: 12px 16px;
    vertical-align: top;
    border: 1px solid #e5e7eb;
}

.content-entry-page th {
    background: #f9fafb;
    font-weight: 600;
    text-align: left;
}

.content-entry-page tr:nth-child(even) td {
    background: #fafafa;
}

.content-entry-page td[colspan] {
    background: #f3f4f6;
    font-weight: 600;
    color: #111827;
}

.content-entry-page ul {
    margin: 0.5em 0 0.5em 1.2em;
    padding: 0;
}

.content-entry-page li {
    margin-bottom: 0.4em;
}

@media (max-width: 768px) {
    /*.content-entry-page table, .content-entry-page thead, .content-entry-page tbody, .content-entry-page tr, .content-entry-page td, .content-entry-page th {
        display: block;
    }*/

    .content-entry-page table {
        display: block;
      overflow-x: auto;
      white-space: nowrap;
    }

    .content-entry-page tr {
        margin-bottom: 1em;
    }

    .content-entry-page td, .content-entry-page th {
        padding: 10px 12px;
        border: 1px solid #eee;
        white-space: wrap;
    }

    .content-entry-page td[colspan] {
        background: #f3f4f6;
    }
}
/*End table*/

.modal-banner .modal-dialog {
    max-width: 560px;
}
.modal-banner .btn-close {
    width: 30px;
    height: 30px;
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: unset;
    z-index: 10;
    padding: 0;
    opacity: 1;
    background: url(images/icons/icon-close.svg) 50%/1em auto no-repeat;
}
.modal-banner .modal-content {
    background: #5A2B7C;
    border: 0;
    border-radius: 0;
}
.modal-banner .modal-body {
    padding: 0;
}
.modal-banner .inner-banner {
    height: 530px;
}
.modal-banner .polygon-1 {
    clip-path: polygon(100% 0,50% 100%,0 85%,0 0);
    top: 0;
    left: 0;
    aspect-ratio: 2/3;
    max-width: 225px;
    width: 20vw;
    position: absolute;
    pointer-events: none;
    background: #efa31f;
}
.modal-banner .polygon-2 {
    position: absolute;
    pointer-events: none;
    top: 0;
    right: 0;
    bottom: 0;
    background: #A05EA5;
    clip-path: polygon(35% 0,100% 0,100% 100%,10% 100%,0 55%);
    width: 50%;
    opacity: 0.2;
}
.modal-banner .polygon-3 {
    clip-path: polygon(0 31%,13% 0,100% 14%,68% 100%);
    bottom: 100px;
    right: 20px;
    aspect-ratio: 15/23;
    background: #fff;
    width: 130px;
    position: absolute;
    pointer-events: none;
}
.modal-banner .polygon-4 {
    clip-path: polygon(100% 37%,28% 78%,0 0);
    top: 30%;
    right: 0;
    aspect-ratio: 12/11;
    background: #efa31f;
    width: 70px;
    position: absolute;
    pointer-events: none;
}
.modal-banner .modal-body img {
    position: relative;
    z-index: 1;
}


/*About gallery*/
.gallery--3 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(5, 1fr);
    gap: 80px;
    width: 100%;
    max-width: 1920px;
    margin: auto;
}

/* Khớp bố cục theo ảnh bạn gửi */
.gallery__item--7 {
    grid-column: 2 / span 5; /* Ảnh ngang lớn ở trên */
    grid-row: 1 / span 2;
}

.gallery__item--8 {
    grid-column: 7 / span 2; /* Ảnh nhỏ bên phải */
    grid-row: 2 / span 2;
    z-index: 1;
}

.gallery__item--9 {
    grid-column: 1 / span 2; /* Ảnh nhỏ bên trái dưới */
    grid-row: 3 / span 2;
}

.gallery__item--10 {
    grid-column: 3 / span 6; /* Ảnh lớn cong cong phía dưới */
    grid-row: 3 / span 3;
}
.gallery__item--10 img {
    max-width: calc(100% - 100px) !important;
}


.gallery--4 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(4, 1fr);
    gap: 80px;
    width: 100%;
    max-width: 1920px;
    margin: auto;
}
.gallery--4 img, .gallery--3 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/* Layout khớp hình bạn gửi */
.gallery__item--11 {
    grid-column: 1 / span 3; /* Ảnh bên trái */
    grid-row: 2 / span 3;
}

.gallery__item--12 {
    grid-column: 4 / span 2; /* Ảnh giữa cao hơn */
    grid-row: 1 / span 3;
}

.gallery__item--13 {
    grid-column: 6 / span 3; /* Ảnh bên phải */
    grid-row: 2 / span 2;
    margin-bottom: -100px;
}
.brands__detail-contact-item .key {
    flex-shrink: 0;
}
.promotion-related__slider .slick-track {
    display: flex;
}
.promotion-related .post-brand, .promotion-related .post-event {
    display: flex;
    height: initial;
}
@media (max-width: 767px) {
    .gallery--3,
    .gallery--4 {
        gap: 15px;
    }
    .gallery--3 {
        width: 600px;
    }
    .gallery--4 {
        width: 800px;
    }
    .gallery__item--13 {
        margin-bottom: -30px;
    }
    .about__07 .hor_scroll::before {
        width: 5100px;
    }
    #imageModal .btn-close {
        width: 60px;
        height: 60px;
    }
    .home-collection.show [class^="polygon"].animate {
        opacity: 0.5;
    }
    .menu-mega::before {
        opacity: 0;
    }
    .promotion-detail {
        padding-bottom: 60px;
        padding-top: 60px;
    }
    .about__06 .zoom-wrapper.show .zoom-control .control-button {
        padding-top: 0;
    }
    .about__06-thumb .zoom-image {
        background: #fff;
    }
    .topPage__banner-brands .list-store-item.active, .topPage__banner-brands .list-store-item:hover {
        font-size: 28px;
    }
    .page-rewards__member-list {
        flex-direction: column;
    }
    .page-rewards__faq .faq__text {
        color: #231f20;
    }
    .about__01-title {
        font-size: 16px;
    }
    .about__01-title span {
        font-size: 32px;
    }
    .about__07-first {
        flex-direction: column;
    }
    .about__07 .hor_scroll {
        position: relative;
        bottom: auto;
        left: auto;
    }
    .about__07 .swiper-slide {
        max-height: none;
    }
}

@media (max-width: 575px) {
    .header-menu {
        background: #fff;
    }
    .banner-hero__image {
        height: auto;
        aspect-ratio: 575/860;
    }
    .about__05 .item-title {
        font-size: 24px;
        margin-bottom: 15px;
    }
    .about__05::after {
        display: none;
    }
    .list-term-result {
        margin-bottom: 30px;
        padding-bottom: 30px;
    }
    .home-promotion .slide-promotion-image .slider {
        width: 100%;
    }
    .page-footer__copyright .copyright {
        font-size: 12px;
    }
    .page-footer {
        padding: 40px 0;
    }
    .ongoing-events__slider .slick-track {
        align-items: unset;
    }
    .ongoing-events__slider .post-event {
        display: flex;
        height: initial;
    }
    .brands__detail-info {
        width: 100%;
    }
    .brands__detail-contact-item .value {
        /*width: calc(100% - 130px);*/
        word-break: break-all;
        white-space: normal;
        display: inline-block;
    }
    .page-rewards__contact .contact__list {
        grid-template-columns: repeat(2,1fr);
    }

    .about__06-title {
        margin-bottom: 15px;
    }
    .about__06-header {
        margin-bottom: 15px;
    }
    .home-promotion .item-desc {
        text-overflow: ellipsis;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        overflow: hidden;
        -webkit-box-orient: vertical;
    }
    .about__05-guide {
        gap: 24px;
        flex-wrap: nowrap;
        overflow: overlay;
        flex-direction: unset;
    }
    .about__05 .item {
        flex: 0 0 calc(60vw);
        margin-left: 0; 
        margin-right: 0; 
    }
    .about__03 {
        min-height: unset;
    }
}
@media (max-width:  428px) {
    .page-footer__partner-01 {
        flex-direction: unset;
    }
    .page-footer__partner-01 .page-footer__content {
        width: calc(100% - 110px);
    }
    .page-footer__partner-01 .figure {
        max-width: 100px;
    }
    .tabs-infomation__nav {
        column-gap: 24px;
    }
    .tabs-infomation__nav-header {
        margin-bottom: 30px;
    }
    .tabs-infomation__tab:not(.tabs-infomation__tab--child) {
        font-size: 18px;
    }
    .tabs-infomation__nav--child {
        column-gap: 12px;
    }
    .tabs-infomation__tab--child {
        font-size: 14px;
        padding: 6px 12px;
    }
    .brands__detail-title {
        font-size: 28px;
    }
    .brands__logo {
        aspect-ratio: 4/3;
    }
    .page-brands__filter__text {
        color: #231f20;
    }
    .about__06-overview {
        font-size: 22px;
        gap: 24px;
    }
    .about__06-note .item {
        font-size: 10px;
    }
    .widget-tab-header {
        gap: 20px;
        font-size: 14px;
    }
}
@media (max-width:  375px) {
    .page-rewards__faq .faq__text {
        font-size: 18px;
    }
    .about__05 .item-title {
        margin-bottom: 8px;
    }
    .about__05 .item-thumb {
        margin-bottom: 8px;
    }
    .about__05 .item-thumb img {
        max-height: 50px;
    }
    .about__05 {
        padding-top: 0;
    }
    .about__03 {
        padding-top: 0;
    }
    .about__04 {
        /*padding-top: 20px;*/
    }
    .home-collection .container, .home-what-hot .container {
        padding-left: 20px;
        padding-right: 20px;
    }
    .slide-home-section .slider-progress {
        left: -139px;
    }
    .home-promotion .slide-promotion-image .slider-progress {
        left: -133px;
    }
    .home-promotion {
        padding-top: 80px;
    }
}