/* =========================================================
   ITAMRA ADS BASE
   - 광고 공통 스타일
   - PHP/헬퍼는 건드리지 않고 CSS만으로 정리
   ========================================================= */

.left-ad,
.right-ad {
  width: 136px;
  min-width: 136px;
  flex: 0 0 136px;
}

.ad-sticky {
  position: sticky;
  top: calc(var(--header-height, 72px) + 24px);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.catad-side-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.catad-top-desktop {
  display: block;
  margin: 0 0 18px 0;
}

.catad-mobile-wrap {
  display: none;
  width: 100%;
  margin: 0 0 14px 0;
}

.catad-mobile-top {
  margin: 0 0 10px 0;
}

.catad-mobile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.ad-card,
.slider-card {
  position: relative;
  overflow: hidden;
  text-decoration: none !important;
  box-sizing: border-box;
  box-shadow: none !important;
}

.ad-card,
.ad-card *,
.slider-card,
.slider-card * {
  color: #fff !important;
}

.ad-card {
  width: 100%;
  min-height: 300px;
  border-radius: 20px;
  padding: 20px 12px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.ad-blue {
  background: linear-gradient(180deg, #114ad0 0%, #0d3db0 100%);
}
.ad-orange {
  background: linear-gradient(180deg, #ff7b42 0%, #ff955f 100%);
}
.ad-cyan {
  background: linear-gradient(180deg, #16a7d3 0%, #118cb3 100%);
}
.ad-purple {
  background: linear-gradient(180deg, #9850ea 0%, #7d35d0 100%);
}
.ad-green {
  background: linear-gradient(180deg, #17b26a 0%, #0f9f5c 100%);
}

.ad-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0 auto 12px;
  flex: 0 0 auto;
}

.ad-icon svg,
svg.ad-icon {
  width: 32px !important;
  height: 32px !important;
  display: block;
  color: #fff !important;
  stroke: currentColor !important;
  fill: none;
}

.ad-title {
  margin: 0 0 6px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  text-align: center !important;
  letter-spacing: -0.02em;
  word-break: keep-all;
}

.ad-subtitle {
  margin: 0 0 8px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  text-align: center !important;
  opacity: 0.96;
  word-break: keep-all;
}

.ad-desc {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  text-align: center !important;
  opacity: 0.9;
  word-break: keep-all;
}

.ad-desc br,
.slider-desc br {
  display: block;
  content: '';
  margin-top: 2px;
}

.ad-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  height: 28px;
  margin-top: 14px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.ad-slider-section {
  margin: 0 0 18px 0;
}

.slider-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
}

.slider-track {
  display: flex;
  transition: transform 0.35s ease;
}

.slider-card {
  min-width: 100%;
  min-height: 112px;
  padding: 18px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: 20px;
}

.slider-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
}

.slider-icon svg {
  width: 30px !important;
  height: 30px !important;
  display: block;
  color: #fff !important;
  stroke: currentColor !important;
  fill: none;
}

.slider-title {
  margin: 0 0 4px !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  text-align: center !important;
  letter-spacing: -0.02em;
  word-break: keep-all;
}

.slider-subtitle {
  margin: 0 0 6px !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  text-align: center !important;
  opacity: 0.96;
  word-break: keep-all;
}

.slider-desc {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  text-align: center !important;
  opacity: 0.9;
  word-break: keep-all;
}

.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  cursor: pointer;
  z-index: 2;
}
.slider-btn-prev {
  left: 12px;
}
.slider-btn-next {
  right: 12px;
}

.layout-container {
  align-items: flex-start;
}

.main-content {
  min-width: 0;
  flex: 1 1 auto;
}

/* 모바일 광고 위치 및 비율 */
@media (max-width: 991.98px) {
  .left-ad,
  .right-ad {
    display: none !important;
  }

  .catad-top-desktop {
    display: none !important;
  }

  .catad-mobile-wrap {
    display: block !important;
  }

  .catad-mobile-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .ad-card {
    min-height: 156px;
    border-radius: 16px;
    padding: 14px 10px 12px;
  }

  .ad-icon {
    width: 30px;
    height: 30px;
    margin-bottom: 8px;
  }

  .ad-icon svg,
  svg.ad-icon {
    width: 20px !important;
    height: 20px !important;
  }

  .ad-title {
    font-size: 13px !important;
    margin-bottom: 4px !important;
  }

  .ad-subtitle {
    font-size: 9px !important;
    margin-bottom: 5px !important;
  }

  .ad-desc {
    font-size: 9px !important;
    line-height: 1.45 !important;
  }

  .ad-cta {
    min-width: 62px;
    height: 24px;
    margin-top: 10px;
    padding: 0 8px;
    font-size: 9px !important;
  }

  .slider-card {
    min-height: 88px;
    border-radius: 16px;
    padding: 14px 12px;
  }

  .slider-icon {
    margin-bottom: 6px;
  }

  .slider-icon svg {
    width: 20px !important;
    height: 20px !important;
  }

  .slider-title {
    font-size: 13px !important;
    margin-bottom: 3px !important;
  }

  .slider-subtitle {
    font-size: 13px !important;
    margin-bottom: 4px !important;
  }

  .slider-desc {
    font-size: 9px !important;
    line-height: 1.4 !important;
  }

  .slider-btn {
    width: 28px;
    height: 28px;
  }
}

/* =========================================================
   FIX: 실제 helper 출력 클래스(catad-*) 기준 보정
   ========================================================= */

.catad-side-stack {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  width: 100% !important;
}
/* 배너 슬라이더 FOUC 방지: JS 로드 전 2번째 이후 카드 숨김 */
.catad-side-stack:not(.slider-ready) .catad-card ~ .catad-card,
.catad-top-stack:not(.slider-ready) .catad-card ~ .catad-card,
.ad-sticky:not(.slider-ready) > .ad-card ~ .ad-card {
  display: none !important;
  opacity: 0 !important;
}

.catad-top-desktop {
  display: block;
  margin: 0 0 18px 0;
}

.catad-mobile-wrap {
  display: none;
  width: 100%;
  margin: 0 0 14px 0;
}

.catad-mobile-top {
  margin: 0 0 10px 0;
}

.catad-mobile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  align-items: stretch;
  gap: 10px;
}
.catad-mobile-grid .catad-card {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: center !important;
}
.catad-mobile-grid .catad-text {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}

/* 모바일 그리드 catad-card — ad-card 모바일 크기(156px)에 맞춤 */
@media (max-width: 991.98px) {
  .catad-mobile-grid .catad-card {
    min-height: 156px !important;
    border-radius: 16px !important;
    padding: 14px 10px 12px !important;
  }
  .catad-mobile-grid .catad-text {
    min-height: 0 !important;
    padding: 8px 10px !important;
  }
}

.catad-card {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  min-height: 300px !important;
  padding: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.catad-card,
.catad-card * {
  color: #fff !important;
}

.catad-card.ad-blue {
  background: linear-gradient(180deg, #114ad0 0%, #0d3db0 100%) !important;
}
.catad-card.ad-orange {
  background: linear-gradient(180deg, #ff7b42 0%, #ff955f 100%) !important;
}
.catad-card.ad-cyan {
  background: linear-gradient(180deg, #16a7d3 0%, #118cb3 100%) !important;
}
.catad-card.ad-purple {
  background: linear-gradient(180deg, #9850ea 0%, #7d35d0 100%) !important;
}
.catad-card.ad-green {
  background: linear-gradient(180deg, #17b26a 0%, #0f9f5c 100%) !important;
}
/* 광고 없을 때 플레이스홀더: 배경 없음 + 점선 테두리 */
.catad-card.ad-default,
.catad-card.catad-default-placeholder {
  background: transparent !important;
  border: 2px dashed #cbd5e1 !important;
}
.catad-card.ad-default *,
.catad-card.catad-default-placeholder * {
  color: #94a3b8 !important;
}
.catad-card.ad-default .catad-cta,
.catad-card.catad-default-placeholder .catad-cta {
  background: rgba(148, 163, 184, 0.15) !important;
  color: #64748b !important;
  border: 1px solid #cbd5e1 !important;
}

.catad-text {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 300px !important;
  padding: 20px 20px 16px !important;
  text-align: center !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.catad-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 48px !important;
  height: 48px !important;
  margin: 0 auto 12px !important;
  flex: 0 0 auto !important;
}

.catad-icon svg {
  width: 32px !important;
  height: 32px !important;
  display: block !important;
  color: #fff !important;
  stroke: currentColor !important;
  fill: none !important;
}

.catad-title {
  margin: 0 0 6px !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 800 !important;
  text-align: center !important;
  letter-spacing: -0.02em !important;
  word-break: keep-all !important;
  color: #fff !important;
}

.catad-subtitle {
  margin: 0 0 8px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  text-align: center !important;
  opacity: 0.96 !important;
  word-break: keep-all !important;
  color: #fff !important;
}

.catad-desc {
  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
  font-weight: 500 !important;
  text-align: center !important;
  opacity: 0.9 !important;
  word-break: keep-all !important;
  color: #fff !important;
}

.catad-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 82px !important;
  height: 28px !important;
  margin-top: 14px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.18) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.catad-desc br {
  display: block !important;
  content: '' !important;
  margin-top: 2px !important;
}

/* 중앙 상단 스택 (슬라이더 컨테이너) */
.catad-top-stack {
  display: block;
  width: 100%;
}

/* 상단 광고: catad-card + slider-card 모두 동일한 큰 카드 규격 */
.catad-top-desktop .catad-card {
  min-height: 216px !important;
  border-radius: 24px !important;
}
.catad-top-desktop .catad-text {
  min-height: 216px !important;
  padding: 28px 32px 24px !important;
  justify-content: center !important;
}
/* slider-card(render_center_top_banner)도 중앙상단에서는 동일 크기 */
.catad-top-desktop .slider-card {
  min-height: 216px !important;
  border-radius: 24px !important;
  padding: 30px 28px !important;
}
.catad-top-desktop .slider-title {
  font-size: 24px !important;
  line-height: 1.2 !important;
  margin-bottom: 8px !important;
  font-weight: 800 !important;
}
.catad-top-desktop .slider-subtitle {
  font-size: 16px !important;
  line-height: 1.3 !important;
  margin-bottom: 10px !important;
  font-weight: 800 !important;
}
.catad-top-desktop .slider-desc {
  font-size: 14px !important;
  line-height: 1.7 !important;
  font-weight: 600 !important;
}
.catad-top-desktop .slider-icon {
  width: 42px !important;
  height: 42px !important;
  margin: 0 auto 14px !important;
}
.catad-top-desktop .slider-icon svg {
  width: 30px !important;
  height: 30px !important;
}

.left-ad,
.right-ad {
  width: 136px !important;
  min-width: 136px !important;
  flex: 0 0 136px !important;
  align-self: stretch !important;
}

/* 좌/우 배너: 기본 sticky */
.ad-sticky {
  position: sticky !important;
  top: calc(var(--header-height, 72px) + 24px) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.layout-container {
  align-items: flex-start !important;
  justify-content: center;
}

.main-content {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

@media (max-width: 991.98px) {
  .left-ad,
  .right-ad {
    display: none !important;
  }

  .catad-top-desktop {
    display: none !important;
  }

  .catad-mobile-wrap {
    display: block !important;
  }

  .catad-mobile-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .catad-card {
    min-height: 156px !important;
    border-radius: 16px !important;
  }

  .catad-text {
    min-height: 156px !important;
    padding: 14px 10px 12px !important;
  }

  .catad-icon {
    width: 30px !important;
    height: 30px !important;
    margin-bottom: 8px !important;
  }

  .catad-icon svg {
    width: 20px !important;
    height: 20px !important;
  }

  .catad-title {
    font-size: 13px !important;
    margin-bottom: 4px !important;
  }

  .catad-subtitle {
    font-size: 9px !important;
    margin-bottom: 5px !important;
  }

  .catad-desc {
    font-size: 9px !important;
    line-height: 1.45 !important;
  }

  .catad-cta {
    min-width: 62px !important;
    height: 24px !important;
    margin-top: 10px !important;
    padding: 0 8px !important;
    font-size: 9px !important;
  }

  .catad-mobile-top .catad-card {
    min-height: 88px !important;
  }

  .catad-mobile-top .catad-text {
    min-height: 88px !important;
    padding: 14px 12px !important;
  }
}

/* =========================================================
   FIX 2: 중앙배너만 샘플형으로 소폭 보정
   - 좌/우 광고 카드에는 영향 최소화
   ========================================================= */

.catad-top-desktop .catad-card {
  min-height: 216px !important;
  border-radius: 24px !important;
}

.catad-top-desktop .catad-card > .catad-text {
  min-height: 216px !important;
  padding: 28px 32px 24px !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}

.catad-top-desktop .catad-card .catad-icon {
  width: 42px !important;
  height: 42px !important;
  margin: 0 auto 14px !important;
}

.catad-top-desktop .catad-card .catad-icon svg {
  width: 30px !important;
  height: 30px !important;
}

.catad-top-desktop .catad-card .catad-title {
  font-size: 24px !important;
  line-height: 1.2 !important;
  margin-bottom: 8px !important;
  font-weight: 800 !important;
}

.catad-top-desktop .catad-card .catad-subtitle {
  font-size: 16px !important;
  line-height: 1.3 !important;
  margin-bottom: 10px !important;
  font-weight: 800 !important;
}

.catad-top-desktop .catad-card .catad-desc {
  font-size: 14px !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  font-weight: 600 !important;
  opacity: 0.95 !important;
}

.catad-top-desktop .catad-card .catad-cta {
  min-width: 106px !important;
  height: 34px !important;
  margin-top: 18px !important;
  padding: 0 16px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  align-self: center !important;
}

.catad-top-desktop .catad-card .catad-desc br {
  margin-top: 4px !important;
}

/* 모바일 상단 1칸 배너도 같은 톤으로만 축소 */
@media (max-width: 991.98px) {
  .catad-mobile-top > .catad-card {
    min-height: 104px !important;
    border-radius: 18px !important;
  }

  .catad-mobile-top > .catad-card > .catad-text {
    min-height: 104px !important;
    padding: 16px 14px !important;
  }

  .catad-mobile-top > .catad-card .catad-icon {
    width: 24px !important;
    height: 24px !important;
    margin-bottom: 7px !important;
  }

  .catad-mobile-top > .catad-card .catad-icon svg {
    width: 18px !important;
    height: 18px !important;
  }

  .catad-mobile-top > .catad-card .catad-title {
    font-size: 14px !important;
    margin-bottom: 4px !important;
  }

  .catad-mobile-top > .catad-card .catad-subtitle {
    font-size: 13px !important;
    margin-bottom: 5px !important;
  }

  .catad-mobile-top > .catad-card .catad-desc {
    font-size: 9px !important;
    line-height: 1.45 !important;
  }

  .catad-mobile-top > .catad-card .catad-cta {
    min-width: 64px !important;
    height: 24px !important;
    margin-top: 8px !important;
    font-size: 9px !important;
  }
}

/* =========================================================
   FINAL MIN FIX
   1) 중앙배너 아이콘 숨김
   2) 중앙배너 텍스트 간격만 소폭 보정
   ========================================================= */

.catad-top-desktop .catad-card .catad-icon,
.catad-mobile-top > .catad-card .catad-icon {
  display: none !important;
}

.catad-top-desktop .catad-card > .catad-text {
  padding-top: 24px !important;
}

.catad-top-desktop .catad-card .catad-title {
  margin-top: 0 !important;
}

.catad-mobile-top > .catad-card > .catad-text {
  padding-top: 14px !important;
}

.catad-top-desktop .catad-card .catad-desc br,
.catad-mobile-top > .catad-card .catad-desc br {
  display: block !important;
  margin-top: 4px !important;
  content: '' !important;
}

/* =========================================================
   IMAGE BANNER (catad-image-box / catad-image-card)
   - ad_type = 'image' 일 때 render_category_ad_card 출력
   ========================================================= */

.catad-image-box {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: inherit;
  line-height: 0;
}

.catad-image-box picture,
.catad-image-box img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: inherit;
}

/* 이미지형일 때 텍스트 오버레이 (has-image) */
.catad-text.has-image {
  position: absolute !important;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.55) 0%, transparent 100%);
  min-height: auto !important;
  padding: 18px 14px 14px !important;
  align-items: flex-start !important;
  text-align: left !important;
  border-radius: 0 0 20px 20px !important;
}

/* 이미지형 텍스트 폴백: 이미지 정상이면 숨김, 깨지면 JS가 표시 */
.catad-text-fallback {
  display: none !important;
}
.catad-card.catad-img-broken .catad-text-fallback {
  display: flex !important;
}
.catad-card.catad-img-broken .catad-image-box {
  display: none !important;
}

/* 이미지형 카드 전체 relative 필요 */
.catad-card:has(.catad-image-box) {
  position: relative !important;
  overflow: hidden !important;
}

/* 이미지형: 이미지만 있는 경우 min-height 해제 (상단 배너 등) */
.catad-card:has(.catad-image-box) {
  min-height: 0 !important;
}

/* 사이드 배너 이미지형 — 텍스트 배너와 동일 높이(300px) 유지 */
.catad-side-stack .catad-card:has(.catad-image-box) {
  min-height: 300px !important;
  height: 300px !important;
}
.catad-side-stack .catad-card .catad-image-box {
  height: 100% !important;
  min-height: 300px !important;
}
.catad-side-stack .catad-card .catad-image-box picture,
.catad-side-stack .catad-card .catad-image-box img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: inherit !important;
}

/* 중앙 상단 이미지 배너 — 표준 규격: PC 1200×250px */
.catad-top-desktop .catad-image-box,
.catad-top-desktop .catad-card.has-image {
  max-height: 250px;
  overflow: hidden;
}
.catad-top-desktop .catad-image-box img {
  width: 100%;
  height: 250px;
  max-height: 250px;
  object-fit: cover;
  border-radius: 16px;
}

/* 중앙 서브배너 이미지 — 표준 규격: PC 1200×160px (중앙상단보다 낮은 높이) */
.catad-sub-desktop .catad-image-box img {
  width: 100%;
  height: 160px;
  max-height: 160px;
  object-fit: cover;
  border-radius: 12px;
}
/* #11 FIX: 생활정보 카테고리 상단 배너 — 중앙 상단 배너(catad-top-desktop)와 동일 규격 */
.life-category-top-banner .catad-image-box img {
  width: 100%;
  height: 250px;
  max-height: 250px;
  object-fit: cover;
  border-radius: 16px;
}
.life-category-top-banner .catad-card {
  min-height: 216px !important;
  border-radius: 24px !important;
}
.life-category-top-banner .catad-card > .catad-text {
  min-height: 216px !important;
  padding: 28px 32px 24px !important;
  justify-content: center !important;
}
/* slider-card 텍스트 배너도 동일 규격 */
.life-category-top-banner .slider-card {
  min-height: 216px !important;
  border-radius: 24px !important;
  padding: 30px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
}
.life-category-top-banner .slider-title {
  font-size: 24px !important;
  line-height: 1.2 !important;
  margin-bottom: 8px !important;
  font-weight: 800 !important;
}
.life-category-top-banner .slider-subtitle {
  font-size: 16px !important;
  line-height: 1.3 !important;
  margin-bottom: 10px !important;
  font-weight: 800 !important;
}
.life-category-top-banner .slider-icon {
  width: 42px !important;
  height: 42px !important;
  margin: 0 auto 14px !important;
}
.life-category-top-banner .slider-icon svg {
  width: 30px !important;
  height: 30px !important;
}

/* 모바일: max-height 제한 없이 자연 비율 */
@media (max-width: 991.98px) {
  .catad-top-desktop .catad-image-box img,
  .catad-mobile-top .catad-image-box img {
    max-height: none !important;
    height: auto !important;
    width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    border-radius: 16px !important;
  }
  .catad-top-desktop .catad-image-box,
  .catad-mobile-top .catad-image-box {
    height: auto !important;
    min-height: 0 !important;
    background: transparent !important;
  }

  .catad-mobile-top .catad-card:has(.catad-image-box),
  .catad-mobile-top .catad-card:has(.catad-image-box) .catad-image-box {
    border-radius: 16px !important;
    overflow: hidden !important;
    min-height: 0 !important;
  }

  .catad-mobile-grid .catad-image-box img {
    max-height: none !important;
    height: auto !important;
    width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    aspect-ratio: auto !important;
    background: transparent !important;
  }
  .catad-mobile-grid .catad-image-box {
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
  }
  /* 이미지형 광고 카드: 이미지 비율 자연스럽게, min-height 제거 */
  .catad-mobile-grid .catad-card:has(.catad-image-box) {
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* 모바일 복합형(both) 오버레이: 가로·세로 모두 중앙 */
  .catad-text.has-image {
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 14px 12px !important;
    background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.52) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.28) 100%) !important;
    border-radius: inherit !important;
  }
  .catad-text.has-image .catad-title {
    font-size: 16px !important;
    font-weight: 900 !important;
    margin-bottom: 4px !important;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.4);
  }
  .catad-text.has-image .catad-subtitle {
    font-size: 13px !important;
    font-weight: 700 !important;
    margin-bottom: 6px !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
  }
  .catad-text.has-image .catad-desc {
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
  }
  .catad-text.has-image .catad-cta {
    margin-top: 10px !important;
    background: rgba(255, 255, 255, 0.95) !important;
    color: #0f172a !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    min-width: 90px !important;
    height: 30px !important;
  }

  /* 모바일 광고 유형별 처리:
     - 텍스트형(type='text'): .catad-text (.has-image 없음) — 기본 렌더 그대로 표시
     - 이미지형(type='image'): 텍스트에 .catad-text-fallback 클래스가 붙어있음 → 숨김 (이미지 깨지면 폴백)
     - 복합형(type='both'): .has-image 만 붙고 .catad-text-fallback 없음 → 오버레이 그대로 표시 */
  .catad-text.has-image.catad-text-fallback {
    display: none !important;
  }
  .catad-card.catad-img-broken .catad-text.has-image.catad-text-fallback {
    display: flex !important;
    position: static !important;
    background: transparent !important;
  }

  /* 모바일: 카드에 min-height 주어 이미지·오버레이가 여유롭게 보이도록 */
  .catad-card:has(.catad-image-box) {
    min-height: 300px !important;
    padding: 0 !important;
    background: #0f172a !important; /* 이미지 주변 letterbox 여백 톤 */
    border-radius: 20px !important;
    overflow: hidden !important;
    position: relative !important;
  }
  .catad-card .catad-image-box {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
  }
  .catad-card .catad-image-box picture,
  .catad-card .catad-image-box img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    min-height: 0 !important;
    object-fit: cover !important; /* 이미지가 카드를 꽉 채우도록 */
    object-position: center !important;
    background: transparent !important;
    aspect-ratio: auto !important;
  }
  /* 이미지형(텍스트 없음)은 이미지를 잘리지 않게 contain 유지 */
  .catad-card:has(.catad-text-fallback) .catad-image-box img {
    object-fit: contain !important;
    background: #fff !important;
  }
  .catad-card:has(.catad-text-fallback) {
    background: #fff !important;
  }
}

/* =========================================================
   MOBILE LAYOUT FIX
   - layout-container 안에 catad-mobile-wrap이 flex item이
     되면서 flex 줄 안에 끼는 문제 수정
   ========================================================= */
@media (max-width: 991.98px) {
  /* layout-container를 wrap + column 방향으로 */
  .main-layout .layout-container {
    flex-wrap: wrap !important;
    flex-direction: column !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    gap: 0 !important;
  }

  /* mobile wrap이 가장 위에 오도록 full width */
  .main-layout .layout-container > .catad-mobile-wrap {
    order: -1 !important;
    width: 100% !important;
    flex: 0 0 100% !important;
    display: block !important;
    margin-bottom: 14px !important;
  }

  /* main-content full width */
  .main-layout .layout-container > .main-content,
  .main-layout .layout-container > main {
    width: 100% !important;
    flex: 0 0 100% !important;
    min-width: 0 !important;
  }

  /* left/right aside 숨김 (이중 보증) */
  .main-layout .layout-container > .left-ad,
  .main-layout .layout-container > .right-ad,
  .main-layout .layout-container > aside.left-ad,
  .main-layout .layout-container > aside.right-ad {
    display: none !important;
    width: 0 !important;
    flex: 0 0 0 !important;
    overflow: hidden !important;
  }

  /* ── 모바일 콘텐츠 박스 제거 ──────────────────────────
     구인구직 패턴과 동일하게:
     · layout-container padding: 0
     · main-content padding: 0 12px (mobile.css)
     · 내부 래퍼 박스 스타일 제거 (모든 카테고리 페이지 공통)
  ────────────────────────────────────────────────── */
  .main-layout .main-content .content-wrapper,
  .main-layout main .content-wrapper,
  /* 생활정보 life-board */
  .main-layout .life-front-page .life-board,
  .main-layout.life-front-page .life-board,
  /* 부동산 */
  .main-layout .main-content .properties-board,
  .main-layout .main-content .listing-board,
  /* 보험/금융/상조 */
  .main-layout .main-content .tab-navigation-wrapper,
  /* 공통 inner-card 래퍼 */
  .main-layout .main-content .page-content-box,
  .main-layout .main-content .section-box {
    background: transparent !important;
    border-radius: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-shadow: none !important;
  }

  /* layout-container 0 padding, main-content 12px — 구인구직 패턴 */
  .main-layout .layout-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .main-layout .main-content {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  /* catad-mobile-wrap도 같은 12px 여백으로 통일 */
  .main-layout .layout-container > .catad-mobile-wrap {
    padding-left: 12px !important;
    padding-right: 12px !important;
    box-sizing: border-box !important;
  }
}
