.uc-sample-entry {
	margin: 0 0 1.15em;
}

.uc-sample-entry__status {
	display: inline-block;
	margin: 0;
	padding: 0.45em 0.85em;
	border: 1px solid #c8d5b9;
	background: #f4f8ef;
	color: #2f4a1e;
	font-size: 0.95em;
	line-height: 1.4;
}

.uc-sample-entry__open,
.uc-sample-entry__login {
	cursor: pointer;
}

/* CTA card — monochrome only (product color must stay the visual hero) */
.uc-sample-cta {
	margin: 0.5em 0;
	padding: 1.15rem 1.25rem 1.25rem;
	border: 1px solid #cfcfcf;
	border-radius: 6px;
	background: #f7f7f7;
	color: #1a1a1a;
}

.uc-sample-cta__lead {
	margin: 0 0 0.35em;
	font-size: 1.125em;
	font-weight: 700;
	line-height: 1.4;
	color: #111;
}

.uc-sample-cta__note {
	margin: 0 0 1em;
	font-size: 0.9em;
	font-weight: 400;
	line-height: 1.45;
	color: #666;
}

/* No note: give the button room after the lead (specificity beats margin:0 below) */
.uc-sample-entry .uc-sample-cta .uc-sample-cta__lead + .uc-sample-entry__open--cta {
	margin-top: 0.65em;
}

.uc-sample-entry .uc-sample-cta .uc-sample-entry__open--cta {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0.85em 1.1em;
	border: 1px solid #1a1a1a;
	border-radius: 4px;
	background: #1a1a1a;
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.uc-sample-entry .uc-sample-cta .uc-sample-entry__open--cta:hover {
	background: #333;
	border-color: #333;
	color: #fff;
}

.uc-sample-entry .uc-sample-cta .uc-sample-entry__open--cta:focus-visible {
	outline: 2px solid #1a1a1a;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.uc-sample-entry .uc-sample-cta .uc-sample-entry__open--cta {
		transition: none;
	}
}

.uc-sample-locked-cart {
	margin: 0;
}

.uc-sample-locked-cart__notice {
	margin: 0 0 0.75em;
	padding: 0.55em 0.75em;
	background: #fff4e0;
	color: #8a5a00;
	font-size: 0.9em;
	line-height: 1.45;
}

.uc-sample-locked-cart .quantity {
	pointer-events: none;
	opacity: 0.65;
}

.uc-sample-locked-cart .single_add_to_cart_button:disabled,
.uc-sample-locked-cart .single_add_to_cart_button.disabled {
	cursor: not-allowed;
}

.uc-sample-modal[hidden] {
	display: none !important;
}

.uc-sample-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.uc-sample-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(20, 20, 20, 0.55);
}

.uc-sample-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(32rem, 100%);
	max-height: min(90vh, 40rem);
	overflow: auto;
	padding: 1.25rem 1.35rem 1.5rem;
	background: #fff;
	color: #1a1a1a;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
}

.uc-sample-modal__header {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
	min-height: 1.6em;
}

.uc-sample-modal__title {
	margin: 0;
	padding: 0 2rem;
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.5;
	color: #1a1a1a;
	text-align: center;
}

.uc-sample-modal__close {
	position: absolute;
	top: 0;
	right: 0;
	flex: 0 0 auto;
	margin: 0;
	padding: 0.15em 0.45em;
	border: 0;
	background: transparent;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	color: inherit;
}

.uc-sample-modal__close:hover,
.uc-sample-modal__close:focus-visible {
	opacity: 0.7;
}

.uc-sample-apply__intro {
	margin: 0 0 1rem;
	font-size: 0.92em;
	font-weight: 400;
	line-height: 1.45;
	color: #555;
}

.uc-sample-apply__history {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid #e0e0e0;
}

.uc-sample-apply__history-list {
	margin: 0.35em 0 0.6em;
	padding-left: 1.2em;
	color: #333;
}

.uc-sample-apply__hint {
	display: block;
	margin: 0.4em 0 0;
	font-size: 0.92em;
	font-weight: 400;
	color: #555;
	line-height: 1.45;
}

.uc-sample-apply-form .form-row {
	margin-bottom: 0.75em;
}

.uc-sample-apply-form .form-row > label:not(.uc-sample-apply__check-label) {
	display: block;
	margin: 0 0 5px;
	color: #1a1a1a;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.5;
	opacity: 1;
}

.uc-sample-apply-form textarea.woocommerce-Input,
.uc-sample-apply-form textarea.input-text {
	box-sizing: border-box;
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0.7rem;
	border: 1px solid #ccc;
	border-radius: 4px;
	background-color: #fff;
	font-size: 0.95rem;
	line-height: 1.5;
	color: inherit;
}

.uc-sample-apply-form__submit {
	margin: 0;
}

.uc-sample-apply-form button.woocommerce-Button,
.uc-sample-apply-form button[name="uc_sample_apply_submit"] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
	padding: 0.85em 1.1em;
	background: #32373c !important;
	color: #fff !important;
	border: none;
	border-radius: 2px;
	font: inherit;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	text-decoration: none !important;
	box-sizing: border-box;
}

.uc-sample-apply-form button.woocommerce-Button:hover,
.uc-sample-apply-form button.woocommerce-Button:focus,
.uc-sample-apply-form button[name="uc_sample_apply_submit"]:hover,
.uc-sample-apply-form button[name="uc_sample_apply_submit"]:focus {
	color: #fff !important;
	opacity: 0.92;
}

/* Theme labels are often too light; keep monochrome but readable */
.uc-sample-modal .uc-sample-apply-form label,
.uc-sample-auth .uc-sample-auth-form label {
	color: #1a1a1a;
	font-weight: 600;
	opacity: 1;
}

.uc-sample-modal .uc-sample-apply-form .description {
	color: #555;
	opacity: 1;
}

.uc-sample-apply__check-label {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 500;
	color: #1a1a1a;
	cursor: pointer;
	line-height: 1.4;
}

.uc-sample-apply__check-label input[type="checkbox"] {
	margin: 0;
	flex-shrink: 0;
	vertical-align: middle;
}

.uc-sample-apply-form textarea,
.uc-sample-auth-form .input-text {
	width: 100%;
	max-width: 100%;
}

/* 商品ページのサンプルモーダルには uc-address-state が載らない。マイページの 48px 欄に合わせる。 */
.uc-sample-auth-form .input-text {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: 48px !important;
	min-height: 48px !important;
	margin: 0;
	padding: 0 0.7rem !important;
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	background-color: #fff !important;
	font-size: 0.95rem !important;
	line-height: 46px !important;
	color: inherit;
}

.uc-sample-auth > .uc-sample-entry__hint {
	margin: 0 0 0.35rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: #1a1a1a;
}

.uc-sample-auth__legacy {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	background: #f4f4f4;
	border: 1px solid #e2e2e2;
	border-radius: 4px;
}

.uc-sample-auth__legacy p {
	margin: 0 0 0.6em;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #1a1a1a;
}

.uc-sample-auth__legacy p:last-child {
	margin-bottom: 0;
}

.uc-sample-auth__legacy-switch {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.uc-sample-auth__legacy-switch:hover,
.uc-sample-auth__legacy-switch:focus {
	color: #111;
}

.uc-sample-auth__note {
	margin: 0 0 0.85rem;
	font-size: 0.9rem;
	line-height: 1.6;
	color: #333;
}

.uc-sample-auth .upo-send,
.uc-sample-auth .upo-verify {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0.75rem 0 0;
	padding: 0.85em 1.1em !important;
	background: #32373c !important;
	color: #fff !important;
	border: none !important;
	border-radius: 2px !important;
	font: inherit !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	cursor: pointer;
	text-decoration: none !important;
	box-sizing: border-box;
}

.uc-sample-auth .upo-send:hover,
.uc-sample-auth .upo-send:focus,
.uc-sample-auth .upo-verify:hover,
.uc-sample-auth .upo-verify:focus {
	color: #fff !important;
	opacity: 0.92;
}

.uc-sample-auth__chooser {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 1rem;
}

/* Override theme `.button` so active/inactive are obvious (was weight-only). */
.uc-sample-auth .uc-sample-auth__choice.button,
.uc-sample-auth .uc-sample-auth__choice {
	flex: 1 1 10rem;
	box-sizing: border-box;
	margin: 0;
	padding: 0.65em 0.85em;
	border: 1px solid #cfcfcf;
	border-radius: 4px;
	background: #f3f3f3;
	color: #666;
	font-size: 0.95em;
	font-weight: 500;
	line-height: 1.35;
	text-align: center;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.uc-sample-auth .uc-sample-auth__choice.button:hover,
.uc-sample-auth .uc-sample-auth__choice:hover {
	border-color: #999;
	background: #ececec;
	color: #333;
}

.uc-sample-auth .uc-sample-auth__choice.button.is-active,
.uc-sample-auth .uc-sample-auth__choice.is-active {
	border-color: #1a1a1a;
	border-width: 2px;
	background: #1a1a1a;
	color: #fff;
	font-weight: 700;
	box-shadow: none;
}

.uc-sample-auth .uc-sample-auth__choice.button.is-active:hover,
.uc-sample-auth .uc-sample-auth__choice.is-active:hover {
	border-color: #333;
	background: #333;
	color: #fff;
}

.uc-sample-auth .uc-sample-auth__choice.button:focus-visible,
.uc-sample-auth .uc-sample-auth__choice:focus-visible {
	outline: 2px solid #1a1a1a;
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.uc-sample-auth .uc-sample-auth__choice.button,
	.uc-sample-auth .uc-sample-auth__choice {
		transition: none;
	}
}

.uc-sample-auth__panel[hidden],
.uc-sample-auth-form[hidden] {
	display: none !important;
}

.uc-sample-auth__panel .upo-phone-otp-login,
.uc-sample-auth__panel .upo-phone-otp-login > div {
	max-width: 100% !important;
	width: 100% !important;
}

/* UPO は inline padding:8px のため ~38px。メール側 .input-text の 48px に合わせる。 */
.uc-sample-auth .upo-phone-input,
.uc-sample-auth .upo-code,
.uc-sample-auth .upo-intake-input {
	box-sizing: border-box !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: 48px !important;
	min-height: 48px !important;
	padding: 0 0.7rem !important;
	border: 1px solid #ccc !important;
	border-radius: 4px !important;
	background-color: #fff !important;
	font-size: 0.95rem !important;
	line-height: 46px !important;
}

/* UPO の電話ラベルは見出しに差し替えたため隠す（no_label 非対応の版への保険）。 */
.uc-sample-auth__panel[data-uc-sample-auth-panel="phone"] .upo-phone-otp-login > div > div:first-child > label,
.uc-sample-auth__panel[data-uc-sample-auth-panel="phone"] .upo-phone-otp-login > div > div:first-child > br {
	display: none !important;
}

.uc-sample-auth__panel .upo-phone-otp-login .upo-consent-text {
	margin-bottom: 2px !important;
}

/* メール新規登録のラベル（600 / 14.4px / 下 5px）に合わせる。UPO は label+br で隙間が空きすぎる。 */
.uc-sample-auth .upo-intake-field {
	margin-bottom: 0.75em !important;
}

.uc-sample-auth .upo-intake-field > br {
	display: none !important;
}

.uc-sample-auth .upo-intake-field > label {
	display: block;
	margin: 0 0 5px;
	color: #1a1a1a;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.5;
	opacity: 1;
}

.uc-sample-auth .upo-reg-intake {
	flex-wrap: wrap;
	column-gap: 0.75rem;
	align-items: flex-start;
}

/* UPO は照合前 display:none。flex !important を常時付けると先に姓名が出る。 */
.uc-sample-auth .upo-reg-intake[style*="display: block"],
.uc-sample-auth .upo-reg-intake[style*="display:block"] {
	display: flex !important;
}

.uc-sample-auth .upo-reg-intake .upo-intake-field:has([data-key="last_name"]),
.uc-sample-auth .upo-reg-intake .upo-intake-field:has([data-key="first_name"]) {
	flex: 1 1 calc(50% - 0.4rem);
	box-sizing: border-box;
	width: calc(50% - 0.375rem) !important;
	min-width: 0;
	max-width: calc(50% - 0.375rem) !important;
}

.uc-sample-auth .upo-reg-intake .upo-intake-field:has([data-key="user_company_name"]),
.uc-sample-auth .upo-reg-intake .upo-intake-field:has([data-key="billing_company"]) {
	flex: 1 1 100%;
	width: 100% !important;
	max-width: 100% !important;
}

.uc-sample-auth__email-tabs,
.uc-sample-auth__phone-tabs {
	display: flex;
	gap: 0.75rem;
	margin: 0 0 0.85rem;
	border-bottom: 1px solid #ddd;
}

.uc-sample-auth__email-tab,
.uc-sample-auth__phone-tab {
	margin: 0;
	padding: 0.4rem 0.15rem 0.55rem;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: inherit;
	font-size: inherit;
	line-height: inherit;
}

.uc-sample-auth__email-tab {
	cursor: pointer;
}

.uc-sample-auth__email-tab.is-active,
.uc-sample-auth__phone-tab {
	border-bottom-color: currentColor;
	font-weight: 600;
}

.uc-sample-auth__phone-tab {
	cursor: default;
	pointer-events: none;
	user-select: none;
}

.uc-sample-auth-form .form-row {
	margin-bottom: 0.75em;
}

.uc-sample-auth-form__names {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.75rem;
	margin-bottom: 0.75em;
}

.uc-sample-auth-form__names .form-row {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	float: none;
	width: auto;
}

.uc-sample-auth-form button.woocommerce-Button,
.uc-sample-auth-form button[name="uc_auth_submit"] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
	padding: 0.85em 1.1em;
	background: #32373c !important;
	color: #fff !important;
	border: none;
	border-radius: 2px;
	font: inherit;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	text-decoration: none !important;
	box-sizing: border-box;
}

.uc-sample-auth-form button.woocommerce-Button:hover,
.uc-sample-auth-form button.woocommerce-Button:focus,
.uc-sample-auth-form button[name="uc_auth_submit"]:hover,
.uc-sample-auth-form button[name="uc_auth_submit"]:focus {
	color: #fff !important;
	opacity: 0.92;
}

.uc-account-auth__lost {
	margin: 0.5rem 0 0;
	font-size: 0.9em;
}

.uc-sample-auth .uc-is-individual-row {
	display: block;
	margin: 0.2em 0 0.45em;
}

.uc-sample-auth .uc-is-individual-row label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-weight: 500;
	cursor: pointer;
	color: #1a1a1a;
}

.uc-sample-auth .uc-is-individual-row input[type="checkbox"] {
	width: auto;
	height: auto;
	margin: 0;
	flex-shrink: 0;
}

.uc-sample-auth .input-text[readonly],
.uc-sample-auth .upo-intake-input[readonly] {
	background-color: #f6f6f6 !important;
	color: #333;
}

body.uc-sample-modal-open {
	overflow: hidden;
}
