/* WCFC Memberships — palette and type lifted from the live WCFC pages. */

.wcfc {
	--wcfc-cream: #fafafa;
	--wcfc-deep:  #1a1a1c;
	--wcfc-app:   #232325;
	--wcfc-grey:  #747475;
	--wcfc-line:  rgba(26, 26, 28, 0.12);
	--wcfc-soft:  rgba(245, 240, 232, 0.75);

	font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--wcfc-deep);
	max-width: 860px;
	margin: 0 auto;
	box-sizing: border-box;
}
.wcfc *, .wcfc *::before, .wcfc *::after { box-sizing: border-box; }

.wcfc-head { margin-bottom: 2.6rem; }
.wcfc-eyebrow {
	font-size: 0.58rem; letter-spacing: 0.3em; text-transform: uppercase;
	color: var(--wcfc-app); font-weight: 600; margin: 0 0 1rem;
}
.wcfc-title {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: clamp(2rem, 5vw, 3rem); font-weight: 300; line-height: 1.08;
	letter-spacing: -0.01em; margin: 0; color: var(--wcfc-deep);
}
.wcfc-sub {
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-style: italic; font-size: 1.1rem; font-weight: 300;
	color: rgba(26, 26, 28, 0.55); margin: 1.1rem 0 0; line-height: 1.7; max-width: 32rem;
}

/* ── Plan cards ── */
.wcfc-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 3rem; }

.wcfc-plan { position: relative; display: block; cursor: pointer; }
.wcfc-plan input { position: absolute; opacity: 0; width: 1px; height: 1px; }

.wcfc-plan-inner {
	display: block; height: 100%;
	background: var(--wcfc-soft);
	border: 1px solid var(--wcfc-line);
	border-radius: 6px; padding: 1.8rem 1.6rem;
	transition: border-color 0.25s, background 0.25s, transform 0.25s;
}
.wcfc-plan:hover .wcfc-plan-inner { border-color: rgba(26, 26, 28, 0.35); }
.wcfc-plan input:checked + .wcfc-plan-inner {
	background: var(--wcfc-app); border-color: var(--wcfc-app);
}
.wcfc-plan input:focus-visible + .wcfc-plan-inner {
	outline: 2px solid var(--wcfc-deep); outline-offset: 3px;
}

.wcfc-plan-name {
	display: block; font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 1.3rem; font-weight: 400; margin-bottom: 0.3rem;
}
.wcfc-plan-price {
	display: block; font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 2.4rem; font-weight: 300; line-height: 1; margin-bottom: 1rem;
}
.wcfc-plan-blurb {
	display: block; font-size: 0.68rem; line-height: 1.8;
	color: rgba(26, 26, 28, 0.62); margin-bottom: 1.1rem;
}
.wcfc-plan-features { display: block; border-top: 1px solid var(--wcfc-line); padding-top: 0.9rem; }
.wcfc-plan-features span {
	display: block; font-size: 0.62rem; line-height: 1.9;
	color: rgba(26, 26, 28, 0.6); padding-left: 0.9rem; position: relative;
}
.wcfc-plan-features span::before {
	content: "—"; position: absolute; left: 0; color: var(--wcfc-grey);
}
.wcfc-plan-rule {
	display: block; margin-top: 1rem;
	font-size: 0.52rem; letter-spacing: 0.18em; text-transform: uppercase;
	font-weight: 600; color: var(--wcfc-grey);
}

/* Selected state inverts to charcoal. */
.wcfc-plan input:checked + .wcfc-plan-inner { color: var(--wcfc-cream); }
.wcfc-plan input:checked + .wcfc-plan-inner .wcfc-plan-blurb,
.wcfc-plan input:checked + .wcfc-plan-inner .wcfc-plan-features span { color: rgba(250, 250, 250, 0.66); }
.wcfc-plan input:checked + .wcfc-plan-inner .wcfc-plan-features { border-top-color: rgba(250, 250, 250, 0.18); }
.wcfc-plan input:checked + .wcfc-plan-inner .wcfc-plan-features span::before { color: rgba(250, 250, 250, 0.45); }
.wcfc-plan input:checked + .wcfc-plan-inner .wcfc-plan-rule { color: rgba(250, 250, 250, 0.5); }

/* Locked out (florist + $25). */
.wcfc-plan.is-locked { cursor: not-allowed; }
.wcfc-plan.is-locked .wcfc-plan-inner { opacity: 0.32; filter: grayscale(1); }
.wcfc-plan-locked {
	position: absolute; left: 1.6rem; right: 1.6rem; bottom: 1.6rem;
	font-size: 0.55rem; letter-spacing: 0.16em; text-transform: uppercase;
	font-weight: 600; color: var(--wcfc-deep);
	background: var(--wcfc-cream); border: 1px solid var(--wcfc-line);
	border-radius: 3px; padding: 0.6rem 0.7rem; text-align: center;
}

/* ── Form ── */
.wcfc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.wcfc-field { margin: 0; display: flex; flex-direction: column; }
.wcfc-field-wide { grid-column: 1 / -1; }
.wcfc-field label {
	font-size: 0.55rem; letter-spacing: 0.2em; text-transform: uppercase;
	font-weight: 600; color: rgba(26, 26, 28, 0.55); margin-bottom: 0.6rem;
}
.wcfc-field input,
.wcfc-field select {
	font-family: inherit; font-size: 0.82rem; color: var(--wcfc-deep);
	background: transparent; border: none; border-bottom: 1px solid var(--wcfc-line);
	border-radius: 0; padding: 0.55rem 0; width: 100%;
	transition: border-color 0.2s;
}
.wcfc-field input:focus,
.wcfc-field select:focus { outline: none; border-bottom-color: var(--wcfc-deep); }
.wcfc-field.has-error input,
.wcfc-field.has-error select { border-bottom-color: #a02c2c; }
.wcfc-hint { font-size: 0.6rem; color: rgba(26, 26, 28, 0.45); margin-top: 0.5rem; line-height: 1.6; }
.wcfc-hp { position: absolute; left: -9999px; }

.wcfc-actions { margin-top: 2.6rem; }
.wcfc-btn {
	display: inline-flex; align-items: baseline; gap: 1rem;
	background: var(--wcfc-deep); color: var(--wcfc-cream);
	border: none; border-radius: 3px; cursor: pointer;
	padding: 1rem 2rem; font-family: inherit;
	font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
	transition: background 0.3s;
}
.wcfc-btn:hover { background: var(--wcfc-app); }
.wcfc-btn:disabled { opacity: 0.55; cursor: progress; }
.wcfc-btn-amount { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1rem; letter-spacing: 0.02em; text-transform: none; }
.wcfc-secure { font-size: 0.6rem; color: rgba(26, 26, 28, 0.42); margin: 1rem 0 0; letter-spacing: 0.04em; }

.wcfc-message {
	margin-top: 1.4rem; padding: 0.9rem 1.1rem;
	border-left: 3px solid #a02c2c; background: rgba(160, 44, 44, 0.05);
	font-size: 0.72rem; line-height: 1.7; color: #6d2020;
}

.wcfc-status { text-align: left; padding: 3rem 0; }

@media (max-width: 640px) {
	.wcfc-plans, .wcfc-grid { grid-template-columns: 1fr; }
	.wcfc-btn { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
	.wcfc * { transition: none !important; }
}
