/* Registration form card + countdown + spots meter. */
.register{background:var(--cream);color:var(--ink)}
.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.register .title b{color:var(--forest)}
.register .lead{color:var(--ink-soft)}

/* Countdown */
.count{display:flex;gap:10px;margin-top:28px}
.count div{flex:1;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 8px;text-align:center}
.count b{display:block;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.6rem);font-weight:900;color:var(--forest);line-height:1;font-variant-numeric:tabular-nums}
.count span{font-size:.85rem;color:var(--ink-soft)}
.count-note{margin-top:12px;font-size:.98rem!important;color:var(--ink-soft)}

/* Spots meter */
.spots{margin-top:28px}
.spots-bar{height:10px;background:#fff;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.spots-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sage),var(--forest));transition:width 1.2s var(--ease)}
.spots-text{display:flex;justify-content:space-between;margin-top:8px;font-size:.98rem!important;color:var(--ink-soft)}
.spots-text strong{color:var(--forest);font-weight:800}

/* Form card */
.form-card{background:#fff;border-radius:var(--radius);padding:clamp(26px,3vw,44px);box-shadow:0 30px 60px rgba(36,55,45,.12)}
.form-card h3{font-size:1.5rem;font-weight:500;margin-bottom:6px}
.form-card .sum{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;margin-bottom:10px;border-bottom:1px solid var(--line)}
.form-card .sum strong{font-size:2.2rem;font-weight:900;color:var(--forest)}
.form-card .sum span{color:var(--ink-soft)}
.field{margin-top:16px}
.field label{display:block;font-weight:500;margin-bottom:6px;font-size:1rem}
.field input{width:100%;border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;background:#FBF9F6;transition:border-color .2s,box-shadow .2s;min-height:52px}
.field input:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 4px rgba(126,154,130,.2)}
.field input[aria-invalid="true"]{border-color:#B5473A}
.field .err{display:none;color:#B5473A;font-size:.92rem;margin-top:6px}
.field.has-error .err{display:block}
.check{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font-size:.98rem;color:var(--ink-soft)}
.check input{width:20px;height:20px;margin-top:3px;flex:none;accent-color:var(--forest)}
.check a{color:var(--forest);font-weight:500}
.form-card .btn{width:100%;margin-top:22px;font-size:1.15rem;min-height:58px}
.form-note{margin-top:14px;font-size:.92rem!important;color:var(--ink-soft);text-align:center}
.form-note svg{width:16px;height:16px;vertical-align:-3px;stroke:var(--forest);fill:none;stroke-width:1.8}
.form-msg{display:none;margin-top:16px;padding:14px 16px;border-radius:12px;font-size:1rem!important;line-height:1.5}
.form-msg.is-error{display:block;background:#FBEAE7;color:#8A2F24}
.form-msg.is-info{display:block;background:var(--cream);color:var(--ink)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* Closed / sold-out state replaces the form */
.form-closed{text-align:center;padding:30px 10px}
.form-closed h3{font-size:1.6rem;font-weight:500;margin-bottom:10px}
.form-closed p{color:var(--ink-soft);font-weight:300}
.form-closed .btn{width:auto;margin-top:18px}

/* Sticky mobile CTA */
.sticky-cta{position:fixed;inset-inline:12px;bottom:12px;z-index:900;display:none;background:var(--peach);color:var(--deep);border-radius:999px;padding:12px 14px 12px 22px;box-shadow:0 14px 36px rgba(0,0,0,.3);align-items:center;justify-content:space-between;gap:12px;text-decoration:none;transform:translateY(120%);transition:transform .4s var(--ease)}
.sticky-cta.is-visible{transform:none}
.sticky-cta strong{font-weight:900;font-size:1.05rem}
.sticky-cta span{font-size:.9rem;opacity:.8}
.sticky-cta em{font-style:normal;background:var(--deep);color:var(--cream);border-radius:999px;padding:10px 18px;font-weight:800}
@media (max-width:900px){.register-grid{grid-template-columns:1fr}.sticky-cta{display:flex}}
