:root {
  --ac-rsvp-navy: #3d3a36;
  --ac-rsvp-gold: #b69a5b;
  --ac-rsvp-text: #3d3a36;
  --ac-rsvp-muted: rgba(61, 58, 54, 0.72);
  --ac-rsvp-line: rgba(182, 154, 91, 0.34);
  --ac-rsvp-bg: #fffaf1;
  --ac-rsvp-card: #ffffff;
  --ac-rsvp-shadow: 0 18px 42px rgba(61, 58, 54, 0.08);
}

.ac-rsvp-section,
.ac-rsvp-section * {
  box-sizing: border-box !important;
  -webkit-tap-highlight-color: transparent !important;
}

.ac-rsvp-section {
  width: 100% !important;
  padding: 84px 20px 92px !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(201, 162, 75, 0.06), transparent 26%),
    linear-gradient(180deg, #ffffff 0%, #fffaf2 100%) !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  color: var(--ac-rsvp-text) !important;
  overflow: hidden !important;
}

.ac-rsvp-section p,
.ac-rsvp-section span,
.ac-rsvp-section label,
.ac-rsvp-section input,
.ac-rsvp-section textarea,
.ac-rsvp-section button,
.ac-rsvp-section legend,
.ac-rsvp-section strong {
  font-family: "Montserrat", Arial, sans-serif !important;
}

.ac-rsvp-section h1 {
  font-family: "Cormorant Garamond", Georgia, serif !important;
}

.ac-rsvp-svg-sprite {
  display: none !important;
}

.ac-rsvp-inner {
  width: min(92%, 980px) !important;
  margin: 0 auto !important;
}

.ac-rsvp-head {
  max-width: 720px !important;
  margin: 0 auto 44px !important;
  text-align: center !important;
}

.ac-rsvp-head-icon {
  width: 50px !important;
  height: 50px !important;
  margin: 0 auto 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--ac-rsvp-gold) !important;
}

.ac-rsvp-head-icon svg {
  width: 44px !important;
  height: 44px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.35 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.ac-rsvp-head > span {
  display: block !important;
  color: var(--ac-rsvp-gold) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  margin-bottom: 12px !important;
}

.ac-rsvp-head h1 {
  color: var(--ac-rsvp-navy) !important;
  font-size: clamp(34px, 4vw, 54px) !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  margin: 0 0 16px !important;
}

.ac-rsvp-head p {
  max-width: 620px !important;
  margin: 0 auto !important;
  color: var(--ac-rsvp-muted) !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}

.ac-rsvp-divider {
  margin: 34px auto 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  color: var(--ac-rsvp-gold) !important;
}

.ac-rsvp-divider span {
  width: 110px !important;
  height: 1px !important;
  background: var(--ac-rsvp-gold) !important;
  opacity: 0.65 !important;
}

.ac-rsvp-form,
.ac-rsvp-alert {
  border: 1px solid var(--ac-rsvp-line) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, 0.9) !important;
  box-shadow: var(--ac-rsvp-shadow) !important;
}

.ac-rsvp-alert {
  margin-bottom: 22px !important;
  padding: 20px 24px !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}

.ac-rsvp-alert svg {
  width: 26px !important;
  height: 26px !important;
  fill: none !important;
  stroke: var(--ac-rsvp-gold) !important;
  stroke-width: 1.5 !important;
  flex: 0 0 26px !important;
}

.ac-rsvp-alert p {
  margin: 0 !important;
  color: var(--ac-rsvp-navy) !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}

.ac-rsvp-form {
  padding: 38px 42px 42px !important;
}

.ac-rsvp-form-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 22px !important;
}

.ac-rsvp-field--full {
  grid-column: 1 / -1 !important;
}

.ac-rsvp-field label,
.ac-rsvp-fieldset legend {
  display: block !important;
  color: var(--ac-rsvp-navy) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  margin: 0 0 10px !important;
}

.ac-rsvp-field input,
.ac-rsvp-field textarea {
  width: 100% !important;
  min-height: 52px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(201, 162, 75, 0.28) !important;
  border-radius: 8px !important;
  background: rgba(255, 250, 242, 0.55) !important;
  color: var(--ac-rsvp-text) !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  outline: none !important;
}

.ac-rsvp-field textarea {
  min-height: 104px !important;
  resize: vertical !important;
}

.ac-rsvp-field input:focus,
.ac-rsvp-field textarea:focus {
  border-color: var(--ac-rsvp-gold) !important;
  box-shadow: 0 0 0 3px rgba(201, 162, 75, 0.12) !important;
}

.ac-rsvp-fieldset {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.ac-rsvp-help {
  color: var(--ac-rsvp-muted) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
  margin: -2px 0 12px !important;
}

.ac-rsvp-options {
  display: grid !important;
  gap: 12px !important;
}

.ac-rsvp-options--two {
  grid-template-columns: repeat(2, 1fr) !important;
}

.ac-rsvp-options--activities {
  margin-bottom: 2px !important;
}

.ac-rsvp-options label {
  min-height: 52px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(201, 162, 75, 0.28) !important;
  border-radius: 10px !important;
  background: rgba(255, 250, 242, 0.55) !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  cursor: pointer !important;
}

.ac-rsvp-options input {
  width: 18px !important;
  height: 18px !important;
  accent-color: var(--ac-rsvp-gold) !important;
  flex: 0 0 18px !important;
}

.ac-rsvp-options span {
  color: var(--ac-rsvp-text) !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
}

.ac-rsvp-companion-field {
  display: none !important;
}

.ac-rsvp-companion-field.is-visible {
  display: block !important;
}

.ac-rsvp-inline-alert {
  grid-column: 1 / -1 !important;
  margin: 24px 0 18px !important;
  padding: 16px 18px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  text-align: center !important;
}

.ac-rsvp-inline-alert[hidden] {
  display: none !important;
}

.ac-rsvp-inline-alert--success {
  border: 1px solid rgba(18, 107, 64, 0.2) !important;
  background: #e7f5ee !important;
  color: #126b40 !important;
}

.ac-rsvp-inline-alert--error {
  border: 1px solid rgba(138, 75, 0, 0.22) !important;
  background: #fff4e5 !important;
  color: #8a4b00 !important;
}

.ac-rsvp-submit {
  width: 100% !important;
  min-height: 54px !important;
  margin-top: 24px !important;
  padding: 0 28px !important;
  border: 1px solid var(--ac-rsvp-gold) !important;
  background: var(--ac-rsvp-gold) !important;
  color: #ffffff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: background 0.22s ease, border-color 0.22s ease, transform 0.22s ease !important;
}

.ac-rsvp-submit:hover {
  background: var(--ac-rsvp-navy) !important;
  border-color: var(--ac-rsvp-navy) !important;
  transform: translateY(-2px) !important;
}

.ac-rsvp-submit:disabled {
  opacity: 0.7 !important;
  cursor: wait !important;
  transform: none !important;
}

@media (max-width: 768px) {
  .ac-rsvp-section {
    padding: 60px 16px 68px !important;
  }

  .ac-rsvp-form {
    padding: 30px 22px 32px !important;
    border-radius: 18px !important;
  }

  .ac-rsvp-form-grid,
  .ac-rsvp-options--two {
    grid-template-columns: 1fr !important;
  }

  .ac-rsvp-head h1 {
    font-size: 34px !important;
  }

  .ac-rsvp-head p {
    font-size: 15px !important;
  }

  .ac-rsvp-divider span {
    width: 68px !important;
  }
}


@media (max-width: 520px) {
  .ac-rsvp-section,
  .ac-rsvp-section p,
  .ac-rsvp-section span,
  .ac-rsvp-section label,
  .ac-rsvp-section input,
  .ac-rsvp-section textarea,
  .ac-rsvp-section button,
  .ac-rsvp-section legend,
  .ac-rsvp-section strong {
    font-family: "Montserrat", Arial, sans-serif !important;
  }

  .ac-rsvp-section h1 {
    font-family: "Cormorant Garamond", Georgia, serif !important;
  }

  .ac-rsvp-field input,
  .ac-rsvp-field textarea,
  .ac-rsvp-options span {
    font-size: 16px !important;
  }

  .ac-rsvp-submit {
    margin-top: 22px !important;
  }
}
