/* Subscribe form. Uses the Keystone Estate colours when that theme is active, with the same defaults otherwise. */
.relps-form, .relps-thanks, .relps-box { --rs-accent: var(--accent, #0d6e5f); --rs-soft: var(--accent-soft, #e1f1ed); --rs-ink: var(--ink, #141922); --rs-ink2: var(--ink-2, #3a4252); --rs-muted: var(--muted, #687083); --rs-line: var(--line, #e4e5e8); --rs-strong: var(--line-strong, #cfd3da); --rs-paper: var(--paper, #f6f5f1); font-size: 16px; line-height: 1.55; color: var(--rs-ink2); }
.relps-form { display: flex; flex-direction: column; gap: 22px; }
.relps-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.relps-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.relps-errors { border: 1px solid #f3cfca; border-left: 4px solid #c23b30; background: #fbe9e7; border-radius: 10px; padding: 14px 16px; color: #7a231c; font-size: 15px; }
.relps-errors ul { margin: 6px 0 0; padding-left: 18px; }
.relps-kind { display: inline-flex; gap: 4px; padding: 5px; background: var(--rs-paper); border: 1px solid var(--rs-line) !important; border-radius: 12px; align-self: flex-start; }
.relps-kind label, .relps-terms label { position: relative; cursor: pointer; margin: 0; }
.relps-kind input, .relps-terms input, .relps-plan input { position: absolute; opacity: 0; pointer-events: none; }
.relps-kind span { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 9px; font-weight: 600; font-size: 15px; color: var(--rs-ink2); }
.relps-kind input:checked + span { background: var(--rs-ink); color: #fff; }
.relps-kind input:focus-visible + span, .relps-terms input:focus-visible + span, .relps-plan input:focus-visible + .relps-plan-in { outline: 2px solid var(--rs-accent); outline-offset: 2px; }
.relps-step { border: 1px solid var(--rs-line); border-radius: 14px; padding: 22px 22px 24px; background: #fff; }
.relps-step h3 { display: flex; align-items: center; gap: 10px; font-size: 18px; margin: 0 0 16px; color: var(--rs-ink); }
.relps-step h3 span { width: 28px; height: 28px; border-radius: 50%; background: var(--rs-accent); color: #fff; display: grid; place-items: center; font-size: 14px; }
.relps-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.relps-plan { cursor: pointer; margin: 0; display: block; }
.relps-plan-in { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 14px 16px; border: 1px solid var(--rs-strong); border-radius: 12px; transition: border-color .15s; }
.relps-plan-in b { font-size: 17px; color: var(--rs-ink); }
.relps-plan-in small { font-size: 14px; color: var(--rs-ink2); font-weight: 500; }
.relps-plan-in .relps-lim { color: var(--rs-muted); font-size: 13px; }
.relps-plan input:checked + .relps-plan-in { border: 2px solid var(--rs-accent); padding: 13px 15px; background: var(--rs-soft); }
.relps-terms { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.relps-terms span { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border: 1px solid var(--rs-strong); border-radius: 10px; font-weight: 600; font-size: 14.5px; color: var(--rs-ink2); }
.relps-terms em { font-style: normal; font-size: 12px; font-weight: 700; color: var(--rs-accent); }
.relps-terms input:checked + span { background: var(--rs-ink); border-color: var(--rs-ink); color: #fff; }
.relps-terms input:checked + span em { color: #fff; }
.relps-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.relps-f { display: flex; flex-direction: column; gap: 6px; margin: 0; font-weight: 400; }
.relps-f > span { font-weight: 600; font-size: 14px; color: var(--rs-ink); }
.relps-f em { font-style: normal; font-weight: 400; color: var(--rs-muted); }
.relps-f small { font-size: 13px; color: var(--rs-muted); }
.relps-f.span2 { grid-column: 1 / -1; }
.relps-form input[type="text"], .relps-form input[type="email"], .relps-form input[type="tel"], .relps-form select, .relps-form textarea { width: 100%; font: inherit; font-size: 15px; color: var(--rs-ink); background: #fff; border: 1px solid var(--rs-strong); border-radius: 10px; padding: 10px 14px; min-height: 46px; }
.relps-pay { background: var(--rs-paper); border: 1px solid var(--rs-line); border-radius: 12px; padding: 14px 16px; margin-bottom: 16px; font-size: 15px; }
.relps-pay h3 { font-size: 15px !important; margin: 0 0 6px !important; }
.relps-pay p { margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; color: var(--rs-ink); }
.relps-total { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 22px; border-radius: 14px; background: var(--rs-ink); color: #fff; }
.relps-total small { display: block; font-size: 13px; color: #a9b2c1; }
.relps-total b { display: block; font-size: 28px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.relps-small { font-size: 14px; color: var(--rs-muted); margin: -8px 0 0; }
.relps-form.is-renew .relps-new, .relps-form:not(.is-renew) .relps-renew { display: none; }
.relps-thanks, .relps-box { border: 1px solid var(--rs-line); border-radius: 16px; padding: 30px 28px; background: #fff; }
.relps-ok { width: 52px; height: 52px; border-radius: 50%; background: #e2f3ea; color: #167a4a; display: grid; place-items: center; margin-bottom: 14px; }
.relps-thanks h2 { margin: 0 0 8px; font-size: 26px; color: var(--rs-ink); }
.relps-sum { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 20px 0; border: 1px solid var(--rs-line); border-radius: 12px; overflow: hidden; }
.relps-sum div { padding: 12px 16px; border-bottom: 1px solid var(--rs-line); }
.relps-sum div:nth-child(odd) { border-right: 1px solid var(--rs-line); }
.relps-sum dt { font-size: 13px; color: var(--rs-muted); }
.relps-sum dd { margin: 0; font-weight: 700; color: var(--rs-ink); word-break: break-all; }
@media (max-width: 640px) {
	.relps-plans, .relps-grid, .relps-sum { grid-template-columns: 1fr; }
	.relps-sum div:nth-child(odd) { border-right: 0; }
	.relps-step { padding: 18px 16px 20px; }
	.relps-total .btn { width: 100%; }
}
.relps-thanks .btn, .relps-thanks .btn:hover { text-decoration: none; color: #fff; }
.relps-form .relps-mine { display: block; margin: 0; }
