/* ======================================== Form - Row / Input Group / Btn Group ======================================== */
.form-section {
	padding:40px 0;
	border-bottom:1px solid #eee;
}
.btn-group {
	display:flex;
	gap:20px;
	align-items:center;
	justify-content:space-around;
	width: 100%;
}
/* 버튼 기본 스타일 */
.btn-group .btn--primary {
	background-color:var(--main-color);
	color:#fff;
}
.btn-group .btn--secondary {
	background-color:var(--sub-color);
	color:#fff;
}
.btn-group .btn--tertiary {
	background-color:var(--dark-color);
	color:#fff;
}
.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:80px;
	white-space:nowrap;
	border-radius:6px;
	gap:10px;
}
.btn:hover {
	opacity:0.8;
}
.btn-xs {
	display:block;
	padding:10px 10px;
	font-size:16px;
}
.btn-s {
	height:50px;
	font-size:18px;
}
.btn-m {
	font-size:20px;
	height:60px;
}
.btn-lg {
	height:70px;
	font-size:20px;
}
.btn-last {
	max-width:540px;
	margin:40px auto 60px auto;
}
.btn-refresh {
	background-color:var(--gray-color);
	font-weight:500;
	color:#444;
}
.btn-submit {
	background-color:var(--main-color);
	color:#fff;
	font-weight:500;
	box-shadow:0 5px 10px 0 rgba(0,79,159,0.3);
}
.btn-search {
	background-color:var(--dark-color);
	color:#fff;
	font-weight:500;
}
.btn-search {
	background-color:var(--dark-color);
	color:#fff;
	width:165px;
	float:right;
}
.btn-line {
	display:inline;
	border:1px solid var(--main-color);
	color:var(--main-color);
	background-color:#fff;
	padding:13px 20px;
	font-size:16px;
}
.btn-line:hover {
	background-color:var(--main-color);
	color:#fff;
	opacity: 1;
}
@media screen and (max-width:768px) {
	.btn-group {
		display:block;
		width:100%;
	}
	.btn-group .btn {
		margin-bottom:10px;
	}
	.btn-m {
		height:60px;
		font-size: 18px;
	}
	.btn-last {
		display:flex;
		margin:20px auto 30px auto;
	}
	.btn-line {
		padding:10px;
	}
}
.form-inner {
	padding-left:30px;
}
.form-inner .form-row {
	margin-bottom:20px;
}
.form-row {
	margin-bottom:20px;
	display:flex;
	align-items:center;
	gap:20px;
}
.form-row:last-child {
	margin-bottom:0;
}
.form-row h6 {
	font-size:18px;
	width:140px;
	font-weight:500;
	position:relative;
	z-index:1
}
.form-row h6.underline::before {
	content:'';
	position:absolute;
	width:115px;
	height:13px;
	background:#DEF2E3;
	bottom:0;
	z-index: -1;
}
/* form-row:입력 필드가 가로로 배치되는 행 */

.form-row.align-center {
	align-items:center;
}
.form-row.align-end {
	align-items:flex-end;
}
.input-group {
	flex:1;
	min-width:0;
}
input,textarea,select,.input-group input,.input-group textarea,.input-group select {
	width:100%;
	padding:15px 20px;
	font-size:16px;
	border:1px solid #e5e5e5;
	border-radius:6px;
	background-color:#fff;
	transition:all 0.3s ease;
	margin-right:10px;
}
input:focus,textarea:focus,select:focus,.input-group input:focus,.input-group textarea:focus,.input-group select:focus {
	border-color:var(--main-color);
	box-shadow:0 0 0 2px rgba(34,127,196,0.1);
}
input:disabled,textarea:disabled,select:disabled,.input-group input:disabled,.input-group textarea:disabled,.input-group select:disabled {
	background-color:#F9F9F9;
	text-align:right;
	cursor:not-allowed;
}
select {
	appearance:auto;
	-webkit-appearance:menulist;
	position:relative;
	font-size:16px;
}
.select-wrapper {
	overflow:visible;
	position:relative;
}
.w-200 {
	width:200px !important;
}
.w-250 {
	width:250px !important;
}
.w-300 {
	width:300px !important;
}
@media screen and (max-width:768px) {
	.w-200 {
		width:80% !important;
	}
	.w-250 {
		width:80% !important;
	}
	.w-300 {
		width: 80% !important;
	}
	.phone-num.w-250  {
		width:60% !important;
	}
}
/* 필수 필드 표시 */
.input-group.required label::after {
	content:"*";
	color:var(--red-color);
	margin-left: 4px;
}
/* 에러 상태 */
.input-group.error input,.input-group.error textarea,.input-group.error select {
	border-color:var(--red-color);
}
.input-group.error-message {
	font-size:12px;
	color:var(--red-color);
	margin-top:6px;
}
.input-group.success input,.input-group.success textarea,.input-group.success select {
	border-color:var(--sub-color);
}
.form-tit {
	position:relative;
	width:200px;
	font-size:20px;
	color:#222;
	font-weight:700;
	padding-left:30px;
}
.form-tit::before {
	content:'';
	position:absolute;
	left:0;
	top:2px;
	width:20px;
	height:20px;
	background:url('../img/sub/ico-tit-dot.svg');
}
@media screen and (max-width:768px) {
	.form-inner {
		padding-left:0;
	}
	.form-row {
		display:block;
	}
	.form-inner .form-row .text {
		display:block;
		clear:both;
		padding-top:5px;
	}
	.form-inner .form-row .container-checkbox {
		margin-top:10px;
	}
	.form-row .input-group {
		width:100%;
		margin-top:10px;
	}
	.form-row .input-group:last-child {
		margin-bottom:0;
	}
	input, textarea, select,
	.input-group input,.input-group textarea,.input-group select {
		padding:12px;
		font-size:16px;
	}
	.input-group label {
		font-size:16px;
	}
	.w-200,.w-250,.w-300 {
		width: 100%;
	}
}
/* 달력 */
/* 기간 선택 래퍼 */
.date-range-wrapper {
	display:flex;
	align-items:center;
	gap:10px;
	max-width: 430px;
}
/* 개별 입력 필드 */
.date-input-group {
	display:flex;
	align-items:center;
	flex:1;
	border:1px solid #e5e5e5;
	background-color:#fff;
	border-radius:6px;
	overflow:hidden;
}
.date-input-group input {
	flex:1;
	padding:15px 0 15px 20px;
	border:0;
	font-size:16px;
	transition:border-color 0.3s;
}
.date-input-group input:focus {
	outline:none;
}
.date-input-group input::placeholder {
	color:#888;
}
.date-input-group input.error {
	border-color: #f44336;
}
/* 달력 아이콘 버튼 */
.calendar-icon-btn {
	width:50px;
	height:50px;
	padding:0;
	background:#fff;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:all 0.3s;
}
.calendar-icon-btn:active {
	transform:scale(0.95);
}
.separator {
	font-size: 16px;
	color:#444;
	padding:0 5px;
}
.calendar-overlay {
	display:none;
	position:fixed;
	top:0;
	left:0;
	right:0;
	bottom:0;
	background:rgba(0,0,0,0.4);
	z-index:1000;
	animation:fadeIn 0.2s;
}
.calendar-overlay.active {
	display:block;
}
@keyframes fadeIn {
	from {
		opacity:0;
	}
	to {
		opacity: 1;
	}
}
/* 달력 팝업 */
.calendar-popup {
	display:none;
	position:absolute;
	background:white;
	border-radius:8px;
	box-shadow:0 8px 24px rgba(0,0,0,0.15);
	padding:20px;
	z-index:1001;
	min-width:320px;
	animation:slideUp 0.3s;
}
.calendar-popup.active {
	display:block;
}
@keyframes slideUp {
	from {
		opacity:0;
		transform:translateY(10px);
	}
	to {
		opacity:1;
		transform: translateY(0);
	}
}
/* 달력 헤더 */
.calendar-header {
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin-bottom:20px;
}
.calendar-header button {
	width:32px;
	height:32px;
	border:none;
	background:#f0f0f0;
	border-radius:4px;
	cursor:pointer;
	font-size:16px;
	transition:background 0.2s;
}
.calendar-header button:hover {
	background:#e0e0e0;
}
.calendar-header h3 {
	font-size:16px;
	font-weight:600;
	color:#333;
	text-align:center;
	flex: 1;
}
/* 요일 표시 */
.calendar-weekdays {
	display:grid;
	grid-template-columns:repeat(7,1fr);
	gap:8px;
	margin-bottom:10px;
}
.calendar-weekdays div {
	text-align:center;
	font-size:12px;
	font-weight:600;
	color:#666;
	padding: 8px 0;
}
/* 날짜 그리드 */
.calendar-days {
	display:grid;
	grid-template-columns:repeat(7,1fr);
	gap:8px;
}
.calendar-day {
	aspect-ratio:1;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:4px;
	font-size:14px;
	cursor:pointer;
	transition:all 0.2s;
	border:1px solid transparent;
}
.calendar-day:not(.empty):not(.other-month) {
	cursor:pointer;
}
.calendar-day.empty {
	cursor:default;
}
.calendar-day.other-month {
	color:#ccc;
	cursor:default;
}
.calendar-day.today {
	border:1px solid #4CAF50;
	font-weight:600;
	color:#4CAF50;
}
.calendar-day.selectable:hover:not(.disabled) {
	background:#e8f5e9;
	border-color:#4CAF50;
}
.calendar-day.selected {
	background:#4CAF50;
	color:white;
	font-weight:600;
}
.calendar-day.in-range {
	background:#c8e6c9;
	color:#2e7d32;
}
.calendar-day.disabled {
	color:#ccc;
	cursor: not-allowed;
}
/* 에러 메시지 */
.error-message {
	display:none;
	margin-top:10px;
	padding:10px;
	background:#ffebee;
	color:#c62828;
	border-radius:4px;
	font-size:13px;
	border-left:3px solid #f44336;
}
.error-message.show {
	display: block;
}
/* 입출 선택 */
.checkbox-item {
	display:inline-flex;
	align-items:center;
	padding:10px 25px;
	border-radius:6px;
	background-color:#E0E9F2;
	margin-right:10px;
	margin-bottom:15px;
	color:#707C86;
}
.list-check {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:24px;
	height:24px;
	min-width:24px;
	background-size:24px 24px;
	background-repeat:no-repeat;
	background-position:center;
	cursor:pointer;
	border-radius:4px;
	transition:all 0.2s ease;
	margin-right:12px;
	border:none;
	padding:0;
}
.list-check:hover {
	opacity:0.8;
	transform:scale(1.05);
}
.checkbox-label {
	font-size: 16px;
	cursor:pointer;
	user-select:none;
	flex:1;
}
.list-check.unchecked {
	background-image:url('../img/sub/ico-check-off.svg');
}
.list-check.checked {
	background-image:url('../img/sub/ico-check-on.svg');
}
.checkbox-item.checked {
	background-color:var(--main-color);
	color:#fff;
}
@media screen and (max-width:768px) {
	.checkbox-item .input-group label {
		margin-bottom: 0 !important;
	}
}
/* 고객센터 */
.accordion-item {
	margin-bottom:30px;
}
.accordion-item:last-child {
	border-bottom:none;
}
.accordion-head {
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:20px 30px;
	cursor:pointer;
	background-color:#E0E9F1;
	transition:background-color 0.3s ease;
	user-select:none;
	border-radius:20px;
}
.accordion-arrow {
	width:24px;
	height:24px;
	display:flex;
	align-items:center;
	justify-content:center;
	transition:transform 0.3s ease;
	flex-shrink:0;
}
.accordion-head.active {
	border-radius:20px 20px 0 0;
}
.accordion-head.active .accordion-arrow {
	transform:rotate(180deg);
}
.accordion-body h5.accordion-tit {
	font-size:20px;
	font-weight:500;
	margin-bottom:20px;
}
.accordion-body .id-find .btn {
	opacity:1;
	cursor:pointer;
	pointer-events:auto;
	transition:opacity 0.3s ease;
	color:#444;
	background-color:var(--gray-color);
}
.accordion-body .id-find .btn.active {
	background-color:var(--main-color);
	color:#fff;
}
.accordion-body .id-find .btn.btn--phone span {
	position:relative;
}
.accordion-body .id-find a.btn--phone span::before {
	content:'';
	position:absolute;
	width:20px;
	height:20px;
	background:url('../img/sub/ico-phone-dark.svg') center center no-repeat;
	top:3px;
	margin-left:-30px;
}
.accordion .id-find a.btn--phone.active span::before {
	background:url('../img/sub/ico-phone.svg') center center no-repeat;
}
.accordion-body .id-find .btn.btn--ipin span {
	position:relative;
}
.accordion-body .id-find a.btn--ipin span::before {
	content:'';
	position:absolute;
	width:20px;
	height:20px;
	background:url('../img/sub/ico-ipin-dark.svg') center center no-repeat;
	top:3px;
	margin-left:-20px;
}
.accordion .id-find a.btn--ipin.active span::before {
	background: url('../img/sub/ico-ipin.svg') center center no-repeat;
}
/* Form 토글 (버튼 클릭시) */
.accordion-body form {
	max-height:0;
	overflow:hidden;
	transition:max-height 0.3s ease,padding 0.3s ease;
	padding:0;
}
.accordion-body form.active {
	max-height:500px;
}
/* 아코디언 바디 */
.accordion-body {
	max-height:0;
	overflow:hidden;
	transition:max-height 0.3s ease,padding 0.3s ease;
	background-color:#F4F7FA;
	border-radius:0 0 20px 20px;
}
.accordion-body.active {
	max-height:700px;
	padding: 30px;
}
/* 버튼 있는 경우:form.active일 때만 표시 */
.accordion-body .btn-group+form {
	max-height:0;
}
.accordion-body .btn-group+form.active {
	max-height: 500px;
}
/* 버튼 없는 경우:accordion-body.active일 때 표시 */
.accordion-body.active form:not(.btn-group+form) {
	max-height:500px;
}
.accordion-body input {
	margin-right:0;
}
.accordion-content h5 {
	font-size: 20px;
	font-weight: 500;
}
/* 입력 필드 스타일 */
.accordion-content .form-group {
	margin-bottom:15px;
}
.accordion-content .form-group:last-child {
	margin-bottom:0;
}
.accordion-content .form-group label {
	display:block;
	margin-bottom:8px;
	font-size:13px;
	font-weight:500;
	color:#333;
}
.accordion-content .form-group input {
	width:100%;
	padding:10px 12px;
	border:1px solid #d9d9d9;
	border-radius:4px;
	font-size:14px;
	font-family:inherit;
	transition:border-color 0.3s ease;
}
.accordion-content .form-group input:focus {
	outline:none;
	border-color:#4a90e2;
	box-shadow:0 0 0 2px rgba(74,144,226,0.1);
}
@media (max-width:768px) {
    .accordion-item {
	    margin-bottom:20px;
    }
	.accordion-head {
		padding:16px;
	}
	.accordion-body.active {
		padding:16px;
	}
	.accordion-title {
		font-size:15px;
	}
	.accordion-content {
		font-size: 13px;
	}
}
/* 비밀번호찾기 */
.pw-find {
	max-width:420px;
	margin:0 auto;
}
.find-method-radio {
	display:flex;
	gap:20px;
	margin-bottom:30px;
}
.radio-label {
	display:flex;
	align-items:center;
}
.radio-label input[type="radio"] {
	appearance:none;
	-webkit-appearance:none;
	-moz-appearance:none;
	width:23px;
	height:23px;
	border:1px solid #eee;
	border-radius:50%;
	cursor:pointer;
	background-color:#fff;
	transition:all 0.3s ease;
	flex-shrink:0;
	padding:0;
	margin-right: 10px;
}
/* 체크된 상태 */
.accordion-body.active .radio-label input[type="radio"]:checked {
	border-color:var(--main-color);
	background-color:var(--main-color);
}
.accordion-body.active .radio-label input[type="radio"]:checked::after {
	content:'';
	position:absolute;
	width:10px;
	height:10px;
	background-color:#fff;
	border-radius:50%;
	margin-left:6px;
	margin-top: 6px;
}
/* 호버 상태 */
.radio-label input[type="radio"]:hover {
	border-color: #4a90e2;
}
/* 입력 방식 토글 */
.input-method {
	max-height:0;
	overflow:hidden;
	opacity:0;
	transition:max-height 0.3s ease,opacity 0.3s ease;
}
.input-method.active {
	max-height:300px;
	opacity: 1;
}
/* 이메일 입력 그룹 */
#emailMethod .form-group {
	width:80%;
}
.email-input-group {
	display:flex;
	gap:10px;
	align-items:center;
	flex-wrap:wrap;
	justify-content:flex-start;
}
.email-at {
	font-weight:500;
	color:#333;
}

.email-domain:disabled {
	cursor:not-allowed;
}
.email-select {
	cursor: pointer;
}

@media (max-width:768px) {
	#emailMethod .form-group {
		width:100%;
	}
	.email-input-group {
		margin-top:10px;
		justify-content:flex-start;
	}
	.email-local,.email-domain,.email-select {
		flex:1 0 100%;
		width: 100%;
	}
}