/* [project]/src/app/globals.css [app-client] (css) */
@font-face {
  font-family: Nanum Gothic;
  src: url("/fonts/nanum-gothic/NanumGothic-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

@font-face {
  font-family: Nanum Gothic;
  src: url("/fonts/nanum-gothic/NanumGothic-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: block;
}

:root {
  --color-black: #111;
  --color-white: #fff;
  --color-gray-100: #f5f5f5;
  --color-gray-300: #ddd;
  --color-gray-700: #444;
  --color-gray-500: #595959;
  --color-gray-200: #e9e9e9;
  --color-danger: #b42318;
  --color-success: #16803c;
  --page-gutter: clamp(1rem, 4vw, 2rem);
  --control-min-size: 44px;
  --mobile-nav-height: 4.5rem;
  --mobile-nav-reserved: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));
}

* {
  box-sizing: border-box;
}

body {
  background: var(--color-white);
  color: var(--color-black);
  padding-bottom: var(--mobile-nav-reserved);
  margin: 0;
  font-family: Nanum Gothic, Arial, Noto Sans KR, sans-serif;
  line-height: 1.5;
  overflow-x: visible;
}

.site-header {
  display: none;
}

.mobile-navigation {
  z-index: 10;
  min-height: var(--mobile-nav-reserved);
  border-top: 1px solid var(--color-gray-200);
  background: var(--color-white);
  padding-bottom: env(safe-area-inset-bottom);
  grid-auto-columns: minmax(0, 1fr);
  grid-auto-flow: column;
  display: grid;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}

.mobile-nav-link, .site-nav-link {
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  color: inherit;
  justify-content: center;
  align-items: center;
  gap: .35rem;
  font-size: .75rem;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex;
}

.mobile-nav-link {
  flex-direction: column;
  padding: .35rem;
}

@media (min-width: 768px) {
  body {
    padding-bottom: 0;
  }

  .mobile-navigation {
    display: none;
  }

  .site-header {
    border-bottom: 1px solid var(--color-gray-200);
    min-height: 4.5rem;
    padding: 0 var(--page-gutter);
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    display: flex;
  }

  .site-brand {
    min-width: var(--control-min-size);
    min-height: var(--control-min-size);
    color: inherit;
    letter-spacing: -.05em;
    align-items: center;
    font-size: 1.25rem;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
  }

  .site-header-nav {
    align-items: center;
    gap: .25rem;
    display: flex;
  }

  .site-nav-link {
    padding: .5rem .75rem;
    font-size: .875rem;
  }
}

main {
  max-width: 72rem;
  padding: 3rem var(--page-gutter);
  margin: 0 auto;
}

button, input, select {
  font: inherit;
}

button, input, select, form, section, div {
  min-width: 0;
}

:focus-visible {
  outline-offset: 2px;
  outline: 3px solid #2563eb;
}

.centered-page {
  place-items: center;
  max-width: 34rem;
  min-height: 100svh;
  display: grid;
}

.auth-card, .member-card {
  border: 1px solid var(--color-gray-200);
  background: var(--color-white);
  width: 100%;
}

.auth-card {
  padding: clamp(1.5rem, 6vw, 3rem);
}

.member-card {
  padding: clamp(1.25rem, 4vw, 2rem);
}

.wordmark {
  border-bottom: 4px solid var(--color-black);
  letter-spacing: -.05em;
  width: fit-content;
  font-size: 1.25rem;
  font-weight: 800;
}

.auth-heading, .section-heading {
  margin: 3rem 0 2rem;
}

.auth-heading h1, .section-heading h1, .member-page-header h1 {
  letter-spacing: -.055em;
  margin: 0;
  font-size: clamp(2rem, 7vw, 3rem);
  line-height: 1.08;
}

.section-heading h2 {
  letter-spacing: -.03em;
  margin: 0;
  font-size: 1.35rem;
}

.auth-heading > p:last-child, .section-heading > p:last-child, .member-page-header p, .policy-copy {
  color: var(--color-gray-500);
}

.eyebrow {
  color: var(--color-gray-700);
  letter-spacing: .16em;
  margin: 0 0 .5rem;
  font-size: .75rem;
  font-weight: 700;
}

.button {
  min-height: var(--control-min-size);
  border: 1px solid var(--color-black);
  cursor: pointer;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  gap: .65rem;
  padding: .7rem 1rem;
  font-weight: 700;
  display: inline-flex;
}

.button:disabled {
  cursor: wait;
  opacity: .58;
}

.button-primary {
  background: var(--color-black);
  width: 100%;
  color: var(--color-white);
}

.button-secondary {
  background: var(--color-white);
  color: var(--color-black);
}

.auth-action {
  margin-top: 1.5rem;
}

.google-button svg {
  flex: none;
}

.policy-copy {
  margin: 1.25rem 0 0;
  font-size: .78rem;
}

.notice, .form-alert {
  border-left: 3px solid;
  padding: .75rem .875rem;
  font-size: .9rem;
}

.notice-error, .form-alert, .field-error {
  color: var(--color-danger);
}

.notice-success {
  color: var(--color-success);
}

.status-notice, .form-feedback, .inline-retry {
  background: var(--color-gray-100);
  border-left: 3px solid;
  padding: .875rem 1rem;
}

.status-notice-success {
  color: var(--color-success);
}

.status-notice-info {
  color: var(--color-gray-700);
}

.form-feedback {
  color: var(--color-danger);
  gap: .75rem;
  display: grid;
}

.form-feedback-summary, .form-feedback-field ul, .inline-retry p, .empty-state h2, .empty-state p {
  margin: 0;
}

.form-feedback-field {
  gap: .25rem;
  display: grid;
}

.form-feedback-field ul {
  padding-left: 1.25rem;
}

.form-feedback-anchor {
  min-height: var(--control-min-size);
  color: inherit;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.empty-state {
  border: 1px solid var(--color-gray-200);
  background: var(--color-gray-100);
  justify-items: start;
  gap: .75rem;
  padding: clamp(1.5rem, 6vw, 3rem);
  display: grid;
}

.empty-state p {
  color: var(--color-gray-500);
}

.empty-state-action {
  margin-top: .25rem;
}

.empty-state-action a {
  min-height: var(--control-min-size);
  align-items: center;
  display: inline-flex;
}

.inline-retry {
  color: var(--color-danger);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.skeleton {
  background: var(--color-gray-200);
  max-width: 100%;
  display: block;
}

.readonly-profile {
  background: var(--color-gray-200);
  gap: 1px;
  margin: 0 0 1.5rem;
  display: grid;
}

.readonly-profile div {
  background: var(--color-gray-100);
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  display: flex;
}

.visually-hidden {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.catalog-page {
  gap: clamp(2rem, 6vw, 4rem);
  width: 100%;
  padding-top: clamp(2rem, 6vw, 4rem);
  padding-bottom: clamp(3rem, 8vw, 5rem);
  display: grid;
}

.catalog-hero, .catalog-page-heading {
  justify-items: start;
  gap: 1rem;
  display: grid;
}

.catalog-hero h1, .catalog-page-heading h1, .product-detail-copy h1 {
  overflow-wrap: anywhere;
  letter-spacing: -.065em;
  max-width: 100%;
  margin: 0;
  font-size: clamp(2.25rem, 9vw, 4.5rem);
  line-height: 1;
}

.catalog-hero > p, .catalog-page-heading > p, .product-description {
  max-width: 42rem;
  color: var(--color-gray-500);
  overflow-wrap: anywhere;
  margin: 0;
}

.catalog-primary-link, .catalog-category-nav a, .catalog-section-heading a, .catalog-pagination a, .product-breadcrumb a {
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  color: inherit;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.catalog-primary-link {
  background: var(--color-black);
  color: var(--color-white);
  padding: .75rem 1rem;
  text-decoration: none;
}

.catalog-category-nav a, .product-breadcrumb a {
  overflow-wrap: anywhere;
  white-space: normal;
  max-width: 100%;
}

.catalog-category-nav {
  flex-wrap: wrap;
  gap: .5rem;
  max-width: 100%;
  display: flex;
}

.catalog-category-nav a {
  border: 1px solid var(--color-gray-300);
  padding: .6rem .875rem;
  text-decoration: none;
}

.catalog-section, .catalog-results {
  gap: 1.25rem;
  display: grid;
}

.catalog-section-heading {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  display: flex;
}

.catalog-section-heading h2, .variant-availability h2 {
  overflow-wrap: anywhere;
  letter-spacing: -.045em;
  margin: 0;
  font-size: clamp(1.4rem, 5vw, 2rem);
}

.product-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(.75rem, 3vw, 1.25rem);
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.product-grid > li, .product-card, .product-card-link {
  min-width: 0;
  max-width: 100%;
}

.product-card {
  border: 1px solid var(--color-gray-200);
  background: var(--color-white);
  height: 100%;
}

.product-card-link {
  height: 100%;
  min-height: var(--control-min-size);
  color: inherit;
  text-decoration: none;
  display: grid;
}

.product-card-image, .product-gallery-main {
  background: var(--color-gray-100);
  width: 100%;
  position: relative;
  overflow: hidden;
}

.product-card-image {
  aspect-ratio: 4 / 5;
}

.product-card-image img, .product-gallery-main img {
  object-fit: cover;
}

.product-image-placeholder, .product-gallery-empty {
  min-height: var(--control-min-size);
  color: var(--color-gray-500);
  place-items: center;
  display: grid;
}

.product-image-placeholder {
  position: absolute;
  inset: 0;
}

.product-card-copy {
  align-content: start;
  gap: .4rem;
  padding: .875rem;
  display: grid;
}

.product-card-copy h3, .product-card-copy p {
  overflow-wrap: anywhere;
  margin: 0;
}

.product-card-copy h3 {
  font-size: 1rem;
  line-height: 1.35;
}

.sold-out-label {
  width: fit-content;
  color: var(--color-danger);
  font-size: .875rem;
}

.catalog-filters {
  border: 1px solid var(--color-gray-200);
  background: var(--color-gray-100);
  grid-template-columns: minmax(0, 1fr);
  gap: .75rem;
  padding: 1rem;
  display: grid;
}

.catalog-filter-field {
  gap: .35rem;
  min-width: 0;
  font-size: .8rem;
  font-weight: 700;
  display: grid;
}

.catalog-filter-field input, .catalog-filter-field select, .catalog-filter-submit {
  width: 100%;
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  border: 1px solid var(--color-gray-300);
  background: var(--color-white);
  color: var(--color-black);
  border-radius: 0;
  padding: .65rem .75rem;
}

.catalog-filter-submit {
  border-color: var(--color-black);
  background: var(--color-black);
  color: var(--color-white);
  cursor: pointer;
  align-self: end;
  font-weight: 700;
}

.catalog-pagination {
  grid-template-columns: minmax(44px, 1fr) auto minmax(44px, 1fr);
  align-items: center;
  gap: .5rem;
  display: grid;
}

.catalog-pagination > :last-child {
  justify-self: end;
}

.catalog-pagination > span:not([aria-hidden]) {
  text-align: center;
  white-space: nowrap;
}

.product-breadcrumb {
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  display: flex;
}

.product-detail-layout {
  gap: clamp(1.5rem, 5vw, 3rem);
  display: grid;
}

.product-gallery, .product-detail-copy, .variant-availability {
  gap: 1rem;
  min-width: 0;
  display: grid;
}

.product-gallery-main {
  aspect-ratio: 4 / 5;
}

.product-gallery-controls {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.product-gallery-controls button {
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  border: 1px solid var(--color-gray-300);
  background: var(--color-white);
  color: var(--color-black);
  cursor: pointer;
}

.product-gallery-controls button[aria-pressed="true"] {
  border-color: var(--color-black);
  background: var(--color-black);
  color: var(--color-white);
}

.product-detail-copy {
  align-content: start;
}

.product-detail-price {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 800;
}

.variant-availability {
  margin-top: 1rem;
}

.variant-availability ul {
  background: var(--color-gray-200);
  gap: 1px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.variant-availability li {
  min-height: var(--control-min-size);
  background: var(--color-gray-100);
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .5rem;
  padding: .75rem;
  display: flex;
}

.variant-availability li > span {
  font-weight: 700;
}

.variant-availability li > strong {
  overflow-wrap: anywhere;
}

.centered-error-page {
  align-content: center;
  min-height: 50svh;
}

@media (min-width: 380px) {
  .product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 768px) {
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .catalog-filters {
    grid-template-columns: minmax(10rem, 2fr) minmax(8rem, 1fr) minmax(8rem, 1fr) auto;
    align-items: end;
  }

  .catalog-filter-submit {
    width: auto;
  }

  .product-detail-layout {
    grid-template-columns: minmax(0, 1.1fr) minmax(16rem, .9fr);
  }
}

@media (min-width: 1200px) {
  .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.readonly-profile dt {
  color: var(--color-gray-500);
}

.readonly-profile dd {
  text-align: right;
  margin: 0;
  font-weight: 700;
}

.profile-form {
  gap: 1.25rem;
  width: 100%;
  display: grid;
}

.field-group {
  gap: .45rem;
  display: grid;
}

.field-group label {
  font-size: .9rem;
  font-weight: 700;
}

.field-group input, .field-group select {
  background: var(--color-white);
  width: 100%;
  min-height: 48px;
  color: var(--color-black);
  border: 1px solid #b8b8b8;
  border-radius: 0;
  padding: .65rem .75rem;
}

.field-group [aria-invalid="true"] {
  border-color: var(--color-danger);
}

.field-help, .field-error {
  margin: 0;
  font-size: .8rem;
}

.field-help {
  color: var(--color-gray-500);
}

.member-page {
  max-width: 48rem;
}

.member-page-header {
  border-bottom: 2px solid var(--color-black);
  gap: 1.25rem;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  display: grid;
}

.member-page-header p {
  margin-bottom: 0;
}

.compact-heading {
  margin: 0 0 1.75rem;
}

.account-shortcuts {
  gap: .75rem;
  margin: 0 0 1.5rem;
  display: grid;
}

.account-shortcut {
  border: 1px solid var(--color-gray-300);
  min-height: 72px;
  color: inherit;
  align-content: center;
  gap: .2rem;
  padding: .85rem 1rem;
  text-decoration: none;
  display: grid;
}

.account-shortcut:hover {
  border-color: var(--color-black);
}

.account-shortcut span {
  color: var(--color-gray-500);
  font-size: .82rem;
}

.form-grid {
  gap: 1.25rem;
  display: grid;
}

.address-list {
  gap: 1.5rem;
  margin-top: 1.5rem;
  display: grid;
}

.address-card {
  gap: 1.25rem;
  display: grid;
}

.address-card-heading {
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
  display: flex;
}

.address-card-heading h2 {
  margin: 0;
  font-size: 1.2rem;
}

.address-default {
  color: var(--color-success);
  margin: .35rem 0 0;
  font-size: .85rem;
  font-weight: 700;
}

.address-summary {
  color: var(--color-gray-700);
  margin: 0;
}

.address-form {
  gap: 1.25rem;
  display: grid;
}

.address-search {
  gap: .45rem;
  display: grid;
}

.address-search > label {
  font-size: .9rem;
  font-weight: 700;
}

.address-search-controls {
  gap: .5rem;
  display: grid;
}

.address-search-controls input {
  background: var(--color-white);
  width: 100%;
  min-height: 48px;
  color: var(--color-black);
  border: 1px solid #b8b8b8;
  border-radius: 0;
  padding: .65rem .75rem;
}

.address-search-controls input[aria-invalid="true"] {
  border-color: var(--color-danger);
}

.address-search-results {
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.address-search-result {
  border: 1px solid var(--color-gray-300);
  background: var(--color-white);
  width: 100%;
  min-height: 44px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  border-radius: 0;
  gap: .2rem;
  padding: .75rem;
  display: grid;
}

.address-search-result strong, .address-search-result span {
  overflow-wrap: anywhere;
}

.address-search-result span {
  color: var(--color-gray-500);
  font-size: .82rem;
}

.address-delete-form {
  justify-self: start;
}

@media (min-width: 768px) {
  main {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .member-page-header {
    grid-template-columns: 1fr auto;
    align-items: end;
  }

  .form-grid, .account-shortcuts {
    grid-template-columns: 1fr 1fr;
  }

  .address-search-controls {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

.admin-catalog-page {
  gap: 1.5rem;
  max-width: 78rem;
  display: grid;
}

.admin-page-header {
  border-bottom: 2px solid var(--color-black);
  gap: 1rem;
  min-width: 0;
  padding-bottom: 1.5rem;
  display: grid;
}

.admin-page-header h1, .admin-page-header p, .admin-panel h2, .admin-card h3 {
  overflow-wrap: anywhere;
}

.admin-page-header h1, .admin-panel h2, .admin-card h3 {
  margin-top: 0;
}

.admin-page-header p:last-child, .admin-card p {
  margin-bottom: 0;
}

.admin-header-actions {
  flex-wrap: wrap;
  gap: .5rem;
  display: flex;
}

.admin-action-link, .admin-row-link {
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  color: inherit;
  align-items: center;
  font-weight: 700;
  display: inline-flex;
}

.admin-catalog-page a, .admin-catalog-page button, .admin-catalog-page input, .admin-catalog-page select, .admin-catalog-page textarea {
  scroll-margin: .5rem;
}

.admin-action-link {
  border: 1px solid var(--color-black);
  justify-content: center;
  padding: .6rem .9rem;
  text-decoration: none;
}

.admin-panel, .admin-card {
  border: 1px solid var(--color-gray-300);
  background: var(--color-white);
  min-width: 0;
  padding: clamp(1rem, 3vw, 1.5rem);
}

.admin-panel {
  gap: 1.25rem;
  display: grid;
}

.admin-form, .admin-field, .admin-filter-form, .admin-status-form fieldset {
  min-width: 0;
  display: grid;
}

.admin-form, .admin-filter-form, .admin-status-form fieldset {
  gap: 1rem;
}

.admin-field {
  gap: .4rem;
}

.admin-field label, .admin-status-form legend {
  font-weight: 700;
}

.admin-field input, .admin-field select, .admin-field textarea {
  width: 100%;
  min-height: var(--control-min-size);
  background: var(--color-white);
  color: var(--color-black);
  border: 1px solid #a8a8a8;
  border-radius: 0;
  padding: .65rem .75rem;
}

.admin-field textarea {
  resize: vertical;
  min-height: 8rem;
}

.admin-field [aria-invalid="true"] {
  border-color: var(--color-danger);
}

.admin-checkbox {
  width: fit-content;
  min-height: var(--control-min-size);
  grid-template-columns: var(--control-min-size) minmax(0, 1fr);
  align-items: center;
  gap: .5rem;
  font-weight: 700;
  display: grid;
}

.admin-checkbox input {
  width: var(--control-min-size);
  height: var(--control-min-size);
  margin: 0;
}

.admin-button {
  width: 100%;
  min-width: var(--control-min-size);
  min-height: var(--control-min-size);
  border: 1px solid var(--color-black);
  cursor: pointer;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  padding: .65rem 1rem;
  font-weight: 700;
  display: inline-flex;
}

.admin-button:disabled {
  cursor: wait;
  opacity: .58;
}

.admin-button-primary {
  background: var(--color-black);
  color: var(--color-white);
}

.admin-button-danger {
  border-color: var(--color-danger);
  background: var(--color-danger);
  color: var(--color-white);
}

.admin-field-error, .admin-readiness-list {
  color: var(--color-danger);
  margin: 0;
  padding-left: 1.25rem;
}

.admin-action-message {
  margin: 0;
  font-weight: 700;
}

.admin-action-error {
  color: var(--color-danger);
}

.admin-action-success, .admin-readiness-ready {
  color: var(--color-success);
}

.admin-responsive-cards, .admin-card-data, .admin-detail-grid {
  gap: 1rem;
  min-width: 0;
  display: grid;
}

.admin-card {
  overflow-wrap: anywhere;
}

.admin-card-data {
  margin: 0;
}

.admin-card-data > div {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  display: grid;
}

.admin-card-data dt {
  color: var(--color-gray-500);
}

.admin-card-data dd {
  text-align: right;
  margin: 0;
}

.admin-break-text {
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.admin-responsive-table {
  width: 100%;
  max-width: 100%;
  padding: 3px;
  display: none;
  overflow-x: auto;
}

.admin-responsive-table table {
  border-collapse: collapse;
  width: 100%;
  min-width: 56rem;
}

.admin-responsive-table th, .admin-responsive-table td {
  border-bottom: 1px solid var(--color-gray-300);
  text-align: left;
  vertical-align: top;
  padding: .75rem;
}

.admin-responsive-table th > span {
  color: var(--color-gray-500);
  font-size: .8rem;
  font-weight: 400;
  display: block;
}

.admin-status-form fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

@media (min-width: 768px) {
  .admin-page-header {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }

  .admin-filter-form {
    grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) minmax(8rem, 1fr) auto;
    align-items: end;
  }

  .admin-filter-form .admin-button {
    width: auto;
  }

  .admin-responsive-cards {
    display: none;
  }

  .admin-responsive-table {
    display: block;
  }

  .admin-detail-grid {
    grid-template-columns: minmax(0, 3fr) minmax(18rem, 2fr);
    align-items: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, :before, :after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }

  .skeleton {
    animation: none !important;
  }
}

/*# sourceMappingURL=src_app_globals_162hn9o.css.map*/