/*
Theme Name: Soaplite
Theme URI: https://wordpress.org/themes/PF_HTMLCF/
Author: Le Nguyen Hoai Phuc
Author URI: https://wordpress.org/
Description: Our default theme for 2020 is designed to take full advantage of the flexibility of the block editor. Organizations and businesses have the ability to create dynamic landing pages with endless layouts using the group and column blocks. The centered content column and fine-tuned typography also makes it perfect for traditional blogs. Complete editor styles give you a good idea of what your content will look like, even before you publish. You can give your site a personal touch by changing the background colors and the accent color in the Customizer. The colors of all elements on your site are automatically calculated based on the colors you pick, ensuring a high, accessible color contrast for your visitors.
Tags: blog, one-column, custom-background, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks, accessibility-ready
Version: 3.2
Requires at least: 5.0
Tested up to: 5.4
Requires PHP: 7.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: Soaplite
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

/* CSS Reset*/
@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  font-family: "Lexend", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
  line-height: 1.6;
  letter-spacing: 0.2px;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  object-fit: cover;
  object-position: center;
  height: 100%;
  width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

a {
  text-decoration: none;
  color: inherit;
}

.wrapper {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Header */
header {
  display: block;
  width: 100%;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  /* Đen nhạt, mỏng */
  position: fixed;
  top: 0;
  background: #fff;
  z-index: 100;
  padding: 20px 0;
}

.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-left {
  display: flex;
  align-items: center;
}

.header-logo {
  width: 150px;
}

.footer-logo {
  width: 200px;
}

.header-left:hover .header-name {
  color: #0e88f9;
}

.header-menu nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 40px;
}

.header-menu nav ul li {
  position: relative;
}

.header-menu nav ul li a {
  text-decoration: none;
  color: #333;
  padding: 10px 0;
  font-size: 17px;
  display: inline-block;
  position: relative;
  transition: all 0.3s ease-in-out;
  text-transform: capitalize;
}

.header-menu nav ul li a:hover {
  transform: scale(1.05);
}

.header-menu nav ul li a::after {
  content: "";
  position: absolute;
  bottom: 5px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #188ffe;
  /* Màu xanh, bạn có thể đổi màu khác */
  transition: width 0.3s ease;
}

.header-menu nav ul li a:hover::after {
  width: 100%;
}

/* ===== Dropdown Submenu ===== */
.header-menu nav ul li.menu-item-has-children {
  position: relative;
}

.header-menu nav ul li .dropdown-arrow {
  font-size: 11px;
  margin-left: 4px;
  transition: transform 0.25s ease;
  display: inline-block;
  vertical-align: middle;
}

.header-menu nav ul li:hover .dropdown-arrow {
  transform: rotate(180deg);
}

.header-menu nav ul li .sub-menu {
  display: block;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: calc(100% + 5px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  background: #fff;
  border: 1px solid #e8ecf0;
  border-radius: 12px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.10);
  min-width: 190px;
  padding: 8px 0;
  flex-direction: column;
  gap: 0;
  z-index: 200;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

/* Arrow tip trên dropdown */
.header-menu nav ul li .sub-menu::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #e8ecf0;
}

.header-menu nav ul li .sub-menu::after {
  content: '';
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 6px solid #fff;
}

.header-menu nav ul li:hover .sub-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.header-menu nav ul li .sub-menu li {
  position: static;
  width: 100%;
}

.header-menu nav ul li .sub-menu li a {
  display: block;
  padding: 9px 20px;
  font-size: 14px;
  color: #444;
  font-weight: 400;
  white-space: nowrap;
  border-radius: 0;
  transition: background 0.15s, color 0.15s;
}

.header-menu nav ul li .sub-menu li a::after {
  display: none;
}

.header-menu nav ul li .sub-menu li a:hover {
  background: #f0f7ff;
  color: #188ffe;
  transform: none;
}

/* ===== Mobile Submenu ===== */
.mobile-menu-list li.menu-item-has-children>a .dropdown-arrow {
  float: right;
  margin-top: 2px;
  transition: transform 0.25s ease;
}

.mobile-menu-list li.menu-item-has-children.open>a .dropdown-arrow {
  transform: rotate(180deg);
}

.mobile-menu-list .sub-menu {
  display: none;
  flex-direction: column;
  gap: 0;
  padding: 0 0 0 16px;
  margin: 4px 0 8px;
  border-left: 2px solid #e8ecf0;
}

.mobile-menu-list li.menu-item-has-children.open>.sub-menu {
  display: flex;
}

.mobile-menu-list .sub-menu li a {
  font-size: 13px;
  padding: 7px 12px;
  color: #666;
}

a.btn.btn-sign-in {
  display: inline-block;
  margin-right: 5px;
  font-size: 14px;
  padding: 5px;
  border-radius: 10px;
  text-transform: capitalize;
  transition: all 0.3s ease-in-out;
}

a.btn.btn-sign-in:hover {
  color: #fff;
  background: linear-gradient(45deg, #188ffe, #0e88f9);
  transform: scale(1.05);
}

a.btn.btn-start-free {
  display: inline-block;
  background: linear-gradient(45deg, #188ffe, #0e88f9);
  padding: 5px 12px;
  border-radius: 10px;
  color: white;
  font-size: 14px;
  text-transform: capitalize;
  transition: all 0.3s ease-in-out;
}

a.btn.btn-start-free:hover {
  transform: scale(1.05);
}

/* Mobile Menu */
.mobile-menu {
  display: none;
  background: white;
  z-index: 1000;
  transition: left 0.3s ease;
  overflow-y: auto;
  animation: slideUpMenuMobile 1s ease forwards;
}

@keyframes slideUpMenuMobile {
  from {
    opacity: 0.5;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  border-bottom: 1px solid #e5e5e5;
}

.mobile-menu-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  font-weight: 700;
  color: #1a1a1a;
}

.mobile-menu-close {
  font-size: 24px;
  cursor: pointer;
  color: #666;
  padding: 8px;
}

.mobile-menu-close:hover {
  color: #1a1a1a;
}

.mobile-menu nav ul {
  list-style: none;
  padding: 20px;
}

.mobile-menu nav ul li {
  margin-bottom: 8px;
}

.mobile-menu nav ul li a {
  display: block;
  padding: 8px 16px;
  color: #666;
  text-decoration: none;
  font-size: 14px;
  font-weight: 300;
  text-transform: capitalize;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.mobile-menu nav ul li a:hover {
  background: #f5f5f5;
  color: #188ffe;
}

.mobile-menu-buttons {
  padding: 0 32px;
}

.mobile-menu-buttons .btn {
  display: block;
  text-align: center;
  margin-bottom: 12px;
  width: 100%;
}

.menu-overlay.active {
  opacity: 1;
}

.icon-menu-mobile {
  display: none;
}

/* Header Right - Chứa Search + Sign In + Start Free Trial */
.header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  /* Thêm gap để tạo khoảng cách */
  flex-wrap: nowrap;
  /* Không cho xuống dòng */
}

a.btn.btn-sign-in {
  display: inline-block;
  margin-right: 0;
  /* Bỏ margin-right vì đã có gap */
  font-size: 14px;
  padding: 8px 16px;
  /* Tăng padding để cân đối */
  border-radius: 10px;
  text-transform: capitalize;
  transition: all 0.3s ease-in-out;
  white-space: nowrap;
  /* Không cho text xuống dòng */
}

a.btn.btn-sign-in:hover {
  color: #fff;
  background: linear-gradient(45deg, #188ffe, #0e88f9);
  transform: scale(1.05);
}

a.btn.btn-start-free {
  display: inline-block;
  background: linear-gradient(45deg, #188ffe, #0e88f9);
  padding: 8px 16px;
  /* Tăng padding để cân đối với Sign In */
  border-radius: 10px;
  color: white;
  font-size: 14px;
  text-transform: capitalize;
  transition: all 0.3s ease-in-out;
  white-space: nowrap;
  /* Không cho text xuống dòng */
}

a.btn.btn-start-free:hover {
  transform: scale(1.05);
}

/* Tablet and Mobile Responsive */
@media (max-width: 1024px) {

  .header-menu,
  .header-right {
    display: none;
  }

  .menu-overlay {
    display: block;
  }
}

/* Tablet and Mobile Responsive */
@media (max-width: 1024px) {

  .header-menu,
  .header-right {
    display: none;
  }

  .icon-menu-mobile {
    display: block;
    font-size: 20px;
  }

  .menu-overlay {
    display: block;
  }
}

@media (max-width: 480px) {
  .header-logo-name {
    font-size: 18px;
  }

  .mobile-menu {
    width: 100%;
  }
}

/* Footer */
footer {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  background-color: rgba(245, 243, 249, 0.3);
  margin-top: auto;
}

.footer-top {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  padding: 30px 0;
}

.footer-top nav h3 {
  font-size: 16px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 16px;
  text-transform: capitalize;
}

.footer-top nav ul {
  display: flex;
  list-style: none;
  flex-direction: column;
  gap: 10px;
  margin: 0;
}

.footer-top nav ul li a {
  font-size: 14px;
  font-weight: 400;
  color: #666;
  text-transform: capitalize;
  transition: color 0.2s ease;
}

.footer-top nav ul li a:hover {
  color: black;
}

.footer-bottom {
  font-size: 12px;
  color: #666;
  text-align: center;
  padding: 10px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.footer-name {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a1a;
  margin-left: 7px;
}

.footer-copyright {
  font-size: 14px;
  font-weight: 400;
  color: #666;
}

/* Mobile Responsive - Giống ảnh mẫu */
@media (max-width: 768px) {
  .footer-top {
    grid-template-columns: repeat(4, 1fr);
    gap: 40px 20px;
    padding: 20px 0;
  }

  .footer-top nav h3 {
    font-size: 15px;
    margin-bottom: 12px;
  }

  .footer-top nav ul {
    gap: 8px;
  }

  .footer-top nav ul li a {
    font-size: 13px;
  }

  .footer-bottom {
    gap: 2px;
    padding: 30px 20px 0 20px;
    text-align: center;
  }

  .footer-copyright {
    order: 1;
    font-size: 13px;
  }
}

/* Extra small mobile */
@media (max-width: 480px) {
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 30px 15px;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 2px;
    padding: 30px 20px 0 20px;
    text-align: center;
  }
}

/* Active btn */
.active {
  background: #188ffe !important;
  /* border: 2px solid #188ffe !important; */
  color: white !important;
}

/* Icon Style */
.icon {
  margin-right: 3px;
}

/* Text line clamp */
.text-line-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Style css of Box Blog */
.blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
  margin-top: 40px;
}

.blog-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(132, 132, 132, 0.4);
  transition: transform 0.3s ease-in, box-shadow 0.3s ease-in;
}

.blog-card:hover {
  transform: translateY(-5px);
  border: 1px solid rgba(68, 157, 240, 0.5);
  cursor: pointer;
}

/* Đổi màu tiêu đề khi hover */
.blog-card:hover .blog-title {
  color: #188ffe;
}

.blog-image {
  position: relative;
  width: 100%;
  height: 173px;
  object-fit: cover;
  object-position: center;
  overflow: hidden;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.blog-image img {
  transition: transform 0.6s ease, filter 0.4s ease;
  width: 100%;
  object-fit: cover;
  flex-shrink: 0;
}

/* Zoom ảnh khi hover */
.blog-card:hover img {
  transform: scale(1.1);
}

.tag-blog {
  position: absolute;
  top: 12px;
  right: 20px;
  font-size: 12px;
  font-weight: 300;
  background-color: #fff;
  padding: 3px 10px;
  border: 1px solid #e3e4e8;
  border-radius: 10px;
}

.blog-content {
  padding: 10px;
}

.blog-meta {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 13px;
  color: #666;
  margin-bottom: 12px;
}

.blog-meta span {
  display: flex;
  align-items: center;
}

.blog-title {
  font-size: 20px;
  font-weight: 510;
  color: #1a1a1a;
  margin-bottom: 12px;
  line-height: 1.4;
  -webkit-line-clamp: 2;
}

.blog-description {
  font-size: 14px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 20px;
  -webkit-line-clamp: 2;
}

.blog-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.blog-author {
  font-size: 13px;
  color: #888;
}

.read-more {
  color: #188ffe;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: gap 0.3s ease;
}

.blog-card:hover .read-more {
  gap: 10px;
}

.read-more::after {
  content: "→";
  font-size: 16px;
}

/* Tablet: 2 cột (từ 768px trở lên) */
@media (min-width: 768px) {
  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Desktop: 3 cột (từ 1024px trở lên) */
@media (min-width: 1024px) {
  .blog-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Pagination */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-top: 40px;
}

.page-numbers {
  display: flex;
  gap: 10px;
}

.pagination button,
.pagination a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 42px;
  padding: 0 16px;
  border: 1px solid #e3e4e8;
  background: white;
  color: #666;
  font-size: 15px;
  font-weight: 500;
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
}

.pagination a:hover {
  background: #0e88f9;
  transform: translateY(-2px);
}

.pagination .active:hover {
  background: #0e88f9;
  transform: translateY(-2px);
}

.pagination .prev,
.pagination .next {
  border-radius: 22px;
  padding: 0 20px;
  gap: 8px;
  color: #666;
  font-weight: 500;
}

.pagination .prev:hover:not(:disabled),
.pagination .next:hover:not(:disabled) {
  background: #188ffe;
}

.pagination .prev::before {
  content: "‹";
  font-weight: bold;
}

.pagination .next::after {
  content: "›";
  font-weight: bold;
}

.pagination .dots {
  background: transparent;
  box-shadow: none;
  cursor: default;
  pointer-events: none;
  color: #999;
}

.pagination .dots:hover {
  background: transparent;
  transform: none;
}

.pagination button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.pagination button:disabled:hover {
  background: white;
  transform: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
  .pagination {
    gap: 4px;
  }

  .pagination button,
  .pagination a {
    min-width: 38px;
    height: 38px;
    font-size: 14px;
    padding: 0 12px;
  }

  .pagination .prev,
  .pagination .next {
    padding: 0 14px;
  }

  .pagination .prev span,
  .pagination .next span {
    display: none;
  }

  .pagination .prev::before,
  .pagination .next::after {
    font-size: 18px;
  }
}

/* Animation grow-ring */

/* Filter buttons as links */
.content-btn a.btn-cate,
.filter-buttons a.filter-btn {
  display: inline-block;
  padding: 0px 20px;
  border: 1px solid #ddd;
  border-radius: 5px;
  text-decoration: none;
  color: #333;
  transition: all 0.3s;
}

.content-btn a.btn-cate:hover,
.filter-buttons a.filter-btn:hover {
  background: #f0f6fc;
  border-color: #2271b1;
}

.content-btn a.btn-cate.active,
.filter-buttons a.filter-btn.active {
  background: #2271b1;
  color: white;
  border-color: #2271b1;
}

/* TOAST MESSAGE */
.toast {
  position: fixed;
  bottom: 30px;
  right: 30px;
  background: #333;
  color: #fff;
  padding: 14px 20px;
  border-radius: 10px;
  font-size: 14px;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: 0.3s ease;
  z-index: 9999;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* ============================================
   SOAPLITE SEARCH DROPDOWN STYLES
   ============================================ */

.btn-view-all {
  background-color: #188ffe;
  color: #fff;
  padding: 5px 20px;
  border: 2px solid #0084ff;
  border-radius: 10px;
  transition: all 0.3s ease-in-out;
}

.btn-view-all:hover {
  background-color: #0084ff;
  transform: translateY(-4px);
  box-shadow: 0 5px 5px #188ffe61;
}

.footer-menu-title {
  margin-bottom: 10px;
  font-weight: 500;
}

.section-header {
  text-align: center;
  margin-bottom: 30px;
}

.section-tag {
  display: inline-block;
  background: #ebf5ff;
  color: #188ffe;
  padding: 4px 13px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 16px;
  border: 1px solid #188ffe7b;
}

.section-tag i {
  margin-right: 6px;
}

.section-header h2 {
  font-size: 40px;
  color: #0a0a0a;
  margin-bottom: 12px;
  font-weight: 700;
}

.section-header h2 span {
  color: #188ffe;
}

.section-header p {
  color: #5a5a5a;
  font-size: 16px;
}

.view-all {
  margin-top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Footer Social Media Boxes */
.footer-social-boxes {
  display: flex;
  justify-content: start;
  gap: 12px;
}

.social-box {
  width: 40px;
  height: 40px;
  background: #00000088;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  text-decoration: none;
}

.social-box i {
  font-size: 16px;
  color: #ffffff;
  transition: all 0.3s ease;
}

.social-box:hover {
  background: #1a1a1a;
  transform: translateY(-3px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.social-box:hover i {
  color: #ffffff;
}

/* Responsive */
@media (max-width: 768px) {
  .social-box {
    width: 30px;
    height: 30px;
  }

  .footer-social-boxes {
    justify-content: right;
  }

  .social-box i {
    font-size: 18px;
  }
}

@media (max-width: 480px) {
  .social-box {
    width: 26px;
    height: 26px;
  }

  .social-box i {
    font-size: 16px;
  }
}

.logo-description {
  font-size: 12px;
  padding: 16px 0;
  width: 225px;
}

h1.wp-block-heading {
  font-size: 58px;
}

figure.wp-block-image.size-full {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 24px;
}

.wp-block-image img {
  box-sizing: border-box;
  height: auto;
  max-width: 80%;
  vertical-align: bottom;
  margin: auto;
}

.wp-block-image .aligncenter {
  text-align: center;
  margin: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.article-body p strong {
  font-weight: 510;
}

figure.wp-block-image {
  padding: 20px 0;
}

.rank-math-breadcrumb a:hover {
  color: #188ffe;
}

.related-articles-title {
  font-size: 32px;
}