@charset "UTF-8";
/* 기본 스타일 */
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    /* color: #333; */
    font-family: sans-serif;
    /* outline: 1px solid green; */
}
html{font-size: calc(10px + 0.3vw);}
a{text-decoration: none; color: #333;}
img{vertical-align: top;}
ul, li{list-style: none;}
:root{
    --accent: rgb(18, 94, 165); ;
    --white: #ffffff;
}
/* 와이어프레임 */
.header {
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    padding: 10px 0;
    position: fixed; /* 상단 고정 */
    width: 100%;
    top: 0;
    left: 0;
    z-index: 1000; /* 다른 요소 위에 오도록 */
}
.header_blank{height: 100px;}

.header_container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex; /* 자식 요소들을 가로로 배치 */
    justify-content: space-evenly;
    align-items: center; /* 세로 가운데 정렬 */
}
.logo{padding: 10px;}

/* --- PC 메뉴 스타일 --- */
/* --- PC 메뉴 스타일 --- */
.nav-pc{padding: 10px;}
.nav-pc ul {display: flex;}

.nav-pc li:not(:first-child) {margin-left: 30px;}

.nav-pc a {
    text-decoration: none;
    color: #555;
    font-size: 1.4rem;
    font-weight: bold;
    transition: all 0.2s ease;
}

.nav-pc a:hover {
    color: #007bff;
    font-weight: bold;
}

/* --- 햄버거 아이콘 --- */
.hamburger-icon {
    display: none; /* <-- 여기는 기본적으로 숨김! (PC에서 안 보임) */
    cursor: pointer;
    width: 30px;
    height: 20px;
    position: relative;
    z-index: 9999;
    /* 아이콘 모양 만들기 위한 flex 속성은 아래 @media 안에만 있어야 해! */
    flex-direction: column; /* 이건 아이콘 모양 만들 때 필요한 거니까 남겨두자 */
    justify-content: space-between; /* 이것도 아이콘 모양용 */
}

.hamburger-icon span {
    display: block;
    width: 100%;
    height: 3px;
    background-color: #333;
    transition: all 0.3s ease-in-out;
}

/* --- 모바일 메뉴 (기본 숨김) --- */
.nav-mobile {
    margin: 0;
    padding: 0;
    /* display: none; 기본적으로 숨김 */
    visibility: hidden;
    position: fixed; /* 화면 전체를 덮도록 고정 */
    left: 0;
    width: 100%;
    height: calc(100vh - 60px); /* 헤더 제외한 나머지 높이 */
    background-color: #f8f8f8e2;
    overflow-y: auto; /* 내용이 길어지면 스크롤 */
    z-index: 9998; /* 헤더 아래, 본문 위 */
    transition: transform 0.3s ease-in-out, visibility 0.3s;
    transform: translateX(100%); /* 오른쪽 화면 밖으로 숨김 */
}

.nav-mobile.active { /* 'active' 클래스가 붙으면 */
    /* display: block; 메뉴 보임 */
    visibility: visible;
    transform: translateX(0); /* 원래 위치로 이동 (화면 안으로) */
}
.nav-mobile li {
    border-bottom: 1px solid #ddd;
}
body.nav-open {
    overflow: hidden;
    height: 100%;
    touch-action: none; /* 모바일 터치 스크롤 방지 */
}
.nav-mobile a {
    display: block; /* 터치 영역 넓게 */
    padding: 15px 20px;
    text-decoration: none;
    color: #333;
    font-size: 18px;
    transition: background-color 0.2s ease;
}

.nav-mobile a:hover {
    background-color: #eee;
}
.is-overlaid {
    opacity: 0;
    visibility: hidden;
    pointer-events: none; /* 클릭 비활성화 */
    transition: opacity 0.3s ease, visibility 0.3s ease;
}


/* slide */

/* 슬라이드 전체를 감싸는 컨테이너 */
.slide-container {
    aspect-ratio: 16 / 5; /* 기존 비율 유지 */
    width: 100%;
    position: relative;
    overflow: hidden;

    /* [핵심] 이 컨테이너의 너비를 기준으로 하위 요소들의 크기를 조절합니다. */
    container-type: inline-size;
    container-name: slide-container;
}

/* 각 슬라이드 패널 (JS로 하나씩 보이게 처리할 대상) */
.slide-panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.2s ease-in-out, visibility 1.2s;
}
/* JS로 .is-active 클래스가 추가되면 보이도록 설정 */
.slide-panel.is-active {
    opacity: 1;
    visibility: visible;
}

/* 슬라이드 배경 이미지 */
.slide-panel > img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 이미지가 비율을 유지하며 꽉 차게 표시 */
}

/* 이미지 위에 올라가는 텍스트 박스 (공통 스타일) */
.text-overlay {
    position: absolute;
    background-color: rgba(0, 0, 0, 0.6); 
    /* [핵심] calc와 vw 대신 cqw 단위로 변경 */
    padding: 1cqw; 
    border-radius: 2.5cqw;
}

/* 텍스트 박스 안의 제목(h2)과 목록(li) 공통 스타일 */
.text-overlay h2,
.text-overlay ul li {
    background-color: #0000005e;
    color: white;
}

.text-overlay h2 {
    color: white;
    padding: 1cqw;
    /* [핵심] vw 대신 cqw를 사용한 clamp로 완벽한 반응형 폰트 구현 */
    font-size: clamp(1rem, 2.5cqw, 2.2rem); 
    text-align: center;
    /* border-bottom: 0.1rem solid #fff; */
    border-top-left-radius: 2cqw;
    border-top-right-radius: 2cqw;
}

.text-overlay ul li {
    padding: 0.7cqw 1.5cqw 0.7cqw 2.5cqw;
    font-size: clamp(0.75rem, 1.5cqw, 1.2rem);
    font-weight: bold;
}

/* .text-overlay ul li:not(:last-child) {
    border-bottom: 0.1rem dotted #fff;
} */
.text-overlay ul li:last-child {
    border-bottom-left-radius: 2cqw;
    border-bottom-right-radius: 2cqw;
}

/* 슬라이드 1의 마지막 li 특별 스타일
.slide_1 .special-last {
    color: rgb(148, 24, 24);
    text-shadow: 1px 1px 2px #fff, -1px -1px 2px #fff, 1px -1px 2px #fff, -1px 1px 2px #fff;
} */

/* --- 개별 슬라이드 레이아웃 --- */

/* 슬라이드 1 & 2 텍스트 박스 위치 (동일하므로 그룹화) */
.slide_1 .text-overlay,
.slide_2 .text-overlay {
    width: 30cqw;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* 슬라이드 3의 텍스트 박스 위치들 */
.slide_3 .overlay-1 { /* 방과후 수업 */
    width: 23cqw;
    top: 50%;
    left: 25%;
    transform: translate(-50%, -50%);
}
.slide_3 .overlay-2 { /* OA */
    width: 28cqw;
    top: 50%;
    left: 76%;
    transform: translate(-50%, -50%);
}

/* 슬라이드 3의 이미지 박스 (배경 없음) */
.text-overlay-plain {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2cqw;
}
.slide_3 .overlay-3 {
    width: 23cqw;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.slide_3 .overlay-3 .OA_img {
    display: flex;
    gap: 2cqw;
    padding: 1rem;
    background-color: rgba(0, 0, 0, 0.6); 
    border-radius: 0.5rem;
}
.slide_3 .overlay-3 .OA_img img {
    width: 2cqw;
    min-width: 30px; /* 아이콘이 너무 작아지는 것 방지 */
}
.slide_3 .overlay-3 h4 {
    font-size: clamp(1rem, 2cqw, 1.5rem);
    color: white;
    background-color: rgba(0, 0, 0, 0.6); 
    padding: 1rem;
    border-radius: 0.5rem;
    text-shadow: 1px 1px 3px #000;
    text-align: center;
}

.slide_1 .text-overlay ul li {
    /* [핵심 수정] 위아래 패딩 값을 줄여서 전체 높이를 낮춥니다. */
    /* 기존 값(1.5cqw)보다 작은 값으로 설정합니다. */
    padding-top: 0.7cqw;
    padding-bottom: 0.7cqw;
    line-height: 1.2rem;
}
.slide-dots { 
    position: absolute; 
    bottom: 20px; 
    left: 50%; 
    transform: translateX(-50%); 
    display: flex; 
    gap: 12px; 
    z-index: 20; 
}
.dot { 
    width: 12px; 
    height: 12px; 
    background-color: rgba(255, 255, 255, 0.7); 
    border: 1px solid rgba(0,0,0,0.2); 
    border-radius: 50%; 
    cursor: pointer; 
    transition: background-color 0.3s ease, transform 0.3s ease; 
}
.dot.is-active { background-color: white; transform: scale(1.2); }


/* curriculum */
.curriculum_section{
    background-color: #e0ba74;
    padding: 1rem 0;
}
.title_1, .title_2{
    margin-top: 3rem;
    font-size: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
}
.title_2{margin-top: 10px;}
.curriculum h2:hover, .title_3 h2:hover, .title_4 h2:hover{
    color: #007bff;
}
.title_1 h2, .title_2 h2, .title_3 h2, .title_4 h2{
    padding: 20px 40px;
    border-radius: 10px;
    outline: solid 2px #ffffff;
    transition: all 0.5s ease;
    cursor: pointer;
    color: #fff;
}
.recruit_1{
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 2rem;
    gap: 20px;
}

.recruit_1 dd:nth-child(10){
    text-indent: -70px;
    padding-left: 70px;
}
.left{
    padding: 10px;
    width: 640px;
    outline: 1px solid #d3d3d3;
    padding-bottom: 25px;
    border-radius: 25px;
    background-color: #fff;
}
.recruit_1 dt{
    margin: 10px 5px; 
    padding: 10px;
    font-weight: bolder;
    border-bottom: 1px solid #d3d3d3;
}
.recruit_1 dt span:first-child{font-size: 1.5rem;}
.recruit_1 dt span{margin-left: 20px; font-size: 1.2rem;}
.left > div{
    padding-left: 10px;
    display: grid;
    grid-template-columns: auto auto;
    gap: 15px;
}
.recruit_1 dd{
    display: inline-block;
    margin: 5px;
    font-size: 1.1rem;
}
.recruit_1 img{border-radius: 30px;}
.right{
    padding: 10px;
    width: 640px;
    outline: 1px solid #d3d3d3;
    padding-bottom: 25px;
    border-radius: 25px;
    background-color: #fff;
}
.right > div{
    padding-left: 10px;
    display: grid;
    grid-template-columns: auto auto;
    gap: 15px;
}
.right > div > a{width: 115px;}
.recruit_2{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    padding: 2rem;
    height: fit-content;
}
.recruit_2 .bottom{
    padding: 25px;
    outline: 1px solid #d3d3d3;
    border-radius: 25px;
    display: grid;
    grid-template-columns: auto auto;
    gap: 20px;
    width: 1300px;
    background-color: #fff;
}
.recruit_2 .bottom_1, .bottom_2{padding: 10px;}
.recruit_2 .bottom_1{border-bottom: 1px solid #d3d3d3;}
.recruit_2 .bottom_1 span{
    display: inline-block;
    font-size: 1.1rem;
    margin: 5px;
    font-weight: bold;
}
.recruit_2 .bottom_2 div{
    display: inline-block;
    margin: 5px 0;
}
.recruit_2 .bottom_2 span{
    display: inline-block;
    margin: 5px;
}
.recruit_2 .bottom_img{
    display: flex;
    justify-content: center;
    align-items: center;
}
.recruit_2 img{border-radius: 1.2rem;}

/* 커뮤니티 */
.community_section{
    background-color: #9b6b6b;
    padding: 1rem 0;
}
.community{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    padding: 2rem;
}
.title_3, .title_4{
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
    font-weight: bold;
    margin-top: 3rem;
}
.title_3 h2{color: #fff;}
.community div > div{
    display: grid;
    grid-template-columns: 9fr 1fr;
    align-items: center;
    border-bottom: 2px solid #9c9c9c;
}
.community div > div span{
    float: right; 
    margin-right: 10px;
    font-size: 30px;
    font-weight: bold;
    color: #184b97;
}
.community .notice, .gallery{
    width: 640px;
    padding: 20px 20px 30px 20px;
    border-radius: 20px;
    background-color: white;
    outline: 1px solid #d3d3d3;
    padding-bottom: 25px;
}
.community h4{
    font-family: "카페24 단정해";
    font-size: 18px;
    padding: 10px;
    letter-spacing: 3px;
    cursor: pointer;
}
.community ul{display: grid;}
.community ul a{
    display: grid;
    grid-template-columns: 5fr 1fr;
    padding: 10px;
    border-bottom: 1px dotted #a3a3a3;
}
.community ul span{
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.community ul span:last-child{
    color: rgb(192, 45, 45); 
    text-align: right;
}
.community .gallery{left: 970px;}

/* 상담신청 */
.consult_section{
    background-color: #93af97;
    padding: 1rem 0;
}
.consult{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    padding: 2rem;
}
form, .tel{
    width: 640px;
    height: 300px;
    padding: 20px 20px 30px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 20px;
    background-color: white;
    outline: 1px solid #d3d3d3;
    padding-bottom: 25px;
}
.consult h1{
    margin-top: 0;
    padding: 10px;
    border-bottom: 2px solid #9c9c9c;
    letter-spacing: 3px;
}


/* online form */
/* form .consult-top{padding: 10px;}
#onname{padding: 5px; width: clamp(5rem, 5vw, 8rem);}
#ontel{padding: 5px; width: clamp(8rem, 10vw, 12rem)}
select{padding: 5px; width: clamp(10.9rem, 12vw, 16rem);}
#oncontent{
    padding: 10px; 
    margin-left: 10px; 
    width: clamp(24.5rem, 30.5vw, 30.5vw); 
    height: clamp(6.5rem, 4vw, 10rem);
    resize: none;
    overflow-y: auto;
    border-radius: 5px;
}
#agree{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 5px;
}
#agree > span{font-size: 14px;}
#acc{margin-left: 5px;}
.button {
    font-size: 0.8rem;
    padding: 5px;
    text-align: center;
    background-color: #6e8ea0;
    color: white;
    cursor: pointer;
    border-radius: 5px;
    transition: all 0.4s ease;
}
.button:hover{background-color: #354a57;} */

/* 전체 컨테이너 */
.cal_container {
    background-color: #fff;
    border-radius: 25px;
    padding: 1em;
    display: flex;
    height: 300px;
    width: 640px;
}

/* 달력 부분 (헤더, 요일, 날짜 포함) */
.calendar {
    flex: 1.9; 
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0; 
}

/* 하단 월별 안내 문구 영역 */
.display_selected {
    /* ★ 3. 너비 비율을 1로 설정 */
    flex: 1.1; 
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    border-left: 1px solid #eee;
    line-height: 2rem;
}

/* 헤더 */
.cal_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px; /* 세로 패딩을 약간 줄임 */
}
.cal_header pre {
    padding: 10px;
    font-size: 1.2rem;
    cursor: pointer;
    color: #4e78b6;
}
.header_display {
    font-size: 1.2rem;
    font-weight: bold;
    color: #184b97;
}

/* 요일 표시줄 */
.week {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    padding: 5px;
}
.week div {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 2rem;
    font-weight: 600;
    opacity: 0.7;
}

/* 날짜 격자 */
.days {
    flex-grow: 1;
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: repeat(6, 1fr);
    padding: 5px;
}

.days div {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    transition: all 0.4s ease;
    height: 85%; 
    aspect-ratio: 1 / 1;
    margin: auto; 
}

.days div:hover {
    background-color: #eee;
    color: #26856d;
    cursor: pointer;
}

.selected {
    color: #5b8575;
    font-weight: bold;
    text-align: left;
    font-size: 0.9rem;
}

/* 특수 날짜 스타일 */
.current_date {
    background: var(--accent);
    color: var(--white);
}
.days .saturday {
    color: #3a73c7;
}
.days .sunday {
    color: #b33939;
}
.days .special-date{
    background-color: #5b8575;
    color: #fff;
}
.days .special-date.current_date {
    background: var(--accent);
    color: var(--white);
    border: none;
}

.tel > div{
    display: grid;
    grid-template-columns: 5fr 1fr;
    align-items: center;
    height: 200px;
}
.tel > div > div{
    padding: 10px;
}
.tel img{padding: 10px;}
.tel a,b{margin-left: 5px;}
.tel p{line-height: 2.3rem;}
.tel p span:first-child{
    font-size: 1.2rem; 
    color: rgb(18, 94, 165); 
    font-weight: bold;
}

/* other */
.siteother{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    padding: 2rem 0;
    flex-wrap: wrap;
}
.siteother a{
    border-radius: 20px;
    height: 100px;
    display: flex;
    justify-content: center;
    align-items: center; 
    outline: 1px solid #e6e6e6;
    box-shadow: 1px 1px 3px #333;
    overflow: hidden;
    transition: all 0.4s ease;
    background-color: #fff;
    flex-shrink: 0;
}
.siteother a:hover{filter: brightness(0.7);}
.siteother a img{max-width: 100%; height: auto;}
/* 풋터 */
footer{background-color: #000;}
.footer{
    display: grid;
    grid-template-columns: 250px auto;
    height: 300px;
    width: 1300px;
    margin: 0 auto;
}
.footer .foot-logo{height: 300px; padding: 3rem 0;}
.footer .foot-logo a{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px;
    border-right: 1px solid #333;
}
.footer .addr{
    display: grid;
    grid-template-rows: auto auto;
}
.addr1{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
    margin: 10px 30px 0 30px;
    text-align: center;
    border-bottom: 1px solid #333;
}
.addr1 span{
    display: flex;
    padding: 0.8rem 0.4rem;
    font-family: "카페24 써라운드";
    color: #eee;
    font-size: 1.1rem;
}
.addr2{
    display: grid;
    grid-template-rows: repeat(3, auto);
    padding: 1.2rem 0 1.4rem 0;
    justify-content: center;
}
.addr2 p{
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-size: 0.9rem;
    
}
.addr2 p span:nth-child(2n+1){color: #777;}
.addr2 p span:nth-child(2n){color: #eee;}


.section_random_img{
    width: 100%;
    max-width: 1300px;
    margin: 0 auto;
    margin-top: 3rem;
    text-align: center;
}
.section_random_img img{
    outline: 1px solid #ddd;
}



/* --- 미디어 쿼리: 화면 너비가 768px 이하일 때 적용 --- */
@media (max-width: 768px) {
    html{font-size: 10px;}
    .header_container {
        padding: 0 15px; /* 모바일에서 좌우 패딩 조절 */
        justify-content:space-evenly;
    }

    /* PC 메뉴 숨김 */
    .nav-pc {
        display: none;
    }
    .voucher{gap: 0px;}
    .voucher img{width: 80%; border-radius: 10px;}
    /* 햄버거 아이콘 보임 */
    .hamburger-icon {
        display: flex; /* <-- 여기! 모바일 크기일 때만 보이도록 */
    }
    /* 햄버거 클릭 시 아이콘 모양 변화 (선택 사항) */
    .hamburger-icon.active span:nth-child(1) {
        transform: translateY(8.5px) rotate(45deg);
    }
    .hamburger-icon.active span:nth-child(2) {
        opacity: 0; /* 가운데 막대 숨김 */
    }
    .hamburger-icon.active span:nth-child(3) {
        transform: translateY(-8.5px) rotate(-45deg);
    }
    .header .logo a{
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .header .logo img{width: 90%;}
    
    /* slide */

    .slide-container {
        aspect-ratio: auto;
        min-height: 460px; /* 모든 슬라이드가 들어갈 수 있는 충분한 높이 */
    }

    /* 2. [핵심] 모바일에서는 display 속성을 건드리지 않습니다. */
    /*    데스크탑의 opacity transition 규칙을 그대로 사용합니다. */
    /*    따라서 .slide-panel, .slide-panel.is-active 규칙이 필요 없습니다. */

    /* 3. 배경 이미지만 설정합니다. (img 태그는 숨김) */
    .slide-panel > img {
        display: none;
    }
    .slide_1 { background: url('https://www.garamcom.co.kr/new_2/images/slide_1.jpg') center center / cover no-repeat; }
    .slide_2 { background: url('https://www.garamcom.co.kr/new_2/images/slide_2.jpg') center center / cover no-repeat; }
    .slide_3 { background: url('https://www.garamcom.co.kr/new_2/images/slide_3.jpg') center center / cover no-repeat; }
    
    /* 4. [핵심] 텍스트 박스들을 absolute 포지셔닝으로 중앙에 배치합니다. */
    .text-overlay{padding: 2cqw;}
    .slide_1 .text-overlay,
    .slide_2 .text-overlay {
        width: 90%;
        max-width: 250px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    /* 5. [핵심] slide_3은 내부를 Flexbox로 만들어서 박스들을 세로로 쌓습니다. */
    .slide_3 {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }
    .slide_3 .text-overlay,
    .slide_3 .text-overlay-plain {
        position: relative; /* slide_3 안에서는 일반 흐름으로 배치 */
        top: auto;
        left: auto;
        transform: none;
        width: 90%;
        max-width: 250px;
        margin-bottom: 0.7rem;
    }
    .slide_3 .overlay-3 {
        margin-bottom: 0;
    }

    /* 6. 폰트 크기는 그대로 유지합니다. */
    .text-overlay h2 { font-size: clamp(1.0rem, 4cqw, 1.8rem); }
    .text-overlay ul li { font-size: clamp(0.8rem, 2.8cqw, 1.1rem); }
    .text-overlay h4 { font-size: clamp(0.9rem, 3cqw, 1.2rem); }


    /* curriculum */
    .curriculum h2{font-size: 2.5rem;}
    .recruit_1{
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 30px;
        padding: 2rem 1rem;
    }
    .recruit_1 .left, .right{
        width: 96.5%;
    }
    .recruit_1 .left div > a, .right div > a{
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .recruit_1 dt{
        display: flex;
        flex-direction: column;
        gap: 1rem;
        justify-content: center;
    }
    .recruit_1 dt span{margin-left: unset;}
    .recruit_1 dt span:first-child{
        font-size: 1.7rem;
    }
    .recruit_1 dt span{font-size: 1.4rem;}
    .curriculum dd{font-size: 1.2rem;}
    .recruit_2{
        width: 100%;
        height: fit-content;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 2rem 1rem;
    }
    .recruit_2 .bottom{
        width: 96.5%;
        position: relative;
        padding: 20px 0 20px 20px;
    }
    .recruit_2 .bottom > div{width: 100%;}
    .recruit_2 .bottom_1 span{font-size: 1.3rem;}
    .recruit_2 .bottom_2{font-size: 1.3rem;}
    .recruit_2 .bottom br{display: inline-block;}
    .recruit_2 .bottom_img{display: none;}
    .selected{font-size: 1.2rem;}
    /* 커뮤니티 */
    .community_section, .consult_section{padding-top: 3.5rem;}
    .community, .consult{
        width: 100%;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 2rem;
        margin: 2.5rem 0 1rem;
    }
    .community .notice, .gallery{
        width: 103%;
    }
    .notice ul a, .gallery ul a{
        grid-template-columns: 3fr 1fr;
    }
    .title_3, .title_4{margin-top: 1rem;}

    /* 컨설트 */
    .cal_container{
        flex-direction: column;
    }
    .calendar{
        flex: 9;
    }
    .display_selected{
        flex: 1;
        padding: 10px;
        border-left: unset;
        border-top: 1px solid #eee;
    }
    .header_display{font-size: 1.3rem;}
    .consult .cal_container, .consult .tel{
        width: 103%;
    }
    .tel img{width: 20vw;}
    .consult-top{
        display: flex;
        flex-direction: column;
        gap: 0.9rem;
    }
    #oncontent{
        min-height: 6rem;
    }
    /* other */
    .siteother{
        flex-wrap: wrap;
        align-content: space-evenly;
        height: 100%;
        margin: 2rem;
        gap: 2rem;
    }
    #oncontent{width: 95%;}
    /* 풋터 */
    .footer {
        all: unset; /* 기존 스타일 모두 제거 */
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 2rem 1rem;
        background-color: #000;
        gap: 2rem;
    }
    .footer .foot-logo {
        all: unset;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .footer .foot-logo > a{all: unset;}
    .footer .foot-logo img {
        width: 40vw;
    }
    .footer .addr {
        all: unset;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        color: #ccc;
        font-size: 0.9rem;
        gap: 2rem;
    }    
    .footer .addr1{
        all: unset;
        display: flex;
        gap: 3rem;
    }
    .footer .addr1 img{width: 10vw;}
    .footer .addr2 {
        all: unset;
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
        justify-content: center;
        align-items: center;
    }
    .footer .addr1 span {
        color: #aaa;
        justify-content: center;
        align-items: center;
    }
    .footer .addr2 p {
        font-size: 1.5rem;
        color: #eee;
    }
    .footer .addr2 p:first-child, .addr2 p:nth-child(2) span:nth-child(7), .addr2 p:nth-child(2) span:nth-child(8){
        display: none;
    }
    .section_random_img{
        width: 100%;
    }
    .section_random_img img{
        width: 94%;
        margin: 2rem 1rem 0 1rem;
    }
    }

@media (max-width: 430px){
    /* 풋터 */
    .footer {
        all: unset; /* 기존 스타일 모두 제거 */
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 2rem 1rem;
        background-color: #000;
        gap: 2rem;
    }
    .footer .foot-logo {
        all: unset;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .footer .foot-logo > a{all: unset;}
    .footer .foot-logo img {
        width: 40vw;
    }
    .footer .addr {
        all: unset;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        color: #ccc;
        font-size: 0.9rem;
        gap: 1rem;
    }
    .footer .addr1{
        all: unset;
        display: flex;
        gap: 1.2rem;
    }
    .footer .addr1 img{width: 10vw;}
    .footer .addr2 {
        all: unset;
        display: flex;
        flex-direction: column;
        gap: 1rem;
        justify-content: center;
        align-items: center;
    }
}

@media (max-width: 375px){
    .community .notice, .gallery{
        width: 103%;
    }
    .consult .online, .consult .tel{
        width: 103%;
    }
    .tel img{width: 35vw;}
}
