@charset "UTF-8";

/* 기본 색상 */
:root {
	--main-color: #6e888e;
	--accent-color: #9d8aae;
	--dark-main-color: #3e6974;
	--text-bright-color: #fff;
	--icon-color: #fff;
	--icon-bk-color: #ddd;
	--gray-color: #ddd;
	--large-width: 1000px;
	--middle-width: 800px;
}


/* 기본 설정: 폰트 크기 */
@media (max-width: 599px) {
	:root {
		font-size: 14px;
	}
}

@media (min-width: 600px) and (max-width: 799px) {
	:root {
		font-size: 16px;
	}
}

@media (min-width: 800px) {
	:root {
		font-size: 18px;
	}
}

body {
  font-size: 16px;
}



/* 기본 설정: 페이지 전체 */
body {
	margin: 0;
	font-family: '맑은 고딕',
		'Apple SD Gothic Neo','sans-serif';
}

/*header 헤더*/
header {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;
	width: 100%;
	background-color:#040707;
	color: hsl(0, 0%, 73%);
}


/*headA:사이트이름*/
.mainlogo {
  width: 100px;
  height: auto;
  content: url("img/main_logo.png");
  transition: 0.2s ease;
}

/* hover 시 다른 이미지로 변경 */
.logo-link:hover .mainlogo {
  content: url("img/main_logo2.png");
}

/* headB: 네비게이션 메뉴*/
.headB ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.headB a {
	display: block;
	padding: 15px;
	color: inherit;
	font-size: 12px;
	text-decoration: none;
}

.headB a:hover {
	background-color: #FFD700;
	border-radius: 100%;
	color: #000000;
}

@media (min-width: 768px) {
	header .container {
		display: flex;
		align-items: center;
		justify-content: space-between;
		max-width: 1000px;
		max-width: var(--large-width);
		margin-left: auto;
		margin-right: auto;
	}

	.headB ul {
		display: flex;
	}
}

/*HeaderC: 토글 버튼*/
@media (max-width: 767px) {
	/*작은 화면 전용 설정*/
	header .container-small {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.headC {
		margin-right: 10px;
		padding: 0;
		border: none;
		outline: none;
		background: none;
		font-size: 28px;
		opacity: 0.5;
		cursor: pointer;
		color: hsl(0, 0%, 73%);
	}

	.headC:hover {
		opacity: 0.3;
	}

	.headB {
		display: none;
	}
}

@media (min-width: 768px) { 
	/*큰 화면 전용 설정*/
	.headC {
		display: none;
	}

	.headB {
		display: block !important;
	}
}


/* 배너 박스 */
.cursor-banner{
  position: relative;
  height: 80vh;
  min-height: 50px;
  background-position: center;
  background-size: cover;
  background-image: url(img/main_benner.png);
  margin-top: 80px;
  overflow: hidden;
}

.banner-canvas{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.cursor-sprite{
  position: absolute;
  width: 200px;
  height: auto;
  transform-origin: center;
  opacity: 0;
  filter: drop-shadow(0 6px 16px rgba(0,0,0,.4));
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
  will-change: transform, opacity;
  animation: popAndFade 1600ms both;
}

@keyframes popAndFade{
  0%   { transform: translate(-50%, -50%) scale(.72) rotate(-1.5deg); opacity: 0; }
  16%  { transform: translate(-50%, -50%) scale(1.12) rotate(1.2deg);  opacity: .95; }
  26%  { transform: translate(-50%, -50%) scale(.98)  rotate(-.6deg);  opacity: 1; }
  40%  { transform: translate(-50%, -58%) scale(1)    rotate(.2deg);   opacity: .98; }
  100% { transform: translate(-50%, -72%) scale(1)    rotate(0);       opacity: 0; }
}

/* 반응형 조정 */
@media (max-width: 680px){
  .cursor-banner{
    height: auto;
    min-height: auto;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center center;
  }

  .cursor-banner::before{
	content: "";  
    display: block;
    width: 100%;
    padding-top: 56.25%;
  }

  .cursor-sprite{ 
    width: 80px; 
  }
}


/* Mver.conB: 콘텐츠 개요(icon+text) - 모바일 기본 */
.conB {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 120px;
  padding: 32px 16px;
  background-position: center;
  background-size: cover;
  background-color: #040707;
}

.conB .container {
  padding-top: 20px;
  line-height: 0.7;
}

.conB .text {
  padding-bottom: 24px;
  text-align: center;
}

.conB p {
  margin-bottom: 16px;
  /* 폰트도 살짝 반응형으로 */
  font-size: clamp(0.9rem, 3vw, 1rem);
  line-height: 1.6;
  opacity: 0.8;
  color: hsl(0, 0%, 73%);
}

/* ★ sbutton: 반응형 텍스트 버튼 */
.sbutton {
  position: relative;
  border: none;
  background: transparent;
  --stroke-color: hsl(0, 0%, 73%);
  --ani-color: hsl(0, 0%, 73%);
  --color-gar: linear-gradient(90deg,#03a9f4,#f441a5,#ffeb3b,#03a9f4);
  letter-spacing: 0.2em;
  /* Q1 답: clamp(최소, 화면기준, 최대) 형태로 쓰면 화면 크기에 맞게 자동 조절됩니다. */
  font-size: clamp(2rem, 10vw, 3.5rem);
  font-family: "Arial";
  text-transform: uppercase;
  color: transparent;
  -webkit-text-stroke: 0.8px var(--stroke-color);
  cursor: pointer;
}

.front-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  background: var(--color-gar);
  -webkit-background-clip: text;
  background-clip: text;
  background-size: 200%;
  overflow: hidden;
  transition: all 1s;
  animation: 8s ani infinite;
  border-bottom: 2px solid transparent;
}

.sbutton:hover .front-text {
  width: 100%;
  border-bottom: 2px solid #2c9ed2;
  -webkit-text-stroke: 1px var(--ani-color);
}

@keyframes ani {
  0% { background-position: 0%; }
  50% { background-position: 400%; }
  100% { background-position: 0%; }
}


/* pc-콘텐츠B: 개요(아이콘_글자) [width=768px]를 기준으로 */
@media (min-width: 768px) {

  .conB {
    min-height: 70vh;
    padding: 60px 20px;
  }

  .conB .container {
    display: flex;
    max-width: 1000px;
    max-height: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    align-items: center;
    justify-content: center;
  }

  .conB .text {
    flex: 1;
  }

  /* PC에서는 조금 더 크게 보이도록 */
  .sbutton {
    font-size: clamp(3rem, 6vw, 5rem);
    -webkit-text-stroke: 1px var(--stroke-color);
  }
}



.conC {
  background-color: #040707;
}

/* 모바일: 한 줄 레이아웃(이미지 위, 텍스트 아래) 기준 */
.conC .container {
  max-width: var(--large-width);
  margin: 0 auto;
}

.conC .text {
  padding: 20px 16px;
  color: hsl(0, 0%, 73%);
}

.conC h2 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: clamp(18px, 4.5vw, 20px);
}

.conC p {
  margin-top: 0;
  margin-bottom: 20px;
  font-size: clamp(13px, 3.5vw, 14px);
  line-height: 1.8;
  opacity: 0.8;
}

.conC a {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  border: solid 3px currentColor;
  border-radius: 6px;
  background-color: #121212;
  color: #3fb3d9;
  font-size: 14px;
  text-decoration: none;
}

.conC a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,0.2),
    rgba(255,255,255,0.2)
  );
}

.conC .photo {
  min-height: 260px; /* 모바일에서 너무 높지 않게 */
  background-image: url(img/news1.png);
  background-position: center;
  background-size: cover;
  position: relative;
  --e: 0;
}

/* 사진 위 텍스트 (모바일 기준: 좌우 여백 두고 아래쪽에 배치) */
.conC .photo-caption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 24px;
  z-index: 2;
  color: #eeeeee;
  font-weight: 800;
  line-height: 1.2;
  font-size: clamp(1.2rem, 4.8vw, 1.6rem);
  transform: translateY(80px) scale(.96);
  opacity: 0;
  filter: blur(10px);
  will-change: transform, opacity, filter;

  /* 스크롤 애니메이션용 */
  transform: translateY(calc(80px * (1 - min(var(--e), 1))))
             scale(calc(.96 + .06 * min(var(--e), 1)));
  opacity: min(var(--e), 1);
  filter: blur(calc(10px * (1 - min(var(--e), 1))));
}

/* =========================
   PC (768px 이상) – 콘텐츠 C
   ========================= */
@media (min-width: 768px) {
  .conC .container {
    display: flex;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
  }

  .conC .photo {
    flex: 3;
    min-height: 350px;
  }

  .conC .text {
    flex: 2;
    padding: 50px;
  }

  .conC .photo-caption {
    left: 40px;
    right: auto;
    bottom: 40px;
    font-size: clamp(1.3rem, 2.6vw, 1.8rem);
  }
}

/* =========================
   콘텐츠 D (이미지 + 글자, 반대 배치)
   모바일 기본
   ========================= */
.conD {
  color: hsl(0, 0%, 73%);
  background-color: #040707;
  padding-bottom: 40px;
  margin-top: 100px;
}

.conD .container {
  max-width: var(--large-width);
  margin: 0 auto;
}

.conD .text {
  padding: 20px 16px;
  text-align: right;
}

.conD h2 {
  margin: 0 0 10px;
  font-size: clamp(18px, 4.5vw, 20px);
}

.conD p {
  margin: 0 0 20px;
  font-size: clamp(13px, 3.5vw, 14px);
  line-height: 1.8;
  opacity: .85;
}

.conD a {
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  border: 3px solid currentColor;
  border-radius: 6px;
  background-color: #121212;
  color: #cf4ba1;
  font-size: 14px;
  text-decoration: none;
}

.conD a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,.2),
    rgba(255,255,255,.2)
  );
}

.conD .photo {
  min-height: 260px;
  background: url(img/news2.png) center/cover no-repeat;
  position: relative;
  --e: 0;
}

/* 사진 위 텍스트 (모바일) */
.conD .photo-caption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 24px;
  z-index: 2;
  color: #eeeeee;
  font-weight: 800;
  line-height: 1.2;
  font-size: clamp(1.2rem, 4.8vw, 1.6rem);
  transform: translateY(80px) scale(.96);
  opacity: 0;
  filter: blur(10px);
  will-change: transform, opacity, filter;

  transform: translateY(calc(80px * (1 - min(var(--e), 1))))
             scale(calc(.96 + .06 * min(var(--e), 1)));
  opacity: min(var(--e), 1);
  filter: blur(calc(10px * (1 - min(var(--e), 1))));
}

/* =========================
   PC (768px 이상) – 콘텐츠 D
   ========================= */
@media (min-width: 768px) {
  .conD .container {
    display: flex;
    flex-direction: row-reverse;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .conD .photo {
    flex: 3;
    min-height: 350px;
  }

  .conD .text {
    flex: 2;
    padding: 60px;
  }

  .conD .photo-caption {
    left: 20px;
    right: auto;
    bottom: 40px;
    font-size: clamp(1.3rem, 2.6vw, 1.8rem);
  }
}

/*footer푸터_M*/
footer {
	color: #a0a0a0;
	background-color: #040707;
}

footer .container {
	padding: 40px 20px;
  margin-top: 150px;
}

/* pc-footer: 구조 레이아웃 [width=768px]를 기준으로*/
@media (min-width: 768px) {
	footer .container {
		display: flex;
		flex-wrap: wrap;
		max-width: 1000px;
		max-width: var(--large-width);
		margin-left: auto;
		margin-right: auto;
	}
	.footA {
		flex: 0 0 40%;
	}
	.footB {
		flex: 0 0 60%;
	}
	.footC {
		flex: 0 0 100%;
	}
}

/*푸터A: 사이트정보_M*/
.footA {
	margin-bottom: 30px;
	
}

.footA h2 {
	margin-top: 0;
	margin-bottom: 10px;
	font-family: 'Montserrat', 'sans-serif';
	font-size: 30px;
}

.footA p {
	margin-top: 0;
	margin-bottom: 0;
	font-size: 14px;
	color: #6f6f6f;
}

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

/*푸터B:푸터메뉴_M*/
.footB div {
	margin-bottom: 20px;
	
}

.footB h3 {
	margin-top: 0;
	margin-bottom: 10px;
	border-bottom: solid 1px currentColor;
	font-size: 14px;
}

.footB ul {
	margin: 0;
	padding: 0;
	list-style: none;
	color: #636363;
}

.footB a {
	display: block;
	padding: 5px;
	color: inherit;
	font-size: 12px;
	text-decoration: none;
}

.footB a:hover {
	background-color: rgba(171, 171, 171, 0.3);
}

/* pc-footer: 구조 레이아웃 [width=768px]를 기준으로*/
@media (min-width: 768px) {
	.footB {
		display: flex;
	}
	.footB div {
		flex: 1;
	}
	.footB div:not(:first-child) {
		margin-left: 40px;
	}
}

/*푸터C:저작권*/
.footC {
	font-size: 12px;
	text-align: center;
	font-family: 'Montserrat', 'sans-serif';
}

/*푸터D:SNS메뉴_M*/
.footD {
	margin-top: 20px;
}

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

.footD a {
	display: block;
	margin-right: 8px;
	padding: 0;
	color: inherit;
	font-size: 16px;
	text-decoration: none;
	border: solid 1px currentColor;
	width: 2em;
	line-height: 2em;
	border-radius: 50%;
	text-align: center;
}

.footD a:hover {
	background-color: rgba(0,0,0,0.3);
}

/*aout 페이지: post작성*/

.aboutbn {
  position: relative;
  overflow: hidden;
  height: 55vh; 
  min-height: 200px;
  background-color: #040707;
}

/* 배너 이미지 레이어 (위) */
.aboutbn-img-wrap {
  position: absolute;
  inset: 0;
  z-index: 2; 
}

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

/* 텍스트 레이어 (아래) */
.aboutbn-text-wrap {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  z-index: 1;

  margin: 0;
  padding: 0;
}

/* 오른쪽 → 왼쪽으로 이동하는 텍스트 */
.moving-text {
  white-space: nowrap;
  animation: moveLeft 20s linear infinite;

  margin: 0;
  padding: 0;
}

.moving-text span {
  font-size: 25rem;
  color: transparent;                 /* 안쪽 색 */
  -webkit-text-stroke: 10px #303030;   /* 두께 4px, 흰색 외곽선 */
  font-family: "Dela Gothic One", sans-serif;
  font-weight: 400;
  margin: 0;
  padding: 0;;
}

/* 애니메이션 */
@keyframes moveLeft {
   0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}


/* 전체 배경/텍스트 컬러 */
.post {
  color: #d8d8d8;
  background-color: #040707;
}

/* 타이틀 영역 */
.profile-title {
  max-width: 1000px;
  margin: 0 auto;
  padding: 150px 20px 0;
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.profile-name-kr {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
}

.profile-name-en {
  font-size: 18px;
  opacity: 0.8;
}

/* 본문 컨테이너 */
.post .container.profile-body {
  margin-left: auto;
  margin-right: auto;
  padding: 40px 20px 150px;
  max-width: 1000px;
  display: flex;
  align-items: center;
  gap: 40px;
}

/* 프로필 */
.card {
  flex-shrink: 0;
  width: 300px;
  border-radius: 28px;
  overflow: hidden;
}

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

/* 텍스트 영역 */
.about-text {
  margin-bottom: 60px;
  font-size: 14px;
  line-height: 2.5;
}

.about-text p {
  margin: 4px 0;
  font-size: 18px;
}

.about-text strong {
  display: inline-block;
  min-width: 70px;
  font-weight: 600;
}

/* 반응형: 모바일에서는 위아래로 쌓이게 */
@media (max-width: 767px) {

  .profile-title {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 24px;
  }

  .profile-name-kr {
    font-size: 26px;
  }

  .profile-name-en {
    font-size: 16px;
  }

  .post .container.profile-body {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding-top: 24px;
  }

  .card {
    width: 80vw;
    max-width: 360px;
  }

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

}


/*소개 페이지: 이미지와 연혁*/
.history {
  background-color: #040707;
  color: #ffffff;
  padding: 80px 30px;
}

.history-inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 120px;
}

/* 각 연혁 카드 – 기본은 1열(모바일) */
.history-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
  view-timeline-name: --history-item;
  view-timeline-axis: block;
}

/* 이미지 카드 (세로 나열 + radius) */
.history-card {
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  border-radius: 24px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.history-card img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.3s ease;
}

/* 마우스 오버 시 살짝 확대 */
.history-card:hover {
  transform: scale(1.03);
}

.history-card:hover img {
  transform: scale(1.05);
}

/* 텍스트 영역 공통 */
.history-text {
  position: relative;
  font-size: 0.8rem;
  line-height: 1.6;
  max-width: 520px;
  margin: 0 auto;
  opacity: 0;
}

/* 타이틀 */
.history-text h3 {
  font-size: 3rem;
  margin-bottom: 8px;
  color: #eac406;
}
.history-text h2 {
  font-size: 1.5rem;
  margin-bottom: 8px;
}


/* 텍스트를 덮는 오버레이 기본 */
/* 홀수번째(1,3,5...) – 이미지가 왼쪽, 텍스트 오른쪽이라고 가정
   → 텍스트는 왼쪽(이미지 쪽)에서 오른쪽으로 펼쳐짐 */
.history-item:nth-child(odd) .history-text::before {
  transform-origin: left center;
  animation-name: history-reveal;
  animation-timeline: --history-item;
  animation-range: entry 0% center 10%; 
  animation-fill-mode: both;
}

.history-item:nth-child(odd) .history-text {
  text-align: left;
  margin-left: 0;
  margin-right: auto;

  animation-name: history-text-fade-leftToRight;
  animation-timeline: --history-item;
  animation-range: entry 0% center 10%;
  animation-fill-mode: both;
}

/* 짝수번째(2,4,6...) – 이미지가 오른쪽, 텍스트 왼쪽으로 배치
   → 텍스트는 오른쪽(이미지 쪽)에서 왼쪽으로 펼쳐짐 */
.history-item:nth-child(even) .history-text::before {
  transform-origin: right center;
  animation-name: history-reveal;
  animation-timeline: --history-item;
  animation-range: entry 0% center 10%;
  animation-fill-mode: both;
}

.history-item:nth-child(even) .history-text {
  text-align: right;
  margin-right: 0;
  margin-left: auto;

  animation-name: history-text-fade-rightToLeft;
  animation-timeline: --history-item;
  animation-range: entry 0% center 10%;
  animation-fill-mode: both;
}

/* 오버레이 펼쳐짐 공통 */
@keyframes history-reveal {
  from {
    transform: scaleX(1); 
  }
  to {
    transform: scaleX(0);
  }
}

/* 텍스트 슬라이드 + 페이드 (왼→오른쪽) */
@keyframes history-text-fade-leftToRight {
  from {
    opacity: 0;
    transform: translateX(-80px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* 텍스트 슬라이드 + 페이드 (오른→왼쪽) */
@keyframes history-text-fade-rightToLeft {
  from {
    opacity: 0;
    transform: translateX(80px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* --------------------------
   PC 레이아웃: 좌우 배치
   -------------------------- */
@media (min-width: 768px) {
  .history-item {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 40px;
  }

  /* 짝수번째는 이미지/텍스트 위치 뒤집기 */
  .history-item:nth-child(even) {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  }

  .history-item:nth-child(even) .history-card {
    order: 2;
  }

  .history-item:nth-child(even) .history-text {
    order: 1;
  }
}




/*product 소개*/
.listA h1 {
  font-size: 2rem;
  text-align: center;
}

.listA .container {
  display: flex;
  flex-wrap: wrap;
  max-width: var(--large-width);
  margin: 30px auto;
  justify-content: center;
}

/* 카드 간격 조절 포인트 */
.listA a {
  flex: 1 1 280px;
  margin: 16px; /* ← 기존 30px → 모바일/웹 모두 조금 좁힌 버전 */
  display: block;
  text-decoration: none;
  color: inherit;
}

.listA .card {
  position: relative;
  max-width: 250px;
  aspect-ratio: 1 / 1; 
  background-color: #111; /* ← 카드 배경색 조절 지점 */
  background-position: center;
  background-size: cover;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  perspective: 1000px;
  transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.listA .card:hover {
  transform: scale(1.03);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.7);
}

.listA .card__content {
  position: absolute;
  inset: 0;
  padding: 16px;
  box-sizing: border-box;
  background-color: rgba(4, 7, 7, 0.95);
  color: #d3d3d3;
  transform: rotateX(-90deg);
  transform-origin: bottom;
  transition: all 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.listA .card:hover .card__content {
  transform: rotateX(0deg);
}

.listA .card__title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
}

.listA .card__description {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}


/* ===========================
   📱모바일 반응형 (600px 이하)
   =========================== */
@media (max-width: 768px) {

  /* 카드 전체 간격 더 줄이기 */
  .listA a {
    margin: 10px;
    flex: 1 1 calc(50% - 20px); 
  }

  /* 카드 크기 줄이기 */
  .listA .card {
    max-width: 120px;
    border-radius: 12px;
  }

  /* 카드 안 텍스트 줄이기 */
  .listA .card__title {
    font-size: 16px;
  }

  .listA .card__description {
    font-size: 12px;
  }

  /* hover 효과 최소화 (모바일 터치 대응) */
  .listA .card:hover {
    transform: none;
    box-shadow: none;
  }
}


/*product_B 소개*/
.listB h1 {
	font-size: 2rem;
	text-align: center;
}

.listB .container {
	display: flex;
	flex-wrap: wrap;
	max-width: 1000px;
	max-width: var(--large-width);
	margin: 30px auto;
}

.listB article {
	flex: 1 1 384px;
	display: flex;
}

.listB a {
	flex: 1;
	margin: 10px;
	display: flex;
	border: solid 1px #ddd;
	border: solid 1px var(--gray-color);
	color: inherit;
	text-decoration: none;
}

.listB a:hover {
	opacity: 0.8;
	background-color:#3e6974;
	color:#fff;
}

.listB .photo {
	flex: 2;
	min-height: 0;
	background-position: center;
	background-size: cover;
}

.listB .text {
	flex: 3;
	margin: 10px;
}

.listB h2 {
	font-size: 18px;
}

.listB p {
	font-size: 14px;
	opacity: 0.8;
}

/*너비가 600px 이하의 미디어에서*/
@media (max-width: 384px) {
	.listB .photo {
		flex: 1;
	}

	.listB p {
		display: none;
	}
}

/*문의페이지:문의 대상*/
.contact {
	margin-top: 20px;
	margin-bottom: 20px;
	padding: 20px;
	border: solid 1px #ddd;
	border: solid 1px var(--gray-color);
	text-align: center;
}

.contact span {
	display: inline-block;
	margin-bottom: 20px;
	font-size: 2.2rem;
	width: 2em;
	line-height: 2em;
	border-radius: 50%;
	text-align: center;
	color: #fff;
	columns: var(--icon-color);
}

.contact h2 {
	margin-top: 0;
	font-size: 1rem;
}

.contact a {
	font-size: 1rem;
	color: inherit;
	text-decoration: none;
}

@media (min-width: 768px) {
	.contact-warp {
		display: flex;
	}

	.contact {
		flex: 1;
		margin: 10px;

	}

	.contact:last-child {
		margin-right: 0;
	}
}


/*문의페이지: 지도

.location iframe {
	width: 100%;
	height: 400px;
	vertical-align: bottom;
}

.location h2 {
	margin: 0;
	padding-top: 20px;
	padding-bottom: 20px;
	background-color: #66CB55;
	background-color: var(--main-color);
	color: #fff;
	color: var(--text-bright-color);
	font-size: 1.5rem;
	text-align: center;
}*/

/* Swiper 공통 스타일 */
.conA.compact {
  background-color: #040707;
  padding-top: 200px;  
  padding-bottom: 0px;
}

/* 컨테이너 안 텍스트 정렬 */
.conA.compact .container {
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
}

/* 타이틀 텍스트 */
.conA.compact h1 {
  margin: 0 0 5px 0;
  font-size: 32px; 
  color: #ffffff; 
  letter-spacing: 0.12em; 
}

/* 설명 텍스트 */
.conA.compact p {
  margin: 0;
  font-size: 14px;   
  color: #cccccc;
  line-height: 1.7;
}

html,
body {
  position: relative;
  height: 100%;
}

body {
  background: #040707;
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: #fff;
  margin: 0;
  padding: 0;
}

/* 슬라이더 전체 영역 */
.swiper {
  width: 100%;
  padding-top: 50px;
  padding-bottom: 50px;
}

/* 개별 슬라이드 카드 */
.swiper-slide {
  background-position: center;
  background-size: cover;
  width: 300px;
  height: 300px;
}

/* 슬라이드 이미지 */
.swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}
/* 기본 점 색상 */
.swiper-pagination-bullet {
  background: #666; 
  opacity: 1;  
}

/* 선택된(현재 슬라이드) 점 색상 */
.swiper-pagination-bullet-active {
  background: #eac406;  
}


/* pptx: 비디오*/
.pptx {
  background-color: #121212;
  color: #ddd
}

.pptx video {
  width: 100%;
  position: center;
}

/* PC-pptx: 개요(image + text ) [width=768px]를 기준으로 */
@media (min-width: 768px) {
  .pptx .container {
    display: block;
    width: 1500px;
    margin-left: auto;
    margin-right: auto;
  }
}

.newsA {
  /* 모바일에서는 폭을 거의 꽉 채우고 여백만 조금 */
  --headline-size: 1.6rem;
  max-width: 100%;
  margin: 32px auto;
  padding: 0 16px;
}

/* 헤더 텍스트 */
.newsA-title-text {
  font-size: var(--headline-size);
  font-weight: 800;
  line-height: 1.3;
  padding-top: 100px; /* 모바일은 여백 조금 줄임 */
}

/* 본문 */
.newsA-text p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.7;
  white-space: pre-line;
}

/* Swiper (기사 내부 슬라이더) */
.newsA .news-swiper {
  width: 100%;
  height: 260px;      /* 모바일용 높이 */
  margin: 24px 0;
  position: relative; /* 화살표 위치 기준 */
}

.newsA .news-slide {
  text-align: center;
  font-size: 0.95rem;
  background: #444;
  display: flex;
  justify-content: center;
  align-items: center;
}

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

/* 화살표 버튼 세로 중앙 정렬 */
.newsA .news-swiper-button-next,
.newsA .news-swiper-button-prev {
  top: 50%;
  transform: translateY(-50%);
}

/* 둥근 모서리 초기화 (필요 시) */
.newsA .news-swiper,
.newsA .news-swiper-wrapper,
.newsA .news-slide,
.newsA .news-slide img {
  border-radius: 0;
}

/* PC (768px 이상) */
@media (min-width: 768px) {
  .newsA {
    --headline-size: clamp(1.8rem, 2.4vw, 2.6rem);
    max-width: 800px;
    margin: 60px auto;
    padding: 0 24px;
  }

  .newsA-title-text {
    padding-top: 100px;
  }

  .newsA-text p {
    font-size: 1rem;
  }

  .newsA .news-swiper {
    height: 380px;    /* PC에서 조금 더 크게 */
    margin: 32px 0;
  }

  .newsA .news-slide {
    font-size: 1rem;
  }
}

