/* Formulario de los anfitriones: estilos exclusivos de la sexta sección. */
.rsvp-section { position: relative; isolation: isolate; overflow: hidden; background: #235C45; padding: 182px 62px 133px; color: #235C45; }
.rsvp-section::before { content: ""; position: absolute; z-index: -1; inset: 0; background: url("assets/cream-paper.png") center / 850px auto repeat; mix-blend-mode: soft-light; opacity: .15; pointer-events: none; }
.rsvp-section::after { content: ""; position: absolute; z-index: -1; inset: 20px; border: 1px solid #E8AC4560; outline: 1px solid #FFF6E52B; outline-offset: 5px; border-radius: 110px 110px 4px 4px; pointer-events: none; }
.rsvp-ornament { position: absolute; z-index: -1; inset: 0; background: url("assets/share-ornament.svg") center / 180px 180px repeat; opacity: .09; pointer-events: none; }
.rsvp-lights { position: absolute; top: -4px; left: 50%; translate: -50% 0; width: max(100%,1040px); height: 161px; pointer-events: none; }
.rsvp-bulb { fill: #FFF0B5; filter: drop-shadow(0 0 6px #E8AC45); }
.rsvp-paper-wrap { position: relative; max-width: 770px; margin: 0 auto; filter: drop-shadow(0 8px 0 #112F2320) drop-shadow(0 16px 22px #102F2340); transition: opacity .65s ease, transform .65s ease; }
.rsvp-motion-ready .rsvp-paper-wrap:not(.rsvp-revealed) { opacity: 0; transform: translateY(16px); }
.rsvp-paper { position: relative; isolation: isolate; padding: 66px 76px 49px; background: #FFF6E5; clip-path: polygon(.5% 0, 19% .4%, 40% 0, 59% .4%, 78% 0, 99.7% .4%, 100% 19%, 99.6% 39%, 100% 62%, 99.6% 80%, 100% 99.6%, 80% 100%, 59% 99.6%, 39% 100%, 19% 99.6%, .3% 100%, 0 81%, .4% 60%, 0 40%, .4% 20%); }
.rsvp-paper::before { content: ""; position: absolute; z-index: -1; inset: 0; background: url("assets/cream-paper.png") center / 560px auto repeat; opacity: .63; mix-blend-mode: multiply; pointer-events: none; }
.rsvp-paper::after { content: ""; position: absolute; z-index: -1; inset: 18px; border: 2px solid #235C4570; box-shadow: 0 0 0 4px #FFF6E5, 0 0 0 5px #C83B3266, inset 0 0 0 4px #FFF6E5, inset 0 0 0 5px #E8AC4566; pointer-events: none; }
.rsvp-header { text-align: center; margin-bottom: 31px; }
.rsvp-eyebrow { color: #235C45; font-size: 10px; line-height: 1.9; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; margin: 0 0 16px; }
.rsvp-title { color: #C83B32; font-family: var(--serif); font-weight: 400; font-size: clamp(38px,4.8vw,61px); line-height: 1.15; letter-spacing: -.035em; margin: 0 0 22px; }
.rsvp-description { max-width: 490px; color: #55604C; font-size: 15px; line-height: 1.9; margin: 0 auto; text-wrap: pretty; }
.rsvp-deadline { color: #C83B32; font-size: 13px; font-weight: 600; line-height: 1.8; margin: 17px auto 0; }
.rsvp-crown { display: block; width: 115px; height: 38px; margin: 19px auto 0; }
.rsvp-required-note { font-size: 11px; line-height: 1.8; color: #626454; margin: 0 0 19px; }
.rsvp-required-star { color: #C83B32; font-weight: 700; }
.rsvp-field { margin-bottom: 24px; min-width: 0; }
.rsvp-label,.rsvp-legend { display: block; padding: 0; margin: 0 0 9px; font-size: 14px; line-height: 1.65; font-weight: 600; color: #235C45; }
.rsvp-optional { font-size: 11px; color: #626454; font-weight: 400; margin-left: 5px; }
.rsvp-input,.rsvp-textarea { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 53px; border: 1px solid #6A806455; border-bottom: 2px solid #235C4575; border-radius: 2px; background: #FFFDF380; color: #235C45; padding: 12px 14px; font: 400 16px/1.6 var(--sans); }
.rsvp-textarea { min-height: 106px; resize: vertical; overflow-wrap: anywhere; }
.rsvp-input:focus-visible,.rsvp-textarea:focus-visible { outline: 3px solid #C83B32; outline-offset: 3px; border-color: #C83B32; }
.rsvp-input[aria-invalid="true"] { border-color: #C83B32; }
.rsvp-hint { font-size: 12px; line-height: 1.7; color: #626454; margin: 8px 0 0; }
.rsvp-attendance { border: 0; padding: 0; margin: 0 0 25px; min-width: 0; }
.rsvp-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.rsvp-option { position: relative; display: flex; align-items: center; gap: 10px; min-height: 60px; padding: 12px 14px; border: 1px solid #235C454A; border-radius: 2px; background: #FFFDF34D; cursor: pointer; font-size: 14px; line-height: 1.6; color: #235C45; }
.rsvp-option input { appearance: auto; width: 19px; height: 19px; flex-shrink: 0; margin: 0; accent-color: #C83B32; }
.rsvp-option:has(input:checked) { border-color: #C83B32; background: #C83B320B; box-shadow: inset 0 0 0 1px #C83B32; }
.rsvp-option:has(input:focus-visible) { outline: 3px solid #C83B32; outline-offset: 3px; }
.rsvp-option input:focus-visible { outline: 2px solid #235C45; outline-offset: 3px; }
.rsvp-attendance[aria-invalid="true"] .rsvp-option { border-color: #C83B32; }
.rsvp-guests-input { width: 145px; }
.rsvp-error { color: #A12D25; font-size: 12px; line-height: 1.7; font-weight: 500; margin: 9px 0 0; }
.rsvp-whatsapp-notice { font-size: 12px; line-height: 1.9; color: #55604C; margin: 28px 0 18px; text-align: center; }
.rsvp-submit { display: flex; justify-content: center; align-items: center; gap: 11px; width: 100%; min-height: 58px; padding: 14px 18px; border: 1px solid #E8AC45; outline: 3px solid #C83B32; outline-offset: 2px; border-radius: 2px; background: #C83B32; color: #FFF6E5; font: 600 15px/1.6 var(--sans); cursor: pointer; touch-action: manipulation; }
.rsvp-submit svg { width: 23px; height: 23px; flex: 0 0 23px; }
.rsvp-submit:hover:not(:disabled) { background: #AB3029; }
.rsvp-submit:focus-visible { outline: 3px dashed #235C45; outline-offset: 6px; }
.rsvp-submit:disabled { cursor: default; background: #235C45; outline-color: #235C45; }
.rsvp-pending { text-align: center; color: #235C45; font-size: 12px; line-height: 1.8; margin: 16px 0 0; }
.rsvp-status { font-size: 12px; line-height: 1.85; color: #235C45; margin: 18px 0 0; }
.rsvp-status:empty { display: none; }
/* Botón para aceptar, formulario plegable y agradecimiento al enviar. */
.rsvp-gate { text-align: center; padding: 6px 0 4px; }
.rsvp-accept-wrap { position: relative; display: inline-block; }
.rsvp-accept { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 13px; min-height: 66px; padding: 17px 46px 18px; border: 2px solid #F3C66E; border-radius: 999px; background: linear-gradient(180deg, #DE4C40 0%, #C83B32 52%, #A92F28 100%); color: #FFF6E5; font: 400 21px/1.15 var(--serif); letter-spacing: .01em; text-shadow: 0 1px 0 #7E211C; cursor: pointer; box-shadow: 0 0 0 4px #FFF6E5, 0 0 0 6px #E8AC45, 0 10px 0 5px #8E2621, 0 20px 32px 4px #8E262147; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.rsvp-accept::before { content: ""; position: absolute; z-index: -1; inset: 5px; border: 1.5px dashed #FFF6E57A; border-radius: inherit; pointer-events: none; }
.rsvp-accept-shine { position: absolute; z-index: -1; inset: 0; background: linear-gradient(105deg, transparent 30%, #FFF6E566 48%, #FFF6E522 56%, transparent 70%); translate: -130% 0; animation: rsvp-shine 3.4s ease-in-out 1s infinite; pointer-events: none; }
.rsvp-accept-heart { width: 22px; height: 22px; flex: 0 0 22px; color: #F8CE70; filter: drop-shadow(0 1px 0 #7E211C); animation: rsvp-heart 1.6s ease-in-out infinite; }
.rsvp-accept:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 0 0 4px #FFF6E5, 0 0 0 6px #E8AC45, 0 12px 0 5px #8E2621, 0 24px 36px 4px #8E262150; }
.rsvp-accept:active { transform: translateY(7px); box-shadow: 0 0 0 4px #FFF6E5, 0 0 0 6px #E8AC45, 0 3px 0 5px #8E2621, 0 8px 14px 4px #8E262140; }
.rsvp-accept:focus-visible { outline: 3px dashed #235C45; outline-offset: 12px; }
.rsvp-accept-spark { position: absolute; top: 50%; width: 20px; height: 20px; color: #E8AC45; pointer-events: none; animation: rsvp-twinkle 2.4s ease-in-out infinite; }
.rsvp-accept-spark-left { right: calc(100% + 22px); translate: 0 -70%; }
.rsvp-accept-spark-right { left: calc(100% + 22px); translate: 0 -20%; width: 14px; height: 14px; animation-delay: -1.2s; }
@keyframes rsvp-shine { 0% { translate: -130% 0; } 45%, 100% { translate: 130% 0; } }
@keyframes rsvp-heart { 0%, 50%, 100% { scale: 1; } 15% { scale: 1.22; } 30% { scale: 1.04; } }
@keyframes rsvp-twinkle { 0%, 100% { opacity: 1; scale: 1; rotate: 0deg; } 50% { opacity: .35; scale: .6; rotate: 45deg; } }
.rsvp-gate-hint { font-size: 12px; line-height: 1.8; color: #626454; margin: 30px 0 0; }
.rsvp-gated .rsvp-panel { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .65s cubic-bezier(.3,.7,.2,1), opacity .45s ease; }
.rsvp-gated .rsvp-panel.is-open { grid-template-rows: 1fr; opacity: 1; }
.rsvp-panel-inner { min-height: 0; overflow: hidden; padding: 8px; margin: -8px; }
.rsvp-done { text-align: center; padding: 4px 0 2px; animation: rsvp-pop .7s cubic-bezier(.2,.8,.3,1.2) both; }
.rsvp-done-mark { display: block; width: 30px; height: 30px; margin: 0 auto 14px; color: #E8AC45; animation: rsvp-spin 1s cubic-bezier(.2,.8,.3,1) both; }
.rsvp-done-title { color: #C83B32; font-family: var(--serif); font-size: clamp(28px,3.4vw,38px); line-height: 1.2; letter-spacing: -.02em; margin: 0 0 12px; outline: none; }
.rsvp-done-text { max-width: 430px; margin: 0 auto; color: #55604C; font-size: 14px; line-height: 1.85; }
.rsvp-edit { margin-top: 20px; padding: 8px 4px; border: 0; background: none; color: #235C45; font: 600 13px/1.4 var(--sans); text-decoration: underline; text-decoration-color: #E8AC45; text-decoration-thickness: 2px; text-underline-offset: 5px; cursor: pointer; }
.rsvp-edit:hover { color: #C83B32; }
.rsvp-edit:focus-visible { outline: 2px dashed #C83B32; outline-offset: 4px; }
@keyframes rsvp-pop { from { opacity: 0; transform: translateY(14px) scale(.97); } }
@keyframes rsvp-spin { from { opacity: 0; scale: .2; rotate: -180deg; } }
.rsvp-bottom-ink { display: block; width: 114px; height: 38px; margin: 28px auto 0; }
.rsvp-paper h2,.rsvp-paper h3,.rsvp-paper p,.rsvp-paper label,.rsvp-paper legend { overflow-wrap: anywhere; }
.rsvp-edge-star { position: absolute; top: 119px; width: 64px; height: 93px; pointer-events: none; }.rsvp-edge-star-left { left: 6%; rotate: -8deg; }.rsvp-edge-star-right { right: 6%; rotate: 8deg; }
.rsvp-flowers { position: absolute; width: 148px; height: 130px; pointer-events: none; filter: drop-shadow(0 5px 3px #102F2338); }.rsvp-flowers-top { top: 194px; right: max(28px,calc(50% - 470px)); transform: scaleX(-1); }.rsvp-flowers-bottom { bottom: 85px; left: max(28px,calc(50% - 470px)); }
.rsvp-ribbon { position: absolute; width: 157px; height: 78px; top: -27px; left: 50%; translate: -50% 0; pointer-events: none; }
@media (max-width: 760px) {
  .rsvp-accept-wrap { display: block; margin: 0 6px; }
  .rsvp-accept { width: 100%; padding: 16px 22px 17px; font-size: 19px; }
  .rsvp-accept-spark-left { right: auto; left: -4px; top: -16px; translate: none; }
  .rsvp-accept-spark-right { left: auto; right: -2px; top: auto; bottom: -22px; translate: none; }
  .rsvp-section { padding: 148px 27px 107px; }
  .rsvp-section::after { inset: 13px; outline-offset: 4px; border-radius: 73px 73px 3px 3px; }
  .rsvp-lights { width: 870px; height: 134px; top: -3px; }
  .rsvp-paper { padding: 58px 26px 37px; }.rsvp-paper::after { inset: 10px; box-shadow: 0 0 0 3px #FFF6E5,0 0 0 4px #C83B3240; border-width: 1px; }
  .rsvp-eyebrow { font-size: 9px; letter-spacing: .1em; }
  .rsvp-title { font-size: clamp(34px,9.5vw,43px); margin-bottom: 20px; }
  .rsvp-description { font-size: 14px; line-height: 1.9; }
  .rsvp-header { margin-bottom: 24px; }.rsvp-crown { width: 98px; height: 32px; }
  .rsvp-options { grid-template-columns: minmax(0,1fr); gap: 11px; }
  .rsvp-label,.rsvp-legend { font-size: 13px; }.rsvp-optional { display: inline-block; font-size: 10px; }
  .rsvp-option { min-height: 56px; padding: 12px; }
  .rsvp-input,.rsvp-textarea { padding: 11px 12px; }
  .rsvp-submit { font-size: 14px; gap: 8px; padding: 12px 10px; }
  .rsvp-submit svg { width: 20px; height: 20px; flex-basis: 20px; }
  .rsvp-edge-star { top: 102px; width: 28px; height: 48px; }.rsvp-edge-star-left { left: 10px; }.rsvp-edge-star-right { right: 10px; }
  .rsvp-flowers { width: 65px; height: 61px; }.rsvp-flowers-top { right: 3px; top: 121px; }.rsvp-flowers-bottom { left: 3px; bottom: 81px; }
  .rsvp-ribbon { width: 133px; height: 68px; top: -24px; }
}
@media (prefers-reduced-motion: reduce) {
  .rsvp-section *, .rsvp-section *::before, .rsvp-section *::after { animation: none !important; transition: none !important; }
  .rsvp-section .rsvp-paper-wrap { opacity: 1 !important; transform: none !important; }
}
