/*!
Theme Name: ORIXUP Child
Theme URI: https://orixup.com
Description: ORIXUP Theme
Author: kim hyunkoo
Author URI: https://orixup.com
Template: orixup
Version: 1.0.0
Text Domain: orixup
*/


/* --- 카드 좌(로고) : 우(본문) 1/3 : 2/3 강제 --- */
.kmga-card__inner{
  display:grid !important;
  grid-template-columns: 1fr 2fr !important;
  align-items:stretch !important;
  gap:16px;
  padding: 40px 30px 25px 20px !important;
  min-height: 200px;
}

  /* 썸네일 링크 스타일 */
  .kmga-card__thumb-link {
    display: block !important;
    text-decoration: none !important;
    color: inherit !important;
    width: 100% !important;
    height: 100% !important;
    transition: all 0.3s ease !important;
    position: relative !important;
    z-index: 1 !important;
  }
  
  .kmga-card__thumb-link:hover {
    transform: scale(1.05) !important;
    opacity: 0.8 !important;
  }
  
  .kmga-card__thumb-link:hover .kmga-card__thumb {
    transform: none !important;
  }
  
  /* 카드 본문 영역 클릭 가능 표시 */
  .kmga-card__body {
    cursor: pointer !important;
  }

/* 로고 컨테이너(좌측 1/3) 고정 */
.kmga-card__thumb{
  width:100% !important;
  max-width:100% !important;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:8px;
  cursor: default;
}

/* 카드 전체 클릭 비활성화, 본문만 클릭 가능 */
.kmga-card {
  cursor: default !important;
}

/* 엘리멘터 이미지 위젯이 걸어둔 width/max-width 해제 */
.kmga-card__thumb .elementor-widget-image,
.kmga-card__thumb .elementor-widget-container{
  width:100% !important;
  max-width:none !important;
}

/* 실제 IMG 확장: 컨테이너 가득 */
.kmga-card__thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:200px;            /* 높이 줄임 */
  object-fit:contain !important;
}

/* maker / 제목 색상 */
.kmga-maker{
  margin-top:10px; font-size:18px; font-weight:700;
  color:var(--ui-e-primary,#1f5fff); text-align:center; line-height:1.2;
}
.kmga-card__title{
  margin:0 0 8px; font-size:22px; font-weight:800;
  color:var(--ui-e-primary,#1f5fff);
}

/* 카드 본문 영역을 flexbox로 설정하여 베네핏 버튼을 하단에 고정 */
.kmga-card__body{
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
}

/* 베네핏 버튼을 하단에 고정 */
.kmga-benefit-button {
  margin-top: auto !important;
  margin-bottom: 16px !important;
}

/* 선택 버튼 보이는 경우 숨김 */
.kmga-select-btn{ display:none !important; }

/* 반응형: 모바일에서는 위아래 스택 */
@media (max-width: 768px){
  .kmga-card__inner{
    grid-template-columns: 1fr !important;
    align-items:flex-start;
  }
  .kmga-card__thumb img{ max-height:140px; }
}

/* --- ACF 혜택 금액 카운트 애니메이션 및 버튼 스타일 --- */
.kmga-benefit-button {
display: inline-block;
background-color: #000;
color: #fff;
padding: 12px 24px;
border-radius: 25px;
font-weight: 700;
font-size: 18px;
text-align: center;
line-height: 1.2;
margin: 0;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
transition: all 0.3s ease;
align-self: flex-start;
}

.kmga-benefit-button:hover {
transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}

.kmga-benefit-amount {
font-size: 24px;
font-weight: 800;
margin-right: 4px;
}

.kmga-benefit-suffix {
font-size: 18px;
font-weight: 600;
}

/* 카운트 애니메이션 진행 중 스타일 */
.kmga-benefit-amount.counting {
color: #ff6b9d;
transition: color 0.3s ease;
}

/* 택소노미별 혜택 버튼 그리드 */
.kmga-benefit-buttons-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 16px;
margin: 24px 0;
}

.kmga-benefit-buttons-grid .kmga-benefit-button {
margin: 0;
justify-self: center;
min-width: 200px;
}

/* 스테이지 택소노미 제목 스타일 */
.kmga-stage-benefits-title {
font-size: 24px;
font-weight: 700;
color: var(--ui-e-primary, #1f5fff);
text-align: center;
margin: 32px 0 24px;
padding-bottom: 12px;
border-bottom: 2px solid var(--ui-e-primary, #1f5fff);
}

/* 반응형: 모바일에서 버튼 크기 조정 */
@media (max-width: 768px) {
.kmga-benefit-button {
  padding: 10px 20px;
  font-size: 16px;
}

.kmga-benefit-amount {
  font-size: 20px;
}

.kmga-benefit-suffix {
  font-size: 16px;
}

.kmga-benefit-buttons-grid {
  grid-template-columns: 1fr;
  gap: 12px;
}

.kmga-benefit-buttons-grid .kmga-benefit-button {
  min-width: 180px;
}
}

/* --- 카테고리 필터링 시스템 (Elementor Loop Grid 연동) --- */
.kmga-category-filter {
margin: 32px 0;
padding: 24px;
background: #f8f9fa;
border-radius: 12px;
border: 1px solid #e9ecef;
scroll-margin-top: 20px; /* 스크롤 점프 시 여백 확보 */
}

.kmga-filter-title {
font-size: 20px;
font-weight: 700;
color: var(--ui-e-primary, #1f5fff);
margin: 0 0 20px;
text-align: center;
}

.kmga-filter-buttons {
display: flex;
flex-wrap: wrap;
gap: 12px;
justify-content: center;
margin-bottom: 20px;
}

.kmga-filter-btn {
padding: 10px 20px;
border: 2px solid var(--ui-e-primary, #1f5fff);
background: #fff;
color: var(--ui-e-primary, #1f5fff);
border-radius: 25px;
font-weight: 600;
font-size: 14px;
cursor: pointer;
transition: all 0.3s ease;
min-width: 100px;
text-decoration: none; /* 링크 스타일 제거 */
outline: none; /* 포커스 아웃라인 제거 */
}

.kmga-filter-btn:hover {
background: var(--ui-e-primary, #1f5fff);
color: #fff;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(31, 95, 255, 0.3);
}

.kmga-filter-btn.active {
background: var(--ui-e-primary, #1f5fff);
color: #fff;
box-shadow: 0 4px 8px rgba(31, 95, 255, 0.3);
}

.kmga-filter-info {
text-align: center;
font-size: 14px;
color: #6c757d;
}

.kmga-filter-count strong {
color: var(--ui-e-primary, #1f5fff);
font-weight: 700;
}

/* 카드 필터링 애니메이션 (Elementor Loop Grid + KMGA 쇼트코드) */
.elementor-post, .kmga-card {
transition: all 0.4s ease;
opacity: 1 !important; /* 기본적으로 모든 카드 표시 */
transform: scale(1) !important;
position: relative !important;
visibility: visible !important;
height: auto !important;
overflow: visible !important;
}

.elementor-post.filtered-out, .kmga-card.filtered-out {
opacity: 0;
transform: scale(0.8);
pointer-events: none;
position: absolute !important;
visibility: hidden;
height: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden;
z-index: -1;
}

.elementor-post.filtered-in, .kmga-card.filtered-in {
opacity: 1;
transform: scale(1);
position: relative !important;
visibility: visible;
height: auto !important;
margin: inherit !important;
padding: inherit !important;
overflow: visible;
z-index: auto;
}

/* 필터링 중 로딩 상태 */
.elementor-loop-grid.filtering, .kmga-grid.filtering {
position: relative;
min-height: 200px;
}

.elementor-loop-grid.filtering::after, .kmga-grid.filtering::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 40px;
height: 40px;
margin: -20px 0 0 -20px;
border: 3px solid #f3f3f3;
border-top: 3px solid var(--ui-e-primary, #1f5fff);
border-radius: 50%;
animation: spin 1s linear infinite;
z-index: 10;
}

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

/* 필터링 레이아웃 최적화 (Elementor Loop Grid + KMGA 그리드) */
.elementor-loop-grid, .kmga-grid[data-kmga-filter="true"] {
position: relative;
min-height: 300px;
}

.elementor-loop-grid .elementor-post, .kmga-grid .kmga-card {
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Loop Grid 1 특별 스타일 */
.elementor-loop-grid-1 {
position: relative;
min-height: 300px;
}

.elementor-loop-grid-1 .elementor-post {
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 필터링 결과가 없을 때 메시지 */
.elementor-loop-grid.no-results, .kmga-grid.no-results {
text-align: center;
padding: 60px 20px;
color: #6c757d;
}

.elementor-loop-grid.no-results::before, .kmga-grid.no-results::before {
content: '🔍';
font-size: 48px;
display: block;
margin-bottom: 16px;
}

.elementor-loop-grid.no-results::after, .kmga-grid.no-results::after {
content: '선택한 필터에 해당하는 서비스가 없습니다.';
font-size: 16px;
font-weight: 500;
}

/* 모바일 반응형 필터 */
@media (max-width: 768px) {
.kmga-stage-filter {
  padding: 16px;
  margin: 20px 0;
}

.kmga-filter-buttons {
  gap: 8px;
}

.kmga-filter-btn {
  padding: 8px 16px;
  font-size: 13px;
  min-width: 80px;
}

.kmga-filter-title {
  font-size: 18px;
  margin-bottom: 16px;
}
}

/* --- Elementor Loop Grid 체크박스 연동 스타일 --- */
.elementor-post {
cursor: pointer;
transition: all 0.3s ease;
position: relative;
border: 2px solid transparent;
border-radius: 8px;
overflow: hidden;
}

.elementor-post:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
border-color: rgba(31, 95, 255, 0.3);
}

/* 선택된 상태 표시 - 더 명확하게 */
.elementor-post.kmga-selected,
.elementor-post[aria-pressed="true"] {
border: 2px solid var(--ui-e-primary, #1f5fff) !important;
box-shadow: 0 4px 16px rgba(31, 95, 255, 0.3) !important;
transform: translateY(-2px);
background: rgba(31, 95, 255, 0.02);
}

.elementor-post.kmga-selected::before,
.elementor-post[aria-pressed="true"]::before {
content: '✓';
position: absolute;
top: 10px;
right: 10px;
width: 24px;
height: 24px;
background: var(--ui-e-primary, #1f5fff);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
font-weight: bold;
z-index: 10;
box-shadow: 0 2px 8px rgba(31, 95, 255, 0.4);
}

/* 선택된 상태 호버 효과 */
.elementor-post.kmga-selected:hover,
.elementor-post[aria-pressed="true"]:hover {
transform: translateY(-3px);
box-shadow: 0 6px 20px rgba(31, 95, 255, 0.4) !important;
}

/* 체크박스와 연동된 상태 표시 */
.elementor-post.kmga-sync-enabled {
position: relative;
}

.elementor-post.kmga-sync-enabled::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(31, 95, 255, 0.05);
border-radius: inherit;
pointer-events: none;
opacity: 0;
transition: opacity 0.3s ease;
}

.elementor-post.kmga-sync-enabled:hover::after {
opacity: 1;
}

/* 필터링된 상태에서도 선택 상태 유지 */
.elementor-post.filtered-in.kmga-selected,
.elementor-post.filtered-in[aria-pressed="true"] {
border: 2px solid var(--ui-e-primary, #1f5fff) !important;
box-shadow: 0 4px 16px rgba(31, 95, 255, 0.3) !important;
background: rgba(31, 95, 255, 0.02);
}

/* 선택 불가능한 상태 (필터링됨) */
.elementor-post.filtered-out {
cursor: not-allowed;
pointer-events: none;
}

/* 선택 상태 전환 애니메이션 */
.elementor-post {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* 강제 선택 상태 표시 (디버깅용) */
.elementor-post.kmga-selected-force {
border: 3px solid #ff0000 !important;
background: rgba(255, 0, 0, 0.1) !important;
}

.elementor-post.kmga-selected-force::before {
content: '🔴';
background: #ff0000 !important;
}

/* --- 클라이언트 사이드 페이지네이션 스타일 --- */
.kmga-client-pagination {
margin-top: 40px;
display: flex;
justify-content: center;
}

.kmga-client-pagination .kmga-pagination {
display: flex;
align-items: center;
}

.kmga-client-pagination .kmga-pagination-list {
display: flex;
align-items: center;
gap: 8px;
list-style: none;
margin: 0;
padding: 0;
}

.kmga-client-pagination .kmga-pagination-item {
margin: 0;
padding: 0;
}

.kmga-client-pagination .kmga-pagination-link {
display: flex;
align-items: center;
justify-content: center;
min-width: 40px;
height: 40px;
padding: 8px 12px;
border: 1px solid #ddd;
background: #fff;
color: #666;
text-decoration: none;
border-radius: 6px;
font-weight: 500;
font-size: 14px;
transition: all 0.3s ease;
cursor: pointer;
}

.kmga-client-pagination .kmga-pagination-link:hover {
background: var(--ui-e-primary, #1f5fff);
color: #fff;
border-color: var(--ui-e-primary, #1f5fff);
transform: translateY(-1px);
}

.kmga-client-pagination .kmga-pagination-current {
background: var(--ui-e-primary, #1f5fff) !important;
color: #fff !important;
border-color: var(--ui-e-primary, #1f5fff) !important;
cursor: default;
}

.kmga-client-pagination .kmga-pagination-prev,
.kmga-client-pagination .kmga-pagination-next {
font-size: 18px;
font-weight: 600;
}

.kmga-client-pagination .kmga-pagination-prev:hover,
.kmga-client-pagination .kmga-pagination-next:hover {
background: var(--ui-e-primary, #1f5fff);
color: #fff;
}

/* 반응형 페이지네이션 */
@media (max-width: 768px) {
.kmga-client-pagination .kmga-pagination-list {
  gap: 4px;
}

.kmga-client-pagination .kmga-pagination-link {
  min-width: 36px;
  height: 36px;
  padding: 6px 10px;
  font-size: 13px;
}

.kmga-client-pagination {
  margin-top: 30px;
}
}