@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css");

/* 기본 스타일 설정 */
* {
    box-sizing: border-box; /* 패딩, 보더가 너비에 포함되도록 설정 */
    margin: 0;
    padding: 0;
}

body {
    font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
    background-color: #fff; /* 배경색 흰색 */
    overflow-x: hidden; /* 가로 스크롤을 방지하여 화면이 고정되도록 합니다. */
}

a {
  text-decoration: none;
}

/* 1920px 중앙 정렬 컨테이너 */
.container {
    max-width: 1400px;
    margin: 0 auto; /* 좌우 마진을 auto로 설정하여 가운데 정렬 */
    padding: 0 20px; /* 좌우 여백을 주어 작은 화면에서도 콘텐츠가 잘 보이게 함 */
}

/* 각 섹션의 공통 스타일 */
section {
    padding: 80px 0; /* 상하 여백으로 섹션 구분 */
}

/* --- 메뉴 (헤더) 스타일 --- */
#menu {
    height: 90px;
    background-color: #fff;
    width: 100%; /* 전체 너비 */
    position: fixed; /* 스크롤 시 상단 고정 */
    top: 0;
    left: 0;
    z-index: 1000;
   
}

/* 스크롤 시 그림자를 위한 클래스 추가 */
.scrolled-menu {
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

#menu .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

/* 로고 스타일 (이전과 동일) */
.logo img {
	width:100%;
}

/* PC용 내비게이션 스타일 */
.main-nav ul {
    list-style: none;
    display: flex;
    gap: 70px;
}

.main-nav ul li {
    /* 서브메뉴를 위한 상대 위치 설정 */
    position: relative;
}

.main-nav .submenu {
    display: none; 
    position: absolute;
    top: 100%; /* 상위 메뉴 바로 아래에 위치 */
    
    /* 📌 중앙 정렬 핵심 로직 */

    left: 50%; /* li의 왼쪽 끝에서 50% 이동 */
    transform: translateX(-50%); /* 서브메뉴 너비의 절반만큼 왼쪽으로 되돌림 */
    
    /* 서브메뉴 박스 스타일 */
    width: 180px; 
    background-color: #fff;
    border: 1px solid #eee;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    z-index: 100;
    padding: 10px 0;
    text-align: center; /* 텍스트는 다시 왼쪽 정렬 */
}

.main-nav .submenu li {
    /* 서브메뉴 항목의 기본 스타일 초기화 */
    position: static;
    display: block;
    margin: 0;
    padding: 0;
    line-height: normal; /* 상속된 높이 초기화 */
}


/* ================================================================= */
/* Submenu 마우스 오버 시 보이기 */
/* ================================================================= */

/* 부모 li에 마우스를 올리면 자식 submenu가 보이도록 설정 */
.main-nav ul li.has-submenu:hover > .submenu {
    display: block;
}

.main-nav .submenu a {
    /* 서브메뉴 링크 스타일 */
    display: block;
    padding: 10px 20px;
    color: #333;
    font-weight: 400;
    white-space: nowrap; /* 텍스트가 한 줄로 표시되도록 */
}

.main-nav .submenu a:hover {
    /* 서브메뉴 링크 호버 색상 */
    background-color: #f4f4f4;
    color: #00a1e0; /* 강조 색상 */
}



.main-nav ul li a {
    text-decoration: none;
    color: #555;
    font-weight: 700;
    transition: color 0.3s;
	font-size:18px;
}

.main-nav ul li a:hover {
    color: #00A1E0;
}

/* 전화번호 버튼 스타일 (이전과 동일) */
.call-button a {
    display: inline-block;

}



/* --- 모바일 메뉴 관련 스타일 (기본적으로 숨김) --- */
.mobile-menu-toggle {
    display: none; /* PC에서는 숨김 */
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    position: absolute;
    right: 20px;
}

.mobile-menu-toggle .bar {
    display: block;
    width: 25px;
    height: 3px;
    background-color: #333;
    margin: 5px auto;
    transition: all 0.3s ease-in-out;
}

.mobile-nav {
    display: none; /* 기본적으로 숨김 */
    width: 100%;
    background-color: #fff;
    position: fixed;
    top: 90px;
    left: 0;
    padding: 20px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.mobile-nav ul {
    list-style: none;
    text-align: left;
	width: 100%;
}

.mobile-nav li {
    margin: 20px 0;
}

.mobile-nav li a {
    text-decoration: none;
    color: #333;
    font-size: 18px;
    font-weight: bold;
}

.mobile-nav .submenu {
        /* 높이를 0으로 설정하여 숨기고, overflow를 hidden으로 설정하여 내부 내용 숨김 */
        max-height: 0; 
        overflow: hidden; 
        
        /* 👈 부드러운 애니메이션을 위한 트랜지션 추가 */
        transition: max-height 0.3s ease-in-out; 
        
        /* 기타 스타일 유지 */
        list-style: none;
        padding-left: 20px; 
        background-color: rgba(0, 0, 0, 0.05);
        border-top: 1px solid rgba(0, 0, 0, 0.1);
    }

 .mobile-nav .has-submenu.open > .submenu {
        /* 서브메뉴 내용이 포함될 수 있는 충분히 큰 높이로 설정 */
        /* 메뉴 항목이 2~3개일 경우 300px면 충분하지만, 내용이 많다면 500px 이상 지정하세요. */
        max-height: 500px; 
        
        /* 참고: display: none; 코드는 CSS에서 완전히 제거해야 합니다. */
    }

.mobile-nav .has-submenu {
    position: relative; /* 토글 버튼 위치 지정을 위한 기준 */
}

/* <a> 태그 스타일 (링크 영역) */
.mobile-nav .has-submenu > a {
    display: block;
    padding-right: 50px; /* 버튼 공간 확보 */
}

/* 📌 서브메뉴 토글 버튼 스타일 */
.mobile-nav .submenu-toggle-btn {
    position: absolute;
    top: 0;
    right: 0; 
    width: 50px; /* 터치 영역 */
    height: 100%;
    
    /* 기본 버튼 스타일 제거 */
    background: none;
    border: none;
    cursor: pointer;
    z-index: 5; 
    
    /* + 아이콘 중앙 정렬 */
    display: flex;
    justify-content: center;
    align-items: center;
}

.mobile-nav .submenu-toggle-btn .plus-icon {
    font-size: 20px;
    transition: transform 0.3s ease;
    display: block; /* + 아이콘 */
}

/* 메뉴가 열렸을 때 + 아이콘을 - 아이콘처럼 보이게 회전 */
.mobile-nav .has-submenu.open .submenu-toggle-btn .plus-icon {
    transform: rotate(45deg); 
}

.mobile-nav .submenu li a {
        display: block;
        padding: 10px 0 0px 0px; /* 상하 10px, 왼쪽 20px (들여쓰기) 패딩 */
        font-size: 15px; 
        color: #666;
        border-bottom: 0px solid rgba(0, 0, 0, 0.05); /* 각 항목 구분선 추가 (선택적) */
    }

    /* 마지막 서브메뉴 항목에는 구분선 제거 (선택적) */
    .mobile-nav .submenu li:last-child a {
        border-bottom: none;
    }


/* --- 반응형 디자인: 미디어 쿼리 --- */
@media (max-width: 768px) {
    /* PC용 메뉴는 숨김 */
    .main-nav, .call-button {
        display: none;
    }

	/* 로고 스타일 (이전과 동일) */
	.logo img {
		width:127px;
	}

	.container {
		max-width: 100%;
		margin: 0 auto; /* 좌우 마진을 auto로 설정하여 가운데 정렬 */
		padding: 0 20px; /* 좌우 여백을 주어 작은 화면에서도 콘텐츠가 잘 보이게 함 */
	}




    /* 모바일용 메뉴 버튼과 로고는 표시 */
    #menu .container {
        justify-content: space-between;
    }

    .mobile-menu-toggle {
        display: block; /* 햄버거 버튼 표시 */
    }

    /* 햄버거 메뉴를 클릭하면 나타나도록 설정 (JavaScript로 제어) */
    .mobile-nav.active {
        display: block;
    }
}



/* 타일 그리드 (베스트 타일 추천) 스타일 */
.tile-grid {
    display: grid; /* CSS Grid 사용 */
    grid-template-columns: repeat(4, 1fr); /* 4개의 열을 같은 크기로 설정 */
    gap: 20px; /* 그리드 간격 */
}



/* -------------------------------------- */
/* 반응형 디자인: 미디어 쿼리 적용 */
/* -------------------------------------- */

/* 태블릿 (최대 1024px 화면) */
@media (max-width: 1024px) {
    .container {
        padding: 0 15px; /* 작은 화면에서 여백 조정 */
    }

    /* 타일 그리드를 2열로 변경 */
    .tile-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 모바일 (최대 768px 화면) */
@media (max-width: 768px) {
    /* 타일 그리드를 1열로 변경 */
    .tile-grid {
        grid-template-columns: 1fr;
    }
}




/*메인롤링*/
/* --- 이미지 롤링 배너 섹션 --- */
#banner {
  height: 610px;
    background-color: #f0f0f0;
    position: relative;
    overflow: hidden;
    
    /* 이 부분을 추가하세요 */
    margin-top: 90px;
}

/* PC에서는 PC 이미지만 표시하고 모바일 이미지는 숨깁니다. */
.slide .pc-img {
    display: block;
	height: 610px;
}
.slide .mobile-img {
    display: none;
}


.slider-container {
    width: 100%;
    height: 100%;
    position: relative;
}

.slider {
    display: flex;
    height: 100%;
    transition: transform 0.5s ease-in-out; /* 슬라이드 전환 효과 */
}

.slide {
    min-width: 100%; /* 각 슬라이드의 너비를 100%로 설정 */
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
	 position: relative;
}




.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 이미지가 컨테이너를 가득 채우도록 설정 */
}

/* --- 하단 점 네비게이션 스타일 --- */
.dots-container {
    position: absolute;
    bottom: -40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    z-index: 10;
}

.dot {
    width: 12px;
    height: 12px;
    background-color: rgba(255, 255, 255, 0.6);
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s;
}

.dot.active {
    background-color: #fff;
}

.banner-text-content {
    position: absolute;
    top: 45%;
    left: 17%; /* 왼쪽에서 10% 떨어진 위치로 설정 */
    transform: translateY(-50%);
    text-align: left; /* 텍스트를 왼쪽으로 정렬합니다. */
    color: #fff;
    z-index: 2;
   
    padding: 0 20px;
}

.banner-text-content .main-title {
    font-size: 54px;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 20px;
}

.banner-text-content .sub-title {
    font-size: 22px;
    font-weight: normal;
    line-height: 1.5;
}

/* 모바일 환경 (최대 768px 화면) */
@media (max-width: 768px) {
    #banner {
        height: 520px; /* 모바일 배너 높이 */
    }

    /* 모바일에서는 모바일 이미지를 표시하고 PC 이미지는 숨깁니다. */
    .slide .pc-img {
        display: none;
    }
    .slide .mobile-img {
        display: block;
		height:520px;
    }

	.banner-text-content {
		top:20%;
		left: 0%; /* 왼쪽에서 10% 떨어진 위치로 설정 */
	
	}

	 /* 모바일에서는 텍스트 크기 조정 */
    .banner-text-content .main-title {
        font-size: 32px;
        margin-bottom: 10px;
    }

   .banner-text-content .sub-title {
        font-size: 16px;
    }
}

/* --- 베스트 타일 추천 섹션 --- */
#best-tiles {
    margin-top: 20px;
}

#best-tiles h2 {
    text-align: center;
    font-size: 38px;
    margin-bottom: 0;
    color: #333333; /* 제목 색상 */
}

#best-tiles .section-subtitle {
    text-align: center;
    font-size: 18px;
    color: #666666; /* 서브 텍스트 색상 */
    margin-top: 15px;
    margin-bottom: 40px;
}

/* 타일 슬라이더 컨테이너 */
.tile-slider-container {
  overflow: hidden;
  position: relative;
}

.tile-slider {
    display: flex;
    transition: transform 0.5s ease-in-out;
	margin:auto;
}

.tile-item {
 width: calc(100% / 3); /* 컨테이너 너비의 1/3 */
    flex-shrink: 0; /* 크기 줄어들지 않게 함 */
 padding-right: 10px;
  box-sizing: border-box;
  transition: transform 0.3s ease;
}


.tile-item:last-child {
    padding-right: 0; /* 마지막 아이템의 오른쪽 여백 제거 */
}

.tile-item img {
    width: 100%;
    height: 500px; /* 이미지 높이 500px */
    object-fit: cover;
}

.tile-info {
    text-align: center;
    margin-top: 15px;
	
}

.tile-info h3 {
    color: #333333; /* 이미지 하단 타이틀 색상 */
	font-size:24px;
}

.tile-info p {
    color: #666666; /* 이미지 하단 서브 텍스트 색상 */
    margin-top: 5px;
	font-size:16px;
}

/* 슬라이더 화살표 스타일 */
.tile-prev-btn,
.tile-next-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-80%);
    background-color: #000000;
    opacity: 0.5; /* 배경색을 투명하게 (50% 투명도) */
    color: #ffffff; /* 화살표 아이콘 색상 */
    border: none; /* 테두리 제거 */
    width: 70px; /* 버튼 너비 */
    height: 70px; /* 버튼 높이 */
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    z-index: 10;
    font-size: 30px; /* 화살표 아이콘 크기 */
}

.tile-prev-btn {
    left: 0; /* 왼쪽 끝에 붙도록 설정 */
}

.tile-next-btn {
   right: 10px; /* 오른쪽 끝에 붙도록 설정 */
}

/* 마우스 호버 시 투명도 조절 (선택 사항) */
.tile-prev-btn:hover,
.tile-next-btn:hover {
    opacity: 0.8;
}




.tile-prev-btn, .tile-next-btn {
    display: flex; /* PC에서는 화살표 보임 */
}

/* --- 모바일 반응형 --- */
@media (max-width: 768px) {

	#best-tiles {
		margin-top: 0px;
	}

	#best-tiles h2 {
		font-size: 24px;
	}

	#best-tiles .section-subtitle {
		font-size: 16px;
	}




	.tile-info h3 {
		color: #333333; /* 이미지 하단 타이틀 색상 */
		font-size:24px;

	}

	.tile-info p {
		color: #666666; /* 이미지 하단 서브 텍스트 색상 */
		margin-top: 5px;
		font-size:16px;
	}



/* 타일 슬라이더 컨테이너 */
    .tile-slider-container {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
    }

   .tile-item {
        flex: 0 0 100%; /* Mobile: Show 1 item at a time */
        padding: 0; /* Remove padding if needed */
    }

    .tile-slider-container {
        padding: 0; /* Ensure no extra padding */
    }
    
    .tile-item img {

        height: auto; /* 모바일 이미지 높이 조정 */
    }
    
    .tile-slider-container {
        padding: 0; /* 모바일에서는 패딩 제거 */
    }

    /* PC용 화살표 숨기기 */
    .tile-prev-btn, .tile-next-btn {
        display: none;
    }

    /* 모바일용 화살표를 중앙에 배치 */
    .mobile-slider-nav {
        display: flex;

        justify-content: center; /* 가로 중앙 정렬 */
        gap: 20px; /* 버튼 사이 간격 */
        margin-top: 30px; /* 이미지와의 간격 */
    }

   /* 모바일용 화살표 스타일 */
    .mobile-slider-nav .tile-prev-btn, 
    .mobile-slider-nav .tile-next-btn {
        display: flex;
        position: static;
        transform: none;
        width: 44px; /* 버튼 너비 44px */
        height: 44px; /* 버튼 높이 44px */
        background-color: #000000;
        opacity: 0.5;
        color: #ffffff;
        font-size: 20px;
        border-radius: 0; /* 테두리 둥글기 제거 */
    }
}


/* --- BEFORE & AFTER 섹션 --- */
#before-after {
    padding: 80px 0;
    background-image: url('/assets/img/before_bg.png'); /* 여기에 배경 이미지 경로를 입력하세요. */
    background-size: cover; /* 이미지가 섹션을 꽉 채우도록 설정 */
    background-repeat: no-repeat; /* 이미지 반복 방지 */
    background-position: center; /* 이미지를 중앙에 배치 */
}

#before-after h2 {
    text-align: center;
    font-size: 38px;
    margin-bottom: 0;
    color: #333333; /* 제목 색상 */
}


#before-after .container{
max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
    position: relative; /* 이 속성 추가 */

}

.before-after-content {
    display: flex;
    background-color: #fff;
    border-radius: 0px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
	border:0px solid yellow;
	height:540px;
}

.main-image-col {
    width: 687px; /* 메인 이미지 너비 고정 */
    height: 540px; /* 메인 이미지 높이 고정 */
    flex-shrink: 0;
	padding: 40px 0px 40px 40px;
}

#main-after-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sub-content-col {
    flex-grow: 1; /* 남은 공간을 모두 차지 */
    padding: 0px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    align-items: center;

}

.slider-info {
    text-align: left;
	margin-top:30px;
    margin-bottom: 0px;
	border:0px solid yellow;
	width:86%;

	
}

.slider-info h3 {
    font-size: 24px;
    color: #333;    
	text-align:left;
	line-height:1.5;
}

.slider-info p {
    font-size: 16px;
    color: #666;
	margin-bottom: 10px;
}

.sub-slider-wrap {
    width: 100%;
    overflow: hidden;
    position: relative;
    margin-top: -40px; /* 이 부분이 위로 10px 이동시키는 코드입니다. */
}

.sub-slider {
    display: flex;
    gap: 40px; /* 이미지 간격 */
    justify-content: center;
}



/* 서브 이미지와 텍스트를 담을 컨테이너 */
.sub-image-container {
    position: relative;
    width: 269px;
    height: 289px;
    flex-shrink: 0;
}

/* sub-after-img1, sub-after-img2 이미지 */
.sub-image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* BEFORE 텍스트 박스 스타일 */
.before-label {
    position: absolute;
    bottom: 0px; /* 이미지 하단으로부터의 거리 */
    left: 0px; /* 이미지 왼쪽으로부터의 거리 */
    width: 100px;
    height: 30px;
    background-color: #fff;
    color: #333;
    font-size: 14px;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 0px;
}



/* 화살표 위치를 1400px 컨테이너 기준으로 설정 */
.after-prev-btn, .after-next-btn {
    position: absolute;
    top: 50%;
    transform: translateY(30%); /* 원래 지정하신 위치를 유지합니다. */
    background-color: rgba(0, 0, 0, 0.5);
    color: #fff;
    border: none;
    width: 70px;
    height: 70px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    z-index: 10;
    font-size: 21px;
}

.after-prev-btn {
    left: calc(50% - 700px + 21px); /* 이 부분이 화살표를 1400px 컨테이너의 왼쪽에 위치시키는 코드입니다. */
}

.after-next-btn {
    right: calc(50% - 700px + 21px); /* 이 부분이 화살표를 1400px 컨테이너의 오른쪽에 위치시키는 코드입니다. */
}



/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
    .before-after-content {
        flex-direction: column;
        padding: 0;
        height: auto;
    }

	#before-after h2 {
		font-size: 28px;

	}

	#before-after .section-subtitle {
		font-size: 16px;
	}


    .main-image-col {
        width: 100%;
        height: 300px;
        padding: 20px;
    }
    
    .main-image-col img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sub-content-col {
        width: 100%;
        height: auto;
        padding: 0;
        align-items: center;
    }

    .slider-info {
	margin-top:0px;
        padding: 0 0px;
        text-align: center;
        margin-bottom: 40px;
    }


	
	.slider-info h3 {
		font-size: 20px;
		color: #333;    
		text-align:left;
		line-height:1.5;
	}

	.slider-info p {
		font-size: 14px;
		text-align:left;
	}



    .sub-slider-wrap {
        height: auto;
        padding: 20px;
    }

    .sub-slider {
        display: flex; /* flex 컨테이너로 설정 */
        flex-direction: row; /* 서브 이미지들을 가로로 정렬 */
        justify-content: center;
        gap: 20px; /* 서브 이미지 간의 간격 */
    }
    
    .sub-image-container {
        display: flex;
        flex-direction: column; /* 이미지와 라벨을 세로로 정렬 */
        width: calc(50% - 10px); /* 두 이미지가 나란히 오도록 너비 설정 */
        height: auto;
        position: static;
        padding: 0; /* 불필요한 패딩 제거 */
    }
    
    .sub-image-container img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    /* BEFORE 텍스트 박스 스타일 */
    .before-label {
        position: static;
        margin-top: 10px;
        width: 100px;
        height: 30px;
        background-color: #fff;
        color: #333;
        font-size: 14px;
        font-weight: bold;
        display: flex;
        justify-content: center;
        align-items: center;
        border-radius: 0px;
    }
    
    /* PC용 화살표 숨기기 */
    .after-prev-btn, .after-next-btn {
        display: none;
    }
    
    /* 모바일용 화살표 스타일 */
    .mobile-before-after-nav {
        display: flex;
        justify-content: center;
        gap: 20px;
        margin-top: 20px;
    }
    
    .mobile-before-after-nav .after-prev-btn,
    .mobile-before-after-nav .after-next-btn {
        position: static;
        transform: none;
        width: 44px;
        height: 44px;
        background-color: #000;
        opacity: 0.5;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}


/* --- 타일 교체의 시작 섹션 --- */
#tile-start {
    padding: 80px 0;
    text-align: center;
}

#tile-start h2 {
font-size:38px;
    margin-bottom: 40px;
}

.tile-start-banners {
    display: flex;
    justify-content: center;
    gap: 20px; /* 배너 사이의 간격 */
}

.tile-start-banner {
    position: relative;
    width: 688px; /* 너비 고정 */
    height: 200px; /* 높이 고정 */
    overflow: hidden;

}

/* PC용 이미지: 기본적으로 보임 */
.tile-start-banner .mobile-image {
    display: none;
}



.tile-start-banner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease-in-out;
}

.tile-start-banner:hover img {
    transform: scale(1.05);
}

.banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    transition: background 0.3s ease-in-out;
}

.tile-start-banner:hover .banner-overlay {
    background: rgba(0, 0, 0, 0.6);
}

.banner-overlay h3 {
    font-size: 24px;
    margin-bottom: 10px;
}

.banner-overlay p {
    font-size: 16px;
    opacity: 0.9;
}

/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
   

    /* PC용 이미지 숨기기 */
    .tile-start-banner .pc-image {
        display: none;
    }
    /* 모바일용 이미지 보이기 */
    .tile-start-banner .mobile-image {
        display: block;
        width: 100%; /* 모바일 화면에 꽉 차도록 설정 */
    }



	.tile-start-banners {
        flex-direction: column; /* 모바일에서 배너를 세로로 정렬 */
        align-items: center;
        gap: 0;
		border:0px solid yellow;
    }

	#tile-start h2 {
	font-size:24px;
		margin-bottom: 40px;
	}
    
    .tile-start-banner {
        width: 100%;
        height: 100%; /* 모바일에서 높이 조정 */
        margin-bottom: 20px;
    }

    .tile-start-banner:last-child {
        margin-bottom: 0;
    }
}


/* --- 갤러리 섹션 --- */
#gallery {
    padding: 0;
}

.gallery-full-background {
    background-color: #F6F6F6; /* 배경색 */
    padding: 80px 0;
}

#gallery h2 {
    text-align: center;
    margin-bottom: 10px;
	font-size:38px;
}

.section-subtitle {
    text-align: center;
    margin-bottom: 40px;
}

.gallery-grid {
	margin-top:40px;
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4개씩 2줄 */
    gap: 20px;
}

.gallery-item {

}

.gallery-image-wrap {
    position: relative;
    width: 100%;
    height: 220px; /* 이미지 높이 고정 */
    overflow: hidden;
}

.gallery-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gallery-info {
    padding: 15px 0px;
    display: flex; /* 타이틀과 버튼을 한 줄에 정렬 */
    justify-content: space-between; /* 양 끝에 배치 */
    align-items: center;
}

.gallery-info h3 {
    font-size: 16px;
    color: #333;
	font-weight:400;
}

/* 더보기 버튼 스타일 */
.more-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 22px;
    height: 22px;
    background-color: #666666; /* 회색 배경 */
    border-radius: 50%;
    text-decoration: none;
    transition: background-color 0.3s ease-in-out;
}

.more-arrow {
    font-size: 12px;
    color: #fff; /* 흰색 화살표 */
    font-weight: bold;
    transform: rotate(0deg); /* 각도 조절 없이 기본 방향 */
}

/* 마우스 오버 시 효과 */
.gallery-item:hover .more-btn {
    background-color: #2E7EBC; /* 마우스 오버 시 파란색 배경 */
}

/* 하단 더보기 버튼 스타일 */
.view-more-btn {
    display: block;
    width: 150px;
    margin: 40px auto 0;
    padding: 12px;
    background-color: #fff;
    border: 1px solid #333;
    border-radius: 5px;
    text-align: center;
    text-decoration: none;
    color: #333;

    transition: all 0.3s ease-in-out;
}

.view-more-btn:hover {
    background-color: #2E7EBC;
    color: #fff;
    border-color: #2E7EBC;
}

/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr); /* 모바일에서 2개씩 4줄 */
    }

    .gallery-info h3 {
        font-size: 16px;
    }

	#gallery h2 {
		font-size:28px;
	}


	.more-btn {

		width: 14px;
		height: 14px;
	  
	}

}

/* --- 고객님의 생생후기 섹션 --- */

/* --- PC/모바일 화살표 가시성 관리 --- */
.reviews-mobile-nav {
    display: none; /* PC에서는 숨김 */
}


#reviews {
    padding: 0;
}

.reviews-full-width {
    width: 100%;
    background-color: #ffffff;
    padding: 80px 0;
    position: relative; /* 화살표 위치 기준 */
}

#reviews h2 {
    text-align: center;
	font-size:38px;
    margin-bottom: 10px;
}

#reviews .section-subtitle {
    text-align: center;
    font-size: 18px;
    color: #666666;
    margin-top: 15px;
    margin-bottom: 40px;
}

.reviews-content {
    max-width: 1400px; /* 전체 갤러리 영역의 최대 너비 */
    margin: 0 auto;
    position: relative;
    /* padding: 0 40px; /* 화살표를 밖으로 뺐으므로 여기 패딩 제거 */
}

.reviews-slider-viewport {
    overflow: hidden; /* 이 부분에서 슬라이더가 잘려 보이도록 함 */
    padding: 0 10px; /* 아이템의 좌우 간격을 위한 패딩 */
}

.reviews-slider {
    display: flex;
    gap: 20px; /* 아이템 간 간격 */
    transition: transform 0.5s ease-in-out;
}

.review-item {
    flex-shrink: 0;
    width: calc(25% - 15px); /* 4개 아이템과 gap을 고려한 너비 */
    background-color: #fff;
    border-radius: 0px;
    border:1px solid #DDDDDD;
    overflow: hidden;
}

.review-image-wrap {
    width: 100%;
    height: 220px;
    overflow: hidden;
}

.review-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.review-info {
    padding: 20px;
}

.review-info h3 {
    font-size: 18px;
    color: #333;
    margin-bottom: 10px;
}

.review-text {
    font-size: 14px;
    color: #666;
    line-height: 1.5;
    height: 63px;
    overflow: hidden;
    margin-bottom: 15px;
}

.review-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.stars {
    color: #00A1E0;
    font-size: 18px;
    letter-spacing: -2px;
}

.reviewer {
    font-size: 14px;
    color: #666;
}

/* PC용 화살표 스타일 */
.review-prev-btn.pc-only, .review-next-btn.pc-only {
    position: absolute;
    top: calc(50% + 40px);
    transform: translateY(-50%);
    width: 60px;
    height: 60px;
    background-color: #FFFFFF; /* 배경색을 흰색으로 변경 */
    color: #666666; /* 텍스트 색상을 #666666으로 변경 */
    border: 1px solid #333333; /* 보더라인을 #333333으로 추가 */
    border-radius: 0%;
    cursor: pointer;
    font-size: 24px;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s;
}

.review-prev-btn.pc-only {
    left: calc(50% - 700px - 60px);
}

.review-next-btn.pc-only {
    right: calc(50% - 700px - 60px);
}

.review-prev-btn.pc-only:hover, .review-next-btn.pc-only:hover {
    background-color: #F6F6F6;
	 border: 0px solid #333333; /* 보더라인을 #333333으로 추가 */
}

/* 모바일 반응형 */
@media (max-width: 768px) {
    /* PC용 화살표 숨기기 */
    .pc-only {
        display: none;
    }

	/* 모바일용 화살표 보이기 및 하단 배치 */
    .reviews-mobile-nav {
        display: flex;
        justify-content: center;
        gap: 30px;
        margin-top: 30px; /* 아이템과 화살표 사이 간격 */
    }

	#reviews h2 {
		font-size:28px;
	}

	#reviews .section-subtitle {

		font-size: 16px;

	}



    .review-prev-btn.mobile-only, .review-next-btn.mobile-only {
        display: flex;
        width: 50px;
        height: 50px;
        background-color: rgba(0, 0, 0, 0.5);
        color: #fff;
        border: none;
        border-radius: 0%;
        cursor: pointer;
        font-size: 24px;
        justify-content: center;
        align-items: center;
        transition: background-color 0.3s;
    }

    .review-prev-btn.mobile-only:hover, .review-next-btn.mobile-only:hover {
        background-color: rgba(0, 0, 0, 0.8);
    }

	.reviews-content {
        padding: 0;
    }
    .review-item {
        width: calc(100% - 20px);
    }
    .reviews-slider {
        padding: 0 10px;
    }
    .review-prev-btn, .review-next-btn {
        display: none;
    }
 /* PC용 리뷰 슬라이더 화살표 숨기기 */
    .review-prev-btn.pc-only, .review-next-btn.pc-only {
        display: none;
    }

	/* 리뷰 슬라이더 컨테이너 */
    .review-slider-container {
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 0 20px;
    }

    .review-slider {
        display: flex;
    }

    .review-item {
        flex-shrink: 0;
        scroll-snap-align: start;
        width: calc(100vw - 40px); /* 화면 너비에서 좌우 여백을 뺀 값으로 설정 */
        margin-right: 0px; /* 아이템 간 간격 */
    }
}


/* --- 생생후기 배너 섹션 --- */
#reviews-banner {
    padding: 0px 0 80px 0;
    text-align: center;
}

.reviews-banner {
    width: 100%;
    object-fit: cover;
    display: block;
    margin: 0 auto;
}

/* PC에서는 PC용 배너만 보임 */
.pc-banner {
    max-width: 1400px;
    height: 271px;
    display: block;
}

.mobile-banner {
    display: none;
}

/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
    /* PC용 배너 숨기기 */
    .pc-banner {
        display: none;
    }
    
    /* 모바일용 배너 보이기 */
    .mobile-banner {
        display: block;
        max-width: 100%;
        height: 100%;
    }


}

/* --- 푸터 섹션 --- */
#footer {
    background-color: #333333;
    color: #ffffff;
    padding: 40px 0;
}

#footer .container {
    padding: 0 20px;
}

/* 상단 메뉴 */
.footer-top {
    margin-bottom: 20px;
}

.footer-links {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
}

.footer-links li a {
    color: #ffffff;
    font-size: 16px;
    text-decoration: none;
}

/* 흰색 구분선 */
.footer-divider {
    border-bottom: 1px solid #444444;
}

/* 하단 정보 전체 영역 */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 20px 0;
    flex-wrap: wrap;
    gap: 20px;
}

/* 회사 정보 좌측 영역 */
.footer-info-left {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    flex-wrap: wrap;
    flex-grow: 1;
}

.footer-logo img {
    max-width: 120px;
}

.footer-details p {
    font-size: 16px;
    line-height: 2.5;
    margin: 0 20px;
}

.info-label {
    color: #999999;
}

.info-value {
    color: #ffffff;
	margin-right:30px;
}

.copyright-text {
    color: #999999;
    font-size: 12px;

	padding-top:10px;
}

/* 연락처 우측 영역 */
.footer-info-right {
    text-align: right;
}

.footer-contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

.contact-label {
    font-size: 16px;
    color: #999999;
    margin: 0;
}

.contact-number {
    font-size: 30px;
    font-weight: bold;
    color: #ffffff;
    margin: 0;
}

.contact-hours {
    font-size: 15px;
    color: #999999;
    margin: 0;
}

.kakao-button img {
    width: 100%;
    height: auto;
    margin-top: 10px;
}

/* --- 모바일 반응형 --- */
@media (max-width: 768px) {
    .footer-links {
        justify-content: flex-start;
        text-align: left;
    }

	.footer-links li a {
		font-size: 13px;
	}

	.footer-logo img {
    max-width: 90px;
}


    .footer-bottom {
        flex-direction: column;
        align-items: flex-start; /* 모바일 왼쪽 정렬 */
        text-align: left;
    }

    .footer-info-left {
        flex-direction: column;
        align-items: flex-start; /* 모바일 왼쪽 정렬 */
        text-align: left;
        gap: 10px;
        margin-bottom: 20px;
    }

    .footer-info-right {
        text-align: left;
        width: 100%;
    }

    .footer-contact {
        align-items: flex-start; /* 모바일 왼쪽 정렬 */
    }

    .footer-details {
        text-align: left;
    }

    .footer-details p {
        white-space: normal;
		 margin: 0;
		   font-size: 13px;
		     line-height: 1.5;
    }

    .footer-details p span {
        display: inline;
        line-height: 2.5;
    }

	.info-value {

		margin-right:10px;
	}

	.contact-label {
		font-size: 13px;
	}

	.contact-number {
		font-size: 24px;
	}

	.contact-hours {
		font-size: 13px;
	}

	.kakao-button img {
		width: 80%;
		height: auto;
		margin-bottom:50px;
	}
}


/* 모바일 하단 고정 CTA 버튼 */
.mobile-fixed-cta {
    display: none; /* PC에서는 숨김 */
}

@media (max-width: 768px) {
    .mobile-fixed-cta {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        background-color: #fff;
        border-top: 1px solid #eee;
    }

    .mobile-fixed-cta a {
        flex: 1;
    }

    .mobile-fixed-cta img {
        display: block;
        width: 100%;
        height: auto;
    }
}


/* --- PC 버전 플로팅 버튼 (fixed-popup-buttons) 스타일 --- */

.fixed-popup-buttons {
    /* 고정 위치 설정 */
    position: fixed;
    right: 20px; /* 오른쪽에서 20px 떨어짐 */
    bottom: 50%; /* 수직 중앙에서 시작 */
    transform: translateY(50%); /* 정확히 수직 중앙으로 이동 */
    z-index: 1000; /* 다른 요소 위에 표시 */
    display: flex;
    flex-direction: column; /* 버튼을 세로로 배치 */
    gap: 10px; /* 버튼 사이 간격 */

    /* 기본적으로 모바일에서는 숨김 */
    display: none;
}

.fixed-btn {
    display: block;
    width: 60px; /* 버튼 너비 */
    height: 60px; /* 버튼 높이 */
    border-radius: 50%; /* 원형 버튼 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 그림자 효과 */
    overflow: hidden; /* 이미지 오버플로우 방지 */
    transition: transform 0.2s ease;
}

.fixed-btn:hover {
    transform: scale(1.05); /* 마우스 호버 시 약간 확대 */
}

.fixed-btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 상단 이동 버튼은 맨 위에 위치할 때는 숨김 처리 (선택 사항) */
/* .top-btn {
    display: none;
} */

/* PC (데스크톱) 환경에서만 플로팅 버튼을 보이게 설정 */
@media (min-width: 1025px) {
    .fixed-popup-buttons {
        display: flex; /* PC에서는 보이기 */
    }
}

/* 태블릿/작은 PC 화면에서 위치 조정 */
@media (min-width: 768px) and (max-width: 1400px) {
    .fixed-popup-buttons {
        right: 40px; /* 컨테이너 바깥쪽으로 약간 이동 */
    }
}

/* --- /PC 버전 플로팅 버튼 스타일 --- */