.modal {
    z-index: 9999;
}
.modal-backdrop {
    z-index: 9998;
}

/* ===============================
   1. ÀüÃ¼ ¼½¼Ç
================================ */
.info-section {
	position: relative;
	overflow: hidden;
	min-height: 340px;
}

/* ===============================
   2. ¹è°æ ÀÌ¹ÌÁö (ÁÂ¿ì ÀÌµ¿) ÀÌ¹ÌÁö ¾Ö´Ï¸ÞÀÌ¼Ç ´ã´ç
================================ */
.info-section .bg-image {
	position: absolute;
	inset: -40px; /* ¡Ú ÇÙ½É */
	background: url('/aos/cpd/main_info_bg.jpg') center / cover no-repeat;
	animation: bgMove 20s linear infinite alternate;
	z-index: 0;
}

/* ÁÂ¿ì ÀÌµ¿ */
@keyframes bgMove {
	from { transform: translateX(30px); }
	to   { transform: translateX(-30px); }
}

/* ===============================
   3. ¹è°æ Èå¸² ·¹ÀÌ¾î
================================ */
.info-section .bg-blur {
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.4);
	backdrop-filter: blur(1px);
	-webkit-backdrop-filter: blur(1px);
	z-index: 1;
}

/* ===============================
   4. ÄÜÅÙÃ÷ ¿µ¿ª
================================ */
.info-section .container {
	position: relative;
	z-index: 2;
}

/* ===============================
   5. Ä«µå °øÅë
================================ */
.info-box {
	background: #fff;
	border-radius: 12px;
	padding: 20px;
	display: flex;
	flex-direction: column;
	height: 100%;
	box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

/* Á¦¸ñ */
.info-title {
	text-align: center;
	margin-bottom: 15px;
	font-weight: 600;
}

/* ÀüÈ­¹øÈ£ */
.info-phone {
	text-align: center;
	font-weight: 700;
	margin-bottom: 15px;
}

/* ÇÑ ÁÙ */
.info-line {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
}

/* ¹îÁö */
.info-badge {
	background: #fd6e5e;
	color: #fff;
	border-radius: 20px;
	padding: 4px 10px;
	font-size: 0.9rem;
	min-width: 70px;
	text-align: center;
}

.info-badge.wide {
	min-width: 80px;
}

/* ¾È³» ¹®±¸ */
.info-note {
	margin-top: auto;
	text-align: center;
	color: #555;
}

/* ===============================
   6. ¸ð¹ÙÀÏ ÃÖÀûÈ­
================================ */
@media (max-width: 768px) {
	.info-section .bg-image {
		animation: none;
	}
	.info-section .bg-blur {
		backdrop-filter: blur(1px);
	}
}

.slogan-box {
  background:
    repeating-linear-gradient(
      45deg,
      #F3EFE6,
      #F3EFE6 10px,
      #EFE9DB 10px,
      #EFE9DB 20px
    );
  color: #053170;
  padding: 22px 16px;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
  border-top: 6px solid #053170;
  border-bottom: 4px solid #D8C9A3;
}


.category-badge {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 4px 10px;
	font-size: 0.8rem;
	border-radius: 20px;
	color: #fff;
	font-weight: 600;
	z-index: 2;
	box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

/* »ö»ó ±¸ºÐ */
.cate-all {
	background: #6c757d;
}

.cate-child {
	background: #0d6efd;
}

.cate-teen {
	background: #198754;
}

.cate-youth {
	background: #dc3545;
}

.service-item a.h5 {
	display: -webkit-box;
	-webkit-line-clamp: 2;   /* ÃÖ´ë 2ÁÙ */
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-height: 1.4;
}

.service-item {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 4px 15px rgba(0,0,0,0.06);
}

.service-img {
	position: relative;
}

.service-img img {
	height: 180px;              /* ¡Ú ÀÌ¹ÌÁö ³ôÀÌ °íÁ¤ */
	object-fit: cover;
}

.service-item .rounded-bottom {
	flex: 1;                    /* ¡Ú ÇÏ´Ü ¿µ¿ª ´Ã¸² */
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px !important;
}

/* ================= °øÅë ================= */
.cp-card {
  position: relative;
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e5e7eb;
  box-shadow: 0 6px 20px rgba(0,0,0,0.04);
  overflow: hidden;
}

/* »ó´Ü Æ÷ÀÎÆ® ¶óÀÎ */
.cp-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: linear-gradient(
    90deg,
    #053170 0%,
    #053170 40%,
    #d63a3a 100%
  );
}

/* ================= Çì´õ ================= */
.cp-header {
  padding: 20px 26px 14px;
  font-size: 1.25rem;
  font-weight: 700;
  color: #053170;
  background: transparent;
  border-bottom: none;
}

/* Çì´õ ÇÏ´Ü ÂªÀº ¼± */
.cp-header::after {
  content: '';
  display: block;
  margin-top: 10px;
  width: 36px;
  height: 2px;
  background: #d63a3a;
}

/* + ¹öÆ° */
.cp-plus {
  color: #d63a3a;
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: none;
}

/* ================= °øÁö»çÇ× ================= */
.cp-notice-list {
  padding-bottom: 6px;
}

.cp-notice-item {
  position: relative;
  padding: 16px 90px 16px 46px;
  line-height: 1.45;
  background: #fff;
}

.cp-notice-item + .cp-notice-item {
  border-top: 1px dashed #eee;
}

/* ¿ÞÂÊ Æ÷ÀÎÆ® ¹Ù */
.cp-bar {
  position: absolute;
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 60%;
  background: #d63a3a;
  border-radius: 2px;
}

/* NEW */
.cp-new {
  background: #d63a3a;
  font-size: 0.7rem;
  margin-right: 6px;
}

/* Á¦¸ñ */
.cp-notice-title {
  font-size: 1.02rem;
  font-weight: 600;
  color: #053170;
  text-decoration: none;
}

.cp-notice-item:hover {
  background: #fafafa;
}

.cp-notice-item:hover .cp-notice-title {
  color: #d63a3a;
}

/* ³¯Â¥ */
.cp-date {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8rem;
  background: #053170;
  color: #fff;
  padding: 4px 10px;
  border-radius: 12px;
  opacity: 0;
  transition: 0.2s;
}

.cp-notice-item:hover .cp-date {
  opacity: 1;
}

/* ================= Çà»ç ================= */
.cp-event-card {
  background: linear-gradient(
    180deg,
    #ffffff 0%,
    #fafbff 100%
  );
}

.cp-event-info {
  padding-right: 10px;
}

.cp-event-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #111;
}

.cp-event-desc {
  font-size: 0.9rem;
  color: #666;
  margin-top: 4px;
}

/* ½ÅÃ» ¹öÆ° */
.cp-btn-apply {
  background: #d63a3a;
  color: #fff;
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
}

/* ======================================================
   °øÁö»çÇ× Ä«µå(¿ÞÂÊ Ã¹ Ä«µå) °­Á¦ Å¸°Ù
   - ±×¶óµ¥ÀÌ¼Ç Çì´õ
   - ¿À¸¥ÂÊ '-' Á¦°Å(¿ä¼Ò/°¡»ó¿ä¼Ò ¸ðµÎ)
   - '+' ¿À¸¥ÂÊ Á¤·Ä + hover È¸Àü
====================================================== */
.card:has(.list-group) .card-header {
  background: linear-gradient(135deg, #053170 0%, #0a3d91 60%, #d63a3a 100%) !important;
  color: #fff !important;
  padding: 22px 26px !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  border-bottom: none !important;
  position: relative !important;
}

/* Çì´õ ¾ÈÀÇ ±ÛÀÚ/¸µÅ©/¾ÆÀÌÄÜ Èò»ö °íÁ¤ */
.card:has(.list-group) .card-header * {
  color: #fff !important;
}

/* 3) ¿À¸¥ÂÊ '-' Á¦°Å: (1) °¡»ó¿ä¼Ò·Î ±×¸° °æ¿ì */
.card:has(.list-group) .card-header::after,
.card:has(.list-group) .card-header::before {
  content: none !important;
  display: none !important;
}

/* 3-2) ¿À¸¥ÂÊ '-'°¡ ½ÇÁ¦ ¿ä¼Ò(span/div µî)·Î ÀÖ´Â °æ¿ì:
        ' - ' ¶Ç´Â ±æÀÌ 1~2ÀÎ ¼± Ç¥½Ã ¿ä¼Ò¸¦ ±¤¹üÀ§ÇÏ°Ô ¼û±è */
.card:has(.list-group) .card-header .minus,
.card:has(.list-group) .card-header .line,
.card:has(.list-group) .card-header .hr,
.card:has(.list-group) .card-header .dash,
.card:has(.list-group) .card-header .toggle,
.card:has(.list-group) .card-header [class*="minus"],
.card:has(.list-group) .card-header [class*="line"],
.card:has(.list-group) .card-header [class*="dash"],
.card:has(.list-group) .card-header [class*="hr"] {
  display: none !important;
}

/* 3-3) È¤½Ã '-'°¡ ÅØ½ºÆ®·Î ¹ÚÇôÀÖ´Â °æ¿ì¸¦ ´ëºñÇØ
        Çì´õ ¾È¿¡ ÀÖ´Â ¸¶Áö¸· ÂªÀº ¿ä¼Ò¸¦ ¼û±è(+, Á¦¸ñ Á¦¿Ü) */
.card:has(.list-group) .card-header > *:last-child:not(a):not(.cp-plus):not(.plus) {
  display: none !important;
}

/* 4) + ¹öÆ°À» ¿À¸¥ÂÊÀ¸·Î º¸³»°í hover È¸Àü
   - Å¬·¡½º°¡ cp-plus / plus / ¶Ç´Â aÅÂ±×·Î µé¾î¿Â °æ¿ì±îÁö Ä¿¹ö */
.card:has(.list-group) .card-header .cp-plus,
.card:has(.list-group) .card-header .plus,
.card:has(.list-group) .card-header a.cp-plus,
.card:has(.list-group) .card-header a.plus {
  position: absolute !important;
  right: 18px !important;
  top: 50% !important;
  transform: translateY(-50%) rotate(0deg) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: transform 0.35s ease, opacity 0.2s ease !important;
  opacity: 0.95 !important;
}

.card:has(.list-group) .card-header:hover .cp-plus,
.card:has(.list-group) .card-header:hover .plus,
.card:has(.list-group) .card-header:hover a.cp-plus,
.card:has(.list-group) .card-header:hover a.plus {
  transform: translateY(-50%) rotate(180deg) !important;
  opacity: 1 !important;
}


/* ======================================================
   º»´ç Çà»ç ½ÅÃ» ¹öÆ° ±úÁü ¹æÁö
====================================================== */

/* Çà»ç Ä«µå body°¡ flexÀÏ °æ¿ì ´ëºñ */
.cp-event-card .card-body,
.card .card-body {
  align-items: flex-start; /* ¼¼·Î Áß¾Ó Á¤·Ä ÇØÁ¦ */
}

/* ½ÅÃ» ¹öÆ° °íÁ¤ */
.cp-btn-apply,
.card .btn-apply,
.card .btn-danger {

  flex-shrink: 0;           /* ¾ÐÃà ±ÝÁö */
  align-self: center;       /* ¹öÆ°¸¸ ¼¼·Î Áß¾Ó */
  
  min-width: 64px;          /* ÃÖ¼Ò °¡·Î */
  height: 36px;             /* ³ôÀÌ °íÁ¤ */
  padding: 0 16px;          /* ÁÂ¿ì ¿©¹é */

  border-radius: 999px;     /* pill ¹öÆ° */
  line-height: 36px;        /* ¼¼·Î Áß¾Ó ÅØ½ºÆ® */
  white-space: nowrap;      /* ÁÙ¹Ù²Þ ¹æÁö */

  display: inline-flex;
  align-items: center;
  justify-content: center;
}