/* scrollReveal 요소를 미리 숨기기 */
html.sr .reveal{
  visibility: hidden;
}

/* ------------★ 히어로 색션 ------------*/
/* (1)상단 메뉴 */
header nav {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: absolute;
  z-index: 999;
  padding: 20px 40px;
  top: 0;
  left: 0;
}

header .logo img {
  width: 150px;
  height: auto;
}

header .hamburger span {
  font-size: 40px;
  font-weight: 400;
  cursor: pointer;
}

/* fixed 화살표 */
.to-top-btn {
  position: fixed;
  right: 40px;
  bottom: 40px;
  width: 60px;
  height: 60px;

  display: flex;
  justify-content: center;
  align-items: center;

  background: rgba(255, 90, 0, 0.15);
  border: 2px solid #ff5a00;
  border-radius: 50%;
  backdrop-filter: blur(6px);
  cursor: pointer;
  transition: 0.25s ease;
  z-index: 999;
}

.to-top-btn .arrow {
  font-size: 14px;
  color: #ff5a00;
  font-weight: 500;
  transform: translateY(2px);
}

/* ✦ 호버하면 밝아지고 커짐 */
.to-top-btn:hover {
  background: #ff5a00;
  transform: translateY(-4px) scale(1.07);
}

.to-top-btn:hover .arrow {
  color: #fff;
}

/* ✦ 스크롤 조금 내려가면 나타나는 효과 (선택사항) */
.to-top-btn.hide {
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: opacity 0.3s, transform 0.3s;
}

/* (2) 배너 슬라이드 */
.hero_slide {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}


/* (2) 모델 이미지 컨테이너 */
.hero_container {
  position: absolute;
  top: 20%; 
  z-index: 1;
  display: flex;
  align-items: center;

}

.hero_container .swiper-slide {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  cursor: pointer;
  transition: transform 0.8s ease, filter 0.8s ease, opacity 0.8s ease;
  filter: brightness(0.5);
  opacity: 0.8;
}

.hero_container .item{
  width: 350px;
  height: 500px;
  object-fit: cover;

}

.hero_container .item .text * {
  text-align: center;

}

/* 텍스트 스타일 */
.hero_container .item_title {
  margin-top: 24px;
  font-size: 38px;
  font-weight: 700;
}

.hero_container .item_desc {
  margin-top: 6px;
  font-weight: 400;
  font-size: 20px;
}

.hero_container .item .text {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* 가운데 슬라이드에서만 표시 */
.hero_container .swiper-slide-active .item .text {
  opacity: 1;
  transform: translateY(0); 
}

/* (3) 배너 동영상 배경 (포지션으로 겹쳐놓은 상태) */
.backgrounds {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.backgrounds video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: brightness(0.5);
}

.backgrounds video.is-active {
  opacity: 1;
  z-index: 1;
}


/* swiper 가운데 아이템 스타일 */
.hero_container .swiper-slide.swiper-slide-active{
  filter: brightness(1.1);
  opacity: 1;
  transform: rotate(0deg) !important;
}

/* 홀수 번째 아이템 (왼쪽으로 살짝 기울임) */
.hero_container .swiper-slide:nth-child(odd) {
  transform: rotate(-5deg);
}

/* 짝수 번째 아이템 (오른쪽으로 살짝 기울임) */
.hero_container .swiper-slide:nth-child(even) {
  transform: rotate(5deg);
}

/* ===========================================
   오프캔버스 메뉴 스타일
=========================================== */

/* 전체 배경 (처음엔 숨김) */
#side_menu {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  display: flex;
  justify-content: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
  z-index: 9999;
}

/* 슬라이드 패널 */
#side_menu .menu_inner {
  width: 340px;
  height: 100%;
  background: #111;
  padding: 60px 40px;
  transform: translateX(100%);
  transition: transform .4s ease;
  display: flex;
  flex-direction: column;
  position: relative;
}

/* 활성화 시 */
#side_menu.active {
  opacity: 1;
  pointer-events: auto;
}

#side_menu.active .menu_inner {
  transform: translateX(0);
}

/* 닫기 버튼 (X) */
#side_menu .close_btn {
  position: absolute;
  top: 20px;
  right: 18px;
  font-size: 40px;
  font-weight: 200;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
}

/* 메뉴 스타일 */
#side_menu .menu_list {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 25px;
}

#side_menu .menu_list li a {
  font-size: 26px;
  color: #fff;
  font-weight: 300;
  letter-spacing: 0.5px;
  transition: 0.3s ease;
}

#side_menu .menu_list li a:hover {
  color: #ff7a00;
}

@media(max-width: 1100px){
.hero_container .item {
width: 250px;
height: 300px;
}}

/* ------------블랙라벨------------ */
.blak_label {
  width: 100%;
  height: 330px;
  background-color: var(--dark_color_1);
  display: flex;
  justify-content: center;
  gap: 150px;
  padding: 100px;
}

.blak_label .title {
  font-size: 40px;
  font-weight: 800;
}

.blak_label .desc {
  font-size: 20px;
  display: flex;
  flex-direction: column;
}

.blak_label .text {
  line-height: 2em;
  margin-bottom: 20px;
  font-weight: 200;
}

.blak_label .line {
  width: 50px;
  min-height: 1px;
  background-color: #ddd;
  margin-top: 20px;
}

.blak_label .name {
  color: var(--point_color_1);
  line-height: 2em;
}

@media(max-width: 1100px){
.blak_label .title {
  margin-top: 50px;
  font-size: 38px;
}

.blak_label .text{
  font-size: 16px;
  margin-top: 20px;
}

.blak_label{
  display: block;
  padding: 10px;
  text-align: center;
}

.blak_label .line{
  text-align: center;
  margin: auto;
}
}


/*  1. ★ 회사소개 색션 ----------------------- */
.section_title span {
  color: var(--point_color_1);
}

.about_container {
  height: 70vh;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 60px;
}

/* (1) 이미지 */
#about .visual {
  position: relative;
  width: 800px;
  height: 600px;
}

#about .visual .img_box {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .4s ease-in-out;
}

#about .visual .img_box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* (2) 텍스트 라벨  */
#about .text_label {
  width: 70%;
  color: var(--font_color_dark);
  position: relative;
  z-index: 1;
}


/* 각각의 탭 */
#about .text_box {
  height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 2.2em;
  cursor: pointer;
}

/* 탭박스 */
#about .text_box .box {
  color: #bcbcbc;
}

/* 큰 설명글 */
#about .text_box .box2 {
  font-size: 28px;
  font-weight: 600;
}

/* 작은 설명글 */
#about .text_box .box3 {
  font-size: 18px;
  font-weight: 300;
}

#about .text_line {
  width: 100%;
  height: 1px;
  background: #d8d8d8;
}

#about .text_box label {
  cursor: pointer;
  display: block;
}

/* 인풋박스 -----------------------*/
#about input {
  display: none;
}

/* 선택되면 텍스트 강조 */
#tab1:checked~.text_label label[for="tab1"] .box,
#tab2:checked~.text_label label[for="tab2"] .box,
#tab3:checked~.text_label label[for="tab3"] .box {
  color: var(--font_color_dark);
  transition: 0.8s ease-in-out;
}

/* 선택되면 주황색으로 강조 */
#tab1:checked~.text_label label[for="tab1"] .box span,
#tab2:checked~.text_label label[for="tab2"] .box span,
#tab3:checked~.text_label label[for="tab3"] .box span {
  color: var(--point_color_1);
}

/* 선택된 탭에 해당하는 이미지 보여지도록  */
#tab1:checked~.visual .img_box:nth-child(1) {
  opacity: 1;
  transition: 1s ease;
}

#tab2:checked~.visual .img_box:nth-child(2) {
  opacity: 1;
  transition: 1s ease;
}

#tab3:checked~.visual .img_box:nth-child(3) {
  opacity: 1;
  transition: 0.8s ease;
}

/* 반응형 */
@media(max-width: 1100px){
#about .visual{
  width: clamp(400px, 20vw, 800px);
  height: clamp(400px, 10vw, 600px);
}

.about_container {
  display: block;
  height: 100%;
}

#about .text_label{
  width: 100%;
  font-size: 14px;
  margin-top: 100px;
}

#about .text_box .box2{
  font-size: 18px;
}
}

/* ★ 2. 진행 과정 색션 -----------------------*/
/* (1) 인디케이터 */
#process .indicator.swiper-pagination {
  position: static;       
  margin: 20px auto 30px;  
  text-align: end;
}

/* 기본 점 */
#process .swiper-pagination-bullet {
  background: #ccc;       
  opacity: 1;       
  width: 10px;
  height: 10px;
  margin: 0 6px;
}

/* 활성 점 (active) */
#process .swiper-pagination-bullet-active {
  background: #ff7a00;     
  transition: 0.3s;
}

/* (2) 슬라이드 */
.pro_slide {
  display: flex;
  overflow: hidden;
}

.pro_item {
  height: 280px;
  color: var(--font_color_light);
  border-radius: 10px;
  padding: 55px;
  line-height: 1.6em;
}

.pro_item .number {
  font-size: 50px;
  font-weight: 700;
  margin-bottom: 40px;
}

.pro_item .title {
  font-size: 30px;
  font-weight: 500;
  margin-bottom: 20px;
}

/* 주황색 영어 */
.pro_item span {
  font-size: 18px;
  color: var(--point_color_1);
  font-weight: 300;
}

/* 세부설명 */
.pro_item .desc {
  font-size: 18px;
  font-weight: 200;
}

/* 아이템 배경 */
.pro_item.item1 {
  background: url(./img/sec2_process/img_1.png) no-repeat center/cover;
}

.pro_item.item2 {
  background: url(./img/sec2_process/img_2.png) no-repeat center/cover;
}

.pro_item.item3 {
  background: url(./img/sec2_process/img_3.png) no-repeat center/cover;
}

.pro_item.item4 {
  background: url(./img/sec2_process/img_4.png) no-repeat center/cover;
}

/* 제작과정 동그라미 */
.pro_desc {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 80px;
  font-size: 18px;
  position: relative;
  margin-top: 50px;
}

/* 가로선 */
.pro_desc .line {
  width: 100%;
  height: 1px;
  background-color: #999;
  position: absolute;
  top: 80px;
}

.set {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* 동그라미 */
.round {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  border: 1px solid #a9a9a9;
  background-color: rgb(245, 247, 250);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 10;
  color: var(--font_color_dark);
}

.round_desc {
  text-align: center;
  margin-top: 30px;
  font-size: 16px;
  z-index: 10;
  color: var(--font_color_dark);
}

/* ★ 3. AI 모델 색션 -----------------------*/
#ai_grid {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#ai_grid .section_title {
  margin-top: 160px;
  text-align: center;
  line-height: 1.8em;
}

#ai_grid .section_desc{
  text-align: center;
  line-height: 2em;
  font-size: 18px;
  color: var(--font_color_dark);
}
/* (2) 그리드 구조 모델 사진 */
.grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 550px;
  gap: 20px;
  margin-top: 60px;
  margin-bottom: 100px;
  object-fit: cover;
}

/* 그리드 이미지 공통 */
.grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 그리드 동영상 공통 */
.grid video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* 그리드 구조 셀 합치기 */
.grid .item:nth-child(1) {
  grid-column: span 2;
}


.grid .item:nth-child(10) {
  grid-column: span 2;
  grid-row: span 2;
}


/* 자세히 보기 */
.item.newin {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}


.item.newin h3 {
  font-size: 190px;
  letter-spacing: -10px;
  line-height: 0.9em;
  display: inline-block;
  color: var(--font_color_dark);
  /* transform이 적용되도록 */
}


.item.newin a {
  font-size: 18px;
    color: var(--font_color_dark);
}


/* 화살표 이미지 */
.item.newin img {
  width: 100%;
  height: 20px;
  object-fit: fill;
  background-color: transparent;
}


/* 반응형 */
@media(max-width: 1100px){
.grid{
  grid-template-columns: repeat(3, 1fr);
}
}


@media(max-width: 800px){
.grid{
  grid-template-columns: repeat(1, 1fr);
}
}


/* ★ 4. 회사 서비스 색션 -----------------------*/
#services{
  padding: 0px;
}

.block_title {
  margin-top: 100px;
  font-size: 18px;
  color: var(--font_color_dark);
}

/* 타이틀 작은 네모 */
.block_title span {
  color: #ff5622;
}

.block_desc {
  font-size: 44px;
  font-weight: 700;
  margin-top: 30px;
  letter-spacing: -0.04em;
  line-height: 1.4em;
  color: var(--font_color_dark);
}

@media(max-width: 1100px){
.block_desc{
  font-size: 30px;
}
}

.block p {
  font-size: 20px;
  font-weight: 500;
  color: #81726e;
}

.block_desc span {
  color: #ff5622;
}

.block_desc2 {
  font-size: 24px;
  font-weight: 500;
  color: #727272;
  margin: 30px 0;
}

@media(max-width: 1100px){
.block_desc2{
  font-size: 16px;
}
}


.block_img {
  width: 100%;
  object-fit: cover;
  display: flex;
  gap: 20px;
}

.block_img img{
  border-radius: 10px;
}

.block_img .card6,
.block_img .card7 {
  width: 100%;
  height: 800px;
}


/* 반응형 */
@media(max-width: 1000px){
.block_img {
  display: block;
}}


/* ★ 5. 견적문의 색션 -----------------------*/
#contact .form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 48px;
  row-gap: 18px;
  align-items: start;
  padding: 60px;
  margin-bottom: 150px;
}

/* 텍스트 인풋 공통 */
#contact input[type="text"] {
  height: 40px;
  padding: 0 14px;
  border: 0;
  border-radius: 4px;
  background: #e6e6e6;
  outline: none;
  width: 100%;
  font-size: 16px;
}

/* 입력하기 전 보여지는 텍스트 */
#contact input[type="text"]::placeholder {
  color: #969696;
}


/* 각 항목별 타이틀 */
#contact .field {
  display: grid;
  grid-template-columns: 130px 1fr;
  align-items: center;
  gap: 14px;
}

#contact .field>span {
  white-space: nowrap;
  font-weight: 600;
    color: var(--font_color_dark);
}

/* 4. 성별 */
#contact .gender_box {
  grid-column: 2;
}

/* 오른쪽 칸 */
#contact .gender_box label,
#contact label[for=""] {
  margin-right: 18px;
      color: var(--font_color_dark);
}

/* 5. 이메일 2칸 구조*/
#contact .email .email-box {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
}

#contact .email .email-box em {
  font-style: normal;
}

#contact input[type="radio"] {
  transform: translateY(1px);
  margin-right: 6px;
}

/* 12 (업로드) */
#contact .span-2 {
  grid-column: 1 / -1;
}


#contact .btn-file {
  position: relative;
  display: inline-block;
  padding: 10px 14px;
  background: #eee;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
}

#contact .btn-file input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

#contact .upload-row p {
  color: var(--font_color_gray);
  font-size: 14px;
}

/* 동의 영역 */
#contact .agree {
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--font_color_gray);
  font-size: 14px;
  gap: 20px;
  margin-top: 50px;
}

/* 제출 버튼 */
#contact .actions {
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

#contact .submit {
  height: 50px;
  padding: 0 50px;
  background: #ff5a00;
  color: var(--font_color_light);
  font-weight: 400;
  font-size: 18px;
  border: 0;
  cursor: pointer;
}

#contact .upload-row {
  display: grid;
  grid-template-columns: 130px auto 1fr;
  align-items: center;
  gap: 14px;
    color: var(--font_color_dark);
}

#contact .upload-row p {
  background: rgba(240, 240, 240, 0.85);
  padding: 12px 16px;
  border-radius: 8px;
  border: 1px solid #ddd;
}

/* 반응형*/
@media (max-width: 900px) {
  #contact .form {
    grid-template-columns: 1fr;
  }

  #contact legend,
  #contact .gender_box {
    grid-column: 1;
  }

  #contact .field {
    grid-template-columns: 140px 1fr;
  }

  #contact .upload-row {
    display: block;
    grid-template-columns: 100px auto;
  }
}


/* 모든 섹션 스타일 끝 */
/* ★ 푸터 -----------------------*/
#footer {
  width: 100%;
  background: #0e0e0e;
  color: #ddd;
  font-size: 16px;
  font-weight: 500;
  padding: 100px;
}

@media(max-width: 1100px){
#footer{
  padding: 50px;
}
}


#footer .inner {
  position: relative;
}

#footer .company_info {
  line-height: 2em;
}

/* 행 */
#footer .row {
  display: flex;
  gap: 20px;
}

#footer .row2 {
font-weight: 300;
}

/* 설명 */

#footer .name span {
  font-weight: 300;
  font-size: 14px;
  margin-left: 20px;
  margin-right: 60px;
}

/* 직선 */
.foot_line {
  width: 100%;
  height: 1px;
  background-color: #4b4b4b;
  margin: 50px 0;
}


/* 반응형 */
@media (max-width: 1000px) {
  .company_info ,
  .row,
  .row2{
    display: block;
    flex-direction: column;
    align-items: flex-start;
    padding: auto;
  }
}