:root {
  --home-bg-highlight: #3D4568;
  --txt-black: #121420;
  --bg-dark: #121420;
  --txt-white: #ffffff; }

.heading-page h2 {
  font-size: 14px;
  margin-bottom: 20px;
  font-weight: 300; }

.heading-page h1 {
  font-weight: 500;
  font-size: 36px;
  margin-bottom: 18px; }

.heading-page .blog-desc--info {
  font-weight: 300;
  margin: 0; }

@media (min-width: 992px) {
  .heading-page {
    width: 60%;
    margin: auto; }
    .heading-page h2 {
      font-size: 18px;
      margin-bottom: 50px; }
    .heading-page h1 {
      font-size: 50px; }
    .heading-page .blog-desc--info {
      font-size: 20px; } }

.pagination {
  gap: 30px; }
  .pagination li span, .pagination li a {
    padding: 20px 30px;
    border: 1px solid #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: 30px;
    text-align: center;
    background-color: transparent;
    color: #fff;
    display: block; }
    .pagination li span.current, .pagination li span:hover, .pagination li a.current, .pagination li a:hover {
      background-color: #fff;
      color: #000; }

.item-article {
  background-color: #fff;
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  box-shadow: 7px 7px 60px rgba(241, 243, 246, 0.05); }
  .item-article .media-article img {
    border-radius: 0;
    aspect-ratio: 16/9;
    object-fit: cover; }
  .item-article .info-article {
    background-color: #fff;
    padding: 16px; }
    .item-article .info-article .title-article h4 {
      font-size: 18px;
      font-weight: 400;
      margin: 0 0 20px; }
      .item-article .info-article .title-article h4 a {
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        display: -webkit-box;
        min-height: 45px;
        color: var(--txt-black); }
    .item-article .info-article .short-article {
      color: #989DAD;
      margin: 0 0 16px;
      overflow: hidden;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      display: -webkit-box; }
    .item-article .info-article .action-article .btn-view {
      padding: 5px 10px;
      background: #6E97FF;
      color: #fff;
      border: 1px solid #6E97FF;
      font-size: 12px; }
      .item-article .info-article .action-article .btn-view:before {
        content: none; }
      .item-article .info-article .action-article .btn-view:hover {
        color: #fff; }
    .item-article .info-article .action-article time {
      font-size: 12px;
      color: var(--txt-black); }
  @media (min-width: 992px) {
    .item-article {
      border-radius: 29px; }
      .item-article .info-article {
        padding: 32px 40px 24px; }
        .item-article .info-article .title-article h4 {
          font-size: 25px; }
          .item-article .info-article .title-article h4 a {
            min-height: 56px; }
        .item-article .info-article .short-article {
          font-size: 16px;
          margin: 0 0 38px; } }

/* BLOG */
.layout-blogs {
  padding: 80px 0; }
  .layout-blogs .wrapper-contentBlogs .blogs-image {
    padding-bottom: 100px; }
    .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex {
      display: flex;
      flex-wrap: wrap; }
      .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-left {
        flex: 0 0 370px;
        max-width: 370px; }
      .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-right {
        flex: 0 0 calc(100% - 370px);
        max-width: calc(100% - 370px);
        padding-left: 30px; }
  .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin: 30px 0; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li {
      position: relative; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li > a {
        background-color: transparent;
        border: 1px solid #121420;
        padding: 6px 10px;
        font-weight: 400;
        color: #121420;
        display: block;
        border-radius: 100px;
        white-space: nowrap; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li .sub-menu {
        background: #fff;
        min-width: 230px;
        max-width: 180%;
        padding: 12px 0;
        position: absolute;
        z-index: 99;
        top: 150%;
        pointer-events: none;
        visibility: hidden;
        opacity: 0;
        -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
        box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
        -webkit-transition: all 0.3s ease;
        -o-transition: all 0.3s ease;
        transition: all 0.3s ease; }
        .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li .sub-menu li {
          position: relative; }
          .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li .sub-menu li a {
            padding: 5px 22px;
            text-align: left;
            display: block;
            font-size: 16px;
            font-weight: 400;
            color: #000; }
            .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li .sub-menu li a:hover {
              text-decoration: underline; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li:hover > a, .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.active > a {
        border: 1px solid #6E97FF;
        background-color: #6E97FF;
        color: #fff; }
        .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li:hover > a svg path, .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.active > a svg path {
          stroke: #000; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li:hover .sub-menu, .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.active .sub-menu {
        pointer-events: auto;
        visibility: visible;
        top: 100%;
        opacity: 1; }
  @media (min-width: 992px) {
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog {
      gap: 47px;
      margin: 60px 0; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li a {
        padding: 15px 35px;
        font-size: 20px; } }
  .layout-blogs .wrapper-contentBlogs .list-article-content {
    display: flex;
    flex-wrap: wrap;
    gap: 30px; }
    .layout-blogs .wrapper-contentBlogs .list-article-content .item-article {
      -ms-flex: 0 0 100%;
      flex: 0 0 100%;
      max-width: 100%; }
    @media (min-width: 768px) {
      .layout-blogs .wrapper-contentBlogs .list-article-content .item-article {
        -ms-flex: 0 0 calc((100% - (30px*1)) /2);
        flex: 0 0 calc((100% - (30px*1)) /2);
        max-width: calc((100% - (30px*1)) /2); } }
    @media (min-width: 992px) {
      .layout-blogs .wrapper-contentBlogs .list-article-content .item-article {
        -ms-flex: 0 0 calc((100% - (30px*2)) /3);
        flex: 0 0 calc((100% - (30px*2)) /3);
        max-width: calc((100% - (30px*2)) /3); } }
  .layout-blogs .search-results-info {
    margin-bottom: 30px; }
    .layout-blogs .search-results-info .results-count {
      background: #f8f9fa;
      padding: 12px 20px;
      border-radius: 8px;
      margin: 0;
      font-size: 16px;
      color: #3D4568;
      border-left: 4px solid var(--shop-color-main); }
  .layout-blogs .search-highlight {
    background-color: #fff3cd;
    color: #856404;
    padding: 2px 4px;
    border-radius: 3px;
    font-weight: 600; }
  .layout-blogs .article-loop {
    transition: all 0.3s ease; }
    .layout-blogs .article-loop.searching {
      opacity: 0.6;
      transform: scale(0.98); }
  .layout-blogs .no-search-results .txt-noArticle {
    background: #d1ecf1;
    border-color: #bee5eb;
    color: #0c5460;
    padding: 20px;
    border-radius: 8px;
    text-align: center;
    font-size: 16px; }
  .layout-blogs .blog-loadmore .button {
    margin-top: 56px; }

/* ARTICLE */
.layout-article .article-menu {
  padding: 40px 0; }
  .layout-article .article-menu .menuList-article {
    display: flex;
    gap: 12px 12px;
    flex-wrap: wrap; }
    .layout-article .article-menu .menuList-article li a {
      text-align: center;
      align-items: center;
      display: inline-flex;
      justify-content: center;
      padding: 10px 20px;
      border: 1px solid var(--bg-dark);
      font-size: 13px;
      font-weight: 400;
      border-radius: 100px;
      color: var(--bg-dark);
      background-color: transparent; }
  @media (min-width: 992px) {
    .layout-article .article-menu {
      padding: 75px 0 56px; }
      .layout-article .article-menu .menuList-article {
        gap: 12px 46px; }
      .layout-article .article-menu .menuList-article li a {
        padding: 15px 46px;
        font-size: 20px; }
        .layout-article .article-menu .menuList-article li a:hover {
          background-color: var(--bg-dark);
          color: #fff; } }

.layout-article .wrapper-contentArticle .heading-article h1 {
  font-size: 36px;
  font-weight: 500;
  color: #121420;
  margin-bottom: 16px; }

.layout-article .wrapper-contentArticle .article-post-meta {
  color: #989DAD;
  font-weight: 400;
  margin-bottom: 30px;
  font-size: 12px; }

.layout-article .wrapper-contentArticle .article-body {
  font-size: 14px;
  color: #121420;
  font-weight: 300; }

.layout-article .article-related {
  padding: 40px 0; }
  .layout-article .article-related .title-blog-related {
    font-size: 36px;
    font-weight: 500;
    margin-bottom: 20px; }
  .layout-article .article-related .content-blogs-related {
    margin-bottom: 20px; }
  .layout-article .article-related .list-blogs-related {
    display: flex;
    flex-wrap: wrap;
    gap: 16px; }
    .layout-article .article-related .list-blogs-related > div {
      -ms-flex: 0 0 100%;
      flex: 0 0 100%;
      max-width: 100%; }
    .layout-article .article-related .list-blogs-related .action {
      text-align: center; }

.layout-article .article-content {
  padding-bottom: 40px;
  border-bottom: 1px solid #121420; }
  .layout-article .article-content p:last-child {
    margin-bottom: 0; }

@media (min-width: 768px) {
  .layout-article .article-related .list-blogs-related {
    gap: 26px;
    align-items: center; }
    .layout-article .article-related .list-blogs-related > div {
      -ms-flex: 0 0 calc((100% - (26px*1)) / 2);
      flex: 0 0 calc((100% - (26px*1)) / 2);
      max-width: calc((100% - (26px*1)) / 2); } }

@media (min-width: 992px) {
  .layout-article .wrapper-contentArticle .heading-article {
    width: 82%; }
  .layout-article .wrapper-contentArticle .heading-article h1 {
    font-size: 50px;
    margin-bottom: 35px; }
  .layout-article .wrapper-contentArticle .article-post-meta {
    font-size: 18px;
    margin-bottom: 56px; }
  .layout-article .wrapper-contentArticle .article-body {
    font-size: 20px; }
  .layout-article .wrapper-contentArticle .article-content {
    padding-bottom: 111px; }
  .layout-article .article-related {
    padding: 90px 0 106px; }
    .layout-article .article-related .title-blog-related {
      font-size: 50px;
      margin-bottom: 80px; }
    .layout-article .article-related .list-blogs-related {
      gap: 86px 26px; }
      .layout-article .article-related .list-blogs-related .item-article {
        -ms-flex: 0 0 calc((100% - (26px*2)) / 3);
        flex: 0 0 calc((100% - (26px*2)) / 3);
        max-width: calc((100% - (26px*2)) / 3); }
      .layout-article .article-related .list-blogs-related .action {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        max-width: 100%;
        text-align: left; } }

.section-pageBlog-form {
  background-color: var(--bg-dark);
  padding: 60px 0; }
  .section-pageBlog-form .wrap-heading {
    margin-bottom: 40px; }
    .section-pageBlog-form .wrap-heading h2 {
      color: var(--txt-white);
      font-size: 36px;
      font-weight: 500;
      margin-bottom: 20px; }
    .section-pageBlog-form .wrap-heading div {
      color: var(--txt-white);
      font-size: 16px;
      font-weight: 300; }
  .section-pageBlog-form #formBlog .inner-form {
    display: flex;
    flex-wrap: wrap;
    gap: 16px; }
    .section-pageBlog-form #formBlog .inner-form .input-group {
      flex: 0 0 100%;
      max-width: 100%; }
  .section-pageBlog-form #formBlog .input-group {
    position: relative;
    margin-bottom: 0; }
    .section-pageBlog-form #formBlog .input-group .form-control {
      padding: 12px 16px;
      border: 1px solid #6E97FF;
      font-size: 14px;
      font-weight: 400;
      height: 49px;
      color: #fff;
      outline: none;
      box-shadow: none;
      background: #121420;
      border-radius: 8px; }
      .section-pageBlog-form #formBlog .input-group .form-control::placeholder {
        color: #fff; }
      .section-pageBlog-form #formBlog .input-group .form-control.error-field {
        border-color: #dc3545;
        box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
        .section-pageBlog-form #formBlog .input-group .form-control.error-field::placeholder {
          color: #dc3545; }
      .section-pageBlog-form #formBlog .input-group .form-control.is-valid {
        border-color: #28a745;
        background: #121420; }
        .section-pageBlog-form #formBlog .input-group .form-control.is-valid:focus {
          border-color: #28a745;
          box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); }
      .section-pageBlog-form #formBlog .input-group .form-control.is-invalid {
        border-color: #dc3545;
        background: #121420; }
        .section-pageBlog-form #formBlog .input-group .form-control.is-invalid:focus {
          border-color: #dc3545;
          box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); }
    .section-pageBlog-form #formBlog .input-group textarea.form-control {
      height: 100px; }
    .section-pageBlog-form #formBlog .input-group .invalid-feedback {
      display: block;
      width: 100%;
      margin-top: 0.25rem;
      font-size: 0.875rem;
      color: #dc3545;
      font-weight: 400; }
    .section-pageBlog-form #formBlog .input-group .btn-form-blog {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: auto;
      background: #fff;
      color: #121420;
      border: 1px solid #121420;
      border-radius: 30px;
      padding: 0 16px;
      height: 42px;
      transition: all 0.3s ease;
      position: relative;
      overflow: hidden; }
      .section-pageBlog-form #formBlog .input-group .btn-form-blog:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        height: 100%;
        width: 0;
        background: #6E97FF;
        transition: width 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
        z-index: -1; }
      .section-pageBlog-form #formBlog .input-group .btn-form-blog:hover:not(:disabled) {
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(61, 69, 104, 0.3);
        color: #fff;
        border: 1px solid #6E97FF; }
        .section-pageBlog-form #formBlog .input-group .btn-form-blog:hover:not(:disabled):before {
          width: 100%; }
      .section-pageBlog-form #formBlog .input-group .btn-form-blog:disabled {
        opacity: 0.7;
        cursor: not-allowed;
        transform: none;
        box-shadow: none; }
      .section-pageBlog-form #formBlog .input-group .btn-form-blog .btn-loading i {
        margin-right: 8px; }
  @media (min-width: 992px) {
    .section-pageBlog-form {
      padding: 103px 0 109px; }
      .section-pageBlog-form .wrap-heading h2 {
        font-size: 50px; }
      .section-pageBlog-form .wrap-heading div {
        font-size: 20px; }
      .section-pageBlog-form #formBlog {
        width: 75%;
        margin: auto; }
        .section-pageBlog-form #formBlog .input-group .form-control {
          font-size: 20px;
          padding: 23px 28px;
          height: 69px;
          border-radius: 16px; }
        .section-pageBlog-form #formBlog .input-group textarea.form-control {
          height: 188px; }
        .section-pageBlog-form #formBlog .input-group .btn-form-blog {
          padding: 12px 36px;
          font-size: 20px;
          height: 52px; }
        .section-pageBlog-form #formBlog .inner-form {
          gap: 44px; }
          .section-pageBlog-form #formBlog .inner-form .input-group.half {
            flex: 0 0 calc((100% - 44px) / 2);
            max-width: calc((100% - 44px) / 2); } }

#formMessages {
  margin-top: 20px; }
  #formMessages .alert {
    border-radius: 8px;
    border: none;
    padding: 15px 20px;
    font-weight: 500; }
    #formMessages .alert.alert-success {
      background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
      color: #155724;
      border-left: 4px solid #28a745; }
    #formMessages .alert.alert-danger {
      background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
      color: #721c24;
      border-left: 4px solid #dc3545; }

.input-group:hover .form-control:not(:focus) {
  border-color: #bbb; }

.form-control:focus {
  animation: focusPulse 0.3s ease-in-out; }

/* RESPONSIVE */
@media (max-width: 991px) {
  /* BLOG */
  .layout-blogs {
    padding: 80px 0 60px; }
    .layout-blogs .wrapper-contentBlogs .blogs-image {
      padding-bottom: 80px; }
      .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-left {
        flex: 0 0 300px;
        max-width: 300px; }
      .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-right {
        flex: 0 0 calc(100% - 300px);
        max-width: calc(100% - 300px);
        padding-left: 20px; }
        .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-right .heading-page h1 {
          text-align: left; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog {
      margin-bottom: 50px;
      justify-content: center; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li > a {
        height: 100%;
        text-align: center;
        align-items: center;
        display: flex;
        justify-content: center; }
        .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li > a svg {
          width: 16px;
          height: 16px; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search {
        flex: 0 0 100%; }
        .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search .searchform-blog #inputSearchBlog {
          max-width: 180px; }
    .layout-blogs .blog-loadmore .button {
      margin-top: 36px; }
  /* ARTICLE */
  .layout-article .article-menu {
    padding: 30px 0; }
  .layout-article .wrapper-contentArticle {
    padding: 30px 0; }
    .layout-article .wrapper-contentArticle .heading-article h1 {
      font-size: 30px;
      line-height: 50px;
      margin-bottom: 0px; }
    .layout-article .wrapper-contentArticle .article-post-meta {
      margin-bottom: 20px; }
  .layout-article .article-related {
    padding: 30px 0; }
    .layout-article .article-related .title-blog-related {
      margin-bottom: 20px;
      font-size: 30px; }
    .layout-article .article-related .article-loop {
      margin-bottom: 20px; }
  .pagination {
    gap: 20px; }
    .pagination li span, .pagination li a {
      padding: 15px 25px;
      font-size: 18px;
      line-height: 26px; } }

@media (max-width: 767px) {
  .layout-blogs {
    padding: 60px 0 40px; }
    .layout-blogs .wrapper-contentBlogs .blogs-image {
      padding-bottom: 60px; }
      .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex {
        flex-direction: column; }
        .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-left {
          flex: 1;
          max-width: 100%;
          margin-bottom: 20px; }
        .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-right {
          flex: 1;
          max-width: 100%;
          padding-left: 0; }
          .layout-blogs .wrapper-contentBlogs .blogs-image .blogs-image-flex .blogs-image-right .heading-page {
            text-align: center; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog {
      margin-bottom: 40px;
      justify-content: center;
      gap: 8px; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li > a {
        padding: 8px 15px;
        font-size: 14px;
        line-height: 22px;
        height: 100%;
        text-align: center;
        align-items: center;
        display: flex;
        justify-content: center; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li .sub-menu {
        min-width: 200px;
        left: 50%;
        transform: translateX(-50%); }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search {
        flex: 0 0 100%;
        width: 100%;
        order: 1;
        margin-top: 15px; }
        .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search .searchform-blog #inputSearchBlog {
          max-width: 100%;
          width: 100%;
          padding: 12px 40px 12px 15px; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .list-article-content .col-lg-6 {
      margin-bottom: 30px; }
    .layout-blogs .search-results-info {
      margin-bottom: 20px; }
      .layout-blogs .search-results-info .results-count {
        padding: 10px 15px;
        font-size: 14px; }
  .pagination {
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center; }
    .pagination li span, .pagination li a {
      padding: 10px 15px;
      font-size: 16px;
      line-height: 24px; } }

@media (max-width: 480px) {
  .layout-blogs {
    padding: 40px 0 30px; }
    .layout-blogs .wrapper-contentBlogs .blogs-image {
      padding-bottom: 40px; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li > a {
      padding: 6px 10px;
      font-size: 13px;
      line-height: 20px;
      height: 100%;
      text-align: center;
      align-items: center;
      display: flex;
      justify-content: center; }
    .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search {
      flex: 0 0 100%; }
      .layout-blogs .wrapper-contentBlogs .listBlogs-content .menuList-blog > li.blog-search .searchform-blog #inputSearchBlog {
        padding: 10px 35px 10px 12px;
        font-size: 14px; }
  .pagination li span, .pagination li a {
    padding: 8px 12px;
    font-size: 14px;
    line-height: 20px; } }
