/* タブ切り替え */
.selected-therapist-tabs input[type="radio"] {
	display: none;
}
.selected-therapist-tabs .tab-btns {
	display: flex;
	justify-content: center;
	gap: 4px;
	margin-bottom: 20px;
}
.selected-therapist-tabs .tab-btn {
	display: inline-block;
	flex: 1;
	max-width: 220px;
	padding: 10px 20px;
	text-align: center;
	background: #888;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	cursor: pointer;
	user-select: none;
}
@media screen and (max-width: 800px) {
	.selected-therapist-tabs .tab-btn {
		font-size: 11px;
	}
}
.selected-therapist-tabs .tab-btn.disabled {
	opacity: 0.5;
	pointer-events: none;
	cursor: default;
}
.selected-therapist-tabs input#st-tab1:checked ~ .tab-btns label[for="st-tab1"],
.selected-therapist-tabs input#st-tab2:checked ~ .tab-btns label[for="st-tab2"],
.selected-therapist-tabs input#st-tab3:checked ~ .tab-btns label[for="st-tab3"] {
	background: #2196F3;
}
.selected-therapist-tabs .tab-content {
	display: none;
}
.selected-therapist-tabs input#st-tab1:checked ~ #st-content1,
.selected-therapist-tabs input#st-tab2:checked ~ #st-content2,
.selected-therapist-tabs input#st-tab3:checked ~ #st-content3 {
	display: block;
}

/* 厳選セラピストタブ */
.st-highlight-list {
	position: relative;
	padding: 10px;
	margin: 15px 0;
	list-style: none;
	background: linear-gradient(135deg, #6BE5D0, #3983DB);
	border-radius: 15px 0 15px 0;
}
.st-highlight-list::after {
	content: '';
	position: absolute;
	inset: 10px;
	background: #fff;
	border-radius: 12px 0 12px 0;
	z-index: 0;
}
.st-highlight-list li {
	position: relative;
	z-index: 1;
	padding: 6px 20px;
	padding-left: 50px;
	font-size: 14px;
}
.st-highlight-list li::before {
	content: '✓';
	position: absolute;
	left: 20px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	background: #4ab8c2;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 3px;
	font-size: 13px;
	font-weight: bold;
}
@media screen and (max-width: 800px) {
	.st-highlight-list li {
		font-size: 12px;
		padding: 6px 10px;
		padding-left: 40px;
	}
	.st-highlight-list li::before {
		left: 10px;
	}
}

.gradient-banner {
	width: 100%;
	background: linear-gradient(to right,
			#22aed1 0%,
			#5c8bc0 40%,
			#8e79a5 80%,
			#9d739c 100%
		);
	border-radius: 4px;
	color: #fff;
	text-align:center;
	font-size: 16px;
	font-weight: bold;
	padding: 15px 0;
}

.st-region-list {
	list-style: none;
	padding: 0;
	margin: 15px 0;
}
.st-region-list li {
	padding: 4px 0;
}
.st-region-list a {
	font-size: 14px;
	color: #03AAC3;
	text-decoration: underline;
}
.st-region-list a:hover {
	text-decoration: underline;
}
.st-purchase-btn {
	display: block;
	width: 80%;
	max-width: 400px;
	margin: 20px auto;
	padding: 15px 0;
	background: #00CED1;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	border-radius: 4px;
}
.st-purchase-btn:hover {
	opacity: 0.8;
}
.st-emphasis {
	color: red;
	font-weight: bold;
}
.st-note {
	font-size: 13px;
	color: #666;
	margin: 10px 0;
}
.st-past-link {
	margin: 10px 0;
}
.st-past-link a {
	color: #03AAC3;
	text-decoration: underline;
}
.st-past-link a:hover {
	text-decoration: underline;
}

/* 過去リストタブ */
.st-year-toggle {
	cursor: pointer;
	font-size: 16px;
	font-weight: bold;
	padding: 8px 0;
	user-select: none;
	color: #333;
}
.st-year-toggle:hover {
	color: #2196F3;
}
.st-month-list {
	list-style: none;
	padding: 0 0 0 10px;
	margin: 5px 0 15px;
}
.st-month-list li {
	padding: 4px 0;
}
.st-month-list a {
	color: #2196F3;
	text-decoration: none;
}
.st-month-list a:hover {
	text-decoration: underline;
}

/* 過去リストモーダル */
.st-modal-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.6);
	z-index: 9999;
	justify-content: center;
	align-items: center;
}
.st-modal-overlay.is-active {
	display: flex;
}
.st-modal-panel {
	background: #fff;
	border: 2px solid #999;
	border-radius: 4px;
	padding: 25px 30px;
	max-width: 500px;
	width: 90%;
	max-height: 80vh;
	overflow-y: auto;
}
.st-modal-panel h3 {
	text-align: center;
	margin: 0 0 10px;
	font-size: 16px;
	color: #333;
	background: #e8e8e8;
	border: none;
}
.st-modal-panel p {
	text-align: left;
	margin: 0 0 15px;
	font-size: 14px;
}
.st-modal-region-list {
	list-style: none;
	margin: 0 0 15px;
	border: 1px solid #ccc;
	background: #fff;
	padding: 10px 15px;
}
.st-modal-region-list li {
	padding: 3px 0;
}
.st-modal-region-list a {
	color: #2196F3;
	text-decoration: none;
}
.st-modal-region-list a:hover {
	text-decoration: underline;
}
.st-modal-region-list .st-purchased {
	color: red;
	font-weight: bold;
	margin-left: 5px;
}
.st-modal-back-btn {
	display: block;
	width: 80%;
	max-width: 400px;
	margin: 10px auto 0;
	padding: 10px 0;
	background: #999;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	border-radius: 4px;
	border: none;
	cursor: pointer;
}
.st-modal-back-btn:hover {
	opacity: 0.8;
}

/* 購入済みリストタブ */
.st-purchased-list {
	margin: 15px 0;
}
.st-purchased-group {
	margin-top: 15px;
}
.st-purchased-group:first-child {
	margin-top: 0;
}
.st-purchased-toggle {
	cursor: pointer;
	font-size: 15px;
	font-weight: bold;
	padding: 0 5px;
	user-select: none;
	color: #2196F3;
	position: relative;
	z-index: 1;
	display: table;
	background: #fff;
	margin-left: 8px;
	margin-bottom: -12px;
}
.st-purchased-toggle:hover {
	opacity: 0.7;
}
.st-therapist-list {
	padding: 20px 10px 10px;
	background: #f3f3f3;
	border: 8px solid transparent;
	border-image: linear-gradient(-45deg, #57cfb0, #2ab5d3) 1;
}
.st-therapist-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #eee;
	text-decoration: none;
	color: #333;
}
.st-therapist-card:hover {
	background: #fafafa;
}
.st-therapist-card img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border-radius: 2px;
}
.st-therapist-card .st-card-info {
	font-size: 14px;
	line-height: 1.6;
}
.st-therapist-card .st-card-area {
	color: #666;
	font-size: 13px;
}
.st-therapist-card .st-card-salon {
	font-weight: bold;
}
.st-therapist-card .st-card-name {
	color: #2196F3;
}
.st-therapist-card .st-card-review {
	font-size: 13px;
	color: #888;
}

/* ゲスト購入モーダル */
#st-guest-modal {
	z-index: 10000;
}
.st-guest-subtitle {
	font-weight: bold;
	font-size: 15px;
	text-align: center;
	margin: 0 0 15px;
}
.st-guest-form {
	text-align: left;
	padding: 0 5px;
}
.st-guest-form label {
	display: block;
	margin-top: 12px;
	font-size: 14px;
	font-weight: bold;
}
.st-guest-required {
	display: inline-block;
	background: #e53935;
	color: #fff;
	font-size: 11px;
	font-weight: bold;
	padding: 1px 6px;
	border-radius: 3px;
	margin-right: 4px;
}
.st-guest-form input[type="text"],
.st-guest-form input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 14px;
	margin-top: 4px;
}
.st-guest-note {
	font-size: 12px;
	color: #666;
	margin: 4px 0 0;
	text-align: left;
}
.st-guest-carrier-warn {
	color: #e53935;
	font-weight: bold;
	font-size: 13px;
	margin: 4px 0 2px;
	text-align: left;
}
.st-guest-carrier-domains {
	font-size: 11px;
	color: #e53935;
	margin: 0 0 4px;
	text-align: left;
}
.st-guest-error {
	display: none;
	color: #e53935;
	font-size: 13px;
	font-weight: bold;
	margin: 4px 0 0;
	text-align: left;
}
.st-guest-login-link {
	text-align: center !important;
	margin: 15px 0 0;
	font-size: 14px;
}
.st-guest-login-link a {
	color: #2196F3;
	text-decoration: underline;
}
#st-guest-modal .st-purchase-btn {
	margin: 20px auto 0;
}
#st-guest-modal .st-purchase-btn.disabled {
	background: #ccc;
	pointer-events: none;
}

/* 厳選セラピスト例 */
.st-example-box {
	position: relative;
	margin: 15px 0;
}
.st-example-box p {
	margin: 4px 0;
	font-size: 100%;
	display: flex;
	align-items: center;
	gap: 0.3em;
	line-height: 1.1;
}
.st-example-box p img {
	width: 40px;
	height: auto;
	flex-shrink: 0;
}
.st-example-box p .st-example-text {
	flex: 1;
	min-width: 0;
}
.st-example-box span.red {
	color: #FF0000;
}
.st-example-toggle {
	color: #03AAC3;
	text-decoration: underline;
	display: block;
	text-align: center;
	margin-top: 8px;
	cursor: pointer;
}

/* 来月リンクボタン */
.st-next-month-btn {
	display: block;
	width: 80%;
	max-width: 400px;
	margin: 20px 0;
	padding: 15px 0;
	background: #2196F3;
	color: #fff;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	border-radius: 4px;
}
.st-next-month-btn:hover {
	opacity: 0.8;
}
