@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard-dynamic-subset.min.css");

body * { 
    font-family: "Pretendard";
}

.mo-open {
    display: none;
}

.mo-menu {
    display: none;
    visibility: hidden; /* 평소엔 숨김 */
    transition: visibility 0.3s;
    transform: translateX(100%);
    transition: transform 0.3s ease-out;
}

.mo-menu.is-active {
    visibility: visible;
    transform: translateX(0);
}

.mo-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 24px; /* 150% */
    display: none;
}

.mo-more {
    display:none;
}

.mo-pagination {
    display: none;
}

header .back {
    display: none;
}

.blind {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

hr {
    height: 1px;
    background-color: #DEE1E6;
    border: none;
    margin:0;
}

header {
    max-width: 1440px;
    margin: auto;
    display: flex;
    align-items: center;
    padding-inline: clamp(20px, 7.8472%, 113px);
    height: 80px;
}

.header {
    position: sticky;
    top:0;
    width: 100%;
    border-bottom: solid 1px #F3F4F6;
    background-color: #fff;
    z-index: 150;

}


header .menu {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap:32px;
}

header .menu a {
    font-size: 16px;
    font-weight: 500;;
}

header .menu a.active {
    font-weight: 700;
    color:#34B574;
}

header .menu a:hover {
    font-weight: 700;
    color:#34B574;
    text-decoration: underline;
}

section .container-wrapper {
    max-width: 1440px;
    margin: auto;
    padding-inline: clamp(20px, 7.8472%, 113px);
}

section.main .hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 639px;
}

section.main .hero > li:first-child {
    background: rgba(56, 161, 105, 0.33);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
}

section.main .hero > li:first-child .container {
    max-width: 496px;
    width: 80%;
}

section.main .hero > li:first-child span.badge {
    border-radius: 13px;
    background: #34B574;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px;
    color:#fff;
    padding: 3px 17px;
}

section.main .hero > li:first-child h2 {
    color: #171A1F;
    font-size: 60px;
    font-style: normal;
    font-weight: 800;
    line-height: 78px; /* 130% */
    letter-spacing: -1.5px;
}
section.main .hero > li:first-child h2 span {
    color: #195738;
    vertical-align: baseline;
}
section.main .hero > li:first-child h2 + p {
    font-size: 20px;
    color:#565D6D;
    font-weight: 400;
    line-height: 33px;
    margin-top:32px;
}

section.main .hero > li:first-child ul {
    display: flex;
    margin-top: 32px;
    gap:16px;
}

section.main .hero > li:first-child ul a {
    border-radius: 28px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    padding: 14px 12px;
    font-size:18px;
    font-weight: 500;
}

section.main .hero > li:first-child ul a:hover {
    color:#38A169;
    font-weight: 700;
    background:url(../images/common/ic_arrow_right_green.svg) no-repeat #fff right 12px center;
    padding-right: 36px;
}


section.main .hero > li:last-child {
    background: rgba(56, 161, 105, 0.33);
    display: flex;
    align-items: center;
    flex-direction: row;
    justify-content:center;
}

section.main .hero > li:last-child .float-container {
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.20);
    background: rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(6px);
    padding: 32px;
    width:90%;
}

section.main .hero > li:last-child .float-container h3 {
    font-size: 24px;
    font-weight: 700;
    color:#fff;
    margin-top:80px;
}

section.main .hero > li:last-child .float-container h3 + p {
    font-size: 14px;
    color:#fff;
    font-weight: 400;
    line-height: 23px;    
    opacity: 0.7;
    margin-top: 8px;
}

section.main .splitter {
    background: #34B574;
    box-shadow: 0 2px 4px 0 rgba(23, 26, 31, 0.09), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    margin-top: 96px;
    padding-block: 80px;
}

section.main .splitter .container-wrapper {
    display: flex;
    justify-content: space-between;
}

section.main .splitter .container-wrapper h2 {
    font-size: 36px;
    font-weight: 900;
    color:#fff;   
}

section.main .splitter .container-wrapper h2 + p {
    font-size:20px;
    font-weight: 500;
    color:rgba(255, 255, 255, 0.80);
    margin-top: 8px;
}

section.main .splitter .container-wrapper .img {
    display: flex;
    gap:32px;
    align-items: center;
}

section.main .splitter .container-wrapper .img img {
    border-radius: 50%;
}


section.main .splitter .container-wrapper .img span {
    content: "";
    display: block;
    width: 1px;
    height: 64px;
    background-color: rgba(255,255,255,0.2);
}

section.main .splitter .container-wrapper .img h3 {
    font-size: 36px;
    font-weight: 700;
    color:#fff;
}

section.main .splitter .container-wrapper .img h3 + p {
    font-size:14px;
    font-weight: 500;
    color:#fff;
    opacity: 0.7;
}

section.main .swiper-container h2 {
    font-size:24px;
    font-weight: 700;
    line-height: 32px;
}

section.main .swiper-container .title {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

section.main .swiper-container .title .buttons {
    display: flex;
    gap:8px
}

section.main .swiper-container .s-button-prev { 
    width: 32px;
    height: 32px;
    border-radius: 16px;
    border: 1px solid #DEE1E6;
    background:url(../images/common/ic_arrow_left.svg) no-repeat #fff center;
}

section.main .swiper-container .s-button-next { 
    width: 32px;
    height: 32px;
    border-radius: 16px;
    border: 1px solid #DEE1E6;
    background:url(../images/common/ic_arrow_right.svg) no-repeat #fff center;
}

section.main .swiper-container ul {
    margin-top:32px;
}

section.main .swiper-container .swiper {
    overflow: hidden;
}

section.main .swiper-container li.swiper-slide {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 24px;
    overflow: hidden;
    max-width: 320px;
    flex-shrink: 0;
}

section.main .swiper-container li.swiper-slide .logo {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

section.main .swiper-container li.swiper-slide .logo span {
    font-size:10px;
    font-weight: 500;
    color:#1E2128;
    border-radius: 11px;
    background: #F3F4F6;
    padding: 3px 6px;
    line-height: 16px;
}

section.main .swiper-container li.swiper-slide .logo img {
    object-fit: contain;
    max-height: 64px;
}

section.main .swiper-container li.swiper-slide h2 {
    font-size:18px;
    font-weight: 700;
    line-height: 28px;
    margin-top: 24px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

section.main .swiper-container li.swiper-slide h2 + p {
    margin-top: 8px;
    font-size:14px;
    color:#565D6D;
    line-height: 24px;
    font-weight: 400;   
    padding-bottom: 16px;
    border-bottom: solid 1px #DEE1E6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

section.main .swiper-container li.swiper-slide > a {
    display: block;
    width: 100%;
    color:#34B574;
    font-size:12px;
    font-weight: 500;
    line-height: 16px;
    background: url(../images/common/ic_arrow_right.svg) no-repeat transparent right center;
    margin-top: 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

section.main .swiper-container li.swiper-slide > p {
    margin-top: 16px;
    font-size:12px;
    font-weight: 500;
    line-height: 16px;
}

section.main .univ {
    margin-top: 96px;
}

section.main .company {
    background-color: #FAFAFB;
    padding-block: 96px;
    border-bottom: solid 1px #DEE1E6;
}

section.main-faq {
    max-width: 640px;
    margin: auto;
    padding-top: 128px;
    padding-bottom: 94px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap:16px;
    justify-content: center;
    align-items: center;
}

section.main-faq h2 {
    font-size: 36px;
    font-weight: 900;
}

section.main-faq h2 + p {
   font-size: 18px;;
   color:#565D6D; 
}

section.main-faq .faq-list {
    display: flex;
    flex-direction: column;
    gap:16px;
}

section.main-faq .faq-list > li {
    border-radius: 16px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    box-shadow: 0 2px 4px 0 rgba(23, 26, 31, 0.09), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 24px;
    cursor:pointer;
}

section.main-faq .faq-list > li > a {
    display: flex;
    width: 100%;
    font-size:18px;
    font-weight: 500;
    line-height: 28px;
    background: url(../images/common/ic_arrow_down.svg) no-repeat transparent right center;
}


section.main-faq li.is-expanded > a {
    background-image: url(../images/common/ic_arrow_up.svg);
}

section.main-faq .faq-list > li > a::before {
    content:"Q";
    display: inline-block;
    font-size: 16px;
    font-weight: 700;
    color:#fff;
    width: 32px;
    height: 32px;
    border-radius: 16px;
    padding: 3px 9px 5px 10px;
    background-color: #34B574;
    margin-right: 16px;
}

section.main-faq li a ~ div {
    font-size: 16px;
    color:#565D6D;
    font-weight: 400;
    line-height: 26px;
    
    display: flex;
    margin-left: 48px;
    transition: all 0.3s ease-in-out;
    opacity: 0;
    max-height: 0;
    overflow:hidden;
}

section.main-faq li.is-expanded a ~ div {
    opacity: 1;
    padding-top: 28px;
    max-height: 1500px; /* 충분히 큰 값 */
    transition: all 0.3s ease-in-out;
}

section.main-faq li a ~ div::before {
    content:"A";
    display: block;
    font-size: 14px;
    font-weight: 700;
    color:#565D6D;
    width: 32px;
    height: 32px;
    border-radius: 16px;
    padding: 0px 12px;
    line-height: 32px;
    background-color: #F3F4F6;
    margin-right: 16px;
}

section.main-faq li > div > ul > li {
    margin-bottom:16px;
    list-style-type:disc;
    list-style-position:inside
}

section.main-faq li > div > ul > li:has(p) {
    list-style:none;
}

section.main-faq li > div > ul > li ul {
    margin-top:8px;
    padding-left:32px;
}

section.main-faq li > div > ul > li ul li {
    list-style:circle;
}

section.main-faq li > div > ul > li p {
    margin-bottom:16px;
}

section.main-faq .faq-list  li  ul  a:hover {
    text-decoration:underline;
}

section.main .cal-wrapper {
    margin-top: 64px;
    padding-bottom: 128px;
}

section.main .cal-wrapper div > ul {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap:32px
}

section.main .cal-wrapper h2 + ul.schedule {
    margin-top: 16px;
}
section.main .cal-wrapper .recruit-desc {
    margin-top: 16px;
}

section.sub:has(.breadcrumb) {
    padding-top: 80px;
}

section.sub:has(.tabs) {
    padding-top: 0px;
}
.breadcrumb:has(button) {
    display:flex;
    justify-content:space-between;
    align-items:center
}
.breadcrumb ul {
    display: flex;
    gap:8px;
    align-items: center;
}

.breadcrumb ul li:not(:last-child)::after {
    display: inline-block;
    content: "";
    width: 16px;
    height: 16px;
    background: url(../images/common/ic_arrow_right.svg) no-repeat transparent center;
    margin-left: 8px;
}

.breadcrumb li {
    font-size: 14px;
    color:#565D6D;
    font-weight: 500;
    display: flex;
    align-items: center;
}

section.sub {
    padding-bottom: 132px;
}

section.sub h1 {
    font-size:36px;
    font-weight: 700;
    line-height: 48px;
    letter-spacing: -1.2px;
    margin-top: 16px;
}

section.sub h1 + p {
    color:#565D6D;
    font-size:18px;
    font-weight: 400;
    line-height: 28px;
    margin-top: 24px;
}

section.sub h2 {
    margin-top:96px;
    font-size:30px;
    display: flex;
    align-items: center;
}

section.sub h2 + p,
section.sub .title-wrapper + p  {
    font-size: 16px;
    color:#565D6D;
    line-height: 26px;
    font-weight: 400;
    margin-top: 32px;
}

section.sub h2::before {
    content:"";
    display: inline-block;
    height: 28px;
    width: 6px;
    border-radius: 3px;
    background-color: #34B574;
    margin-right: 16px;
}

section.sub .desc.green {
    border-radius: 16px;
    border: 1px solid rgba(52, 181, 116, 0.10);
    background: #F3FCF7;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding-block: 48px;
    margin-top: 38px;
}

section.sub .desc.green h3 {
    font-size:24px;
    color:#34B574;
    font-weight: 700;
    line-height: 32px;
}

section.sub .desc.green h3 + p {
    font-size:16px;
    font-weight: 400;
    line-height: 26px;
    margin-top: 16px;
}

section.about .compare {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:32px;
    margin-top: 40px;
}

section.about .compare > li {
    border-radius: 10px;
    background: #FFF;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 24px;
}

section.about .compare i.ic_univ  {
    display: block;
    border-radius: 16px;
    width: 48px;
    height: 48px;
    text-indent: -9999px;
    background: url(../images/common/ic_univ.svg) no-repeat transparent center;
    background-color: rgba(52, 181, 116, 0.10);
}

section.about .compare i.ic_comapny  {
    display: block;
    border-radius: 16px;
    width: 48px;
    height: 48px;
    text-indent: -9999px;
    background: url(../images/common/ic_building_purple.svg) no-repeat transparent center;
    background-color: rgba(104, 80, 159, 0.10);
}

section.about .compare h4 {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
    letter-spacing: -0.5px;
    margin-top: 20px;
}

section.about .compare li > ul {
    margin-top:16px;
}

section.about .compare li ul li {
    padding-left: 32px;
    font-size: 14px;
    line-height: 24px;
    font-weight: 400;
    color:#565D6D;
    margin-bottom: 4px;
}

section.about .compare .univ li {
    background: url(../images/common/ic_check_green.svg) no-repeat transparent left top 3px;
}

section.about .compare .company li {
    background: url(../images/common/ic_check_purple.svg) no-repeat transparent left top 3px;
}

section.about ul.gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap:24px;
    margin-top: 40px;
}

section.about ul.gallery li img {
    border-radius: 16px;
    overflow: hidden;
    width: 100%;
    object-fit: cover;
}

section.about .download {
    border-radius: 24px;
    border: 1px solid #DEE1E6;
    background: #FAFAFB;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 48px 66px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 128px;
}

section.about ol {
    margin-top: 48px;
    margin-left: 32px;
    display: flex;
    gap:48px;
    flex-direction: column;
    position: relative;
}

section.about ol::before {
    content: "";
    display: block;
    position: absolute;
    top:12px;
    bottom: 12px;
    left:9px;
    width: 2px;
    background-color: #DEE1E6;
    z-index: -1;
}

section.about ol li {
    display: flex;
    gap:32px;
    align-items: center;
    background: url(../images/common/ic_solid_circle_green.svg) no-repeat transparent left top 4px;
    padding-left: 66px;
}

section.about ol li.done {
    background-image: url(../images/common/ic_circle_green.svg);
}

section.about ol li h4 {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px;
}

section.about ol li p {
    color:#565D6D;
    font-size: 16px;
    line-height: 24px;
    font-weight: 500;   
}

section.about .download h3 {
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
    line-height: 36px; /* 120% */
}

section.about .download a {
    display: flex;
    gap:16px;
    align-items: center;
    font-size: 18px;
    color:#fff;
    font-weight: 500;
    line-height: 28px;
    border-radius: 28px;
    background: #34B574;
    box-shadow: 0 2px 4px 0 rgba(23, 26, 31, 0.09), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 14px 32px;
}
section.about .download a::after {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background: url(../images/common/ic_download_white.svg) no-repeat transparent center;
}

section.sub .title-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 96px;
}

section.sub .title-wrapper h2 {
    margin-top: 0;
}
section.sub .title-wrapper span {
    font-size: 14px;
    font-weight: 500;
    border-radius: 17px;
    border: 1px solid #DEE1E6;
    background: #F3F4F6;
    padding:6px 18px;
    line-height: 22px;
}

section.sub hr {
    margin: 32px 0;
}

section.sub .search-container {
    margin-top: 48px;
    border-radius: 16px;
    border: 1px solid #DEE1E6;
    background: rgba(255, 255, 255, 0.50);
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 32px;
}

section.sub .search-container dl {
    display: grid;
    grid-template-columns: 40px 1fr;
    row-gap: 24px;
    column-gap: 40px;
    align-items: center;
}

section.sub .search-container dl dt {
    font-size:14px;
    font-weight: 700;
    line-height: 20px;
}

section.sub .search-container dl dd { 
    display: flex;
    align-items: stretch;
    gap:16px;
    flex-wrap: wrap;
}

section.sub .search-container dl dd ul {
    display: flex;
    gap:8px;
    flex-wrap: wrap;
}   

section.sub .search-container input[type=text] {
    border-radius: 6px;
    border: 1px solid #DEE1E6;
    padding:12px;
    padding-left: 32px;
    max-width: 586px;
    background: url(../images/common/ic_search.svg) no-repeat #fff left 12px center;
    flex-grow: 1;
}

section.sub .search-container .select-wrapper {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap:12px;
}
section.sub .search-container select {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    padding: 8px 36px 8px 16px;
    background: url(../images/common/ic_arrow_down.svg) no-repeat transparent right 8px center;
}

section.sub .result { 
    margin-top: 48px;
    display: flex;
    justify-content: space-between;

}

section.sub .result p {
    color:#565D6D;
    font-size: 14px;
    line-height: 22px;
}

section.sub .result .order {
    color:#565D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    background: url(../images/common/ic_order.svg) no-repeat transparent left center;
    padding-left: 20px;
}

section.sub .search-container button {
    border-radius: 6px;
    background: #34B574;
    font-size: 14px;
    color:#fff;
    font-weight: 500;
    line-height: 22px; /* 157.143% */
    padding: 12px 32px;
}

section.sub .search-container dl dd label {
    border-radius: 18px;
    border: 1px solid #DEE1E6;
    background: rgba(243, 244, 246, 0.50);
    padding:8px 16px;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 22px;
    position: relative;
    cursor: pointer;
    white-space: nowrap;
}

section.sub .search-container dl dd label:has(input:checked) {
    background-color: #34B574;
    color:#fff;
}

section.sub .search-container dl dd label input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    appearance: none; /* 최신 브라우저용 추가 방어 */
}

section.sub .list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:24px;
    margin-top: 24px;
}
section.sub .list > li {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    padding: 16px 24px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap:24px;
}

section.sub .list > li div.contents {
    min-width:0;
}

section.sub .list > li .logo {
    border-radius: 6px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 48px 48px;
    width: 96px;
    height: 96px;
    margin-top: 8px;
    
}

section.sub .list ol {
    display: flex;
    justify-content: flex-end;
    gap:8px;
}

section.sub .list ol li {
    color:#565D6D;
    font-size:12px;
    font-weight: 400;
    line-height: 20px; /* 166.667% */
    border-radius: 4px;
    background: #F3F4F6;
    padding: 4px 8px;
}

section.sub .list ol li:last-child {
    border-radius: 4px;
    border: 1px solid rgba(52, 181, 116, 0.20);
    background: rgba(52, 181, 116, 0.05);
    color:#34B574;
}

section.sub .list h3 {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px; /* 140% */
    margin-top: 8px;
}

section.sub .list h3 + p {
    color: #565D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    margin-top: 8px;
    white-space: nowrap;  /* 줄바꿈 방지 */
    overflow: hidden;     /* 넘치는 부분 숨김 */
    text-overflow: ellipsis; /* 넘치는 부분에 ... 표시 */
    display: -webkit-box;
    -webkit-line-clamp: 1; /* 보여줄 줄 수 */
    -webkit-box-orient: vertical;
}

section.sub .list p + a {
    color: #565D6D;
    font-size: 12px;
    font-weight: 400;
    line-height: 18px; /* 150% */
    background: url(../images/common/ic_arrow_right.svg) no-repeat transparent right center;
    background-size: 12px 12px;
    padding-right: 16px;
}

section.sub .list p + a:hover {
    font-weight: 700;
    text-decoration: underline;
}

section.sub.recruit {
    background: #F9FAFB;
    box-shadow: 0 3px 6px 0 rgba(18, 15, 40, 0.12);
}


section.sub .search-container.single {
    padding: 24px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap:16px;
}
section.sub .search-container.single input {
    width: 100%;
    max-width: 100%;
}

section.sub .filter-container {
    display: flex;
    justify-content: flex-end;
    gap:16px;
    margin-top: 8px;
}

section.sub .filter-container select {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    padding: 8px 36px 8px 16px;
    background: url(../images/common/ic_arrow_down.svg) no-repeat #F9FAFB right 8px center;
}

.activity-hero {
    background-color: #34B574;
    text-align: center;
    height: 296px;
    display: flex;
    gap:16px;
    flex-direction: column;
    justify-content: center;
}

.activity-hero h1 {
    font-size: 60px;
    font-weight: 700;
    line-height: 60px; /* 100% */
    letter-spacing: -1.5px;
    margin-top: 0;
    color:#fff;
}
.activity-hero h1 + p {
    color:rgba(255,255,255,0.9);
    opacity: 0.9;
    font-size: 20px;
    font-style: normal;
    font-weight: 500;
    line-height: 28px; /* 140% */
    margin-top: 0;
}

section.activity {
    background-color: #FCFCFB;
}

section.activity .tabs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap:clamp(16px, 3.33%, 42px);
    background-color: #fff;
    overflow-y: auto;
    padding-inline: 32px;
}

section.activity .tabs a {
    display: block;
    padding-block: 18px 24px;
    color: #91969C;
    text-align: center;
    font-size: 16px;
    font-weight: 500;
    line-height: 23px; /* 153.333% */
    border-bottom: solid 2px transparent;
    white-space: nowrap;
}

section.activity .tabs a:hover {
    border-bottom: solid 2px #91969C;
}
section.activity .tabs a.active {
    border-bottom: solid 2px #34B574;
    color:#34B574;
}

section.activity .breadcrumb {
    margin-top: 24px;
}

section.activity .double-layer:has(.right) {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap:42px;
}

section.activity .double-layer:has(.right) .pagination {
    grid-column: 1 / -1;
}

section.activity .result {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

section.activity .result p {
    color: #91969C;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px; /* 157.143% */
}

section.activity .result p span {
    font-weight: 700;
    color:#000;
}

section.activity .result .filter-container {
    margin-top: 0;
}

section.activity .activity-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap:32px;
    margin-top: 32px;
}

section.activity .activity-list.second-type {
    grid-template-columns: repeat(3, 1fr);
}

section.activity .activity-list > li {
    border-radius: 14px;
    border: 1px solid rgba(244, 245, 246, 0.60);
    background: #FFF;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    padding: 0;
    overflow: hidden;
}
section.activity .activity-list > li .content {
    padding: 20px;
}

section.activity .activity-list > li .content p.tags {
    display: flex;
    align-items: center;
    gap:8px;
}

section.activity .activity-list > li .content p.tags span {
    border-radius: 10px;
    border: 1px solid rgba(244, 245, 246, 0.50);
    background: #F9FAFA;
    padding: 5px 12px 5px 10px;
    font-size: 12px;
    font-weight: 500;
    line-height: 16px; /* 133.333% */
}

section.activity .activity-list > li .content p.tags span.month {
    color: #91969C;
}

section.activity .activity-list > li .content h3 {
    font-size: 18px;
    font-weight: 700;
    line-height: 25px; /* 138.889% */
    margin-top: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;    /* 영문/숫자 혼용 시 줄바꿈 최적화 */
}

section.activity .activity-list > li .content ol li {
    color: #91969C;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    padding-left: 24px;
    background-repeat: no-repeat;
    background-position: center left;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-all;    /* 영문/숫자 혼용 시 줄바꿈 최적화 */

}

section.activity .activity-list > li .content ol {
    margin-top: 18px;
}

section.activity .activity-list > li .content ol li:nth-child(1) {
    background-image: url(../images/common/ic_building_gray.svg);
    margin-bottom: 8px;
}

section.activity .activity-list > li .content ol li:nth-child(2) {
    background-image: url(../images/common/ic_cal_gray.svg);
}

section.activity .activity-list li img {
    aspect-ratio:  4 / 3;
    object-fit: cover;
    display: block;
    width: 100%;
}

section.activity .double-layer .right {
    padding-top: 48px;
}

section.activity .double-layer .right > ul > li > h4 {
    font-size: 16px;
    font-weight: 700;
    line-height: 24px; /* 150% */
}

section.activity .double-layer .right h4.cal {
    background: url(../images/common/ic_cal_green.svg) no-repeat transparent left center;
    padding-left: 28px;
}


section.activity .double-layer .right > ul > li:nth-child(2) h4 {
    margin-top: 32px;
}

section.activity .double-layer .right ul ul {
    margin-top: 16px;
}

ul.schedule li {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    padding: 16px;
    margin-bottom: 12px;
}

ul.schedule li.item-hidden {
    display: none; /* JS에서 애니메이션 처리를 위해 초기엔 숨김 */
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.4s ease;
}

/* 슬라이드 효과를 위해 display를 block으로 바꾸고 애니메이션 적용 */
ul.schedule li.item-show {
    display: list-item !important; /* 다시 보이게 설정 */
    animation: slideDown 0.4s forwards;
}

ul.schedule li .date {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

ul.schedule li .date span:first-of-type {
    color: #34B574;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px; /* 133.333% */
}

ul.schedule li .date span.tag {
    font-size: 10px;
    font-weight: 500;
    line-height: 16px; /* 160% */
    border-radius: 9px;
    background: #F3F4F6;
    padding: 1px 6px;
}

ul.schedule li h5 {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    margin-top: 8px;
}

button.show-schedule {
    display: block;
    width: 100%;
    border-radius: 6px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    padding-block: 8px;
    text-align: center;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px; /* 166.667% */
    margin-top: 16px;
}

.recruit-desc {
    border-radius: 16px;
    border: 1px solid rgba(52, 181, 116, 0.20);
    background: #F6F6F6;
    padding: 24px;
    margin-top: 32px;
}

.recruit-desc h3 {
    font-size: 16px;
    font-weight: 700;
    line-height: 24px; /* 150% */
}

.recruit-desc h3 + p {
    color: rgba(25, 25, 31, 0.80);
    font-size: 12px;
    font-weight: 400;
    line-height: 20px; /* 166.667% */
    margin-top: 6px;
}

.recruit-desc a {
    display: block;
    margin-top: 8px;
    width: 100%;
    border-radius: 6px;
    background: #34B574;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px; 
    text-align:center;
    padding-block: 12px;
}

section.sub table.recruit {
    border-radius: 10px;
    border: 1px solid #F3F4F6;
    background: #FFF;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    overflow: hidden;
    width: 100%;
    margin-top: 24px;
}

section.sub table.recruit th {
    padding: 16px 32px;
    font-size:12px;
    font-weight: 500;
    line-height: 16px;
    background: rgba(243, 244, 246, 0.50);
    color:#555D6D;
}

section.sub table.recruit td {
    padding: 16px 28px;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    color:#565D6D;
    border-bottom: solid 1px #F3F4F6;
    text-align: center;
}

section.sub table.recruit td:nth-child(2) {
    text-align: left;
}

section.sub table.recruit td:last-of-type {
    white-space: nowrap;
}

section.sub table.recruit .recruit-ing {
    border-radius: 11px;
    border: 1px solid rgba(52, 181, 116, 0.20);
    background: rgba(52, 181, 116, 0.10);
    padding: 3px 12px;
    color: #34B574;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 16px; /* 133.333% */
}

section.sub table.recruit .recruit-pre {
    border-radius: 11px;
    border: 1px solid rgba(104, 80, 159, 0.20);
    background: rgba(104, 80, 159, 0.10);    padding: 3px 12px;
    color: #68509F;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 16px; /* 133.333% */
    white-space: nowrap;
}

section.sub table.recruit .recruit-done {
    border-radius: 11px;
    border: 1px solid #F3F4F6;
    background: #F3F4F6;
    padding: 3px 12px;
    color: #555D6D;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 16px; /* 133.333% */
    white-space: nowrap;
}

section.recruit .desc {
    border-radius: 12px;
    border: 1px solid #F3F4F6;
    background: #FFF;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    margin-top: 116px;
    padding: 24px;
}

section.recruit .desc h4 {
    font-size: 18px;
    font-weight: 500;
    line-height: 28px; /* 155.556% */
}

section.recruit .desc h4 + p {
    color: #555D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 23px; /* 164.286% */
}

section.recruit .recruit-info-wrapper .recruit-ing {
    display: inline-block;
    border-radius: 15px;
    border: 1px solid rgba(52, 181, 116, 0.20);
    background: rgba(52, 181, 116, 0.10);
    padding: 5px 8px;
    padding-left: 28px;
    color: #34B574;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    background: url(../images/common/ic_solid_circle_green_02.svg) no-repeat rgba(52, 181, 116, 0.10) center left 12px;
    margin-top: 24px;
}

section.recruit .recruit-info-wrapper .recruit-pre {
    display: inline-block;
    border-radius: 15px;
    border: 1px solid rgba(104, 80, 159, 0.20);
    background: rgba(104, 80, 159, 0.10);
    padding: 5px 8px;
    color: #68509F;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    margin-top: 24px;
}

section.recruit .recruit-info-wrapper .recruit-done {
    display: inline-block;
    border-radius: 15px;
    background: rgba(86, 93, 109, 0.10);
    padding: 5px 8px;
    color: #555D6D;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    margin-top: 24px;
}

section.recruit .info {
    margin-top: 24px;
    display: flex;
    gap:16px;
    align-items: center;
}

section.recruit .info li {
    color: #555D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    background-repeat: no-repeat;
    padding-left: 24px;
    background-position: center left;
}

section.recruit .info li:nth-child(1) {
    background-image: url(../images/common/ic_user_gray.svg);
}

section.recruit .info li:nth-child(2) {
    background-image: url(../images/common/ic_cal_gray.svg);
}

section.recruit .info li:nth-child(3) {
    background-image: url(../images/common/ic_info_gray.svg);
}

section.recruit .summary {
    margin-top: 72px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap:32px;
    align-items: stretch;
}

section.recruit .summary .left {
    border-radius: 14px;
    border: 1px solid rgba(243, 244, 246, 0.50);
    background: #FFF;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    padding: 32px;
}

section.recruit .summary .right {
    border-radius: 14px;
    border: 1px solid rgba(243, 244, 246, 0.50);
    background: #FFF;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    padding: 32px;
}

section.recruit .summary .left dt {
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 28px; /* 140% */
    padding-left: 36px;
    background-repeat: no-repeat;
    background-position: center left;
}

section.recruit .summary .left dl {
    border-bottom: solid 1px #F3F4F6;
    padding-block: 24px 16px;
}

section.recruit .summary .left dl:first-child {
    padding-top: 0;
}

section.recruit .summary .left dl:last-child {
    border-bottom: none;
    padding-bottom: 0;
}


section.recruit .summary .left dl:nth-child(1) dt {
    background-image: url(../images/common/ic_check_green.svg);
}

section.recruit .summary .left dl:nth-child(2) dt {
    background-image: url(../images/common/ic_user.svg);
}

section.recruit .summary .left dl:nth-child(3) dt {
    background-image: url(../images/common/ic_phone_green.svg);
}

section.recruit .summary .left dl dd {
    color: #555D6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px; /* 162.5% */
    margin-top: 16px;
    height: 52px;
}

section.recruit .summary .right h4 {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px; /* 140% */
    background: url(../images/common/ic_cal_green.svg) no-repeat transparent center left;
    padding-left: 36px;
}

section.recruit .summary .right dl {
    display: flex;
    justify-content: space-between;
    align-items: center;
    grid-template-columns: auto 1fr;
    gap:16px;
    border-radius: 12px;
    border: 1px solid #F3F4F6;
    background: #F9FAFB;
    padding: 16px;
    padding-right: 8px;
    margin-top: 16px;
}

section.recruit .summary .right dl:first-child {
    margin-top: 24px;
}

section.recruit .summary .right dl dt {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px; /* 150% */
}

section.recruit .summary .right dl dd {
    color: #555D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 20px; /* 142.857% */
    text-align: right;
}

section.recruit .info-desc {
    margin-top: 48px;
    border-radius: 14px;
    border: 1px solid rgba(104, 80, 159, 0.20);
    background: #fff;
    padding: 32px;
}

section.recruit .info-desc h4 {
    font-size: 20px;
    font-weight: 700;
    line-height: 28px; /* 140% */
    padding-left: 36px;
    background: url(../images/common/ic_info.svg) no-repeat transparent center left;
}

section.recruit .info-desc h4 + p {
    margin-top: 16px;
    color: #555D6D;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px; /* 162.5% */
}

section.recruit .contents {
    margin-top: 100px;
}

section.recruit .attachment {
    margin-top: 128px;
}

section.recruit .attachment h4 {
    font-size: 18px;
    font-weight: 700;
    line-height: 28px; /* 155.556% */
    padding-left: 28px;
    background: url(../images/common/ic_document.svg) no-repeat transparent center left;
}

section.recruit .attachment h4 span {
    color: #34B574;
}

section.recruit .attachment ol {
    border-radius: 12px;
    border: 1px solid #F3F4F6;
    background: #FFF;
    overflow: hidden;
    margin-top: 16px;
}

section.recruit .attachment ol li {
    padding: 24px 52px;
    background: url(../images/common/ic_document.svg) no-repeat transparent center left 16px;
    border-bottom: solid 1px #F3F4F6;
}

section.recruit .attachment ol li:last-child {
    border-bottom: none;
}

section.recruit .attachment ol li a {
    display: block;
    width: 100%;
    background: url(../images/common/ic_download.svg) no-repeat transparent right center;
}

section.recruit .attachment ol li a:hover {
    text-decoration: underline;
}

section.recruit .buttons.center {
    border-top:solid 1px #F3F4F6;
    margin-top: 64px;
    display: flex;
    justify-content: center;
    gap:16px;
    padding-block: 50px 80px;
}

section.recruit .buttons.center a {
    padding:12px 28px;
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    font-size: 16px;
    font-weight: 500;
    line-height: 26px; /* 162.5% */
}

section.recruit .buttons.center a.white {
    background: #F9FAFB;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
}

section.recruit .board-navi li {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap:32px;
    align-items: center;
    border-top:solid 1px #F3F4F6;
    padding-block: 20px;
}

section.recruit .board-navi li span:first-child {
    color: #555D6D;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    padding-left: 24px;
}

section.recruit .board-navi li span:last-child {
    color: #555D6D;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
}

section.recruit .board-navi li span.prev {
    background: url(../images/common/ic_arrow_up.svg) no-repeat transparent center left;
}

section.recruit .board-navi li span.next {
    background: url(../images/common/ic_arrow_down.svg) no-repeat transparent center left;
}

section.recruit .board-navi li a {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px; /* 150% */
}

section.recruit .board-navi li a:hover {
    text-decoration: underline;
}

section.recruit .buttons.center a.green {
    background: #34B574;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.07), 0 2px 4px 0 rgba(0, 0, 0, 0.05);
    color:#fff;
    font-weight: 700;
}


section.sub .pagination {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 80px;
    gap:8px;
}

section.sub .pagination a {
    display: block;
    width: 36px;
    height: 36px;
    text-align: center;
    line-height: 36px;
    border-radius: 6px;
    border:solid 1px transparent;
}

section.sub .pagination a:hover {
    border: 1px solid #565D6D;
}

section.sub .pagination a.active {
    background: #34B574;
    color:#fff;
}

section.sub .pagination .first a {
    text-indent: -9999px;
    border-radius: 6px;
    border: 1px solid #565D6D;
    background: url(../images/common/ic_arrow_first.svg) no-repeat transparent center;
}

section.sub .pagination .end a {
    text-indent: -9999px;
    border-radius: 6px;
    border: 1px solid #565D6D;
    background: url(../images/common/ic_arrow_end.svg) no-repeat transparent center;
}


section.sub .pagination .prev a {
    text-indent: -9999px;
    border-radius: 6px;
    border: 1px solid #565D6D;
    background: url(../images/common/ic_arrow_left.svg) no-repeat transparent center;
}


section.sub .pagination .next a {
    text-indent: -9999px;
    border-radius: 6px;
    border: 1px solid #565D6D;
    background: url(../images/common/ic_arrow_right.svg) no-repeat transparent center;
}

section.float-activity {
    position: fixed;
    width: 96%;
    max-width: 1024px;
    top:50%;
    left:50%;
    transform: translate(-50%, -50%);
    border-radius: 14px;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 20px 25px 0 rgba(0, 0, 0, 0.08);
    overflow: hidden;
    
    /* 애니메이션 초기 상태 */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
    z-index: 300;
}

/* 2. 활성화되었을 때 상태 */
section.float-activity.is-active {
    opacity: 1;
    visibility: visible;
}

section.float-activity .content-container {
    position: relative;
    height: 80vh;
    max-height: 842px;
    overflow-y: overlay; 
    background-color: #fff;
}

/* 스크롤바 전체 영역 */
section.float-activity .content-container::-webkit-scrollbar {
    width: 10px; /* 스크롤바 너비 */
    display: block; /* 강제 표시 */
    background-color: transparent; /* 트랙 전체 투명 */
}

/* 스크롤바 트랙 (바탕) */
section.float-activity .content-container::-webkit-scrollbar-track {
    background: transparent !important; /* 배경을 투명하게 해서 border-radius 강조 */
}

/* 스크롤바 막대 (Thumb) */
section.float-activity .content-container::-webkit-scrollbar-thumb {
    /* 막대 색상 */
    background-color: rgba(0, 0, 0, 0.2); 
    border-radius: 10px;

    /* [중요] 투명한 border를 주면 이것이 마치 '마진'처럼 작동합니다 */
    /* 오른쪽(right) 마진을 주려면 border의 두께를 조절하세요 */
    border: 4px solid transparent;
    
    /* border를 제외한 영역에만 색상을 채우도록 설정 */
    background-clip: padding-box;
}

section.float-activity .content-container::-webkit-scrollbar-thumb:hover {
    background-color: rgba(0, 0, 0, 0.4);
}

section.float-activity .content-container .close {
    position: absolute;
    top:24px;
    right: 24px;
    display: block;
    height: 40px;
    width: 40px;
    text-indent: -9999px;
    border-radius: 20px;
    background: url(../images/common/ic_close.svg) no-repeat rgba(0, 0, 0, 0.40) center;
    backdrop-filter: blur(2px);
}

section.float-activity .head {
    background-repeat: no-repeat;
    background-size: cover;
    background-color: linear-gradient(0deg, rgba(0, 0, 0, 0.80) 0%, rgba(0, 0, 0, 0.40) 50%, rgba(0, 0, 0, 0.00) 100%);
    height: 320px;
    display: flex;
    flex-direction: column;
    gap:16px;
    justify-content: flex-end;
    padding: 40px;
}

section.float-activity .head p.tags {
    display: flex;
    gap:8px;
}

section.float-activity .head p.tags span {
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    padding: 5px 10px 5px 13px;
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.30);
    background: rgba(255, 255, 255, 0.20);
    backdrop-filter: blur(6px);
    color:#fff;
}

section.float-activity .head h2 {
    font-size: 36px;
    color:#fff;
    font-weight: 700;
    line-height: 40px; /* 111.111% */
    letter-spacing: -0.9px;
}

section.float-activity .tabs {
    border-bottom: solid 1px #f4f5f6;
    display: flex;
    align-items: center;
    gap:32px;
    padding-left: 40px;
    position: sticky;
    top:0;
    background-color: #fff;
}

section.float-activity .tabs li a {
    color: #91969C;
    font-size: 16px;
    font-weight: 500;
    line-height: 24px; /* 150% */
    display: block;
    padding-block: 32px 18px;
    border-bottom: solid 2px transparent;
}

section.float-activity .tabs li a.active {
    color:#34B574;
    border-bottom: solid 2px #34B574;
}

section.float-activity .tabs li a:hover {
    border-bottom: solid 2px #91969C;
}

section.float-activity .summary {
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr ;
    gap:16px;
}

section.float-activity .summary dl {
    padding: 24px;
    border-radius: 14px;
    background: #F9FAFA;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 2px 4px 0 rgba(0, 0, 0, 0.06);
}

section.float-activity .summary dt {
    color: #91969C;
    font-size: 14px;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
}

section.float-activity .summary dd {
    font-size: 16px;
    font-weight: 500;
    line-height: 24px; /* 150% */
    margin-top: 4px;
}

section.float-activity h3 {
    margin-top: 8px;
    font-size: 18px;
    font-weight: 700;
    line-height: 28px; /* 155.556% */
    margin-inline: 40px;
}

section.float-activity h4 {
    font-size: 16px;
    font-weight: 400;
    line-height: 26px; /* 162.5% */
    margin-top: 16px;
    margin-inline: 40px;
}

section.float-activity .content {
    padding: 8px 40px;
    margin-bottom: 40px;
    color: #91969C;
    font-size: 16px;
    font-weight: 400;
    line-height: 26px;
}

section.float-activity #schedule {
    margin-top:80px;
}

section.float-activity .schedule {
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
    margin-bottom:16px;
    padding:16px;
    margin-inline:40px;
}

section.float-activity .schedule:first-of-type {
    margin-top:28px;
}

section.float-activity .schedule dt {
    color: #34B574;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px; /* 133.333% */
}

section.float-activity .schedule dd {
    color:#000;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    margin-top:8px;
}

section.float-activity .share {
    display:flex;
    justify-content:center;
    align-items:center;
    margin:auto;
    margin-top:50px;
    margin-bottom:50px;
    color: #FFF;
    text-align: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 26px; /* 162.5% */
    width:150px;
    height:48px;
    gap:16px;
    border-radius: 24px;
    background: #34B574;
}

section.float-activity .share:before {
    content:"";
    display:block;
    width:16px;
    height:16px;
    background:url(../images/common/ic_share_white.svg) no-repeat transparent center;
}


section.float-info {
    position: fixed;
    width: 96%;
    max-width: 580px;
    top:50%;
    left:50%;
    transform: translate(-50%, -50%);
    border-radius: 14px;
    box-shadow: 0 0 0 0 rgba(23, 26, 31, 0.00), 0 20px 25px 0 rgba(0, 0, 0, 0.08);
    overflow: hidden;
    /* 애니메이션 초기 상태 */
    opacity: 0;
    visibility:hidden;
    transition: opacity 0.3s ease, visibility 0.3s;
    z-index: 300;
}

/* 2. 활성화되었을 때 상태 */
section.float-info.is-active {
    opacity: 1;
    visibility: visible;
}

section.float-info .content-container {
    background-color: #fff;
    padding: 24px;
}

section.float-info .content-container .logo {
    display: grid;
    grid-template-columns: 96px 1fr auto;
    gap:20px;
    align-items: flex-start;
}

section.float-info .content-container .logo .img {
    width: 100%;
    aspect-ratio: 1;
    border-radius: 6px;
    border: 1px solid #DEE1E6;
    padding: 24px;
}

section.float-info .content-container .title-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;

}
section.float-info .content-container h3 {
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 28px; /* 140% */
    display:flex;
    align-items:center;
    gap:16px;
}

section.float-info .content-container h3 + p {
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 20px; /* 142.857% */
    margin-top: 4px;
}

section.float-info .content-container .tags {
    display: flex;
    flex-wrap: wrap;
    gap:8px;
    margin-top: 12px;
}

section.float-info .content-container .tags span {
    color: #565D6D;
    font-size: 12px;
    font-weight: 400;
    line-height: 20px; /* 166.667% */
    border-radius: 4px;
    background: #F3F4F6;
    padding:2px 8px;
}

section.float-info .content-container .tags span.category {
    border-radius: 4px;
    border: 1px solid rgba(52, 181, 116, 0.20);
    background: rgba(52, 181, 116, 0.05);
    color: #34B574;
}

section.float-info .content-container .close {
    display: block;
    width: 24px;
    height: 24px;
    text-indent: -9999px;
    background: url(../images/common/ic_close_black.svg) no-repeat transparent center;
}

section.float-info .content-container h4 {
    margin-top: 24px;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px; /* 153.846% */
}

section.float-info .content-container h4 + p {
    color: #565D6D;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px; /* 157.143% */
    margin-top: 6px;
}

section.float-info .content-container hr {
    margin-top: 32px;
}

section.float-info .content-container h5 {
    color: rgba(23, 26, 31, 0.60);
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 18px; /* 150% */
    margin-top: 24px;
}

section.float-info .content-container .channels {
    display: flex;
    justify-content: space-between;
    align-items:center;
    margin-top: 8px;
}

section.float-info .content-container .channels ul {
    display: flex;
    gap:8px;
}

section.float-info .content-container .channels ul a {
    color: #565D6D;
    font-size: 12px;
    font-weight: 500;
    line-height: 20px; /* 166.667% */
    border-radius: 4px;
    background: #F3F4F6;
    padding: 5px 10px;
}

section.float-info .content-container .channels ul a:hover {
    color:#F3F4F6;
    background-color: #565D6D;
}

section.float-info .content-container .channels > a {
    color: #565D6D;
    font-size: 13px;
    font-weight: 500;
    line-height: 22px; /* 169.231% */
    padding-right: 24px;
    background: url(../images/common/ic_arrow_right_gray.svg) no-repeat transparent right center;
}

section.float-info .content-container .channels > a:hover {
    text-decoration: underline;
}


footer {
    border-top: solid 1px #DEE1E6;
    background-color: #FAFAFB;
    padding-top: 46px;
    padding-bottom: 64px;
}

footer .container {
    max-width: 1440px;
    margin: auto;
    padding-inline: clamp(16px, 7.8472%, 113px);
}
footer .container:has(.left) { 
    display: grid;
    grid-template-columns: 1fr 1fr;
}

footer .container .left p {
    font-size: 14px;
    color: #565D6D;
    line-height: 22px;
    margin-top: 8px;
}

footer .container .left a {
    display: block;
    text-indent: -9999px;
    background-repeat: no-repeat;
    background-position: center;
    width: 40px;
    height: 40px;
}

footer .container .left .sns {
    display: flex;
    gap:10px;
}
footer .container .left a.instagram {
    background-image: url(../images/common/ic_insta.svg);
}

footer .container .left a.youtube {
    background-image: url(../images/common/ic_youtube.svg);
}

footer .container .left a.facebook {
    background-image: url(../images/common/ic_fb.svg);
}

footer .container .right > ul { 
    display: flex;
    justify-content: flex-end;
    gap: clamp(16px, 7.7vw, 112px);
}

footer .container .right > ul h4 {
    font-size:18px;
    font-weight: 700;
}

footer .container .right > ul > ul {
    margin-top: 18px;
}

footer .container .right > ul a {
    font-size: 14px;
    color:#565D6D;
    font-weight: 400;
    line-height: 22px;
}

footer .container .right > ul .support a.tel {
    padding-left: 24px;
    display:block;
}

footer .container .right > ul .support a.tel:first-of-type {
    background: url(../images/common/ic_phone.svg) no-repeat transparent left center;
}

footer .container .right > ul .support a.mail {
    background: url(../images/common/ic_mail.svg) no-repeat transparent left center;
    padding-left: 24px;
}

footer .container .right > ul .support li:last-of-type a {
    font-weight: 700;
}

footer .container .right > ul .notice h5 a {
    color:#171A1F;
    font-weight: 500;
}

footer .container .right > ul .notice h5 + p {
    font-size: 12px;
    color:#565D6D;
    margin-top: 4px;
    line-height: 6px;
}

footer .container .right > ul .notice li:not(:first-child) {
    margin-top: 12px;
    border-top: solid 1px #DEE1E6;
}

footer hr {
    margin-top: 64px;
}

footer .container .copyright * {
    font-size: 12px;
    color:#565D6D;
    font-weight: 400;
}

footer .container .copyright ul {
    margin-top: 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

footer .container .copyright ul li:last-child {
    display: flex;
    gap:8px;
}

footer .container .copyright ul a:hover {
    text-decoration: underline;
}

.txt-center {text-align: center;}


/* Dim 레이어 기본 스타일 */
.dim-layer {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 99; /* 콘텐츠보다는 아래 */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s;
}

/* 활성화 시 */
.dim-layer.is-active {
    opacity: 1;
    visibility: visible;
}


/* 달력 */
.calendar-card {
    width: 100%;
    border-radius: 10px;
    border: 1px solid #DEE1E6;
    background: #FFF;
    box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);  
    margin-top: 16px;
    padding: 16px;
}

.calendar-card .head {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.calendar-card .head .current-date-display {
    font-size: 14px;
    font-weight: 700;
    line-height: 20px; 
}

.calendar-card .head .nav-buttons button {
    display: inline-block;
    width: 24px;
    height: 24px;
    background-repeat: no-repeat;
    background-position: center;
    text-indent: -9999px;
}

.calendar-card .head .nav-buttons #prevMonth {
    background-image: url(../images/common/ic_arrow_left.svg);
}

.calendar-card .head .nav-buttons #nextMonth {
    background-image: url(../images/common/ic_arrow_right.svg);
}

  
/* 캘린더 내부 정렬 */
.flatpickr-calendar {
box-shadow: none;
border: none;
margin-top: 16px;
width: 100%;
}

.flatpickr-months,
.flatpickr-month {
display: none !important;
}

.flatpickr-weekdays {
border-bottom: solid 1px #DEE1E6;
}
span.flatpickr-weekday {
color: #565D6D;
text-align: center;
font-size: 10px;
font-weight: 500;
line-height: 15px; /* 150% */
}

.flatpickr-days,
.dayContainer
{
width: 100% !important;
min-width: 100% !important;
max-width: 100% !important;
}

.flatpickr-day {
    font-size: 11px;
    font-weight: 400;
    line-height: 17px;
    height: 24px;
    padding: 4px 12px;
    max-width: 14.2857143%;
}

/* 오늘 날짜 (진한 초록) */
.flatpickr-day.today {
background: #34b37d; 
color: #fff;
border-radius: 12px;
border:none;
box-shadow: 0 1px 2.5px 0 rgba(23, 26, 31, 0.07), 0 0 2px 0 rgba(23, 26, 31, 0.08);
}

/* 행사 있는 날 (연한 초록) */
.has-event {
background: #dff2e9 !important;
color: #34b37d !important;
border-radius: 12px !important;
}

/* 하단 범례 */
.calendar-legend {
margin-top: 20px;
padding-top: 8px;
border-top: 1px solid #f0f0f0;
display: flex;
gap: 15px;
color: #565D6D;
font-size: 12px;
font-weight: 400;
line-height: 15px; /* 150% */
}

.dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-right: 5px;
}
.dot.today { background: #34b37d; }
.dot.event { background: #dff2e9; }

/* 토스트 기본 스타일 */
.toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 12px 24px;
  border-radius: 30px;
  font-size: 14px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  z-index: 9999;
}

/* 토스트가 활성화되었을 때 */
.toast.show {
  opacity: 1;
  visibility: visible;
}


@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
        max-height: 0;
    }
    to {
        opacity: 1;
        transform: translateY(0);
        max-height: 100px; /* 아이템 높이에 맞춰 적절히 조절 */
    }
}