/* Main styles */
body {
  font-family: 'Noto Sans KR', sans-serif;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

/* 테마 색상 적용 */
.bg-primary {
  background-color: var(--theme-primary) !important;
}

.text-primary {
  color: var(--theme-primary-text) !important;
}

.btn-primary {
  background-color: var(--theme-primary) !important;
  border-color: var(--theme-primary) !important;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus {
  background-color: var(--theme-primary-hover) !important;
  border-color: var(--theme-primary-hover) !important;
}

.border-primary {
  border-color: var(--theme-primary) !important;
}

.border-success {
  border-color: var(--theme-primary) !important;
}

.bg-success {
  background-color: var(--theme-primary) !important;
}

.bg-company {
  background-color: var(--theme-primary) !important;
}

.text-contrast {
  color: var(--theme-contrast-text) !important;
}

/* 다단형 회사 정보 스타일 */
.company-info {
  font-size: 0.85rem;
  line-height: 1.5;
}

.company-info span {
  color: var(--theme-contrast-text);
}

/* 통신판매업신고번호는 잘리지 않도록 설정 */
.company-info .col-12:last-child {
  white-space: normal;
  word-break: keep-all;
}

/* 다른 회사 정보 요소는 기존대로 유지 */
.company-info .col-md-4,
.company-info .col-md-8,
.company-info .col-6,
.company-info .col-12 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

footer hr {
  border-color: rgba(var(--theme-contrast-text-rgb, 255, 255, 255, 0.2));
  margin: 0.5rem 0;
}

.mx-2 {
  margin-left: 0.5rem !important;
  margin-right: 0.5rem !important;
}

@media (max-width: 767.98px) {
  .company-info {
    font-size: 0.8rem;
  }

  .company-info .mx-2 {
    margin-left: 0.25rem !important;
    margin-right: 0.25rem !important;
  }
}

.text-contrast-muted {
  color: var(--theme-contrast-text) !important;
  opacity: 0.8;
}

/* 메뉴 활성화 상태 */
.navbar .nav-link.active {
  color: var(--theme-primary-text) !important;
  font-weight: 700;
}

/* 링크 색상 */
a {
  color: var(--theme-primary-text);
}

a:hover {
  color: var(--theme-primary-hover);
}

/* Header styles */
.navbar-brand .logo {
  object-fit: contain;
}

/* Typographic logo style */
.navbar-brand svg {
  color: var(--theme-primary);
}

/* Company title text */
.company-title {
  font-size: 1.5rem;
  font-weight: bold;
  color: var(--theme-primary);
  display: inline-block;
}

/* Footer styles */
footer {
  margin-top: auto;
}

/* Login & Register styles */
.card-header {
  border-bottom: none;
}

/* Kakao chat button */
.kakao-chat-button {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 999;
  transition: transform 0.3s ease;
}

.kakao-chat-button:hover {
  transform: scale(1.1);
}

.kakao-chat-button img {
  width: 60px;
  height: 60px;
  border-radius: 30px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: transform 0.3s;
}

.kakao-chat-button img:hover {
  transform: scale(1.1);
}

/* Gift card styles */
.gift-card-item {
  border-radius: 10px;
  overflow: hidden;
  transition: transform 0.3s, box-shadow 0.3s;
}

.gift-card-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

/* Custom theme color overrides */
.btn-theme-primary {
  background-color: var(--theme-primary-color, #000000);
  border-color: var(--theme-primary-color, #000000);
  color: var(--theme-secondary-color, #ffffff);
}

.btn-theme-primary:hover {
  opacity: 0.9;
  color: var(--theme-secondary-color, #ffffff);
}

/* Form validation */
.form-control.is-invalid {
  background-image: none;
}
