/*
Theme Name: njob
Theme URI: 
Author: 더에스엠씨
Author URI: https://thesmc.co.kr
Description: N잡크루
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 5.7
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: njob
Tags: 
*/

.cl-template * {
  font-family: var(--wp--preset--font-family--pretendard) !important;
}

header {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: #fff;
}

.header-wrapper {
  .header {
    height: clamp(60px, 7.8vw, 100px);
  }

  .logo {
    width: clamp(124px, 16.1vw, 180px);
  }

  .nav-bar {
    gap: min(100px, 5.2vw);

    a {
      font-size: clamp(14px, 1.8vw, 18px);
      border-top: 2px solid transparent;
      border-bottom: 2px solid transparent;
      transition: all 0.3s ease;

      &:hover {
        color: var(--wp--preset--color--primary);
        border-bottom: 2px solid var(--wp--preset--color--primary);
      }
    }
  }

  .header-right {
    gap: clamp(10px, 1.3vw, 30px);
  }

  .close {
    display: none;
    cursor: pointer;
  }

  .apply-btn a {
    padding: clamp(7px, 0.9vw, 11px) 0;
    width: clamp(86px, 11.1vw, 138px);
    line-height: 1;
    transition: all 0.3s ease;
    font-size: clamp(10px, 1.3vw, 14px);

    &:hover {
      font-weight: 800;
      color: white !important;
      border-color: var(--wp--preset--color--primary);
      background: var(--wp--preset--color--primary);
    }
  }

  .search-btn,
  .nav-btn {
    cursor: pointer;
  }

  .header-right.is-active {
    .search-btn img {
      filter: brightness(0) saturate(100%) invert(31%) sepia(88%) saturate(5150%) hue-rotate(210deg) brightness(103%) contrast(107%);
    }
  }

  @media (max-width: 768px) {
    .header-right.is-active {

      .apply-btn,
      .search-btn,
      .nav-btn {
        display: none;
      }

      .close {
        display: flex;
        padding: 6px;
      }
    }
  }
}

.sns .wrapper {
  width: clamp(32px, 4.16vw, 36px);
  height: clamp(32px, 4.16vw, 36px);
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;

  figure {
    display: flex;
  }
}

footer {
  .footer-logo img {
    width: clamp(214px, 27.8vw, 257px);
  }

  .footer-wrapper {
    padding-top: clamp(30px, 3.9vw, 50px);
    padding-bottom: 50px;
  }

  .left {
    gap: clamp(20px, 2.6vw, 30px);
  }

  .site-wrapper {
    position: relative;

    .site {
      width: 224px;
      cursor: pointer;
      border-radius: 100px;
      transition: background 0.3s ease;

      img {
        transition: transform 0.3s ease;
      }

      &.is-active {
        background: white;
        border-radius: 0 0 20px 20px;
        border: 1px solid var(--wp--preset--color--njob-black);
        border-top-color: transparent;
        color: var(--wp--preset--color--gray);

        img {
          transform: rotate(180deg);
          filter: brightness(0) saturate(100%) invert(41%) sepia(0%) saturate(2591%) hue-rotate(260deg) brightness(91%) contrast(78%);
        }
      }
    }

    .list {
      display: none;
      position: absolute;
      bottom: 100%;
      width: 100%;
      background: white;
      padding: 20px;
      border-radius: 20px 20px 0 0;
      border: 1px solid var(--wp--preset--color--njob-black);

      a {
        transition: all 0.3s ease;
        display: block;
        width: fit-content;
        border-bottom: 1px solid transparent;

        &:hover {
          color: var(--wp--preset--color--primary);
          border-bottom: 1px solid var(--wp--preset--color--primary);
        }
      }
    }
  }

  @media (max-width: 768px) {
    .footer-wrapper {
      flex-direction: column;

      .site {
        width: 100%;
      }
    }

    .right {
      width: 100%;
    }

    .sns {
      justify-content: flex-start;
    }
  }
}

.main-title {
  .title {
    margin-bottom: clamp(10px, 1.3vw, 20px);
  }
}

.main-slider {
  .n2-ss-layers-container {
    border-radius: 24px;
    overflow: hidden;
  }
}

.main-carousel {
  padding-top: clamp(60px, 7.8vw, 100px);

  .swiper {
    overflow-y: visible;
    padding: 40px 0 200px;
  }

  .template {
    border-radius: clamp(20px, 2.6vw, 24px);
    box-shadow: 6px 6px 18px 0 rgba(0, 0, 0, 0.15);
    background: #f5f5f5;
    position: relative;
    overflow: hidden;
    padding: clamp(20px, 2.6vw, 40px) 0;
    flex-direction: column;
    z-index: 1;

    .text-wrapper {
      position: relative;
    }

    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: linear-gradient(138deg, #5BC2E7 15.42%, #1D52E0 88.81%);
      opacity: 0;
      transition: opacity 0.3s ease;
      z-index: 0;
    }

    .thumbnail {
      margin: 0 auto clamp(20px, 2.6vw, 40px) !important;
      width: 70%;
      border-radius: 100%;
      overflow: hidden;
      display: flex;

      img {
        aspect-ratio: 1/1;
        object-fit: cover;
        width: 100%;
      }
    }

    .title {
      font-size: clamp(18px, 2.3vw, 24px);
      line-clamp: 2;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      display: -webkit-box;
      overflow: hidden;
    }

    .desc>p {
      font-size: clamp(11px, 1.4vw, 14px);
      line-clamp: 1;
      -webkit-line-clamp: 1;
      -webkit-box-orient: vertical;
      display: -webkit-box;
      overflow: hidden;
      margin-top: 10px;
    }

    &:hover {

      .title,
      .desc>p {
        color: #fff;
      }

      &::before {
        opacity: 1;
      }
    }
  }

  @media (max-width: 768px) {
    .template {
      box-shadow: none;

      .thumbnail {
        width: 60.8%;
      }
    }

    .swiper {
      padding-bottom: 100px;
    }
  }
}

.main-card {
  padding: clamp(40px, 5.2vw, 100px) 0;

  .card-columns {
    column-gap: clamp(20px, 2.6vw, 60px);
  }

  .card-wrap {
    margin-top: clamp(30px, 3.9vw, 40px);
    gap: clamp(14px, 1.8vw, 20px);
  }

  .card-big {
    width: 100%;

    .title {
      font-size: clamp(18px, 2.3vw, 24px);
      line-clamp: 2;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      display: -webkit-box;
      overflow: hidden;
    }

    .desc>p {
      line-clamp: 3;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      display: -webkit-box;
      overflow: hidden;
    }

    .template {
      .columns {
        gap: clamp(20px, 2.6vw, 40px);
      }
    }

    .thumbnail {
      flex-shrink: 0;

      img {
        aspect-ratio: 1/1;
        object-fit: cover;
        border-radius: 100%;
      }
    }
  }

  .card-small {
    width: 100%;

    .title {
      width: 100%;
      margin-bottom: clamp(14px, 1.8vw, 24px);
      font-size: clamp(16px, 2.1vw, 20px);
    }
  }

  .template {
    display: flex;
    background: white;
    border: 1px solid #e6e6e6;
    transition: all 0.3s ease;
    padding: clamp(20px, 2.6vw, 30px) clamp(30px, 3.9vw, 40px);
    border-radius: clamp(16px, 2.08vw, 24px);

    &:hover {
      border-color: var(--wp--preset--color--primary);
      box-shadow: 6px 6px 18px 0 rgba(0, 0, 0, 0.10);
    }
  }

  @media (max-width: 1024px) {
    .card-columns {
      flex-direction: column;
    }
  }

  @media (max-width: 768px) {
    .card-big {
      .columns {
        flex-direction: column-reverse;
      }

      .thumbnail {
        width: 46%;
      }

      .title {
        -webkit-line-clamp: none;
        line-clamp: none;
      }
    }
  }
}

.main-banner {
  padding: clamp(30px, 3.9vw, 100px) 0 clamp(60px, 7.8vw, 100px);

  .title {
    font-size: clamp(16px, 2.1vw, 24px);
  }

  .desc {
    font-size: clamp(11px, 1.4vw, 14px);
  }

  .inner {
    border-radius: clamp(16px, 2.08vw, 24px);
    overflow: hidden;
  }
}

.main-recent {
  .main-title .title {
    margin: 0;
  }

  .thumbnail {
    transition: all 0.3s ease;
    outline: 1px solid transparent;

    img {
      aspect-ratio: 29/20;
      object-fit: cover;
    }
  }

  .plus {
    width: fit-content;
    padding: 10px clamp(24px, 3.1vw, 30px);

    figure {
      display: flex;
    }

    img {
      width: clamp(18px, 2.34vw, 24px);
    }
  }
}

.main-film {
  padding: clamp(60px, 7.8vw, 100px) 0 100px;

  .list {
    padding-top: clamp(30px, 3.9vw, 60px);
  }

  .query-template {
    gap: clamp(14px, 1.8vw, 40px);
  }

  @media (max-width: 768px) {
    .query-template {
      grid-template-columns: repeat(1, 1fr);
    }
  }
}

.main-more {
  figure {
    display: flex;

    a {
      display: flex !important;
      border-radius: 100%;
      border: 1px solid var(--wp--preset--color--njob-black);
      width: clamp(26px, 3.38vw, 42px);
      height: clamp(26px, 3.38vw, 42px);
      align-items: center;
      justify-content: center;
      aspect-ratio: 1/1;
      overflow: hidden;
      position: relative;

      &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        opacity: 0;
        transition: opacity 0.3s ease;
        background: linear-gradient(138deg, #5BC2E7 15.42%, #1D52E0 88.81%);
      }

      img {
        width: clamp(10px, 1.3vw, 13px);
      }
    }

    a:hover {
      border-color: transparent;

      &::before {
        opacity: 1;
      }

      img {
        filter: brightness(0) invert(1);
      }
    }
  }
}

.category-top {
  padding-top: clamp(30px, 3.9vw, 60px);

  .title {
    margin-bottom: clamp(10px, 1.3vw, 20px);
  }

  .category-list.active a {
    box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.16);
  }

  .category-nav {
    overflow-x: auto;
    gap: clamp(6px, 0.78vw, 10px);
    margin-top: clamp(30px, 3.9vw, 60px);

    &>div {
      flex-shrink: 0;
    }
  }

  .category-list a {
    padding: 10px clamp(14px, 1.8vw, 28px);
    transition: all 0.3s ease;

    &:hover {
      background: var(--wp--preset--color--primary);
      border-color: var(--wp--preset--color--primary);
      box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.16);

      mark {
        color: white !important;
      }
    }
  }

  @media (max-width: 360px) {
    .category-nav {
      justify-content: flex-start;
    }

    .category-list.active a {
      box-shadow: none;
      font-weight: 700;
    }
  }
}

.category-recent {
  padding: clamp(60px, 7.8vw, 100px) 0 100px;

  .thumbnail {
    img {
      aspect-ratio: 20/13;
      object-fit: cover;
    }
  }
}

.category-recommend {
  padding: clamp(40px, 5.2vw, 60px) 20px;

  .count {
    font-size: clamp(12px, 1.56vw, 16px);
  }

  .desc {
    font-size: clamp(12px, 1.56vw, 18px);
  }

  img {
    border-radius: clamp(16px, 2.08vw, 24px);
  }

  @media (max-width: 768px) {
    .columns {
      flex-direction: column;
    }

    .column-right {
      margin-top: 30px;
      padding-left: 0 !important;
    }
  }
}

.grid-list {
  padding-top: clamp(30px, 3.9vw, 60px);

  .query-template {
    gap: 40px clamp(14px, 1.8vw, 40px);
  }

  .thumbnail {
    border-radius: clamp(16px, 2.08vw, 24px);
    overflow: hidden;
    outline: 1px solid transparent;
    transition: all 0.3s ease;

    &:hover {
      outline: 1px solid var(--wp--preset--color--primary);
      filter: drop-shadow(6px 6px 14px rgba(0, 0, 0, 0.12));
    }
  }

  .title {
    width: 100%;

    a {
      font-size: var(--wp--preset--font-size--list-title);
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      line-clamp: 2;
      -webkit-line-clamp: 2;
      width: 100%;
      transition: all 0.3s ease;

      &:hover {
        color: var(--wp--preset--color--primary);
      }
    }
  }

  @media (max-width: 1024px) {
    .query-template.main {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @media (max-width: 768px) {
    .query-template {
      grid-template-columns: repeat(1, 1fr) !important;
      row-gap: 14px;

      .title {
        margin-top: 0 !important;
      }
    }

    .template {
      flex-direction: row;
      align-items: center;
      gap: 14px;
    }

    .thumbnail {
      width: 43.7%;
      flex-shrink: 0;

      img {
        aspect-ratio: 14/10;
      }
    }
  }
}

.article-tag {
  display: flex;
  flex-wrap: wrap;
  row-gap: 6px;

  padding: clamp(20px, 2.6vw, 40px) 0;

  a {
    padding: clamp(6px, 0.78vw, 11px) clamp(12px, 1.3vw, 20px);
    border-radius: 50px;
    border: 1px solid #BBBBBB;

    &::before {
      content: '#';
    }
  }
}

.search-modal {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;

  &.is-active {
    display: block;
  }

  .inner {
    padding: clamp(20px, 2.6vw, 60px) 0 clamp(40px, 5.2vw, 60px);
  }

  @media (max-width: 768px) {
    .inner {
      border-radius: 0 0 16px 16px;
    }
  }
}

.search-recommend {
  .template {
    gap: clamp(14px, 1.8vw, 20px);
    grid-template-columns: repeat(3, 1fr);

    .list {
      display: flex;
      flex-direction: column;
      gap: clamp(14px, 1.8vw, 20px);
    }

    .thumbnail {
      border-radius: clamp(16px, 2.08vw, 24px);
      overflow: hidden;
      aspect-ratio: 300/195;
    }

    .title {
      font-size: clamp(14px, 1.8vw, 18px);
    }
  }

  @media (max-width: 768px) {
    .template {
      grid-template-columns: repeat(1, 1fr);

      .list {
        flex-direction: row;
        align-items: center;
      }

      .thumbnail {
        width: 43.5%;
        flex-shrink: 0;
      }
    }
  }
}

.search-form {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 600px;
  padding: clamp(11px, 1.4vw, 16px) clamp(16px, 2vw, 26px);
  border-radius: 50px;
  border: 2px solid var(--wp--preset--color--primary);

  .search-input {
    width: 100%;
    background: transparent;
    border: none;
    font-family: var(--wp--preset--font-family--pretendard);
    font-size: var(--wp--preset--font-size--list-title);
    line-height: 1;
    color: var(--wp--preset--color--njob-black);

    &::placeholder {
      color: #BBBBBB;
    }

    &:focus {
      outline: none;
    }
  }

  .search-button {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;

    img {
      filter: brightness(0) saturate(100%) invert(31%) sepia(88%) saturate(5150%) hue-rotate(210deg) brightness(103%) contrast(107%);
    }
  }
}

.mobile-nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: calc(100dvh - 60px);
  background: #fff;
  z-index: 1000;
  display: none;

  .nav-wrapper {
    height: 100%;
  }

  .navigation {
    .wp-block-navigation {
      width: 100%;
    }

    .wp-block-navigation-link {
      width: 100%;
      border-bottom: 1px solid #E6e6e6;

      a {
        width: 100%;
      }
    }
  }
}

.category-all {
  padding-top: clamp(30px, 3.9vw, 60px);
  padding-bottom: 100px;

  .thumbnail {
    img {
      aspect-ratio: 20/13;
      object-fit: cover;
    }
  }
}

.search-form-wrapper {
  padding-top: clamp(20px, 2.6vw, 60px);
}

.bell {
  position: relative;

  figure {
    display: flex;

    img {
      width: clamp(25px, 3.25vw, 50px);
    }
  }

  .count {
    position: absolute;
    left: 50%;
    top: 0;
    padding: 0 clamp(5px, 0.65vw, 10px);
    font-size: clamp(10px, 1.3vw, 14px);
  }
}

.post-single {
  .cover {
    padding: clamp(130px, 17vw, 245px) 20px clamp(30px, 3.9vw, 60px);
  }

  .category {
    font-size: clamp(12px, 1.56vw, 16px);
  }

  .date {
    font-size: clamp(12px, 1.56vw, 18px);
  }

  .content {
    padding-top: clamp(40px, 5.2vw, 60px);
  }
}

.related-article {
  margin-top: clamp(60px, 7.8vw, 100px);
}

.load-more {
  width: fit-content;
  margin: clamp(30px, 3.9vw, 40px) auto;
}



:is(.load-more, .back) .btn {
  padding: 10px clamp(24px, 3.1vw, 30px);
  position: relative;
  overflow: hidden;

  p {
    position: relative;
  }

  figure {
    display: flex;

    img {
      width: clamp(18px, 2.34vw, 24px);
    }
  }

  &:hover {
    color: white;

    img {
      filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(40deg) brightness(102%) contrast(101%);
    }
  }

  &::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    transition: all 0.3s ease;
  }

  &:hover::before {
    content: '';
    opacity: 1;
    background: linear-gradient(138deg, #5BC2E7 15.42%, #1D52E0 88.81%);
  }
}

.quick {
  position: fixed !important;
  right: clamp(20px, 2.6vw, 80px);
  bottom: 30px;
  width: clamp(48px, 6.25vw, 76px);

  figure {
    display: flex;
  }

  .box {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1/1;
    border-radius: 100%;
    cursor: pointer;
    background: #FFF;
  }

  .share {
    img {
      width: clamp(18px, 2.34vw, 24px);
    }
  }

  .list {
    display: none;

    .box {
      border: 1px solid var(--wp--preset--color--njob-black);
      transition: all 0.3s ease;

      img {
        transition: filter 0.3s ease;
      }

      &:hover {
        border-color: var(--wp--preset--color--primary);

        img {
          filter: brightness(0) saturate(100%) invert(25%) sepia(67%) saturate(3467%) hue-rotate(210deg) brightness(101%) contrast(106%);
        }

      }
    }
  }

  .toggle {
    border: 1px solid var(--wp--preset--color--primary);
    transition: all 0.3s ease;

    .close {
      display: none;
    }

    &.is-active {
      background: var(--wp--preset--color--primary);

      .open {
        display: none;
      }

      .close {
        display: flex;
      }
    }
  }

  .crew {
    background: linear-gradient(138deg, #5BC2E7 15.42%, #1D52E0 88.81%);
    box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.08);

    figure {
      height: 100%;

      a {
        display: flex;
        padding: 0 14%;
        align-items: center;
      }
    }
  }

  .up {
    border: 1px solid #E6E6E6;
    background: #FFF;
    box-shadow: 4px 4px 10px 0 rgba(0, 0, 0, 0.08);

    img {
      width: 24px;
    }
  }
}

.post-single .back {
  width: fit-content;
  margin: 0 auto;
  display: block;
}

.wp-block-njob-similar-articles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 20px !important;

  .thumbnail {
    img {
      aspect-ratio: 28/18;
      object-fit: cover;
    }
  }
}

.page-404 {
  gap: clamp(20px, 2.6vw, 40px);
  min-height: calc(100dvh - 100px);

  .text-pc {
    font-size: clamp(18px, 2.3vw, 24px);
  }

  @media (max-width: 768px) {
    min-height: calc(100dvh - 60px);
  }
}

.wp-block-njob-link-box {
  display: block;
}

.njob-default-image {
  border: 1px solid #E6E6E6;
}

.no-scroll {
  overflow: hidden;
}

@media (max-width: 1024px) {
  .cb-carousel-block {
    margin-left: 10px;
    margin-right: 10px;
  }
}


/* 에디터에서 보이도록 (header 안에 있는 것은 제외) */
.editor-styles-wrapper :is(.search-modal, .mobile-nav),
.block-editor-block-list__layout :is(.search-modal, .mobile-nav) {
  display: block !important;
}

/* header 안에 있는 search-modal은 에디터에서도 숨김 */
.editor-styles-wrapper header :is(.search-modal, .mobile-nav),
.block-editor-block-list__layout header :is(.search-modal, .mobile-nav) {
  display: none !important;
}