html {
	overflow-x: hidden;
}

:root {
  --text-color: #f0f4f5;
  --background-color: #263343;
  --accent-color: #d49466;
}

body {
    width: 100%;
	margin: 0;
	overflow-x: hidden;
    font-family: 'Pretendard', sans-serif;
}

* { 
	box-sizing: border-box;
}

a {
	text-decoration: none;
	color: inherit;
	
}

.navbar {
    display: flex;
	position: fixed;
	width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
	margin-top: 0;
    background-color: #fff;
    color: rgb(0, 0, 0);
	z-index: 10000;
}

.logo {
    padding-top: 10px;
    font-size: 24px;
}

.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;  
}

/* Menu */
.navbar_menu {
  display: flex;
  padding-left: 0;
  list-style: none;
  
}

.navbar_menu li {
  padding: 8px 12px;
}

.navbar_menu li:hover {
  color: #1856a0;
  font-weight: 700;
  background-position: 100% 0;
}

.signin {
    padding: 0px 10px;
    font-size: 15px;
    background-color: #1586a0;
    color: white;
    cursor: pointer;
    background-size: 100% 100%;
    border-radius: 50px;
}

.signin.color_2 {
    background-image: linear-gradient(to right, #25aae1, #4481eb);
}

.navbar_icons {
  list-style: none;
  color: #333;
  display: flex;
  padding-left: 0;
}

/* Icons */
.navbar_icons li {
  padding: 8px 12px;
}

/* Toggle button */
.navbar_toggleBtn {
  display: none;
  position: absolute;
  right: 32px;
  font-size: 24px;
  color: #333;
}

.top_btn {
    position: fixed;
    right:50px;
    bottom:50px;
    z-index: 10000;
}

.top_btn img{
    width: 100px;
}

    
.about_section {
    width: 100%;
    background-color: #ffffff;
    padding: 50px 0;
    color: black;
}

.about_container {
    width: 80%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items:stretch;
}

.about_text {
    width: 50%;
    height: 100%;
    overflow: hidden;
}

.text_under {
    float: left;
    width: 100%;
    height: auto;
}

.about_text img {
    width: 100%;
    display: block;
}

.about_text h1 {
    font-size: 36px;
    line-height: 10px;
}

.about_text h2 {
    font-size: 24px;
    margin-bottom: 40px;

}

.about_text p {
    font-size: 16px;
    text-align: justify;
    line-height: 1.6;
}

.about_image {
    width: 40%;

}

.about_image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.menu ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu ul li {
    margin: 0 10px;
}

.menu ul li a {
    color: rgb(0, 0, 0);
    text-decoration: none;
    font-size: 18px;
}

.sns_icons {
    margin-right: 30px;
}

.sns_icons a {
    color: rgb(0, 0, 0);
    margin: 10px;
    font-size: 24px;
}

.overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

.hero_section {
    position: relative;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
    overflow: hidden;
}

.hero_images {
    position: absolute;
    top: 65px;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero_images img {
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.5s ease;
    opacity: 0;
}

.hero_images img.active {
    opacity: 1;
}

.hero_section h1 {
    font-size: 130px;
    margin: 0;
    z-index: 2;
}

.hero_section h2 {
    font-size: 30px;
    letter-spacing: 15px;
    margin: 15px 0 70px 0;
    z-index: 2;
}

.hero_button {
    padding: 15px 30px;
    font-size: 18px;
    background-color: #1586a0;
    border: none;
    color: white;
    cursor: pointer;
    z-index: 2;
    color: #fff;
    border: none;
    background-size: 300% 100%;
    border-radius: 50px;
    -moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
}

.hero_button:hover {
    background-position: 100% 0;
    -moz-transition: all .4s ease-in-out;
    -o-transition: all .4s ease-in-out;
    -webkit-transition: all .4s ease-in-out;
    transition: all .4s ease-in-out;
}

.hero_button:focus {
    outline: none;
}

.hero_button.color_1 {
    background-image: linear-gradient(to right, #25aae1, #4481eb, #04befe, #3f86ed);
    box-shadow: 0 4px 15px 0 rgba(65, 132, 234, 0.75);
}

#image_section {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 80%;
    height: auto;
    margin: 0 auto;
    padding: 75px 0 0 0;
    flex-wrap: wrap;
}

.image_box {
    background-color: black;
    position: relative;
    width: 30%;
    object-fit: cover;
    margin-bottom: 75px;
}

.image_box img {
    width: 100%;
    display: block;
    transition: opacity 0.3s;
}

.overlay_text {
    position: absolute;
    width: 100%;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgb(255, 255, 255);
    font-size: 20px;
    letter-spacing: 3px;
    line-height: 35px;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s;
}

.image_box:hover img {
    opacity: 0.5;
}

.image_box:hover .overlay_text {
    opacity: 1;
}

#branch_section {
    width: 100%;
    background-color: #edf8ff;
    padding: 50px 0;
}

.branch_container {
    width: 80%;
    margin: 0 auto;
    padding: 40px 0;
    text-align: left;
}

#branch_section h2 {
    font-size: 36px;
    text-align: left;
    line-height: 10px;
}

#branch_section h3 {
    text-align: left;
    letter-spacing: 3px;
}

.branch_content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
}

.branch_image {
    width: 40%;
}

.branch_image img {
    width: 100%;
}

.branch_action {
	display: flex;
	align-items: center;
	margin-top: 10px;
}

.sns_icon {
	display: flex;
	flex-direction: row;	
	justify-content: left;
	align-items: center;
	width: 80px;
}

.sns_icon a {
	display: flex;
	justify-content: left;
	margin: 0 auto;
	width: 50%;
}


.branch_item button {
    padding: 5px 10px;
    background-color: #1856a0;
    border: none;
    color: white;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.branch_item button i {
    margin-left: 5px;
}

.branch_item button:hover {
    background-color: #4f93e5;
}


.branch_details {
    padding-left: 0px;
    padding-top: 60px;
    width: 45%;
}

.branch_item {
    margin-bottom: 35px;
    text-align: left;
    line-height: 20px;
}

.branch_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
}

.branch_header h4 {
    margin: 0 10px 0 0;
    font-size: 24px;
}

.branch_item p {
    margin: 10px 0;
}


#youtube_section {
    width: 100%;
    margin: 100px 0 100px 0;
    text-align: center;
}

.youtube_banner {
    width: 100%;
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.youtube_banner img {
    width: 25%;
    display: block;
    margin-bottom: 50px;
}

.youtube_video iframe {
    width: 50%;
    aspect-ratio: 16 / 9;
    border: none;
}

#program_section {
    background-color: #1856a0;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

.program_logo {
    width: 100%;
    border: solid #ffffff7d;
    border-width: 0 0 1px 0;
}

.program_logo img {
    padding-top: 100px;
    padding-bottom: 30px;
    width: 600px;
    height: auto;
}

#program_section p {
    color: #ffffff;
    font-size: 30px;
    margin: 10px 0 20px;
	line-height: 35px;
    letter-spacing: 3px;	
	max-width: 50%;
}

#program_section h2 {
    color: #ffffff;
    font-size: 48px;
    margin: 40px 0 20px;
	letter-spacing: 2px;
	line-height: 50px;
}

#program_section h3 {
    color: #ffffff;
    font-size: 24px;	
    margin: 30px auto 100px;	
	line-height: 30px;
	width: 80%;
}

#program_section h4 {
    color: #ffffff;
    font-size: 100px;
    margin: 300px 0 20px;
}

.program_content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.program_box {
    position: relative;
    width: 100%;
    margin-bottom: 70px;
    overflow: hidden;
}

.program_box img {
    width: 80%;
    height: 600px;
    object-fit: cover;
}

.program_overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(16, 44, 100, 0) 0%, #1856a0 100%);
    color: rgb(0, 0, 0);
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.program_overlay p {
	width: 70%;
}

.program_overlay h1 {
    font-size: 36px;
    margin: 0;
}

.program_overlay h2 {
    font-size: 24px;
    margin: 10px 0 0 0;
}

.program_end {
    padding-bottom: 100px;
	overflow: hidden;
}

.news {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    width: 80%;
    margin: 50px auto;
    padding: 70px 0 0 0;
    border: solid #0000003a;
    border-width: 1px 0 0 0;
}

.news h1 {
    font-size: 70px;
    margin: 0 auto;
}

.news p {
    letter-spacing: 3px;
}

.news_title {
    max-width: 400px; /* 최대 너비 설정 */
    flex: 1;
    color: rgb(0, 0, 0);
    box-sizing: border-box;
    text-align: left;	
}

.news_area {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 800px;
    width: 100%;
    padding: 0px 0;
    box-sizing: border-box;
    flex: 2; /* news_title보다 더 많은 공간을 차지 */
}

.news_area_view {
    display: flex;
    justify-content: center;
    align-items: center;
}

.sns_container {
            display: flex;
            flex-wrap: wrap;
            width: 100%;
            padding: 0 100px;
            box-sizing: border-box;
        }
.sns_area_left {
	width: 30%;
	justify-content: center;
	align-items: center;            
	text-align: right;
	padding: 20px;
	box-sizing: border-box;
}

.sns_area_left h1 {	
	font-size: 70px;
    margin: 0 auto;
    margin-bottom: 20px;
}

.sns_area_left p {
	letter-spacing: 3px;
    display: block;
    margin: 0;
}
	
.sns_area_right {
	width: 70%;
	padding: 20px;
	box-sizing: border-box;
}
.sns_area {
	display: flex;
	justify-content: center;
	align-items: center;
}
#sns_area_view {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	list-style: none;
	padding: 0;
	margin: 0;
}
#sns_area_view li {
	background: #f0f0f0;
	border: 1px solid #ddd;
	border-radius: 5px;
	overflow: hidden;
	position: relative;
	text-align: center;
}
.insta-imgBox {
	display: block;
	text-decoration: none;
	color: #333;
	position: relative;
}
.insta-imgBox img {
	max-width: 230px;
	height: auto;
	border-radius: 5px 5px 0 0;
	transition: transform 0.3s ease;
}
.insta-body {
	display: block;
	padding: 10px;
	background: rgba(30, 0, 0, 0.3);
	color: #ccc;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	box-sizing: border-box;
	transform: translateY(100%);
	transition: transform 3s ease;
}
.insta-imgBox:hover img {
	transform: scale(1.1);
}
.insta-imgBox:hover .insta-body {
	transform: translateY(0);
}

.image_container {
    position: relative;
    width: 230px;
    height: 230px;
}

.image_container img {
    width: 100%;
    height: 100%;
    display: block;
}

.news_area_view_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.8);
    color: white;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.news_area_view_overlay p {
    width: 80%;
    font-size: 15px;
    line-height: 25px;
    text-align: center;
}

.image_container:hover .news_area_view_overlay {
    opacity: 1;
}

.review_section {
    width: 80%;
    height: 700px; /* 높이 500px로 설정 */
    margin: 40px auto;
    text-align: center;
}

.review_section h2 {
    font-size: 70px;
    margin-bottom: 50px;
}

.review_content {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap; /* 한 줄로 정렬 */
    gap: 60px; /* 리뷰 박스 사이에 여백 추가 */
}

.review_box {
    width: calc(20% - 10px); /* 가로 5개씩 배치 */
    height: 400px; /* 세로 크기 300px로 설정 */
    border: 1px solid #ddd;
    padding: 10px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    margin-bottom: 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.review_box p {
    margin-top: 10px;
    line-height: 23px;
}

.review_box h4 {
    margin-bottom: 25px;
}



.business_container {
    width: 100%;
    height: 150px;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: left;
    background-color: rgb(77, 77, 77); /* 배경색 검정색 */
    color: white; /* 글자 색 흰색 */
}

.business_container p {
    margin: 4px 0;
}

.business_left, .business_center, .business_right {
    display: flex;
    flex-direction: column;
    line-height: 15px;
    font-size: 11px;
}

.business_right {
    width: 15%;
    text-align: flex-start;
}

.business_left {
    width: 15%;
    text-align: right;
    align-items:flex-end;
    padding-right: 30px;
}

.business_center {
    width: 15%;
    text-align: flex-start;
    margin: 0 50px;
}

footer {
	display: flex;
	justify-content: center;
    background-color: #063166;
    color: white;
    width: 100%;
	height: 10vh;
}

.business-info {
	margin: auto;
}

footer p {
	margin: 0;
	line-height: 20px;
	color: #7aa3d6;
	font-size: 0.8em;
}

@media (max-width: 768px) {
    
    .navbar {
        flex-direction: column;
        align-items: center;
        padding: 20px 0;
        width: 100%;
    }

    /* Menu */
    .navbar_menu {
        display: none;
        flex-direction: column;
        text-align: center;
        width: 100%;
    }

    .navbar_menu a {
        /* Fill in an entire line so that user can click on any space */
        display: block;
        width: 100%;
    }	

    /* Icons */
    .navbar_icons {
        display: none;
        justify-content: center;
        width: 100%;
    }

    /* Toggle button */
    .navbar_toggleBtn {
        display: block;
    }

    /* When toggle button is clicked - active state */
    .navbar_menu.active,
    .navbar_icons.active {
        display: flex;
    }

    .top_btn {
        position: fixed;
        right: 20px;
        bottom: 20px;
        z-index: 10000;
    }
    
    .top_btn img{
        width: 100px;
		height: 100px;
    }

    .about_container {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .about_text,
    .about_image {
        width: 100%;
    }

    .about_image img {
        margin: 20px 0;
    }

    .about_text img {
        margin: 20px 0;
    }
	
	.about_text h1 {
		line-height: 35px;
		margin-bottom: 30px;
		
	}

    .menu ul {
        display: none;
        flex-direction: column;
        width: 100%;
    }

    .menu ul li {
        margin: 10px 0;
    }
        
    .sns_icons {
        display: none;
    }

    .hero_section {
        text-align: center;
        width: 100%;
    }

    .hero_section h1 {
        font-size: 50px;
        width: 100%;
    }

    .hero_section h2 {
        font-size: 18px;
        letter-spacing: 4px;
        margin: 10px 0 25px;
        width: 100%;
    }

    .hero_button {
        padding: 8px 16px;
        font-size: 14px;
        width: auto;
    }

    #image_section {
        flex-direction: column;
        padding: 40px 0;
        height: auto;
        width: 100%;
    }

    .image_box {
        width: 80%;
        margin: 10px 0;
    }

	.program_logo img {
    padding-top: 50px;
    padding-bottom: 30px;
    width: 300px;
    height: auto;
	}

	#program_section h2 {
		color: #ffffff;
		font-size: 36px;
		margin: 40px 0 20px;		
		padding: 20px;
	}

	#program_section h3 {
		color: #ffffff;
		font-size: 20px;
		letter-spacing: 5px;
		margin: 10px auto 100px;
		padding: 20px;		
	}

	#program_section h4 {
		color: #ffffff;
		font-size: 48px;
		margin: 300px 0 20px;
		padding: 20px;
	}
	
	#program_section p {    
    font-size: 16px;    	
    letter-spacing: 3px;
	padding: 20px;
	max-width: 100%;
	}

    .overlay_text {
        font-size: 14px;
        width: 100%;
    }

    #branch_section {
        padding: 20px 0;
        width: 100%;
    }

    .branch_container {
        width: 90%;
        padding: 20px 0;
    }

    .branch_content {
        flex-direction: column;
        align-items: center;
    }

    .branch_image,
    .branch_details {
        width: 100%;
        padding-top: 15px;
    }

    .branch_image img {
        width: 100%;
    }

    .branch_details {
        padding-left: 0;
        padding-top: 15px;
    }
	
	.youtube_banner img {
    width: 75%;
    display: block;
    margin-bottom: 50px;
	}
	
    .youtube_video iframe {
        width: 100%;
    }	

    .news {
        flex-direction: column;
        align-items: center;
    }

    .news_title, .news_area {
        width: 100%;
        max-width: none;
    }

    .news_area {
        grid-template-columns: 1fr;
    }
	
	.sns_container {
                padding: 0 10px;
            }
			
	.sns_area_left {
		width: 100%;
		padding: 10px;
		text-align: center;
	}	
	
	.sns_area_left p {
		margin-bottom: 10px;
	}

	.sns_area_right {
		width: 100%;
		padding: 3px;
		box-sizing: border-box;
	}
	
	#sns_area_view {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 1px;
		list-style: none;
		padding: 0;
		margin: 0;
	}
	
	.insta-imgBox {
		display: grid;
		width: 100%;
	}
	
	.insta-imgBox img {
		width: 100%;
		height: 100%;		
	}
	
	.insta-body {
		display: block;
		padding: 2px;		
		color: white;
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		box-sizing: border-box;
		transform: translateY(100%);
		transition: transform 0.3s ease;
	}
		
	
    .review_content {
        flex-direction: column;
        gap: 15px;
    }

    .review_box {
        width: 100%;
    }
	
	.business-info {
	margin: auto;
	padding: 0 8%;
	}
	
	footer p {
	line-height: 15px;
	font-size: 0.6em;
}
}

/*
@media (max-width: 480px) {    
	
	.navbar {
        flex-direction: column;
        align-items: center;
        padding: 20px 0;
	}

	.navbar__menu {
        display: none;
        flex-direction: column;
        text-align: center;
        width: 100%;
	}

	.navbar__menu a {
        display: block;
	}

	.navbar__icons {
        display: none;
        justify-content: center;
        width: 100%;
	}

	.navbar__toggleBtn {
        display: block;
	}

	.navbar__menu.active,
	.navbar__icons.active {
        display: flex;
	}
    
    .hamburger {
        display: block;
    }

    .menu ul {
        display: none;
        flex-direction: column;
        width: 100%;
    }

    .menu ul li {
        margin: 10px 0;
    }
		
    .sns-icons {
        display: none;
    }

    .hero-section {
        text-align: center;
    }

    .hero-section h1 {
        font-size: 50px;
    }

    .hero-section h2 {
        font-size: 18px;
        letter-spacing: 4px;
        margin: 10px 0 25px;
    }

    .hero-button {
        padding: 8px 16px;
        font-size: 14px;
    }

    #image-section {
        flex-direction: column;
        padding: 40px 0;
        height: auto;
        width: 100%;
    }

    .image-box {
        width: 80%;
        margin: 10px 0;
    }

    .overlay-text {
        font-size: 14px;
    }

    #branch-section {
        padding: 20px 0;
    }

    .branch-container {
        width: 90%;
        padding: 20px 0;
    }

    .branch-content {
        flex-direction: column;
        align-items: center;
    }

    .branch-image,
    .branch-details {
        width: 100%;
        padding-top: 15px;
    }

    .branch-image img {
        width: 100%;
    }

    .branch-details {
        padding-left: 0;
        padding-top: 15px;
    }

    .youtube-video iframe {
        width: 100%;
    }

    .review-content {
        flex-direction: column;
        gap: 15px;
    }

    .review-box {
        width: 100%;
    }

    .business-container {
        flex-direction: column;
        height: auto;
        padding: 15px;
        text-align: center;
    }

    .business-left, .business-center, .business-right {
        width: 100%;
        text-align: center;
        padding: 10px 0;
    }	
}
*/