/* =========================================================
	Section
========================================================= */

.join-section {
	margin-top: 50px;
}

.join-section:first-of-type {
	margin-top: 0;
}

.section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;  
	margin-bottom: 20px;
	
}

.section-head h2 { 
	font-size: 22px;
	font-weight: 750;
}

 
/* =========================================================
	Agreement
========================================================= */

.agree-list { 
	gap:16px;
    padding: 40px;
    border: 1px solid var(--line);
    border-radius: 20px;
	display:flex;
	flex-direction:column;
	gap:10px;
}
 
.agree-item {
	position: relative;
	display: flex; 
	cursor: pointer;
	gap:10px; 
	align-items:flex-start;
	padding-bottom: 10px;
}

.agree-check-label {
	display: flex;
	align-items: center;
	width: 100%;
	gap:10px;
	cursor: pointer;
}

.agree-item input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
 

.agree-text { 
}

.agree-all { 
	margin-bottom: 5px;
	 
}

.agree-all .agree-text {
	font-weight: 700;
	color: #000;
	font-size: 16px;
}


/* =========================================================
	Agreement Detail
========================================================= */

.agree-detail {
	position: absolute;
	right: 0;
	top: 50%;
	height: 100%;
	aspect-ratio:1;
	padding: 0;
	border: 0;
	background: transparent;
	transform: translateY(-50%);
	cursor: pointer; 
    display: flex;
    align-items: center;
    justify-content: center;
}

.agree-detail span { 
	width: 8px;
	height: 8px;
	border-right: 2px solid #111;
	border-bottom: 2px solid #111;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.agree-item-wrap.open .agree-detail span {
	transform: rotate(225deg); 
}


/* =========================================================
	Agreement Content
========================================================= */

.agree-content {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.25s ease;
}

.agree-content-inner {
	overflow: hidden;
	padding: 0 28px; 
	color: #666;
	background: var(--bg);
	font-size: 14px;
	transition:all ease .25s;
} 
.agree-item-wrap.open .agree-content {
	grid-template-rows: 1fr;
}

.agree-item-wrap.open .agree-content-inner {
	padding-top: 20px;
	padding-bottom: 20px;
}

 


/* =========================================================
	Form Layout
========================================================= */

.form-list { 
	display:flex;
	flex-direction:column;
	gap:16px;
    padding: 40px;
    border: 1px solid var(--line);
    border-radius: 20px;
}

.form-row {
	display: flex;
	align-items: flex-start; 
}

.form-label {
	flex: 0 0 180px;
	padding-top: 16px; 
	font-weight: 600; 
	font-size: 16px;
	color: #191c24; 
}

.form-label.required::after {
	content: "*";
	display: inline-block; 
	color: #1c59e9;
	font-weight: 700;
}

.form-control {
	width: 100%;
	max-width: 450px;
}

.form-control-button {
	display: flex;
	gap: 8px;
}

.form-control-button .input {
	flex: 1;
}
.form-control-button .input + .btn{
	height: auto;
	padding:0 20px;
	font-size: 14px;
	font-weight: 600;
	background: #191c24;
	color: #fff;
}

.form-control:has(.radio-label){
	padding-top: 16px;
	display:flex;
	flex-wrap:wrap;
	gap:0 20px;
}


/* =========================================================
	Select
========================================================= */

.select {
	appearance: none;
	padding-right: 35px;

	background-image:
		linear-gradient(45deg, transparent 50%, #222 50%),
		linear-gradient(135deg, #222 50%, transparent 50%);

	background-position:
		calc(100% - 17px) 15px,
		calc(100% - 12px) 15px;

	background-size:
		5px 5px,
		5px 5px;

	background-repeat: no-repeat;
}
/* =========================================================
	File Upload
========================================================= */

.file-row { 
}


.file-upload,
.logo-upload {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding:10px 0 30px;
}


/* =========================================================
	File Preview
========================================================= */

.file-preview {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 200px;
	aspect-ratio: 900 / 500;
	flex-shrink: 0;
	overflow: hidden; 
	border-radius: 8px; 
}

.logo-preview::before,
.file-preview::before{
	content:'';
	position:absolute;
	inset:0;
	background: url('/images/icon-image.png') #ddd no-repeat center center / 30px;
	opacity:.3;
}


.file-preview img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	position:relative;
	z-index:1;
}
 

 
.logo-preview {
	position:relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100px;
	aspect-ratio:1;
	flex-shrink: 0;
	overflow: hidden;
	border-radius: 50%;
	background: var(--bg);
}

.logo-preview::before{
	background-size:24px;
}

.logo-preview img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	position:relative;
	z-index:1;
}

 


/* =========================================================
	File Info
========================================================= */

.file-info {
	padding-top: 1px;
}


.file-info .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 34px;
	line-height: 34px;
	padding: 0 12px; 
}


.file-info p {
	margin: 9px 0 0;
	font-size: 13px;
	line-height: 1.7;
	color: #777;
}

 
/* =========================================================
	Logo Upload
========================================================= */

.logo-image-input {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
	opacity: 0 !important;
}


.logo-select-button {
	cursor: pointer;
}


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


/* =========================================================
	File Input
========================================================= */
.file-input {
	position: relative;
	display: flex;
	align-items: center; 
	height: 54px;
	box-sizing: border-box; 
	border-radius: 8px;
	overflow: hidden;
	background: var(--bg);
}
.file-image-input,
.file-input-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.file-name {
	display: block;
	width: 100%;
	padding: 0 90px 0 15px;
	box-sizing: border-box;
	color: #8c99aa; 
	line-height: 44px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.file-select-button {
	position: absolute;
	top: 9px;
	right: 8px;
	padding:0 12px;
	height: 34px;
	line-height: 1;
	font-size: 13px; 
	border: 0;
	font-weight: 500;
	border-radius: 7px;
	cursor: pointer;
	background: #191c24;
	color: #fff;
}

/* =========================================================
	Address
========================================================= */

.address-control {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.input-search {
	position: relative;
}

.input-search .input {
	padding-right: 42px;
}

.address-button {
	position: absolute;
	right: 0;
	top: 0;
	aspect-ratio:1;
	height: 100%; 
	background: url('/images/icon-search.png') no-repeat center center / 20px;
}
 

/* =========================================================
	Message
========================================================= */

.form-error {
	margin: 10px 0 15px;
	font-size: 14px; 
	color: #dd353c;
}

.form-message {
	margin: 10px 0 15px;
	font-size: 14px; 
	color: var(--color-text-sub);
}
 
/* =========================================================
	Submit
========================================================= */

.join-submit {
	display: flex;
	justify-content: center;
	margin-top: 35px;
}

.join-submit .member-btn{
	max-width:200px;
}
 

 

/* =========================================================
	Join Section
========================================================= */
 


.required-guide {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: #666;
	font-size: 14px;
	line-height: 1.4;
}


.required-guide i { 
}
.required-guide i:before{
	content:'*';
	color: #1c59e9;
}


/* =========================================================
	Join Form
========================================================= */

.join-form-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}


.join-form-item:not(.file-form-item) {
	position: relative;
	padding:40px; 
	border:1px solid var(--line);
	border-radius:20px;
} 

.file-form-item .btn{
	margin-top: 10px;
	margin-left: 10px;
}

.join-form-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 50px;
	row-gap: 16px;
}


.join-form-fields .form-row {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr); 
	margin: 0;
}



.join-form-fields .form-label {
	margin: 0;
	white-space: nowrap;
}


.join-form-fields .form-control {
	min-width: 0;
}


.join-form-row-full {
	grid-column: 1 / -1;
}

.join-form-row-full .form-control{
	display:flex; 
	gap:10px;
	max-width:600px;
}

.join-form-row-textarea .form-control{
	max-width: 100%;
}


/* =========================================================
	Input
========================================================= */
 
 
/* =========================================================
	Date
========================================================= */

.join-form-fields .date-range {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
}

.join-form-fields .date-range .date-range-separator{
	font-size: 20px;
}

.join-form-fields .date-input {
	position: relative;
	width: 100%;
	max-width: 300px;
}


.join-form-fields .date-input input {
	width: 100%;
	height: 54px;
	padding: 0 15px;
	box-sizing: border-box;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: #fff; 
	font-size: 14px;
}


.join-form-fields .date-input input::-webkit-calendar-picker-indicator {
	cursor: pointer;
}




/* =========================================================
	Check
========================================================= */

.join-form-fields .check-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;  
	cursor: pointer;
}


.join-form-fields .check-label input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}


.join-form-fields .check-icon {  
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:20px;
	height:20px;
	border:1px solid var(--line);
	border-radius:4px;
	background:#fff;
	margin-top: 0;
}

.join-form-fields .check-label input:checked + .check-icon {
	border-color:#191c24;
	background:#191c24;
}

.join-form-fields .check-label input:checked + .check-icon::after {
	content:"";
	width:9px;
	height:5px;
	border-left:2px solid #fff;
	border-bottom:2px solid #fff;
	transform:translateY(-1px) rotate(-45deg);
}

.join-form-fields .check-label input:focus-visible + .check-icon {
	outline:2px solid #1c59e9;
	outline-offset:2px;
}

.position-direct-input[hidden] {
	display:none;
}

 
 

/* =========================================================
	Remove
========================================================= */
/*
.join-form-remove {
	position: absolute;
	top: 40px;
	right: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	aspect-ratio:1;
	border:1px solid var(--line);
	border-radius:4px;
	background: #fff;
	cursor: pointer;
} 


.join-form-remove span {
	position: relative;
	display: block;
	width: 14px;
	height: 14px;
}


.join-form-remove span::before,
.join-form-remove span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 13px;
	height: 2px;
	background: #222;
}


.join-form-remove span::before {
	transform: translate(-50%, -50%) rotate(45deg);
}


.join-form-remove span::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}
*/


/* =========================================================
	Add
========================================================= */

.join-form-add {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 36px;
	margin-top: 16px; 
}


.join-form-add-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	aspect-ratio:1;
	border: 0;
	border-radius: 4px;
	background: #191c24;
	cursor: pointer;
}


.join-form-add-button span {
	position: relative;
	display: block;
	width: 14px;
	height: 14px;
}


.join-form-add-button span::before,
.join-form-add-button span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: #fff;
	transform: translate(-50%, -50%);
}


.join-form-add-button span::before {
	width: 14px;
	height: 2px;
}


.join-form-add-button span::after {
	width: 2px;
	height: 14px;
}

/* =========================================================
	Responsive
========================================================= */
