  .banner-wrapper {
      overflow: hidden;
      position: relative;
      max-width: 1200px;
      /* 🔥 상위 컨테이너 최대 너비 설정 */
      margin: 0 auto;
      /* 🔥 수평 중앙 정렬 */
  }

  .banner-swiper {
      padding: 0 23px;
      overflow: visible;
      position: relative
  }

  .swiper-slide:first-child .banner-image img {
      margin-left: 0 !important;
  }

  .swiper-slide {
      width: auto;
  }

  .banner-slide {
      width: 320px;
      /* 또는 100%로 두고 max-width만 고정해도 OK */
      max-width: 320px;
      height: 90px;
      border-radius: 16px;
      padding: 1rem;
      color: white;
      background-size: cover;
      background-position: center;
      display: flex;
      transition: transform 0.3s ease;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
      flex-shrink: 0;
      /* 축소 방지 */
  }

  .banner-slide:hover {
      transform: translateY(-4px);
  }

  .banner-inner {
      display: flex;
      justify-content: space-between;
      align-items: center;
      height: 100%;
  }

  .banner-content {
      flex: 1;
      margin-right: 1rem;
  }

  .banner-content h2 {
      font-size: 1.05rem;
      margin: 0 0 0.3rem 0;
  }

  .banner-content p {
      font-size: 0.88rem;
      opacity: 0.9;
      margin: 0;
  }

  .banner-image img {
      display: block;
      max-height: 55px;
      margin-left: 1.5rem;
  }

  /*
  .swiper-slide:first-child .banner-image img {
    margin-left: 0 !important;
  }
*/

  /* Swiper pagination styling */
  .swiper-pagination {
      margin-top: 10px;
      text-align: center;
  }

  .swiper-pagination-custom {
      position: absolute;
      bottom: 12px;
      left: 50%;
      /* 화면의 정중앙 기준 */
      transform: translateX(-50%);
      /* 자기 너비의 절반만큼 왼쪽으로 이동 = 정확히 가운데 */
      text-align: center;
      font-size: 0.7rem;
      color: #fff;
      font-weight: 500;
      z-index: 10;
      width: 55px;
      background: rgba(0, 0, 0, 0.25);
      padding: 0px 5px;
      border-radius: 12px;
  }

  .swiper-pagination-custom .pagination-current {
      color: #fff;
  }

  .swiper-pagination-custom .pagination-total {
      color: rgba(255, 255, 255, 0.7);
  }


  /* 배경 색상 예시 */
  .bg-gra-01 {
      background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 239, 211, 0.8) 50%, rgb(248 219 255 / 80%) 100%);
      color: #000;
  }

  .bg1 {
      background: rgb(0 10 102);
  }

  .bg2 {
      background: linear-gradient(135deg, #ff758c, #ff7eb3);
  }

  .bg3 {
      background: linear-gradient(135deg, #43cea2, #185a9d);
  }

  /* PC 해상도 대응 */
  @media (min-width: 768px) {
      .banner-swiper {
          padding: 0 2rem;
      }

      .banner-slide {
          height: 180px;
          width: 70%;
          max-width: 700px;
      }

      .banner-content h2 {
          font-size: 1.4rem;
      }

      .banner-content p {
          font-size: 1rem;
      }

      @media (min-width: 768px) {
          .banner-content {
              top: 1.5rem;
              /* PC에선 좀 더 아래로 */
              left: 2rem;
              right: 8rem;
          }

          .banner-image {
              right: 2rem;
          }
      }
  }



  .nav-menu-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(80px, 1fr));
      gap: 0.75rem;
      overflow-x: auto;
      /* 가로 스크롤 활성화 */
      padding-bottom: 30px;
      /* 스크롤바 공간 확보 */
  }

  .nav-menu-item {
      position: relative;
      /* 뱃지 위치 기준점 */
      min-width: 80px;
      height: 80px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      aspect-ratio: 1 / 1;
      background-color: #fff;
      border-radius: 12px;
      padding: 0.75rem;
      text-align: center;
      transition: all 0.3s ease;
      /*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);*/
  }

  .nav-menu-item:hover {
      background-color: #fff;
      transform: translateY(-2px);
      box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
  }

  .nav-menu-icon {
      font-size: 1.4rem;
      margin-bottom: 0.4rem;
      color: #495057;
  }

  .menu-text {
      font-size: 0.7rem;
      word-break: keep-all;
      white-space: nowrap;
      line-height: 1.2;
      color: #212529;
      font-weight: 800;
  }

  a {
      text-decoration: none;
      color: inherit;
  }

  /* PC 해상도에서 조금 더 여유 있게 */
  @media (min-width: 768px) {
      .nav-menu-item {
          min-width: 120px;
          height: 120px;
      }

      .nav-menu-grid {
          grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
          gap: 1rem;
      }

      .nav-menu-icon {
          font-size: 1.6rem;
      }

      .menu-text {
          font-size: 0.85rem;
      }
  }

  .menu-badge {
      position: absolute;
      top: 6px;
      right: 6px;
      background-color: #f43f5e;
      color: white;
      font-size: 0.6rem;
      font-weight: bold;
      padding: 2px 6px;
      border-radius: 12px;
      z-index: 1;
  }

  .nav-menu-item:hover .menu-badge {
      transform: scale(1.05);
  }

  /* 아이콘 배경 원형 */
  .icon-circle {
      opacity: 0.7;
      transition: opacity 0.3s ease;
      width: 42px;
      height: 42px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
  }

  .icon-circle i {
      font-size: 1.2rem;
      color: #000;
  }

  .bg-sky {
      background-color:
          color-mix(in srgb, var(--bs-primary), transparent 90%);
  }

  .bg-pink {
      background-color: #e83e8c;
  }

  .bg-blue {
      background-color: #0d6efd;
  }

  .bg-green {
      background-color: #198754;
  }

  .bg-orange {
      background-color: #fd7e14;
  }

  .bg-teal {
      background-color: #20c997;
  }

  .bg-red {
      background-color: #dc3545;
  }

  .bg-gray {
      background-color: #6c757d;
  }

  /* NEW - 파란색 */
  .badge-new {
      right: 6px;
      background-color: #3b82f6;
      /* Tailwind blue-500 */
  }

  /* HOT - 빨간색 */
  .badge-hot {
      right: 6px;
      background-color: #ef4444;
      /* Tailwind red-500 */
  }

  /* 업데이트 - 보라색 */
  .badge-update {
      right: 6px;
      background-color: #8b5cf6;
      /* Tailwind purple-500 */
  }

  /* 추천 - 초록색 */
  .badge-recommend {
      right: 6px;
      background-color: #10b981;
      /* Tailwind emerald-500 */
  }

  /* 베스트 - 노란색 */
  .badge-best {
      right: 6px;
      background-color: #facc15;
      /* Tailwind yellow-400 */
      color: #000;
      /* 가독성 위해 검정 글자 */
  }


  /* 활성화된 메뉴 항목 강조 */
  .nav-link.active {
      background: #FFEAEA;
      color: var(--bs-primary);
      font-weight: bold;
      text-align: center;
      border-radius: 10px;
  }

  /* Footer를 하단에 고정되게 */
  .footer {
      position: relative;
      /* fixed를 제외한 상대 위치로 설정 */
      background-color: #fff !important;
      border-top: 1px solid #e0e0e0;
      padding: 10px 0 0 0;
      z-index: 1000;
      margin-bottom: 60px;
      /* bottom-nav와 겹치지 않도록 여백 추가 */
  }

  /* PC 해상도에서는 footer를 화면 하단에 고정 */
  @media (min-width: 1023px) {
      .footer {
          position: fixed;
          bottom: 0;
          left: 0;
          width: 100%;
          background-color: #ffffff;
          border-top: 1px solid #e0e0e0;
          z-index: 1000;
      }
  }

  body {
      padding-bottom: 60px;
      background: #fff !important;
      /* footer와 다른 하단 고정 메뉴들이 겹치지 않도록 여백 추가 */
  }

  /* 하단 고정 메뉴를 스크롤 위에 오지 않도록 조정 */
  .footer.fixed-bottom {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background-color: #ffffff;
      z-index: 1000;
  }

  /* 기본적으로 모바일에서는 bottom-nav가 표시됩니다. */
  .bottom-nav {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background-color: #ffffff;
      border-top: 1px solid #e0e0e0;
      z-index: 1050;
  }

  /* PC 해상도에서는 bottom-nav를 숨김니다. */
  @media (min-width: 1023px) {
      .bottom-nav {
          display: none;
      }
  }

  /* 하단 네비게이션 아이콘 스타일 */
  .bottom-nav ul {
      display: flex;
      justify-content: space-around;
  }

  .bottom-nav ul li {
      list-style: none;
  }

  .bottom-nav ul li a {
      text-decoration: none;
  }

  .bottom-nav .bi {
      font-size: 25px;
      color: #000;
  }

  .nav {
      --icon-spacing: 0.8rem;
      /* 아이콘-텍스트 간격 */
  }

  .nav-link {
      color: var(--primary-color);
      font-weight: bold;
      font-size: 0.95rem;
      padding: 0.75rem;
      border-radius: 8px;
      margin: 2px 0;
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      position: relative;
  }

  .nav-link:hover {
      background: var(--hover-bg);

      transform: translateX(4px);
  }

  .nav-link.active {
      color: var(--active-color);
      font-weight: 900;
      background: linear-gradient(90deg, #f8f9fa 0%, rgba(248, 249, 250, 0.5) 100%);
      border-left: 3px solid var(--active-color);
  }

  /* 아이콘 스타일링 */
  .nav-link i {
      width: 23px;
      text-align: center;
      margin-right: var(--icon-spacing);
      color: #636e72;
      transition: color 0.3s;
  }

  .nav-link:hover i,
  .nav-link.active i {
      color: var(--active-color);
  }

  /* 로그인 사용자 섹션 */
  #userUpdateMenu {
      font-weight: 600;
      color: #000;
      background: #FFEAEA;
  }

  #userUpdateMenu i {
      color: rgb(108, 117, 125);
  }

  /* 서브 메뉴 스타일 */
  .nav .nav {
      border-left: 2px solid #dfe6e9;
      margin-left: 2rem;
      padding-left: 0.5rem;
  }

  .nav .nav .nav-link {
      font-size: 0.9rem;
      padding: 0.5rem 1rem;
      color: #636e72;
  }

  /* 로그아웃 버튼 강조 */
  #logoutMenu {
      color: #d63031;
  }

  #logoutMenu:hover {
      background: #ffe3e3;
  }

  button:active {
      transform: scale(0.95);
      /* 클릭했을 때 살짝 눌려지는 효과 */
  }

  a:active {
      transform: scale(0.95);
      /* 클릭했을 때 살짝 눌려지는 효과 */
  }


  .css-1y5rngf {
      display: flex;
      flex-direction: column;
      -webkit-box-align: center;
      align-items: center;
      position: relative;
      border-radius: 23px;
      width: 100%;
      padding-top: 64px;
      padding-bottom: 48px;
      margin-top: auto;
      background: #FFEAEA;
  }

  .css-t3twlt {
      display: flex;
      flex-direction: row;
      -webkit-box-align: center;
      align-items: center;
      -webkit-box-pack: center;
      justify-content: center;
      height: 94px;
      width: 94px;
      border: 4px solid rgb(255, 255, 255);
      border-radius: 50%;
      position: absolute;
      top: 0px;
      left: 50%;
      background: radial-gradient(circle at top left, #099ef1 0%, #6863f8 18.82%, #d84ffa 32.6%, #f058c5 52.83%, #ff4f90 68.03%, #ff6558 87.66%, #ff891f 100%);
      transform: translate(-50%, -50%);
  }

  .fixed-39 {
      position: fixed;
      bottom: 39px;
      z-index: 1020;
  }


  .bot-nav {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background: #ffffff;
      border-top: 1px solid #eee;
      box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.03);
      z-index: 1000;
  }

  .bot-nav-container {
      display: flex;
      justify-content: space-around;
      align-items: center;
      max-width: 500px;
      margin: 0 auto;
      padding: 8px 16px;
  }

  .bot-nav-item {
      flex: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-decoration: none;
      color: #000;
      padding: 4px 0;
      transition: all 0.2s ease;
      background: none;
      border: none;
      cursor: pointer;
  }

  .bot-nav-icon {
      width: 24px;
      height: 24px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 4px;
  }

  .bot-nav-icon i {
      font-size: 1.4rem;
      transition: transform 0.2s ease;
  }

  .bot-nav-text {
      font-size: 0.75rem;
      font-weight: 500;
  }

  .bot-nav-item:hover,
  .bot-nav-item.active {
      color: #007bff;
  }

  .bot-nav-item:hover .bot-nav-icon i {
      transform: translateY(-2px);
  }

  /* PC에서는 하단 네비게이션 숨김 */
  @media (min-width: 992px) {
      .bot-nav {
          display: none;
      }
  }

  /* 모바일 최적화 */
  @media (max-width: 576px) {
      .bot-nav-container {
          padding: 6px 12px;
      }

      .bot-nav-item {
          padding: 4px 0;
      }

      .bot-nav-icon {
          width: 22px;
          height: 22px;
      }

      .bot-nav-icon i {
          font-size: 1.3rem;
      }

      .bot-nav-text {
          font-size: 0.7rem;
      }
  }

  /* ===== 푸터 트렌디 리디자인 (PC/모바일 반응형) ===== */
  .footer-trendy {
      font-size: 14px;
      letter-spacing: -0.01em;
      border-top: 1px solid #ececec;
      background: #000;
      box-shadow: 0 2px 24px 0 rgba(0, 0, 0, 0.01);
      padding: 55px 0 55px 0;
      margin-top: 60px;
      color: #fff;
      overflow-x: hidden;
  }

  .footer-trendy .container {
      max-width: 1280px;
      margin: 0 auto;
      padding-left: 23px;
      padding-right: 23px;
  }

  .footer-trendy .row.gy-4 {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: flex-start;
      gap: 32px;
      margin-left: 0;
      margin-right: 0;
      overflow-x: hidden;
  }

  .footer-trendy .col-md-3 {
      width: 100%;
      max-width: 100%;
      display: block;
      margin-bottom: 2.2rem;
      padding-left: 10px;
      padding-right: 0;
      min-width: 0;
      text-align: left;
      align-items: unset;
      justify-content: unset;
      margin-bottom: 0;
      flex-direction: column;
      flex: 1 1 0;
  }

  .footer-trendy .footer-title,
  .footer-trendy ul,
  .footer-trendy ul li,
  .footer-trendy .col-md-3 h6 {
      padding-left: 0;
      margin-left: 0;
  }

  .footer-trendy .footer-title {
      font-size: 1.08rem;
      font-weight: 700;
      color: #fff;
      margin-bottom: 1.1rem;
      margin-top: 18px;
      letter-spacing: -0.01em;
      text-align: left;
      padding-left: 0;
      border-bottom: none !important;
  }

  .footer-trendy ul {
      display: flex;
      flex-direction: column;
      gap: 0.3rem;
      margin-bottom: 0;
      padding-left: 0;
      list-style: none;
  }

  .footer-trendy ul li {
      margin-bottom: 0.2rem;
      text-align: left;
      padding-left: 0;
      margin-left: 0;
  }

  .footer-trendy .footer-link-trendy,
  .footer-trendy .footer-link-trendy:hover,
  .footer-trendy .footer-link-trendy:active,
  .footer-trendy .footer-link-trendy:focus,
  .footer-trendy .footer-sns-trendy,
  .footer-trendy .footer-sns-trendy:hover,
  .footer-trendy .footer-sns-trendy:active,
  .footer-trendy .footer-sns-trendy:focus {
      color: #999 !important;
      background: none !important;
      text-decoration: none !important;
      box-shadow: none !important;
      outline: none !important;
  }

  .footer-trendy .footer-sns-trendy {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: #f5f6fa;
      color: #666;
      font-size: 1.18rem;
      margin-left: 0;
      margin-right: 10px;
      margin-top: 2px;
      margin-bottom: 2px;
      transition: background 0.2s, color 0.2s;
  }

  .footer-trendy .footer-sns-trendy:last-child {
      margin-right: 0;
  }

  .footer-trendy .footer-sns-trendy:hover {
      background: #0051ff;
      color: #fff;
  }

  .footer-trendy .row.mt-3 .col {
      text-align: center;
      margin-top: 1.2rem;
      color: #fff;
  }

  @media (max-width: 991.98px) {
      .footer-trendy {
          font-size: 0.8rem;
          /*padding: 28px 0 12px 22px;*/
      }

      .footer-trendy .container {
          padding-left: 22px;
          padding-right: 10px;
      }

      .footer-trendy .row.gy-4 {
          display: block;
          gap: 0;
          overflow-x: hidden;
      }

      .footer-trendy .footer-title {
          font-size: 0.8rem;
          margin-bottom: 0.7rem;
          text-align: left;
          padding-left: 0;
          margin-bottom: 12px;
          color: #fff;
          border-bottom: none;
      }

      .footer-trendy ul {
          gap: 0.2rem;
          padding-left: 0;
      }

      .footer-trendy ul li {
          text-align: left;
      }

      .footer-trendy .footer-sns-trendy {
          width: 34px;
          height: 34px;
          font-size: 1rem;
          margin-right: 8px;
          margin-top: 1px;
          margin-bottom: 1px;
          color: #999;
      }

      .footer-trendy .footer-sns-trendy:last-child {
          margin-right: 0;
      }

      .footer-trendy .row.mt-3 .col {
          text-align: center;
          margin-top: 0.7rem;
          color: #fff;
      }
  }

  @media (min-width: 992px) {
      .footer-trendy {
          font-size: 14px;
      }

      .footer-trendy .footer-link-trendy {
          font-size: 14px;
      }
  }

  /* 위로가기 버튼 스타일 */
  .scroll-to-top-btn {
      position: fixed;
      bottom: 130px;
      right: 40px;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: #fff;
      border: 1px solid #e0e0e0;
      color: #999;
      font-size: 1.8rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
      opacity: 0;
      visibility: hidden;
      transition: all 0.2s ease;
      z-index: 1000;
  }

  .scroll-to-top-btn:hover {
      transform: translateY(-2px);
      color: #fff;
      background: #111;
      border-color: #111;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }

  .scroll-to-top-btn.visible {
      opacity: 1;
      visibility: visible;
  }

  /* 태블릿 해상도 (768px ~ 1023px) */
  @media (min-width: 768px) and (max-width: 1023px) {
      .scroll-to-top-btn {
          bottom: 130px;
          right: 30px;
          width: 52px;
          height: 52px;
          font-size: 1.5rem;
      }
  }

  /* 모바일 해상도 (767px 이하) */
  @media (max-width: 767px) {
      .scroll-to-top-btn {
          bottom: 150px;
          right: 20px;
          width: 45px;
          height: 45px;
          font-size: 1.3rem;
          box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
      }
  }

  /* 작은 모바일 해상도 (480px 이하) */
  @media (max-width: 480px) {
      .scroll-to-top-btn {
          bottom: 150px;
          right: 16px;
          width: 36px;
          height: 36px;
          font-size: 1.2rem;
      }
  }