/*
Theme Name: MX Default Theme
Author: MX Team (Trưởng Khoa & Bác Sĩ Thực Tập)
Version: 1.0
Description: Giao diện mặc định đa năng được xây dựng trên nền tảng MX CMS.
*/

/* === CÀI ĐẶT CƠ BẢN & RESET === */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    line-height: 1.6;
    color: #333;
    background-color: #f9f9f9;
    margin: 0;
    padding: 0;
}

a {
    color: #0073aa;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}
.header-buttons {
    display: flex;
    gap: 1em;
    align-items: center;
}
a.button {
    padding: 7px 11px;
    border-radius: 20px;
    color: var(--text-color);
    text-decoration: none;
    transition: all 0.5s ease;
}
a.button:hover {
    transform: translateY(-5px);
}
a.button.primary {
    background: var(--primary-color);
    border: 1px solid var(--secondary-color);
}
a.button.secondary {
    background: var(--secondary-color);
    border: 1px solid var(--primary-color);
}
img {
    max-width: 100%;
    height: auto;
}
.site-main.content-full-width {padding: 0px 1em; }
/* === BỐ CỤC CHUNG === */
.site {
    max-width: 100%;
    margin: 0 auto;
    background-color: #fff;
    /*box-shadow: 0 0 20px rgba(0,0,0,0.1);*/
}


/* === HEADER === */
.site-header {
    border-bottom: 1px solid #eee;
    text-align: center;
    background: var(--secondary-color);
}

.site-title a {
    font-size: 2.5rem;
    font-weight: bold;
    color: #222;
    text-decoration: none;
}
.site-branding img { width: auto; max-width: 250px; max-height: 100%; }
.site-description {
    font-size: 1rem;
    color: #777;
    margin-top: 5px;
}
.main-menu,
.main-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-menu li {
    position: relative;
}

.main-menu > li {
    display: inline-block; /* Menu ngang */
}

/* Link menu cha */
.main-menu > li > a {
    display: block;
    padding: 12px 18px;
    text-decoration: none;
    color: #FFFE34;
    background: linear-gradient(to bottom, #FF2326, #771019);
}

/* Hover menu cha */
.main-menu > li:hover > a {
    background: #444;
}

/* Sub menu */
.sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: linear-gradient(to bottom, #771019, #FF2326);
    min-width: 200px;
    z-index: 999;
    width: 400px;
    text-align: left;
    box-shadow: 2px 6px 5px 2px #d5d5d5;
    color: white;
    border-radius: 0px 0px 10px 10px;
}

.sub-menu li a {
    display: block;
    padding: 10px 15px;
    color: #FFFE34;
    text-decoration: none;
}

.sub-menu li a:hover {
    background: #555;
}

/* Hiển thị sub-menu khi hover vào menu cha */
.menu-item-has-children:hover > .sub-menu {
    display: block;
}

/* Responsive: Menu dọc cho mobile */
@media (max-width: 768px) {
    .main-menu > li {
        display: block;
    }
    .sub-menu {
        position: relative;
    }
}
#wide-nav { background: linear-gradient(to bottom, #f7b633, transparent); }

.box-search {
    width: 40%;
    /* padding: 5px; */
    border-radius: 20px;
    border: 1px solid #e5e5e5;
    position: relative;
}
.box-search input[type=search] {
    width: 100%;
    padding: 10px 0px;
    padding-right: 2em;
    padding-left: 1em;
    border: none;
    outline: none;
    background: transparent;
}
button[type=submit] {
    position: absolute;
    top: 50%;
    right: 5px;
    transform: translate(-5px, -50%);
    color: white;
    border: none;
    background: transparent;
    cursor: pointer;
    padding-top: 4px;
}
.box-search .screen-reader-text {display: none;}
.box-brand.cols-2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 90px;
    padding: 1em 0px;
    max-width: 1200px;
    /* gap: 1em; */
    margin: auto;
}
.post {flex: 1; width: 70%; }
.site-title.has-logo, .site-branding { height: 100%; }
/* === CÁC KHỐI LEGO TRÊN TRANG CHỦ === */
.homepage-slider, .latest-posts, .custom-html {
    border-bottom: 1px solid #f0f0f0;
}
.homepage-slider h3, .latest-posts h2 {
    text-align: center;
    font-size: 2rem;
    margin-bottom: 30px;
}

/* CSS cho khối Latest Posts */
.latest-posts article {
    margin-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}
.latest-posts article:last-child {
    border-bottom: none;
    margin-bottom: 0;
}
.latest-posts h3 {
    margin: 0;
}


/* === FOOTER === */
.site-footer {
    padding: 20px 40px;
    background-color: #222;
    color: #aaa;
    text-align: center;
    font-size: 0.9rem;
}
.site-footer a {
    color: #fff;
    font-weight: bold;
}

/* === CSS CHO BỐ CỤC 2 CỘT & SIDEBAR === */
#content-wrapper {
    display: flex;
    gap: 30px; /* Khoảng cách giữa nội dung chính và sidebar */
}

#primary.content-area {
    flex-grow: 1; /* Cho phép nội dung chính co giãn */
    width: 70%; /* Chiếm 70% chiều rộng */
}

#secondary.widget-area {
    width: 30%; /* Sidebar chiếm 30% */
    flex-shrink: 0; /* Không bị co lại */
    border-radius: 10px 10px 0px 0px;
}

.widget {
    margin-bottom: 30px;
    background-color: #fdfdfd;
    padding: 20px;
    border: 1px solid #eee;
}

.widget-title {
    font-size: 1.2rem;
    margin-top: 0;
    margin-bottom: 15px;
    border-bottom: 2px solid #0073aa;
    padding-bottom: 10px;
}

.widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.widget ul li {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px dotted #ccc;
}
.widget ul li:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
/* === CSS CHO MỤC LỤC (TABLE OF CONTENTS) === */
.mx-toc-container {
    background: #f9f9f9;
    border: 1px solid #e5e5e5;
    padding: 20px;
    /* margin-bottom: 30px; */
    width: fit-content;
    max-width: 80%;
    position: relative;
    position: fixed;
    top: 50%;
    left: -36%;
    height: 5px;
    transition: all 1s ease;
    transform: translate(0%, -50%);
}
.mx-toc-container.hidden {
    background: #f9f9f9;
    border: 1px solid #e5e5e5;
    padding: 20px;
    /* margin-bottom: 30px; */
    width: fit-content;
    max-width: 80%;
    position: relative;
    position: fixed;
    top: 50%;
    left: 0%;
    height: auto;
    transition: all 1s ease;
    transform: translate(0%, -50%);
    max-height: 450px;
    overflow: auto;
}
span#colspand_toc {
    position: absolute;
    top: 10px;
    right: 10px;
}
.mx-toc-title {
    font-size: 1.2rem;
    font-weight: bold;
    margin-top: 0;
    margin-bottom: 15px;
}
.mx-toc-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}
.mx-toc-list ul { /* Cho các cấp con sau này */
    list-style: none;
    padding-left: 20px;
}
.mx-toc-item a {
    text-decoration: none;
    display: block;
    padding: 4px 0;
}
.mx-toc-item a:hover {
    color: #333;
}
/* Thụt lề cho các cấp heading */
.mx-toc-level-h3 { padding-left: 20px; }
.mx-toc-level-h4 { padding-left: 40px; }

.mx-tabs-container {
    margin: 2em 0; /* Tạo khoảng cách với nội dung khác */
}
.mx-tabs-nav {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    border-bottom: 1px solid #eee;
    scrollbar-width: thin; /* Firefox */
    scrollbar-color: #ccc transparent;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Ẩn thanh cuộn trên Chrome/Safari nhưng vẫn cuộn được */
.mx-tabs-nav::-webkit-scrollbar {
    height: 6px;
}
.mx-tabs-nav::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 3px;
}
.mx-tabs-nav::-webkit-scrollbar-track {
    background: transparent;
}

.mx-tabs-nav li {
    display: inline-block;
    margin: 0;
}

.mx-tabs-nav a {
    display: block;
    padding: 10px 16px;
    text-decoration: none;
    color: #555;
    font-weight: 500;
    transition: color 0.2s ease;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mx-tabs-nav li.active a {
    color: #9c27b0; /* tím giống ảnh */
    border-bottom-color: #9c27b0;
    font-weight: bold;
}

.mx-tabs-nav a:hover {
    color: #9c27b0;
}
h1.entry-title { padding-bottom: 10px; border-bottom: 1px dashed #e5e5e5; }
.mx-tabs-content {
    background: #fff;
    clear: both;
}
.mx-tab-pane {
    display: none;
}
.mx-tab-pane.active {
    display: block;
}
.entry-content {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    background-color: #ffffff;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.box-archive {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; /* khoảng cách giữa các item */
}

.post-excerpt {
  flex: 0 0 calc(33.333% - 20px); /* 3 cột */
  box-sizing: border-box;
}

/* Tablet: 2 cột */
@media (max-width: 992px) {
  .post-excerpt {
    flex: 0 0 calc(50% - 20px);
  }
}

/* Mobile: 1 cột */
@media (max-width: 600px) {
  .post-excerpt {
    flex: 0 0 100%;
  }
}
#main.site-main {
  display: flex;
  flex-direction: column;
  gap: 20px; /* Khoảng cách giữa các khối */
}
#main.site-main.single {
    width: 95%;
    margin: 1em auto;
    display: flex;
    flex-direction: inherit;
}
/* Slider và Latest posts full width */
.homepage-slider,
.latest-posts {
  width: 100%;
}
.latest-posts { 
    width: 95%;
    margin: auto;
    margin-bottom: 1em;
    padding: 5px 0px;
    border-radius: 10px;
}
/* Khu vực 2 cột: page + aside */
.content-wrapper {
  display: flex;
  gap: 20px;
}

/* Page chiếm hết phần còn lại */
.page {
  flex: 1;
}

/* Aside có chiều rộng cố định */
.widget-area {
  flex: 0 0 300px; /* không co giãn, rộng 300px */
}


.content-wrapper {
    display: flex;
    gap: 30px;
    width: 95%;
    margin: auto;
}
.page-content-area {
    flex-grow: 1;
    width: 70%;
}
#secondary.widget-area {
    width: 30%;
    flex-shrink: 0;
}
/* Xóa padding khỏi #content cũ nếu có */
#content {
    padding: 0;
}

.latest-posts-slider {
    position: relative; /* Nền tảng để định vị các nút điều hướng */
    overflow: hidden;   /* Quan trọng: Ẩn các item nằm ngoài khung nhìn */
}

/* 2. Ray Trượt - Trái tim của slider */
.slider-track {
    display: flex;         /* Xếp các item trên một hàng ngang */
    gap: 15px;             /* Khoảng cách giữa các item */
    overflow-x: auto;      /* Cho phép trượt ngang */
    scroll-behavior: smooth; /* Tạo hiệu ứng trượt mượt mà khi dùng JS */
    scrollbar-width: none;   /* Ẩn thanh cuộn trên Firefox */
    -ms-overflow-style: none;/* Ẩn thanh cuộn trên IE/Edge */
}
/* Ẩn thanh cuộn trên Chrome/Safari/Opera */
.slider-track::-webkit-scrollbar {
    display: none;
}

/* 3. Item Con - Các toa tàu */
.slider-item {
    flex: 0 0 25%; /* Quan trọng: Hiển thị 4 item trên 1 hàng (100% / 4 = 25%) */
    min-width: 25%;
    box-sizing: border-box;
}
.slider-item article {
    /* Thêm style cho bài viết nếu cần, ví dụ: */
    border-radius: 5px;
    overflow: hidden; /* Đảm bảo ảnh bo góc theo article */
    height: 100%; /* Giúp các box cao bằng nhau */
}
.slider-item .post-thumbnail img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9; /* Giữ tỷ lệ ảnh 16:9 */
    object-fit: cover;
}
.slider-item .post-content {
    padding: 15px;
}

/* 4. Hệ Thống Điều Hướng - Các nút bấm */
.slider-nav button {
    position: absolute; /* Đặt nút đè lên trên slider */
    top: 50%;
    transform: translateY(-50%); /* Căn giữa nút theo chiều dọc */
    z-index: 2;
    background-color: rgba(255, 255, 255, 0.8);
    border: 1px solid #ccc;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    cursor: pointer;
    font-size: 20px;
    font-weight: bold;
    line-height: 38px;
    text-align: center;
    transition: background-color 0.3s, color 0.3s;
}
.slider-nav button:hover {
    background-color: #333;
    color: #fff;
}
.nav-prev {
    left: 0px; /* Đặt nút trái ở sát mép trái */
}
.nav-next {
    right: 0px; /* Đặt nút phải ở sát mép phải */
}
/* 1. Khung Nhìn (Viewport) của Slider */
.banner-slider {
    position: relative;
    overflow: hidden; /* Cực kỳ quan trọng: Ẩn mọi thứ nằm ngoài khung nhìn */
    width: 100%;
}

/* 2. Ray Trượt - Dải chứa tất cả các slide */
.banner-slider .swiper-wrapper {
    display: flex; /* Xếp các slide trên một hàng ngang */
    /* Hiệu ứng trượt mượt mà sẽ được áp dụng bởi JS */
    transition: transform 0.5s ease-in-out;
}

/* 3. Các Slide Con */
.banner-slider .swiper-slide {
    flex-shrink: 0; /* Ngăn các slide tự co lại */
    width: 100%;    /* Mỗi slide chiếm đúng 100% chiều rộng của khung nhìn */
    box-sizing: border-box;
}
.banner-slider .swiper-slide img {
    width: 100%;
    height: auto;
    display: block; /* Loại bỏ khoảng trống thừa dưới ảnh */
}
div.mx-ft {
    background: url('https://ringtones-logos.eu.com/mx-contents/uploads/2025/08/background-footer-copy-1755678880.webp');
    background-repeat: no-repeat;
    background-size: 100%;
    position: relative;
    z-index: 1;
}
div.mx-ft > * {
    position: relative;
    z-index: 2;
}
div.mx-ft::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgb(0,0,0,0.6);
    z-index: 1;
}
/* 4. Các Nút Điều Hướng */
.banner-slider .swiper-button-next,
.banner-slider .swiper-button-prev {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 50px;
    height: 50px;
    background-color: rgba(0, 0, 0, 0.3);
    color: white;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    border: none;
    transition: background-color 0.3s;
}
.banner-slider .swiper-button-next:hover,
.banner-slider .swiper-button-prev:hover {
    background-color: rgba(0, 0, 0, 0.6);
}

.banner-slider .swiper-button-prev {
    left: 20px;
}
.banner-slider .swiper-button-next {
    right: 20px;
}
/* Thêm icon mũi tên đơn giản */
.banner-slider .swiper-button-prev::after {
    content: '<';
}
.banner-slider .swiper-button-next::after {
    content: '>';
}
.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;
    width: 1px;
    word-wrap: normal !important;
}
.row-1.ft {
  	text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.has-logo-ft { width: 250px; }
.box-button-mobile {
  display: none;
}
/* 5. Phẫu thuật cho thiết bị di động (Responsive) */
#wide-nav-mobile {display: none; }

.cols.row-2 { 
  width: 90%; 
  margin: auto;
  display: flex;
  justify-content: space-between;
  border: 1px solid #e5e5e5;
  border-radius: 5px;
  padding: 1em;
}
.cols.row-2 .col-1 {
  width: 70%;
}
.cols.row-2 .col-1 h3 { text-align: center }
.cols.row-2 .col-2 { flex: 1 }
ul.list-ft {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2 cột bằng nhau */
  gap: 8px 20px; /* khoảng cách giữa các dòng và cột */
  list-style: none;
  padding: 0;
  margin: 0;
  width: 50%;
  margin: auto;
  text-align: center;
  gap: 10px;
}

ul.list-ft li.items {
  margin: 0;
}
ul.list-ft a{
    border: 1px dashed #e5e5e5;
    border-radius: 3px;
    padding: 5px 7px;
    color: yellow;
    transition: all 0.5s ease;
}
ul.list-ft a:hover { 
  transform: translateY(-5px);
  box-shadow: 2px 2px 4px 2px #e5e5e5;
  text-decoration: none;
}
.cols.row-2 .col-2 > * {
    color: yellow;
}
.blogdescription { color: white; }
.container.home, .site-content-wrapper.container  { 
    display: flex;
    padding: 1em;
    gap: 1em;
    justify-content: space-between;
}

.container.home #main.site-main {
    width: 78%;
    display: block;
}
.page-content-area { width: 100%; }
.entry-content ul br, .entry-content br {display: none; }

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--admin-primary-color);
}
@media (max-width: 1024px) {
    .slider-item {
        flex-basis: 33.33%; /* 3 items trên tablet */
        min-width: 33.33%;
    }
}

/* Responsive: khi màn hình nhỏ thì xếp dọc */
@media (max-width: 768px) {
  .content-wrapper {
    flex-direction: column;
  }

  .widget-area {
    flex: unset;
    width: 100%;
  }
  .latest-posts-slider {
        padding: 0 35px;
    }
    .slider-item {
        flex-basis: 50%; /* 2 items trên mobile ngang */
        min-width: 50%;
    }
}
@media (max-width: 480px) {
    .slider-item {
        flex-basis: 90%; /* Gần 1 item trên mobile dọc */
        min-width: 90%;
    }
  #wide-nav { display: none; }
  .has-logo-ft img { height: 80px }
  .box-brand.cols-2 { padding: 1em 10px; }
  .box-brand .box-users { display: none; }
  	.box-button-mobile {
      	width: 100%;
    	display: flex;
    	justify-content: space-between;
    	gap: 5px;
      	padding: 5px 0px
  	}
  	.box-button-mobile .row {
      	width: 25%;
  	}
  	.box-button-mobile .col-2-button-mobile {
      width: 50%;
      flex: 1;
  	}
  .box-button-mobile a.button { padding: 5px 7px; font-size: 13px; border-radius: 10px }
  #wide-nav-mobile {
    position: fixed;
    top: 0;
    display: block;
    left: -100%; /* Ẩn mặc định */
    width: 80%; /* hoặc 100% nếu muốn full */
    height: 100%;
    background: #fff;
    transition: left 0.3s ease-in-out;
    z-index: 9999;
  }

  #wide-nav-mobile.active {
    left: 0;
  }

  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
  }
  #mobile-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s ease-in-out;
    z-index: 999; /* ngay dưới menu */
  }

  #mobile-overlay.active {
    opacity: 1;
    visibility: visible;
  }
  .site-content-wrapper.container { padding: 0px 1em; }
  #primary.content-area { width: 100%; }
  .container.home, .site-content-wrapper.container, .cols.row-2 {
      flex-direction: column;
  }
  .cols.row-2 .col-1 { width: 100%; }
  .container.home #main.site-main, #secondary.widget-area { width: 100%; }
}
