/* ajaxモーダル関連 */
#first_ajax_button {
	position:relative;
	display: flex;
	align-items: center;
	padding: 14px 32px;
	margin: 1rem auto;
	border-radius: 24px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background:
		radial-gradient(circle at 10% 10%, rgba(255, 255, 255, 0.10), transparent 12%),
		radial-gradient(circle at 90% 90%, rgba(0, 0, 0, 0.05), transparent 12%),
		linear-gradient(180deg, #63fff0 0%, #23d3ca 40%, #0cbeb4 60%, #00a9a1 100%);
	box-shadow:
		0 6px 14px rgba(3, 96, 95, 0.35),
		inset 0 2px 0 rgba(255, 255, 255, 0.25),
		inset 0 -6px 18px rgba(0, 0, 0, 0.18);
	color: #ffffff;
	letter-spacing: 0.05em;
	text-shadow:
		0 1px 0 rgba(0, 0, 0, 0.55),
		0 2px 8px rgba(2, 53, 52, 0.32);
}

/* ボタン右矢印 */
.arrow {
	width: 18px;
	height: 18px;
	margin-left: 12px;
	position: relative;
}

.arrow::before,
.arrow::after {
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	width: 10px;
	height: 2px;
	background: rgba(255, 255, 255, 0.95);
	transform-origin: right center;
}

.arrow::before {
	transform: translateY(-50%) rotate(40deg);
}

.arrow::after {
	transform: translateY(-50%) rotate(-40deg);
}
/* ローディング中 */
#first_ajax_button .spinner {
	display: none;
	width: 24px;
	height: 24px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-top-color: white;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#first_ajax_button.loading .btn-text, 
#first_ajax_button.loading .arrow{
	opacity: 0;
}

#first_ajax_button.loading .spinner {
	display: block;
}

@keyframes spin {
	to {
		transform: translate(-50%, -50%) rotate(360deg);
	}
}









dialog#modal_sms {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 95%;
	max-width: 532px;
	height: 20rem;
	height: min-content;
	border-radius: 1rem;
	padding: 2rem;
	
}

#modal_sms::backdrop {
	background: rgba(0, 0, 0, 0.5);
}

#modal_sms p.title{
	font-size:1.2rem;
	font-weight: bold;
}
#modal_sms p.description{
 color: #718096;

}




.otp-input-group {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin:1rem auto 2rem;    
}

.otp-input {
	font-weight: 600;
	text-align: center;
	border: 2px solid #e2e8f0;
	border-radius: 12px;
	outline: none;
	background: #f7fafc;
	color: #1a202c;
	width: 48px;
	height: 48px;
	font-size: 20px;
}

.otp-input:hover {
	border-color: #cbd5e0;
}

.otp-input:focus {
	border-color: #667eea;
	background: white;
	box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.otp-input::placeholder {
	color: #cbd5e0;
}

.resend-button {
	background: transparent;
	border: none;
	color: #667eea;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	padding: 8px 16px;
	border-radius: 6px;
}

.resend-button:hover {
	background: #f7fafc;
	color: #5568d3;
}

.resend-button:active {
	transform: scale(0.98);
}





/* レスポンシブ対応 */


.otp-card {
	padding: 32px 24px;
}

button#modal_ajax {
	display: block;
	position: relative;
	background: #c9c9c9;
	border-radius: 500px;
	width: 85%;
	height:fit-content;
	margin: 1rem auto;
	padding: 1rem;
    font-size: 1.2rem;
	text-align: center;
}

/* ローディング中 */
button#modal_ajax .spinner {
	display: none;
	width: 24px;
	height: 24px;
	border: 3px solid rgba(255, 255, 255, 0.3);
	border-top-color: white;
	border-radius: 50%;
	animation: spin 0.8s linear infinite;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

button#modal_ajax.loading .btn-text{
	opacity: 0;
}

button#modal_ajax.loading .spinner {
	display: block;
}



/* スピナーの代わりに成功アイコンのスタイルを追加 */
button#modal_ajax .success-icon {
  display: none;
  width: 2rem;
  height: 2rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

button#modal_ajax .success-icon svg {
  width: 100%;
  height: 100%;
}

button#modal_ajax .success-circle {
  stroke: white;
  stroke-width: 2;
  stroke-dasharray: 166;
  stroke-dashoffset: 166;
  stroke-linecap: round;
}

button#modal_ajax .success-check {
  stroke: white;
  stroke-width: 3;
  stroke-dasharray: 48;
  stroke-dashoffset: 48;
  stroke-linecap: round;
}
button#modal_ajax.success {
  background: linear-gradient(135deg, #00d98f 0%, #00b377 100%);
}

button#modal_ajax.success .btn-text {
  opacity: 0;
}

button#modal_ajax.success .success-icon {
  display: block;
}

button#modal_ajax.success .success-circle {
  animation: circle-draw 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards;
}

button#modal_ajax.success .success-check {
  animation: check-draw 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.4s forwards;
}


@keyframes circle-draw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes check-draw {
  to {
    stroke-dashoffset: 0;
  }
}



