.rcfy-opts {
	--rcfy-orange: #dc4614;
	--rcfy-orange-light: #fdf0eb;
	--rcfy-border: #e2e2e2;
	--rcfy-white: #fff;
	--rcfy-text-dark: #2b2b2b;
	--rcfy-text-light: #8a8a8a;
	margin: 0 0 22px;
	width: 100%;
	max-width: 100%;
}

.rcfy-opt {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 12px;
	margin: 0 0 .6rem;
	border: 1.5px solid var(--rcfy-border);
	cursor: pointer;
	transition: all .15s;
	background: var(--rcfy-white);
}

.rcfy-opt:last-of-type {
	margin-bottom: 0;
}

.rcfy-opt.selected {
	border-color: var(--rcfy-orange);
	background: var(--rcfy-orange-light);
}

.rcfy-opt input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.rcfy-radio {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--rcfy-border);
	flex-shrink: 0;
	margin-top: 1px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color .15s;
}

.rcfy-opt.selected .rcfy-radio {
	border-color: var(--rcfy-orange);
}

.rcfy-opt.selected .rcfy-radio::after {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--rcfy-orange);
}

.rcfy-opt-content {
	flex: 1;
	min-width: 0;
}

.rcfy-opt-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
}

.rcfy-opt-label {
	font-weight: 700;
	font-size: .95rem;
	color: var(--rcfy-text-dark);
}

.rcfy-opt-price {
	font-weight: 800;
	font-size: .95rem;
	color: var(--rcfy-orange);
	white-space: nowrap;
}

.rcfy-opt-price--plain {
	color: var(--rcfy-text-dark);
}

.rcfy-opt-sub {
	display: block;
	font-size: .8rem;
	color: var(--rcfy-text-light);
	margin-top: .15rem;
	font-weight: 500;
}

.rcfy-freqs {
	display: flex;
	gap: .4rem;
	margin-top: .6rem;
	flex-wrap: wrap;
}

.rcfy-freq {
	font-size: .78rem;
	padding: .35rem .7rem;
	border-radius: 8px;
	background: var(--rcfy-white);
	border: 1px solid var(--rcfy-border);
	color: var(--rcfy-text-light);
	font-weight: 600;
	cursor: pointer;
	transition: all .15s;
	user-select: none;
}

.rcfy-freq:hover {
	border-color: var(--rcfy-orange);
	color: var(--rcfy-orange);
}

.rcfy-freq.on {
	background: var(--rcfy-orange);
	color: var(--rcfy-white);
	border-color: var(--rcfy-orange);
}

/* Frequency editor in cart page */
.rcfy-cart-freq-editor {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
	font-size: 0.85rem;
}
.rcfy-cart-freq-editor__label {
	color: #54595F;
	font-weight: 500;
}
.rcfy-cart-freq-editor__select {
	padding: 4px 10px;
	border: 1px solid #d0d0d0;
	border-radius: 6px;
	background: #fff;
	font-size: 0.85rem;
	color: #2b2b2b;
	cursor: pointer;
}
.rcfy-cart-freq-editor__select:hover { border-color: #dc4614; }
.rcfy-cart-freq-editor__spinner {
	display: none;
	width: 14px;
	height: 14px;
	border: 2px solid #dc4614;
	border-top-color: transparent;
	border-radius: 50%;
	animation: rcfySpin 0.6s linear infinite;
}
.rcfy-cart-freq-editor.is-loading .rcfy-cart-freq-editor__spinner { display: inline-block; }
@keyframes rcfySpin {
	to { transform: rotate(360deg); }
}
