/* KVLTX Event RSVP card — refined "coastal civic" styling, scoped and hardened
   against theme overrides (the active theme restyles bare inputs/labels, so the
   properties themes commonly hijack are forced with !important within this card). */

.kvltx-rsvp-card{
  --kv-accent:#237ebd; /* brand blue; set inline from Event_Bridge::accent_color() */
  --kv-ink:#16302d;
  --kv-muted:#5d6b67;
  --kv-border:#dde3e1;
  --kv-field:#ffffff;
  position:relative;
  box-sizing:border-box;
  width:100%;
  margin:28px 0;
  padding:30px 32px 32px !important;
  background:#f3f3f3;
  border:1px solid var(--kv-border);
  border-radius:16px;
  box-shadow:0 10px 28px -18px rgba(15,118,110,.22);
  overflow:hidden;
}
/* Teal accent strip across the top — the one memorable, on-brand detail. */
.kvltx-rsvp-card::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:5px;
  background:var(--kv-accent);
  background:linear-gradient(90deg, var(--kv-accent), color-mix(in srgb, var(--kv-accent) 55%, #ffffff));
}

.kvltx-rsvp-title{
  margin:4px 0 4px !important;
  padding:0 !important;
  font-size:1.5rem !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  color:var(--kv-ink) !important;
}
.kvltx-rsvp-intro{
  margin:0 0 22px !important;
  padding:0 !important;
  font-size:.98rem !important;
  line-height:1.5;
  color:var(--kv-muted) !important;
}

.kvltx-rsvp-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 18px;
}
@media (max-width:600px){
  .kvltx-rsvp-grid{ grid-template-columns:1fr; }
}

.kvltx-rsvp-field{ margin:0 !important; padding:0 !important; }
.kvltx-rsvp-field label{
  display:flex !important;
  flex-direction:column;
  gap:7px;
  margin:0 !important;
  font-weight:400;
}
.kvltx-rsvp-field label span{
  font-size:.72rem !important;
  font-weight:700 !important;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--kv-ink) !important;
}

.kvltx-rsvp-card input[type=text],
.kvltx-rsvp-card input[type=email],
.kvltx-rsvp-card input[type=tel]{
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:13px 15px !important;
  font-size:1rem !important;
  line-height:1.3 !important;
  color:var(--kv-ink) !important;
  background:var(--kv-field) !important;
  border:1px solid var(--kv-border) !important;
  border-radius:11px !important;
  box-shadow:none !important;
  -webkit-appearance:none;
  appearance:none;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.kvltx-rsvp-card input[type=text]:focus,
.kvltx-rsvp-card input[type=email]:focus,
.kvltx-rsvp-card input[type=tel]:focus{
  outline:none !important;
  background:#fff !important;
  border-color:var(--kv-accent) !important;
  box-shadow:0 0 0 3px rgba(0,0,0,.08) !important;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--kv-accent) 24%, transparent) !important;
}
.kvltx-rsvp-card input::placeholder{ color:#9aa6a2; }

.kvltx-rsvp-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  margin-top:24px !important;
  padding:14px 40px !important;
  font-size:1rem !important;
  font-weight:700 !important;
  letter-spacing:.01em;
  color:#fff !important;
  border:0 !important;
  border-radius:999px !important;
  background:var(--kv-accent) !important;
  box-shadow:0 10px 20px -8px rgba(0,0,0,.32);
  -webkit-appearance:none;
  appearance:none;
  transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
.kvltx-rsvp-submit:hover{
  filter:brightness(.93);
  transform:translateY(-1px);
  box-shadow:0 14px 24px -8px rgba(0,0,0,.38);
}
.kvltx-rsvp-submit:active{ transform:translateY(0); filter:brightness(.88); }
.kvltx-rsvp-submit:focus-visible{
  outline:3px solid rgba(0,0,0,.25);
  outline:3px solid color-mix(in srgb, var(--kv-accent) 45%, transparent);
  outline-offset:2px;
}
.kvltx-rsvp-submit:disabled{ opacity:.55; cursor:default; transform:none; box-shadow:none; }
@media (max-width:600px){ .kvltx-rsvp-submit{ width:100%; } }

.kvltx-rsvp-feedback{ margin:0; }
.kvltx-rsvp-success{
  margin:0 0 16px !important;
  padding:12px 16px;
  border-radius:10px;
  background:#e7f6f2;
  border:1px solid #b9e6dc;
  color:#0b5e57 !important;
  font-weight:600;
}
.kvltx-rsvp-error{
  margin:0 0 16px !important;
  padding:12px 16px;
  border-radius:10px;
  background:#fdecec;
  border:1px solid #f3c7c7;
  color:#a02020 !important;
  font-weight:600;
}

/* Honeypot — keep visually hidden but reachable to bots. */
.kvltx-rsvp-hp{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
