/**
 * Market Common CSS
 * 한국에너지거래 마켓 서비스 공통 스타일
 * 
 * 사용법: JSP에서 아래와 같이 import
 * <link rel="stylesheet" href="${pageContext.request.contextPath}/css/user/market/common.css" />
 */

/* ========================================
   1. CSS Variables (Design Tokens)
   ======================================== */
:root {
  /* Colors - Primary */
  --market-primary: #23AB72;
  --market-primary-dark: #1E9460;
  --market-primary-darker: #00846C;
  --market-primary-hover: #f0fbf6;
  
  /* Colors - Secondary */
  --market-secondary: #727F85;
  --market-dark: #304248;
  
  /* Colors - Status */
  --market-status-request: #FFB800;
  --market-status-matching: #1787EE;
  --market-status-contract: #9B51E0;
  --market-status-completed: #23AB72;
  --market-status-temp: #727F85;
  
  /* Colors - Background */
  --market-bg: #FFFFFF;
  --market-bg-white: #FFFFFF;
  --market-bg-card: #FCFCFC;
  --market-bg-grey: #f7f8f9;
  --market-bg-grey2: #F4F5F7;
  
  /* Colors - Border */
  --market-border: #E2E5EC;
  --market-border-light: #E5E7EB;
  --market-border-divider: #F2F2F2;
  
  /* Colors - Text */
  --market-text-primary: #000000;
  --market-text-secondary: #304248;
  --market-text-muted: #727F85;
  --market-text-placeholder: #A6A6A6;
  
  /* Typography */
  --market-font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
  
  /* Font Sizes */
  --market-font-13: 13px;
  --market-font-14: 14px;
  --market-font-15: 15px;
  --market-font-16: 16px;
  --market-font-18: 18px;
  --market-font-19: 19px;
  --market-font-28: 28px;
  --market-font-33: 33px;
  
  /* Line Heights */
  --market-line-tight: 16px;
  --market-line-base: 24px;
  --market-line-loose: 40px;
  
  /* Spacing */
  --market-space-xs: 4px;
  --market-space-sm: 8px;
  --market-space-md: 12px;
  --market-space-base: 16px;
  --market-space-lg: 20px;
  --market-space-xl: 24px;
  --market-space-2xl: 32px;
  --market-space-3xl: 40px;
  --market-space-4xl: 60px;
  
  /* Border Radius */
  --market-radius-sm: 4px;
  --market-radius-base: 8px;
  --market-radius-lg: 12px;
  --market-radius-xl: 20px;
  --market-radius-full: 999px;
  
  /* Shadows */
  --market-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
  --market-shadow-base: 0 4px 12px rgba(0, 0, 0, 0.05);
  --market-shadow-lg: 0 0 16px rgba(17, 50, 59, 0.1);
  --market-shadow-card: 4px 4px 4px rgba(0, 0, 0, 0.05);
  
  /* Transitions */
  --market-transition-fast: 0.15s;
  --market-transition-base: 0.2s;
  
  /* Layout */
  --market-max-width: 1312px;
  --market-header-height: 80px;
}

/* ========================================
   2. Base / Reset
   ======================================== */
.market-page {
  font-family: var(--market-font-family);
  background: var(--market-bg);
  min-height: calc(100vh - var(--market-header-height));
}

.market-page * {
  box-sizing: border-box;
}

/* ========================================
   3. Layout Components
   ======================================== */
/* Page Container */
.market-wrap {
  max-width: var(--market-max-width);
  margin: 0 auto;
  padding: var(--market-space-2xl) var(--market-space-base) var(--market-space-4xl);
}

.market-wrap--narrow {
  max-width: 940px;
}

.market-wrap--wide {
  max-width: 1120px;
}

/* ========================================
   4. Card Components
   ======================================== */
/* Basic Card */
.market-card {
  background: var(--market-bg-white);
  border-radius: var(--market-radius-lg);
  box-shadow: var(--market-shadow-base);
  padding: var(--market-space-2xl);
}

.market-card--centered {
  width: 80%;
  margin: 0 auto;
}

/* Info Card */
.market-info-card {
  background: var(--market-bg-white);
  border-radius: var(--market-radius-lg);
  padding: var(--market-space-3xl);
  display: flex;
  flex-direction: column;
  gap: var(--market-space-lg);
}

.market-info-row {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: var(--market-space-base);
}

.market-info-label {
  width: 92px;
  flex-shrink: 0;
  color: var(--market-text-secondary);
  font-size: var(--market-font-15);
  font-weight: 700;
  line-height: var(--market-line-tight);
}

.market-info-value {
  flex: 1;
  color: var(--market-text-secondary);
  font-size: var(--market-font-15);
  font-weight: 400;
  line-height: var(--market-line-tight);
}

.market-info-value--multiline {
  line-height: 23px;
  white-space: pre-wrap;
}

/* Section Card */
.market-section-card {
  background: var(--market-bg-card);
  border-radius: var(--market-radius-lg);
  padding: 50px;
  display: flex;
  flex-direction: column;
  gap: var(--market-space-lg);
}

/* ========================================
   5. Button Components
   ======================================== */
/* Base Button */
.market-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--market-space-sm);
  height: 40px;
  padding: 0 var(--market-space-base);
  border-radius: var(--market-radius-base);
  border: none;
  cursor: pointer;
  font-family: var(--market-font-family);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
  transition: all var(--market-transition-base);
  white-space: nowrap;
}

.market-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Button Variants */
.market-btn--primary {
  background: var(--market-primary);
  color: #FFFFFF;
}

.market-btn--primary:hover:not(:disabled) {
  background: var(--market-primary-dark);
}

.market-btn--secondary {
  background: var(--market-secondary);
  color: #FFFFFF;
}

.market-btn--secondary:hover:not(:disabled) {
  background: #5f6a6f;
}

.market-btn--dark {
  background: var(--market-dark);
  color: #FFFFFF;
}

.market-btn--dark:hover:not(:disabled) {
  background: #253338;
}

.market-btn--outline {
  background: var(--market-bg-white);
  color: var(--market-text-secondary);
  border: 1px solid var(--market-border);
}

.market-btn--outline:hover:not(:disabled) {
  border-color: var(--market-primary);
  color: var(--market-primary);
}

.market-btn--ghost {
  background: var(--market-bg);
  color: var(--market-text-secondary);
}

.market-btn--ghost:hover:not(:disabled) {
  background: var(--market-border-light);
}

/* Button Sizes */
.market-btn--sm {
  height: 30px;
  padding: 0 var(--market-space-md);
  font-size: var(--market-font-13);
}

.market-btn--lg {
  height: 48px;
  padding: 0 var(--market-space-2xl);
  font-size: var(--market-font-16);
  font-weight: 700;
}

.market-btn--xl {
  height: 56px;
  padding: 0 var(--market-space-2xl);
  font-size: var(--market-font-15);
  font-weight: 700;
  border-radius: var(--market-radius-full);
}

.market-btn--block {
  width: 100%;
}

/* Submit Button (Full Width Primary) */
.market-btn--submit {
  width: 100%;
  height: 56px;
  border-radius: var(--market-radius-full);
  background: var(--market-primary);
  color: #FFFFFF;
  font-size: var(--market-font-15);
  font-weight: 700;
}

.market-btn--submit:hover:not(:disabled) {
  background: var(--market-primary-dark);
}

/* ========================================
   6. Form Components
   ======================================== */
/* Form Row */
.market-form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: var(--market-space-md);
}

.market-form-label {
  font-size: var(--market-font-15);
  font-weight: 500;
  color: var(--market-text-primary);
  margin-bottom: var(--market-space-xs);
}

.market-form-input,
.market-form-select,
.market-form-textarea {
  font-family: var(--market-font-family);
  font-size: var(--market-font-15);
  border: 1px solid var(--market-border);
  border-radius: var(--market-radius-base);
  padding: var(--market-space-md);
  transition: border-color var(--market-transition-fast);
}

.market-form-input,
.market-form-select {
  height: 44px;
}

.market-form-input:focus,
.market-form-select:focus,
.market-form-textarea:focus {
  outline: none;
  border-color: var(--market-primary);
}

/* Agreement Box */
.market-agree-box {
  border: 1px solid var(--market-border-light);
  border-radius: var(--market-radius-lg);
  background: var(--market-bg-white);
}

.market-agree-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px var(--market-space-base);
  border-top: 1px solid #F3F4F6;
}

.market-agree-row:first-child {
  border-top: 0;
}

.market-agree-row--all {
  background: var(--market-bg);
  border-radius: var(--market-radius-lg) var(--market-radius-lg) 0 0;
}

.market-agree-row label {
  display: flex;
  align-items: center;
  gap: var(--market-space-sm);
  font-weight: 600;
}

.market-agree-lines {
  padding: 6px 0;
}

.market-agree-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px var(--market-space-base) 10px 40px;
}

.market-agree-line label {
  display: flex;
  align-items: center;
  gap: var(--market-space-sm);
}

.market-agree-view {
  color: #10B981;
  text-decoration: none;
  font-weight: 600;
}

.market-agree-view:hover {
  text-decoration: underline;
}

/* ========================================
   7. Status Components
   ======================================== */
/* Status Chip */
.market-status-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  padding: 0 var(--market-space-base);
  border-radius: var(--market-radius-base);
  border: none;
  flex-shrink: 0;
}

.market-status-chip__text {
  color: #FFFFFF;
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
  text-align: center;
}

.market-status-chip--request {
  background: var(--market-status-request);
}

.market-status-chip--matching {
  background: var(--market-status-matching);
}

.market-status-chip--contract {
  background: var(--market-status-contract);
}

.market-status-chip--completed {
  background: var(--market-status-completed);
}

.market-status-chip--temp {
  background: var(--market-status-temp);
}

/* ========================================
   8. Progress Bar
   ======================================== */
.market-progress {
  display: flex;
  flex-direction: column;
  gap: var(--market-space-sm);
}

.market-progress__bar {
  width: 100%;
  height: 20px;
  background: var(--market-bg);
  border-radius: var(--market-radius-lg);
  position: relative;
  overflow: hidden;
}

.market-progress__fill {
  height: 20px;
  border-radius: var(--market-radius-lg);
  position: absolute;
  left: 0;
  top: 0;
  transition: width var(--market-transition-base);
}

.market-progress__fill--request {
  background: var(--market-status-request);
  width: 10%;
}

.market-progress__fill--matching {
  background: var(--market-status-matching);
  width: 40%;
}

.market-progress__fill--contract {
  background: var(--market-status-contract);
  width: 70%;
}

.market-progress__fill--completed {
  background: var(--market-status-completed);
  width: 100%;
}

.market-progress__labels {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.market-progress__label {
  text-align: center;
  color: var(--market-text-muted);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-progress__label--active {
  font-weight: 700;
}

.market-progress__label--request.market-progress__label--active {
  color: var(--market-status-request);
}

.market-progress__label--matching.market-progress__label--active {
  color: var(--market-status-matching);
}

.market-progress__label--contract.market-progress__label--active {
  color: var(--market-status-contract);
}

.market-progress__label--completed.market-progress__label--active {
  color: var(--market-status-completed);
}

/* ========================================
   9. Tab Components
   ======================================== */
.market-tabs {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.market-tab {
  flex: 1 1 0;
  padding: var(--market-space-lg) 10px;
  border-bottom: 1px solid #C6CBCE;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  background: var(--market-bg-white);
  transition: border-color var(--market-transition-fast);
}

.market-tab:hover {
  border-color: var(--market-primary);
}

.market-tab--active {
  border-bottom: 2px solid var(--market-primary);
}

.market-tab--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.market-tab--disabled:hover {
  border-color: #C6CBCE;
}

.market-tab__text {
  text-align: center;
  color: var(--market-text-placeholder);
  font-size: var(--market-font-16);
  font-weight: 500;
}

.market-tab--active .market-tab__text {
  color: var(--market-primary);
  font-weight: 700;
}

/* ========================================
   10. Divider
   ======================================== */
.market-divider {
  height: 1px;
  background: var(--market-border-divider);
  width: 100%;
}

.market-divider--thick {
  height: 1px;
  background: var(--market-border);
}

.market-divider--vertical {
  width: 1px;
  height: 100%;
  background: var(--market-border-divider);
}

/* ========================================
   11. Empty State
   ======================================== */
.market-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 360px;
}

.market-empty__content {
  text-align: center;
}

.market-empty__title {
  font-size: var(--market-font-19);
  font-weight: 700;
  margin-bottom: var(--market-space-sm);
  color: var(--market-text-primary);
}

.market-empty__desc {
  color: var(--market-text-muted);
  margin-bottom: var(--market-space-base);
}

/* ========================================
   12. Headline Component
   ======================================== */
.market-headline {
  display: flex;
  gap: var(--market-space-base);
  align-items: center;
  margin-bottom: var(--market-space-sm);
}

.market-headline__badge {
  flex: 0 0 48px;
  height: 48px;
  border-radius: 50%;
  background: #E8FFF3;
  color: #1F9D67;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 23px;
}

.market-headline__title {
  font-size: 29px;
  line-height: 1.2;
  margin: 0;
  font-weight: 700;
}

.market-headline__desc {
  margin: var(--market-space-sm) 0 0;
  color: #6b7280;
}

/* ========================================
   13. Protect Items (3-column grid)
   ======================================== */
.market-protect-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--market-space-base);
  margin: var(--market-space-xl) 0;
}

.market-protect-item {
  background: var(--market-bg);
  border: 1px solid var(--market-border-light);
  border-radius: var(--market-radius-lg);
  padding: 18px;
  text-align: center;
}

.market-protect-item__icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  margin: 0 auto var(--market-space-sm);
  background: #ECFDF5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #10B981;
}

.market-protect-item__title {
  display: block;
  font-weight: 700;
  margin-top: 2px;
}

.market-protect-item__desc {
  display: block;
  margin-top: 6px;
  color: #6b7280;
  font-size: var(--market-font-14);
}

/* ========================================
   14. Project Card Components
   ======================================== */
.market-project-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--market-space-lg);
  margin-top: var(--market-space-lg);
}

.market-project-card {
  padding: 30px;
  background: var(--market-bg-white);
  border-radius: var(--market-radius-lg);
  outline: 1px #EFEFEF solid;
  outline-offset: -1px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.market-project-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--market-space-xl);
  min-width: 0;
}

.market-project-card__title {
  color: var(--market-text-primary);
  font-size: var(--market-font-18);
  font-weight: 700;
  line-height: var(--market-line-base);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
}

.market-project-card__info {
  display: flex;
  flex-direction: column;
  gap: var(--market-space-base);
}

.market-project-card__date {
  height: var(--market-line-tight);
  color: var(--market-text-muted);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-project-card__status {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: var(--market-space-sm);
}

.market-project-card__status-icon {
  width: 16px;
  height: 16px;
}

.market-project-card__status-text {
  color: var(--market-text-muted);
  font-size: var(--market-font-14);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-project-card__btn {
  height: 48px;
  padding: 22px var(--market-space-base);
  background: var(--market-bg);
  border-radius: var(--market-radius-base);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  border: none;
}

.market-project-card__btn-text {
  text-align: center;
  color: var(--market-text-secondary);
  font-size: var(--market-font-15);
  font-weight: 600;
  line-height: var(--market-line-tight);
}

/* ========================================
   15. Matching Card Components
   ======================================== */
.market-matching-cards {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: var(--market-space-4xl);
  flex-wrap: wrap;
}

.market-matching-card {
  width: 250px;
  background: var(--market-bg-white);
  border-radius: var(--market-radius-base);
  padding: var(--market-space-2xl);
  display: flex;
  flex-direction: column;
  gap: var(--market-space-xl);
  box-shadow: var(--market-shadow-sm);
  outline: 0.40px var(--market-text-muted) solid;
  outline-offset: -0.40px;
  transition: transform var(--market-transition-base), box-shadow var(--market-transition-base);
  cursor: pointer;
}

.market-matching-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--market-shadow-base);
}

.market-matching-card__title {
  color: var(--market-text-primary);
  font-size: var(--market-font-18);
  font-weight: 700;
  line-height: var(--market-line-base);
  text-align: center;
}

.market-matching-card__divider {
  width: 100%;
  height: 0;
  outline: 0.25px var(--market-text-muted) solid;
  outline-offset: -0.12px;
}

.market-matching-card__score-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--market-space-sm);
}

.market-matching-card__score-label {
  color: var(--market-text-muted);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
  text-align: center;
}

.market-matching-card__score {
  font-size: var(--market-font-33);
  font-weight: 700;
  line-height: var(--market-line-loose);
  text-align: center;
}

.market-matching-card__score--excellent {
  color: var(--market-primary);
}

.market-matching-card__score--good {
  color: var(--market-status-matching);
}

.market-matching-card__score--fair {
  color: var(--market-status-request);
}

.market-matching-card__analysis {
  display: flex;
  flex-direction: column;
  gap: var(--market-space-base);
}

.market-matching-card__analysis-title {
  color: var(--market-text-primary);
  font-size: var(--market-font-15);
  font-weight: 700;
  line-height: var(--market-line-tight);
  display: flex;
  align-items: center;
  gap: var(--market-space-sm);
}

.market-matching-card__analysis-dot {
  width: 3.45px;
  height: 3.45px;
  background: var(--market-primary);
  border-radius: 50%;
}

.market-matching-card__analysis-text {
  color: var(--market-text-muted);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-matching-card__btn {
  width: 100%;
  height: 36px;
  padding: 10px;
  background: var(--market-primary);
  border-radius: var(--market-radius-sm);
  border: none;
  color: #FFFFFF;
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
  cursor: pointer;
  transition: background var(--market-transition-base);
  display: flex;
  justify-content: center;
  align-items: center;
}

.market-matching-card__btn:hover {
  background: var(--market-primary-dark);
}

/* ========================================
   16. Section Title
   ======================================== */
.market-section-title {
  color: var(--market-text-primary);
  font-size: var(--market-font-18);
  font-weight: 700;
  line-height: var(--market-line-base);
  margin: 0;
  padding: 0;
  border: none;
}

.market-section-title--lg {
  font-size: var(--market-font-28);
}

.market-section-title--xl {
  font-size: var(--market-font-33);
}

/* ========================================
   17. Alert / Schedule Items
   ======================================== */
.market-list-section {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--market-space-base);
}

.market-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--market-space-base);
}

.market-list-title {
  flex: 1 1 0;
  color: var(--market-text-primary);
  font-size: var(--market-font-18);
  font-weight: 700;
  line-height: var(--market-line-base);
}

.market-list-content {
  padding: 50px;
  background: var(--market-bg-card);
  border-radius: var(--market-radius-lg);
  display: flex;
  flex-direction: column;
  gap: var(--market-space-lg);
}

.market-list-item {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: var(--market-space-lg);
}

.market-list-item__content {
  flex: 1 1 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--market-space-sm);
}

.market-list-item__icon {
  width: 20px;
  height: 20px;
  position: relative;
  overflow: hidden;
}

.market-list-item__icon-inner {
  width: 16.67px;
  height: 15px;
  position: absolute;
  left: 1.67px;
  top: 2.50px;
  background: var(--market-primary);
}

.market-list-item__icon-inner--muted {
  background: #CCCCCC;
}

.market-list-item__text {
  flex: 1 1 0;
  color: var(--market-text-primary);
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-list-item__text--muted {
  color: var(--market-text-muted);
}

.market-list-item__meta {
  color: var(--market-text-muted);
  font-size: var(--market-font-13);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-list-divider {
  height: 0;
  outline: 1px #E5E5E5 solid;
  outline-offset: -0.50px;
}

/* ========================================
   18. Role Selection Cards
   ======================================== */
.market-role-card {
  width: 288px;
  box-shadow: var(--market-shadow-lg);
  border-radius: var(--market-radius-lg);
  background-color: var(--market-bg-white);
  border: 1px solid var(--market-border);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--market-space-base);
  gap: var(--market-space-sm);
  cursor: pointer;
  text-align: center;
  transition: all var(--market-transition-fast);
}

.market-role-card:hover,
.market-role-card--active {
  background-color: var(--market-primary-hover);
  color: var(--market-primary-darker);
}

.market-role-card__emoji {
  font-size: var(--market-font-33);
}

.market-role-card__title {
  font-size: var(--market-font-15);
  font-weight: 500;
  line-height: var(--market-line-tight);
}

.market-role-card__desc {
  font-size: var(--market-font-13);
  color: var(--market-text-muted);
  transition: color var(--market-transition-fast);
}

.market-role-card:hover .market-role-card__desc,
.market-role-card--active .market-role-card__desc {
  color: var(--market-primary-darker);
}

/* ========================================
   19. Utilities
   ======================================== */
/* Text utilities */
.market-text-center { text-align: center; }
.market-text-left { text-align: left; }
.market-text-right { text-align: right; }

.market-text-primary { color: var(--market-text-primary); }
.market-text-secondary { color: var(--market-text-secondary); }
.market-text-muted { color: var(--market-text-muted); }
.market-text-success { color: var(--market-primary); }

.market-font-bold { font-weight: 700; }
.market-font-medium { font-weight: 500; }
.market-font-normal { font-weight: 400; }

/* Spacing utilities */
.market-mt-sm { margin-top: var(--market-space-sm); }
.market-mt-base { margin-top: var(--market-space-base); }
.market-mt-lg { margin-top: var(--market-space-lg); }
.market-mt-xl { margin-top: var(--market-space-xl); }

.market-mb-sm { margin-bottom: var(--market-space-sm); }
.market-mb-base { margin-bottom: var(--market-space-base); }
.market-mb-lg { margin-bottom: var(--market-space-lg); }
.market-mb-xl { margin-bottom: var(--market-space-xl); }

/* Display utilities */
.market-flex { display: flex; }
.market-flex-col { flex-direction: column; }
.market-items-center { align-items: center; }
.market-justify-center { justify-content: center; }
.market-justify-between { justify-content: space-between; }
.market-gap-sm { gap: var(--market-space-sm); }
.market-gap-base { gap: var(--market-space-base); }
.market-gap-lg { gap: var(--market-space-lg); }

/* Visibility */
.market-hidden { display: none; }

/* ========================================
   20. Responsive
   ======================================== */
@media (max-width: 1024px) {
  .market-project-cards {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .market-protect-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .market-project-cards {
    grid-template-columns: 1fr;
  }
  
  .market-protect-grid {
    grid-template-columns: 1fr;
  }
  
  .market-matching-cards {
    gap: var(--market-space-xl);
  }
  
  .market-list-content {
    padding: var(--market-space-xl);
  }
}

@media (max-width: 680px) {
  .market-wrap {
    padding: var(--market-space-base);
  }
  
  .market-card {
    padding: var(--market-space-xl);
  }
}

