/* ================================================
   css/rsvp.css — RSVP 카드 & 토스트 전용 스타일
   ================================================ */

/* ══════════════════════════════════════════
   구버전 v1 — 참고용 보존 (미사용)
   ══════════════════════════════════════════ */
.rsvp {
  display: none;
  position: fixed; inset: 0; z-index: 9998;
  background: rgba(0,0,0,.45);
  align-items: center; justify-content: center;
  padding: 20px; backdrop-filter: blur(4px);
}
.rsvp.show { display: flex; }

/* ══════════════════════════════════════════
   RSVP v2 — 현재 디자인
   ══════════════════════════════════════════ */

/* 전체 컨테이너: iframe 안에서 카드를 세로 중앙 정렬 */
.rsvp2 {
  display: none;
  min-height: 100svh;
  align-items: center;
  justify-content: center;
  padding: 28px 18px;
  box-sizing: border-box;
  background: #f2c4ca;          /* index.html 배경색과 동일 */
}
.rsvp2.show { display: flex; }  /* JS가 추가 */

/* ── 카드 ── */
.rsvp2__card {
  border-width: 0;
  width: 100%;
  max-width: 460px;
  background: #fff;
  border-radius: 20px;
  /* 은은한 테두리 + 그림자 */
  box-shadow: 0 20px 56px rgba(0,0,0,0.13), 0 4px 16px rgba(201,144,154,0.12);
  overflow: hidden;              /* 하단 버튼 모서리를 카드에 맞춤 */
  display: flex;
  flex-direction: column;
  animation: rsvp2-in .4s cubic-bezier(.16,1,.3,1) both;

}
@keyframes rsvp2-in {
  from { opacity: 0; transform: translateY(18px) scale(.97); }
  to   { opacity: 1; transform: none; }
}

/* ── 헤더 (건너뛰기) ── */
.rsvp2__header-bar {
  height: 56px;
  background: #FFEEEE;
  border-bottom: 1px solid #EDD8DB;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* 건너뛰기 버튼 */
.rsvp2__skip-header {
  width: 100%; height: 100%;
  background: none; border: none; cursor: pointer;
  font-family: 'Nanum Myeongjo', serif;
  font-size: 15px; font-weight: 700;
  color: #555;
  letter-spacing: 0.5px;
  transition: color .18s;
}
.rsvp2__skip-header:hover { color: #C9909A; }

/* ── 카드 본문 ── */
.rsvp2__content {
  flex: 0 1 auto;              /* 카드 남은 공간을 채워 submit이 항상 하단에 붙도록 */
  padding: 22px 0 22px;
  display: flex;
  flex-direction: column;
  align-items: center;   /* 제목 가운데 정렬 */
  gap: 16px;
}

/* ── 제목 ── */
.rsvp2__title {
  font-family: 'Nanum Myeongjo', serif;
  font-size: 17px; font-weight: 700;
  color: #1A1A1A;
  letter-spacing: 0.6px;
  text-align: center;
}

/* ── 폼 필드 묶음 ── */
.rsvp2__fields {
  align-self: stretch;   /* align-items:center 인 부모에서 full-width 유지 */
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* ── 개별 필드 ── */
.rsvp2__field {
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* 라벨 + 필수 가로 배치 */
.rsvp2__label-row {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

/* 라벨 */
.rsvp2__label {
  font-family: 'Noto Serif KR', serif;
  font-size: 12px; font-weight: 400;
  color: #555;
  letter-spacing: 0.2px;
}

/* 필수 표시 */
.rsvp2__required {
  font-family: 'Noto Serif KR', serif;
  font-size: 10px; font-weight: 400;
  color: #C9909A;
  letter-spacing: 0.1px;
}

/* 안내 힌트 — 라벨 바로 아래 */
.rsvp2__hint {
  font-family: 'Noto Serif KR', serif;
  font-size: 11px;
  font-weight: 300;
  color: #999;
  letter-spacing: 0.01em;
  margin-top: -2px;
}

/* ── 신랑/신부 탭 ── */
.rsvp2__tabs {
  display: flex;
  gap: 8px;
}

/* 탭 버튼 (비활성) */
.rsvp2__tab {
  flex: 1;
  padding: 10px 8px;
  background: #fff;
  border-radius: 100px;
  outline: 1px solid #E5E7EB;
  outline-offset: -1px;
  border: none; cursor: pointer;
  display: flex;
  justify-content: center; align-items: center;
  font-family: 'Noto Serif KR', serif;
  font-size: 13px; font-weight: 400;
  color: #888;
  transition: outline-color .18s, background .18s, color .18s;
}
/* 탭 활성 — JS가 .rsvp2__tab--active 추가 */
.rsvp2__tab--active {
  background: rgba(201,144,154,0.09);
  outline-color: #C9909A;
  color: #C9909A;
  font-weight: 700;
}
.rsvp2__tab:not(.rsvp2__tab--active):hover {
  outline-color: #C9909A;
  color: #C9909A;
}

/* ── 토글 버튼 그룹 ── */
.rsvp2__toggle-group { display: flex; gap: 8px; }

/* 토글 버튼 (비활성) */
.rsvp2__toggle {
  flex: 1;
  padding: 10px 8px;
  background: #fff;
  border-radius: 8px;
  outline: 1px solid #E5E7EB;
  outline-offset: -1px;
  border: none; cursor: pointer;
  display: flex;
  justify-content: center; align-items: center;
  font-family: 'Noto Serif KR', serif;
  font-size: 13px; font-weight: 400;
  color: #888;
  transition: outline-color .18s, background .18s, color .18s;
}
/* 토글 활성 — JS가 .rsvp2__toggle--active 추가 */
.rsvp2__toggle--active {
  background: rgba(201,144,154,0.09);
  outline-color: #C9909A;
  color: #C9909A;
  font-weight: 700;
}
.rsvp2__toggle:not(.rsvp2__toggle--active):hover {
  outline-color: #C9909A;
  color: #C9909A;
}

/* ── 텍스트 인풋 ── */
.rsvp2__input {
  width: 100%;
  padding: 11px 14px;
  background: #fff;
  border-radius: 8px;
  outline: 1px solid #E5E7EB;
  outline-offset: -1px;
  border: none;
  font-family: 'Noto Serif KR', serif;
  font-size: 16px; font-weight: 300; /* 16px 미만이면 iOS Safari가 포커스 시 자동 확대 */
  color: #333;
  box-sizing: border-box;
  transition: outline-color .18s, box-shadow .18s;
  -webkit-appearance: none;
}
.rsvp2__input::placeholder { color: #C0C0C0; }
.rsvp2__input:focus {
  outline-color: #C9909A;
  /* 포커스 시 은은한 핑크 글로우 */
  box-shadow: 0 0 0 3px rgba(201,144,154,0.12);
}

/* ── 셀렉트 ── */
.rsvp2__select {
  width: 130px;
  height: 42px;
  padding: 0 32px 0 14px;        /* 오른쪽 여백: 커스텀 화살표 공간 */
  background: #fff;
  /* 커스텀 드롭다운 화살표 */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' stroke='%23C9909A' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  border-radius: 8px;
  outline: 1px solid #E5E7EB;
  outline-offset: -1px;
  border: none;
  font-family: 'Noto Serif KR', serif;
  font-size: 16px; font-weight: 300; /* 16px 미만이면 iOS Safari가 포커스 시 자동 확대 */
  color: #333;
  cursor: pointer;
  -webkit-appearance: none; appearance: none;
  box-sizing: border-box;
  transition: outline-color .18s, box-shadow .18s;
}
.rsvp2__select:focus {
  outline-color: #C9909A;
  box-shadow: 0 0 0 3px rgba(201,144,154,0.12);
}
.rsvp2__select option { color: #333; }

/* ── 동행인원 셀렉트 + 직접입력 행 ── */
.rsvp2__count-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* 직접 입력 number input */
.rsvp2__count-input {
  width: 80px;
  height: 42px;
  padding: 0 12px;
  background: #fff;
  border-radius: 8px;
  outline: 1px solid #E5E7EB;
  outline-offset: -1px;
  border: none;
  font-family: 'Noto Serif KR', serif;
  font-size: 16px; /* 16px 미만 → iOS 자동 확대 */
  font-weight: 300;
  color: #333;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  /* 숨김 → 표시 부드러운 전환 */
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .22s ease, transform .22s ease;
  pointer-events: none;
}
.rsvp2__count-input:not([hidden]) {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}
.rsvp2__count-input:focus {
  outline-color: #C9909A;
  box-shadow: 0 0 0 3px rgba(201, 144, 154, 0.12);
}
/* 숫자 스피너 제거 */
.rsvp2__count-input::-webkit-inner-spin-button,
.rsvp2__count-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.rsvp2__count-input[type=number] { -moz-appearance: textfield; }

/* ── 전달하기 버튼 ── */
/* 헤더(.rsvp2__header-bar)와 동일한 구조: flex 컨테이너가 영역을 꽉 채움 */
/* 카드의 overflow:hidden 으로 하단 모서리가 자연스럽게 처리됨 */
.rsvp2__submit {
  width: 100%;
    height: 55px;
    margin: 0;
    padding: 0;
    background: #C9909A;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Nanum Myeongjo', serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    letter-spacing: 1.2px;
    box-shadow: none;
    transition: background .2s, opacity .15s;
}
.rsvp2__submit:hover  { background: #be8490; }
.rsvp2__submit:active { opacity: .88; }

/* ══════════════════════════════════════════
   감사 토스트
   ══════════════════════════════════════════ */

/* 어두운 배경 */
.toast__overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(8,8,7,.52);
  backdrop-filter: blur(4px);
  opacity: 0; pointer-events: none;
  transition: opacity .35s ease;
}
.toast__overlay.show { opacity: 1; pointer-events: auto; }

/* 토스트 카드 */
.toast {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%) scale(.93);
  z-index: 10000;
  background: var(--paper);
  border-radius: 6px;
  padding: 40px 36px 32px;
  width: min(320px, 88vw);
  text-align: center;
  box-shadow: 0 32px 80px rgba(0,0,0,.38), 0 4px 16px rgba(0,0,0,.18);
  border: 1px solid rgba(201,144,154,0.12);
  opacity: 0; pointer-events: none;
  transition: opacity .35s cubic-bezier(.16,1,.3,1),
              transform .35s cubic-bezier(.16,1,.3,1);
}
.toast.show {
  opacity: 1; pointer-events: auto;
  transform: translate(-50%,-50%) scale(1);
}

/* 리본 이모지 */
.toast__petal {
  font-size: 26px;
  margin-bottom: 14px;
  display: block;
  animation: petal-in .5s cubic-bezier(.16,1,.3,1) .1s both;
}
@keyframes petal-in {
  from { transform: scale(.5) rotate(-20deg); opacity: 0; }
  to   { transform: none; opacity: 1; }
}

/* 구분선 */
.toast__rule {
  width: 24px; height: .5px;
  background: var(--gray-2);
  margin: 0 auto 16px;
}

/* 감사 제목 */
.toast__title {
  font-family: 'Nanum Myeongjo', serif;
  font-size: 17px; font-weight: 700;
  color: var(--ink);
  letter-spacing: .04em;
  margin-bottom: 10px;
}

/* 감사 메시지 */
.toast__sub {
  font-family: 'Noto Serif KR', serif;
  font-size: 12px; font-weight: 400;
  color: var(--gray-4);
  line-height: 1.9; letter-spacing: .03em;
  margin-bottom: 24px;
}

/* 확인 버튼 */
.toast__btn {
  width: 100%; padding: 13px;
  background: var(--rose); color: var(--white);
  font-family: 'Noto Serif KR', serif;
  font-size: 13px; font-weight: 400;
  letter-spacing: .16em;
  border: none; border-radius: 100px; cursor: pointer;
  box-shadow: 0 4px 14px rgba(201,144,154,.28);
  transition: background .2s, transform .15s;
}
.toast__btn:hover  { background: var(--rose-deep); transform: translateY(-1px); }
.toast__btn:active { transform: none; }

/* ══════════════════════════════════════════
   유효성 검증 모달 (Fade-in)
   ══════════════════════════════════════════ */
.val-toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10001;
  background: #ffffff;
  border-radius: 16px;
  padding: 32px 28px 24px;
  width: min(290px, 84vw);
  text-align: center;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.10),
    0 2px 8px rgba(201, 144, 154, 0.12);
  border: 1px solid rgba(201, 144, 154, 0.15);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
}
.val-toast.show {
  opacity: 1;
  pointer-events: auto;
}

/* 메시지 */
.val-toast__msg {
  font-family: 'Noto Serif KR', serif;
  font-size: 15px;
  font-weight: 400;
  color: #1a1a1a;
  line-height: 1.7;
  letter-spacing: 0.02em;
  margin-bottom: 22px;
}

/* 확인 버튼 */
.val-toast__close {
  width: 100%;
  padding: 12px;
  background: #C9909A;
  color: #fff;
  font-family: 'Noto Serif KR', serif;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.14em;
  border: none;
  border-radius: 100px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(201, 144, 154, 0.28);
  transition: background .2s, transform .15s;
}
.val-toast__close:hover  { background: #be8490; transform: translateY(-1px); }
.val-toast__close:active { transform: none; }

/* ── 소형 화면 (390px 이하) — 구버전 rsvp2용 ── */
@media (max-width: 390px) {
  .rsvp2           { padding: 20px 14px; }
  .rsvp2__content  { padding: 22px 0 22px; gap: 22px; }
  .rsvp2__title    { font-size: 15px; }
  .rsvp2__field    { padding: 0 16px; }
  .rsvp2__tab,
  .rsvp2__toggle   { padding: 9px 6px; font-size: 13px; }
  /* ⚠️ iOS 자동 확대 방지: input/select font-size 최소 16px */
  .rsvp2__input    { font-size: 16px; }
  .rsvp2__select   { font-size: 16px; height: 46px; }
  .rsvp2__submit   { height: 52px; font-size: 15px; }
}

/* ══════════════════════════════════════════
   RSVP 플로팅 팝업 — 하단 슬라이드업 스타일
   ・전체 화면을 덮지 않음 → 배경 청첩장 내용 계속 읽기 가능
   ・Our Story + 타임라인 지나면 하단에서 스르륵 올라옴
   ══════════════════════════════════════════ */

/* ── 플로팅 컨테이너 ── */
.rsvp-modal {
  position: fixed;
  bottom: 67px;           /* 하단 네비바(59px) + 여백 8px */
  left: 0; right: 0;
  z-index: 9990;
  display: flex;
  justify-content: center;
  padding: 0 14px;
  box-sizing: border-box;
  pointer-events: none;
  /* 슬라이드업 + 페이드인 */
  transform: translateY(calc(100% + 80px));
  opacity: 0;
  transition: transform .55s cubic-bezier(.16,1,.3,1),
              opacity   .35s ease;
}
.rsvp-modal.show {
  pointer-events: auto;
  transform: translateY(0);
  opacity: 1;
}

/* ── 내부 래퍼 (max-width 제한) ── */
.rsvp-modal__inner {
  width: 100%;
  max-width: 460px;
}

/* ── 카드 — OmuDaye 폰트 전체 캐스케이드 + 상단 둥글게 ── */
.rsvp-modal .rsvp2__card {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  /* OmuDaye 전역 자간/굵기 미세 조정 */
  letter-spacing: 0.3px;
  -webkit-font-smoothing: antialiased;
  border-radius: 20px 20px 0 0;
  box-shadow:
    0 -8px 32px rgba(0, 0, 0, 0.13),
    0 -2px 12px rgba(201, 144, 154, 0.18);
}

/* ── 상단 제어 바: 타이틀 (좌) + X 버튼 (우) ── */
.rsvp2__ctrl-bar {
  height: 62px;                    /* 52 → 62px: 타이틀 숨쉴 공간 확보 */
  background: #FFEEEE;
  border-bottom: 1px solid #EDD8DB;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 6px 0 18px;
  flex-shrink: 0;
}

/* 팝업 타이틀 */
.rsvp2__popup-title {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 17px;                 /* 13 → 17px: 존재감 강화 */
  font-weight: 600;
  color: #5C2E36;
  letter-spacing: 0.5px;
  line-height: 1.2;
}

/* ── 불참 선택 시 동행인원 필드 비활성 ── */
.rsvp2__field--disabled {
  opacity: 0.35;
  pointer-events: none;
  user-select: none;
  transition: opacity .25s ease;
}

/* ── 필드 간격 & 카드 본문 여백 (황금비율 기준: 좌우 20px, 상 24px, 하 14px) ── */
.rsvp-modal .rsvp2__content {
  padding: 24px 0 10px;
  gap: 0;
}
.rsvp-modal .rsvp2__fields {
  gap: 20px;
}

/* ── 입력 요소 전체 높이 통일 (48px) — 수평 시각 리듬 확보 ── */
/* Input: height 명시 + 수직 중앙 정렬 */
.rsvp-modal .rsvp2__input {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 16px;
  letter-spacing: 0.3px;
  height: 48px;
  padding: 0 16px;
  line-height: 48px;            /* 수직 중앙 정렬 */
}
/* Select: 높이 통일 */
.rsvp-modal .rsvp2__select {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 16px;
  letter-spacing: 0.3px;
  height: 48px;
}
/* 동행인원 직접입력 number input */
.rsvp-modal .rsvp2__count-input {
  height: 48px;
  font-size: 16px;
  padding: 0 12px;
  line-height: 48px;
}
/* 라벨/힌트/필수 표시 */
.rsvp-modal .rsvp2__label,
.rsvp-modal .rsvp2__hint,
.rsvp-modal .rsvp2__required {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
}
.rsvp-modal .rsvp2__label { letter-spacing: 0.4px; font-size: 12px; }
.rsvp-modal .rsvp2__hint  { letter-spacing: 0.1px; }
/* 탭/토글 버튼: height 48px 명시 + 텍스트 정렬 */
.rsvp-modal .rsvp2__tab,
.rsvp-modal .rsvp2__toggle {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 14px;
  letter-spacing: 0.5px;
  height: 48px;
  padding: 0 8px;
  text-align: center;           /* 버튼 내 텍스트 가운데 정렬 보장 */
}

/* ══════════════════════════════════════════
   오늘 하루 그만보기 — 필드 아래, 버튼 위
   ══════════════════════════════════════════ */
.rsvp2__dismiss-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 10px 20px 12px;
  background: #fff;
}

.rsvp2__no-today {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* 네이티브 체크박스 완전히 숨김 */
.rsvp2__no-today-check {
  position: absolute;
  opacity: 0;
  width: 1px; height: 1px;
  pointer-events: none;
}

/* ── 커스텀 토글 스위치 (확장: ON/OFF 텍스트 포함) ── */
.rsvp2__no-today-icon {
  display: inline-flex;
  align-items: center;
  width: 54px; height: 26px;    /* 넓힘: ON/OFF 텍스트 공간 확보 */
  border-radius: 13px;
  background: #DECDCF;
  position: relative;
  flex-shrink: 0;
  vertical-align: middle;
  overflow: hidden;
  transition: background .28s ease;
}
/* 동그란 핸들 */
.rsvp2__no-today-icon::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.22);
  z-index: 1;
  transition: transform .28s cubic-bezier(.34,1.4,.64,1);
}
/* ON 상태 — 핑크로 물들고 핸들 우측 이동 */
.rsvp2__no-today-check:checked ~ .rsvp2__no-today-icon {
  background: #C9909A;
}
.rsvp2__no-today-check:checked ~ .rsvp2__no-today-icon::after {
  transform: translateX(28px);  /* 54 - 20 - 3 - 3 = 28px */
}

/* OFF 텍스트 — 오른쪽에 배치, 비활성 때 표시 */
.rsvp2__tog-off {
  position: absolute;
  right: 6px;
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 8px;
  font-weight: 700;
  color: #a08888;
  letter-spacing: 0.3px;
  line-height: 1;
  user-select: none;
  transition: opacity .22s ease;
  z-index: 0;
}
/* ON 텍스트 — 왼쪽에 배치, 활성 때 표시 */
.rsvp2__tog-on {
  position: absolute;
  left: 6px;
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 8px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.3px;
  line-height: 1;
  user-select: none;
  opacity: 0;
  transition: opacity .22s ease;
  z-index: 0;
}
/* checked 상태: OFF 숨고 ON 표시 */
.rsvp2__no-today-check:checked ~ .rsvp2__no-today-icon .rsvp2__tog-off { opacity: 0; }
.rsvp2__no-today-check:checked ~ .rsvp2__no-today-icon .rsvp2__tog-on  { opacity: 1; }

/* 텍스트 */
.rsvp2__no-today-text {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-size: 12px;
  color: #B09098;
  letter-spacing: 0.3px;
  white-space: nowrap;
  transition: color .18s;
}
.rsvp2__no-today:hover .rsvp2__no-today-text,
.rsvp2__no-today-check:checked ~ .rsvp2__no-today-text { color: #C9909A; }

/* ── X 닫기 버튼 ── */
.rsvp2__close-btn {
  width: 44px; height: 44px;
  background: none; border: none;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; color: #C9909A;
  border-radius: 50%;
  transition: background .18s, color .18s;
  animation: rsvp-close-pulse 2.4s ease-in-out infinite;
  flex-shrink: 0;
}
.rsvp2__close-btn:hover {
  background: rgba(201,144,154,0.12);
  color: #be8490;
  animation: none;
}
.rsvp2__close-btn:active { background: rgba(201,144,154,0.22); }

@keyframes rsvp-close-pulse {
  0%   { transform: scale(1);    box-shadow: 0 0 0  0px rgba(201,144,154,0.00); }
  40%  { transform: scale(1.14); box-shadow: 0 0 0  6px rgba(201,144,154,0.28); }
  60%  { transform: scale(1.14); box-shadow: 0 0 0  8px rgba(201,144,154,0.18); }
  100% { transform: scale(1);    box-shadow: 0 0 0 14px rgba(201,144,154,0.00); }
}

/* ══════════════════════════════════════════
   참석 의사 전달하기 — 푸딩 스타일 (최하단)
   ══════════════════════════════════════════ */
.rsvp-modal .rsvp2__submit {
  font-family: 'OmuDaye', 'Gowun Dodum', sans-serif;
  font-weight: normal;
  /* 양끝 둥근 푸딩 모양 */
  height: 54px;
  border-radius: 100px;
  margin: 0 16px 18px;
  width: calc(100% - 32px);
  font-size: 17px;
  letter-spacing: 1.6px;
  /* 도톰한 하단 보더 — 입체감 */
  box-shadow: 0 5px 0 #be8490;
  transition: transform .1s ease, box-shadow .1s ease, background .2s;
}
.rsvp-modal .rsvp2__submit:hover  { background: #be8490; }
.rsvp-modal .rsvp2__submit:active {
  transform: translateY(4px);
  box-shadow: 0 1px 0 #be8490;
}

/* ── 소형 화면 조정 ── */
@media (max-width: 390px) {
  .rsvp-modal                  { padding: 0 10px; bottom: 63px; }
  .rsvp2__ctrl-bar             { height: 56px; padding: 0 4px 0 14px; }
  .rsvp2__popup-title          { font-size: 15px; }  /* 16px 미만 입력 확대 방지와 무관, 타이틀은 유지 */
  .rsvp2__close-btn            { width: 40px; height: 40px; font-size: 18px; }
  .rsvp-modal .rsvp2__fields   { gap: 16px; }
  .rsvp2__dismiss-row          { padding: 4px 14px 8px; }
  /* ⚠️ 소형 화면에서도 input/select font-size 16px 유지 — iOS 자동 확대 방지 */
  .rsvp-modal .rsvp2__input    { font-size: 16px; height: 46px; }
  .rsvp-modal .rsvp2__select   { font-size: 16px; height: 46px; }
  .rsvp-modal .rsvp2__count-input { font-size: 16px; height: 46px; }
  .rsvp-modal .rsvp2__tab,
  .rsvp-modal .rsvp2__toggle   { font-size: 13px; height: 46px; }
  .rsvp-modal .rsvp2__submit   { height: 50px; font-size: 15px; margin: 0 12px 14px; width: calc(100% - 24px); }
}
