/* 플로팅 상담 버튼: PC는 오른쪽 아래 세로 버튼, 모바일은 하단 바 (밝은 톤) */

.dt-float {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 9990;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.dt-float a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #e4e7ec;
	color: #1b1f29 !important;
	font-size: 23px;
	text-decoration: none !important;
	box-shadow: 0 6px 18px rgba(27, 31, 41, .1);
	transition: transform .2s, box-shadow .2s;
}

.dt-float a:hover,
.dt-float a:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(27, 31, 41, .16); }

.dt-float .dt-float__consult { background: #2f5bd3; border-color: #2f5bd3; color: #fff !important; }
.dt-float .dt-float__talk { color: #03c75a !important; }
.dt-float .dt-float__insta { color: #d6249f !important; }

.dt-float__label {
	position: absolute;
	right: 66px;
	white-space: nowrap;
	padding: 6px 12px;
	border-radius: 6px;
	background: #fff;
	border: 1px solid #e4e7ec;
	color: #1b1f29;
	font-size: 13px;
	font-weight: 600;
	box-shadow: 0 4px 12px rgba(27, 31, 41, .08);
	opacity: 0;
	transform: translateX(6px);
	pointer-events: none;
	transition: opacity .2s, transform .2s;
}

.dt-float a:hover .dt-float__label,
.dt-float a:focus-visible .dt-float__label { opacity: 1; transform: none; }

.dt-float__talk-icon { font-size: 15px; font-weight: 800; letter-spacing: -.04em; }

@media (max-width: 767px) {
	body { padding-bottom: 64px; }

	.dt-float {
		left: 0;
		right: 0;
		bottom: 0;
		flex-direction: row;
		gap: 0;
		background: #fff;
		border-top: 1px solid #e4e7ec;
		padding-bottom: env(safe-area-inset-bottom);
		box-shadow: 0 -4px 16px rgba(27, 31, 41, .06);
	}

	.dt-float li { flex: 1; }

	.dt-float a {
		width: 100%;
		height: 64px;
		flex-direction: column;
		gap: 2px;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		font-size: 20px;
	}

	.dt-float a:hover { transform: none; box-shadow: none; }
	.dt-float .dt-float__consult { background: #2f5bd3; }

	.dt-float__label {
		position: static;
		opacity: 1;
		transform: none;
		padding: 0;
		border: 0;
		background: none;
		box-shadow: none;
		color: inherit;
		font-size: 12px;
		font-weight: 500;
	}

	.dt-float .dt-float__talk .dt-float__label,
	.dt-float .dt-float__insta .dt-float__label,
	.dt-float .dt-float__tel .dt-float__label { color: #4b5162; }
}

/* 추가 CSS의 "header { position: sticky }" 규칙은 사이트 헤더용입니다.
   본문 속 <header>(첫 페이지 섹션 제목 등)까지 화면 위에 달라붙지 않게 되돌립니다. */
header:not(.site-header) { position: static !important; z-index: auto !important; }

/* 1024px 전후(가로 태블릿·작은 노트북)에서 헤더 메뉴가 두 줄로 깨지지 않게 메뉴 여백·글자 크기를 줄입니다.
   (922px 이하는 Astra 모바일 헤더, 1181px 이상은 원래 크기) */
@media (min-width: 922px) and (max-width: 1180px) {
	#masthead .main-header-menu > .menu-item > .menu-link { padding-left: 12px !important; padding-right: 12px !important; font-size: 15px !important; }
	#masthead .main-header-menu > .menu-item { white-space: nowrap; }
	#masthead .ast-builder-button-wrap .ast-custom-button { padding: 10px 14px !important; font-size: 14px !important; white-space: nowrap; }
}
