/* 초기화 */


::selection {
  background: #FF4800; /* 선택 배경색 */
  color: #fff;         /* 선택된 텍스트 색 */
}

::-moz-selection {
  background: #FF4800;
  color: #fff;
}

html {overflow-x:hidden;}
body {overflow-x:hidden; margin:0; padding:0; font-size:12px; font-family: "Paperlogy", -apple-system, BlinkMacSystemFont, "Segoe UI",Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;}
html, h1, h2, h3, h4, h5, h6, form, fieldset, img {margin:0; padding:0; border:0;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
#hd ul, nav ul, #ft ul {margin:0;padding:0;list-style:none}
legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
label, input, button, select, img {vertical-align:middle}
button {cursor:pointer}
select {margin:0}
p {margin:0;padding:0;word-break:break-all}
hr {display:none}
a {color:#000;}
a:link, a:visited {text-decoration:none;}
a:hover, a:focus, a:active {text-decoration:none}

input, textarea, select {font-family: "Paperlogy"; line-height:20px; font-size:14px;}
input[type="date"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
input[type="date"]::-webkit-calendar-picker-indicator {
  opacity:0;
}
.wrapper {max-width:1280px; margin:0 auto; width:100%;}
.f_white {color:#fff;}
.f_orange {color:#FF4800;}
.f_yellow {color:#FFE373;}
.f_gray {color:#cfcfcf;}
.f_black {color:#000;}
.f_underline {text-decoration:underline;}

.f100 {font-weight:100;}
.f200 {font-weight:200;}
.f300 {font-weight:300;}
.f400 {font-weight:400;}
.f500 {font-weight:500;}
.f600 {font-weight:600;}
.f700 {font-weight:700;}
.f800 {font-weight:800;}
.f900 {font-weight:900;}

section {position:relative; z-index:0;}
.main_title {font-size:55px; position:relative;}
.main_title a {position:absolute; bottom:0; right:0; font-size:14px; border:1px solid #dbdbdb; line-height:30px; padding:0 15px; border-radius:15px; font-weight:500;}
.main_title a:hover {background:#FF4800; border:1px solid #FF4800; color:#fff;}
.main_description {font-size:20px; margin-top:25px; color:#373737; font-weight:500;}



.date_wrap {
  position: relative;
}

.date_wrap input {
	width: 100%;
	padding-right: 30px;
	margin-bottom:0;

}
.date_wrap i {
	font-size:20px;
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	pointer-events: none; /* 중요 */
}

.select_wrap {
  position: relative;
}

.select_wrap select {
  padding-right: 30px; /* 화살표 자리 */
  appearance: none;    /* 기본 화살표 제거 */
  -webkit-appearance: none;
  -moz-appearance: none;
}

/* 커스텀 화살표 */
.select_wrap::after {
  content: "▼";  /* 원하는 화살표 문자, 이미지로도 가능 */
  position: absolute;
  right: 10px;   /* ← 이 값으로 위치 조절 가능 */
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none; /* 클릭 방해 안 하도록 */
}


.pc_br {display:block;}
.mo_br {display:none;}
.pc_hidden {display:none;}


.underline {
    position: relative;
    display: inline-block; /* inline 요소에 적용 */
	padding:2px 0;
}

.underline::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0%;
    height: 1px; /* 밑줄 두께 */
    background-color: #fff; /* 밑줄 색상 */
    transition: width 0.3s ease; /* 애니메이션 효과 */
}

.underline:hover::after {
    width: 100%; /* hover 시 밑줄이 100%로 확장 */
}

@media (max-width: 980px) {
	.pc_br {display:none;}
	.mo_br {display:block;}
	.mo_hidden {display:none!important;}
	.pc_hidden {display:inline-block;}
}

.goverlay {
  background: rgba(0, 0, 0, 0.98) !important;
}



@keyframes slideInLeft {
  from {
    transform: translateX(-30vw);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

html.open {overflow:hidden; height:100%; width:100%;}


.footer_info {padding:72px 0; background:#f2f7fc;}
.footer_info .footer_info_wrap {display:flex; gap:50px;}
.footer_info .footer_info_wrap .sns {display:flex; gap:10px;}
.footer_info .footer_info_wrap .sns img {width:38px; height:38px;}
.footer_info .footer_info_wrap .contact h2 {font-size:26px; margin-bottom:15px;}
.footer_info .footer_info_wrap .contact .email {color:#ff4800; font-size:24px; margin-bottom:8px; font-weight:800; display:block;}
.footer_info .footer_info_wrap .contact .contact_time {font-size: 14px; line-height: 1.7; text-align: left; color: #555; margin-top: 0px;  margin-bottom: 15px;}

.footer_info .footer_info_wrap .banner {display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.footer_info .footer_info_wrap .banner img {width:100%;}

footer .wrapper {display:flex; padding:36px;}
footer .wrapper > div {width:25%; font-size:16px; line-height:1.8;}
footer .sns {display:flex; gap:10px;}
footer .sns img {width:38px; height:38px;}
footer .btn_wrap {display:flex; flex-direction: column; align-content: flex-end; width: auto; flex-wrap: wrap; gap:10px;}
footer .btn_wrap a {line-height:35px; border-radius:20px; border:1px solid #000; padding:0 20px;}
footer .btn_wrap a:hover {border:1px solid #ff4800; background:#ff4800; color:#fff;}

.copyright .wrapper {display:flex; padding:36px; border-top:1px solid #dbdbdb; justify-content: space-between; line-height:30px;}
.copyright .wrapper div {color:#777; font-size:14px;}
.copyright .wrapper a {font-size:15px;}

.footer_banner {background:url('/assets/images/footer_background.jpg'); background-repeat: no-repeat; background-position: center center; background-attachment: scroll; background-size: cover;}
.footer_banner .wrapper {padding:72px 0; color:#fff;}
.footer_banner .wrapper h2 {font-size:55px; font-weight:600;}
.footer_banner .wrapper a {margin-top:36px;	line-height:40px; padding:0 20px; font-size:16px; background:#fff; border-radius:20px; display:inline-block; font-weight:600;}
.footer_banner .wrapper a:hover {background:#ff4800; color:#fff;}


.member {padding:0;}
.member .consultants {display:grid; grid-template-columns: 1fr 1fr; margin-top:46px; gap:22px;}
.member .consultants .card {position:relative; overflow:hidden; border:1px solid #dbdbdb; box-sizing:border-box; padding:22px 30px;}
.member .consultants .card:hover {border:1px solid transparent;}
.member .consultants .card:hover:after {content:''; width:100%; height:100%; position:absolute; top:0; left:0; border:4px solid #FF4800; box-sizing:border-box;}
.member .consultants .card .image {position:relative; border-radius:20px; overflow:hidden;}
.member .consultants .card img {width:100%;}
.member .consultants .card .image .info {position:absolute; bottom:0; padding:100px 32px 28px; width:100%; box-sizing:border-box;}
.member .consultants .card:hover .image .info {background:linear-gradient(to bottom, transparent, #000);}

.member .consultants .card .info h1 {font-size:32px; border-bottom:1px solid #dbdbdb; line-height:50px;}
.member .consultants .card .info h1 em {font-size:15px; font-style:normal; margin-left:10px; font-weight:400;}
.member .consultants .card b {text-decoration:underline; background:#FFEAE1;}
.member .consultants .card dl {margin:0; margin-top:20px;}
.member .consultants .card dt {margin:0; padding:0;}
.member .consultants .card dt span {margin-bottom:10px; border-radius:10px; line-height:20px; font-size:12px; font-weight:600; padding:0 10px; font-size:11px; background:#000; color:#fff; display:inline-block;}
.member .consultants .card dd {padding:0; margin:0; font-size:13px; line-height:20px; font-weight:400; margin-bottom:15px;}
.member .consultants .card dd:last-child {margin-bottom:0;}
.member .consultants .card dd.line {margin-top:15px; padding-top:15px; border-top:1px dotted #dbdbdb; font-size:15px;}


/* 1. 기본 아이콘 모션 (PC용 상시) */
@keyframes motion-shake { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes motion-kakao { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes motion-calc { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-4deg); } 75% { transform: rotate(4deg); } }
@keyframes motion-form { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes motion-down { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(2px); } }

/* 2. 모바일 메인 버튼 글로우 펄스 */
@keyframes glow-pulse {
	0% { box-shadow: 0 0 0 0 rgba(255, 72, 0, 0.6); transform: scale(1); }
	50% { box-shadow: 0 0 15px 8px rgba(255, 72, 0, 0); transform: scale(1.05); }
	100% { box-shadow: 0 0 0 0 rgba(255, 72, 0, 0); transform: scale(1); }
}
.cta-sidebar * {box-sizing:border-box;}
/* --- Sidebar Container --- */
.cta-sidebar {
	position: fixed;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 9999;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

/* CTA Buttons Group */
.cta-group {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* CTA Button Base (PC Default) */
.cta-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 90px;
	height: 95px;
	background-color: #1a1c23;
	color: #ffffff!important;
	text-decoration: none;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: 12px 0 0 12px;
	cursor: pointer;
	border: none;
	padding: 10px;
	text-align: center;
	position: relative;
}

.cta-button .icon-box {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-bottom: 7px;
}

.cta-button svg { width: 100%; height: 100%; display: block; }

/* Animation Assignment */
.btn-kakao svg { animation: motion-kakao 2.5s infinite ease-in-out; }
.btn-calc svg { animation: motion-calc 2s infinite ease-in-out; }
.btn-form svg { animation: motion-form 3s infinite ease-in-out; }
.btn-down svg { animation: motion-down 2.2s infinite ease-in-out; }

.cta-button span {
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	word-break: keep-all; /* 의미 단위 줄바꿈 */
}

.cta-button:hover {
	background-color: #FF4800;
	width: 105px;
	margin-left: -15px;
	border-bottom-left-radius: 12px;
	border-top-left-radius: 12px;
}
/* TOP Button Section */
.top-btn-container { margin-top: 15px; padding-right: 5px; }
.top-button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	background-color: #1a1c23;
	color: #fff;
	border-radius: 50%;
	cursor: pointer;
	border: none;
	transition: all 0.3s ease;
	box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.top-button svg { width: 20px; height: 20px; }
.top-button span { font-size: 9px; font-weight: 600; margin-top: 1px; }
.top-button:hover, .top-button:active { background-color: #FF4800; }

/* --- Mobile FAB --- */
.mobile-fab {
	display: none;
	width: 64px;
	height: 64px;
	background-color: #FF4800;
	color: #fff;
	border-radius: 50%;
	border: none;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(255, 72, 0, 0.4);
	z-index: 10001;
	align-items: center;
	justify-content: center;
	animation: glow-pulse 3s infinite ease-in-out;
	transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.mobile-fab svg { width: 32px; height: 32px; transition: transform 0.5s ease; }
.mobile-fab.is-active svg { transform: rotate(135deg); }




@media (max-width: 980px) { 
	.footer_info .footer_info_wrap .contact h2 {font-size:20px;}
	.footer_info .footer_info_wrap {padding:0 32px; gap:30px; flex-direction: column; box-sizing:border-box;}
	.footer_info .footer_info_wrap .banner {grid-template-columns:1fr;}
	.footer_banner .wrapper {padding:36px 32px;}
	.footer_banner .wrapper h2 {font-size:30px;}
	.footer_banner .wrapper a {line-height:30px; border-radius:15px; font-size:12px;}
	
	footer .wrapper {flex-direction: column; box-sizing:border-box; gap:20px;}
	footer .wrapper > div {width:100%; text-align:center; font-size:13px;}
	
	footer .sns {justify-content: center;}
	footer .btn_wrap {justify-content: center; flex-direction: row;}
	footer .btn_wrap a {line-height:28px;}
	
	.copyright .wrapper a {display:none;}
	
	.member .consultants {grid-template-columns: 1fr;}
	
	
	.cta-sidebar {
		top: auto;
		bottom: 30px;
		transform: none;
		right: 0;
		padding-right: calc(15px + env(safe-area-inset-right));
		align-items: center;
		width:82px;
	}

	.cta-group {
		display: none;
		margin-bottom: 25px; /* FAB와 더 넉넉한 간격 */
		gap: 20px; /* 버튼 사이의 충분한 세로 공간 확보 */
		align-items: center;
	}

	.cta-button {
		width: 82px; /* 텍스트 전체 노출을 위해 크기 최적화 */
		height: 82px;
		border-radius: 50% !important; 
		box-shadow: 0 10px 25px rgba(0,0,0,0.3);
		padding: 12px 8px;
		opacity: 0;
		transform: translateY(30px);
		transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	}
	.cta-button:hover {
		background-color: #FF4800;
		width: 82px;
		margin-left: 0;
		border-bottom-left-radius: 0;
		border-top-left-radius: 0;
	}
	.cta-button .icon-box { 
		width: 20px; 
		height: 20px; 
		margin-bottom: 6px; 
	}

	/* 모바일 텍스트 설정: 전체 문구 노출 및 중앙 정렬 */
	.cta-button span { 
		display: block !important; 
		font-size: 10px;
		font-weight: 700;
		line-height: 1.2;
		letter-spacing: -0.04em;
		text-align: center;
		word-break: keep-all; /* 의미 단위 줄바꿈 유지 */
	}

	.mobile-fab { display: flex; }

	/* 활성화 시 스태거 애니메이션 */
	.cta-group.is-active { display: flex; }
	.cta-group.is-active .cta-button { opacity: 1; transform: translateY(0); }

	.top-btn-container { display: none; }
}