/* ================= 主题变量 ================= */
.wa-app{
  --wa-theme:#b76e79;
  --wa-ink:#2f2a2a;
  --wa-muted:#8a8080;
  --wa-bg:#fffaf8;
  --wa-line:rgba(0,0,0,.08);
  --wa-radius:18px;
}
.wa-app *{box-sizing:border-box}
.wa-app{
  max-width:980px;
  margin:2.5rem auto;
  background:var(--wa-bg);
  color:var(--wa-ink);
  border-radius:var(--wa-radius);
  box-shadow:0 20px 60px -30px rgba(0,0,0,.35);
  overflow:hidden;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  line-height:1.75;
  font-size:17px;
}
.wa-app p{margin:0 0 .6em}
.wa-app h2,.wa-app h3,.wa-app h4{margin:0}
.wa-app a{color:var(--wa-theme)}

/* ===== 防主题全局样式干扰 ===== */
.wa-app .wa-form-head,
.wa-app .wa-form-head *,
.wa-app .wa-hero,
.wa-app .wa-hero > *,
.wa-app .wa-quote{
  text-align:center !important;
  text-justify:auto !important;
}
.wa-app .wa-field,
.wa-app .wa-field *{
  text-align:left;
}

/* ================= 单页容器 ================= */
/* 只保留左右 16px 留白，上下间距交给模板的 .wp-block-group 控制 */
.wa-single-wrap{
  padding:0 16px;
}
.wa-single-wrap .wa-app{
  margin-top:0;
  margin-bottom:0;
}

/* ================= Hero ================= */
.wa-hero{
  position:relative;
  overflow:hidden;
  padding:60px 28px 46px;
  text-align:center;
  background:linear-gradient(180deg,#fff 0%,#fffaf8 100%);
}
.wa-hero::before{
  content:'';
  position:absolute;inset:0;
  background:var(--wa-theme);
  opacity:.06;
  pointer-events:none;
}
.wa-hero > *{position:relative;z-index:1}

.wa-eyebrow{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  margin:0 0 40px;
}
.wa-eyebrow .wa-eyebrow-cn{
  font-size:18px;
  font-weight:700;
  letter-spacing:.42em;
  padding-left:.42em;
  color:var(--wa-theme);
}
.wa-eyebrow .wa-eyebrow-en{
  font-size:13px;
  font-weight:500;
  letter-spacing:.42em;
  padding-left:.42em;
  padding-bottom:4px;
  text-transform:uppercase;
  color:var(--wa-muted);
  opacity:.85;
}

.wa-couple{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap}
.wa-person{flex:0 1 220px;text-align:center}

.wa-avatar{
  width:132px;height:132px;
  border-radius:50%;
  margin:0 auto 16px;
  overflow:hidden;
  border:3px solid #fff;
  box-shadow:0 12px 32px -14px rgba(0,0,0,.45);
  background:var(--wa-theme);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:46px;
  font-family:"Songti SC","STSong",Georgia,serif;
}
.wa-avatar img{width:100%;height:100%;object-fit:cover;display:block}

.wa-name{
  font-family:"Songti SC","STSong",Georgia,"Times New Roman",serif;
  font-size:clamp(30px,5vw,44px);
  letter-spacing:.1em;
  font-weight:600;
  line-height:1.25;
}
.wa-desc{font-size:14px;color:var(--wa-muted);margin:.4rem 0 0;letter-spacing:.06em}

.wa-amp{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(32px,6vw,54px);
  color:var(--wa-theme);
  font-style:italic;
  line-height:1;
  opacity:.85;
  flex:0 0 auto;
}

.wa-app .wa-quote,
body .wa-app .wa-quote{
  max-width:580px;
  margin:40px auto 0 !important;
  font-size:17px;
  color:var(--wa-muted);
  letter-spacing:.06em;
  line-height:2;
  padding-top:28px;
  border-top:1px solid var(--wa-line);
  text-align:center !important;
  text-justify:auto !important;
  word-spacing:normal !important;
  display:block;
  width:100%;
}

/* ================= 倒计时 ================= */
.wa-countdown{
  display:flex;justify-content:center;gap:14px;
  padding:30px 20px;
  background:var(--wa-theme);
  color:#fff;flex-wrap:wrap;
}
.wa-cd{
  min-width:86px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.26);
  border-radius:14px;
  padding:14px 10px 12px;
  text-align:center;
}
.wa-cd b{
  display:block;font-size:32px;line-height:1.1;font-weight:600;
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
.wa-cd span{font-size:13px;letter-spacing:.18em;opacity:.95}
.wa-countdown.is-done .wa-cd b{font-size:22px;line-height:1.6}

/* ================= 通用区块 ================= */
.wa-section{padding:48px 30px;border-top:1px solid var(--wa-line)}

.wa-section-title{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  margin:0 0 64px;
  text-align:center;
}
.wa-section-title .wa-title-cn{
  font-size:21px;
  font-weight:700;
  letter-spacing:.32em;
  padding-left:.32em;
  color:var(--wa-theme);
}
.wa-section-title .wa-title-en{
  font-size:13px;
  font-weight:500;
  letter-spacing:.42em;
  padding-left:.42em;
  padding-bottom:6px;
  text-transform:uppercase;
  color:var(--wa-muted);
  opacity:.85;
}

/* ================= 婚礼信息 ================= */
.wa-event{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.wa-event-item{
  background:#fff;border:1px solid var(--wa-line);
  border-radius:14px;padding:26px 22px;text-align:center;
}
.wa-event-title{
  display:flex;flex-direction:column;align-items:center;
  gap:6px;margin:0 0 32px;
}
.wa-event-title-cn{
  font-size:16px;font-weight:700;
  letter-spacing:.28em;padding-left:.28em;
  color:var(--wa-theme);
}
.wa-event-title-en{
  font-size:12px;font-weight:500;
  letter-spacing:.32em;padding-left:.32em;
  padding-bottom:4px;
  text-transform:uppercase;color:var(--wa-muted);opacity:.8;
}
.wa-event-item p{
  font-size:16.5px;margin:6px 0;color:var(--wa-ink);
  line-height:1.85;
}
.wa-event-item .wa-sub{
  color:var(--wa-muted);font-size:15px;margin-top:8px;
}

/* ================= 故事 ================= */
.wa-story{
  max-width:700px;margin:0 auto;font-size:17px;
  color:#4a4444;line-height:2.15;letter-spacing:.03em;
}
.wa-story p{margin:0 0 1.15em}
.wa-story img{max-width:100%;height:auto;border-radius:10px;margin:.4em 0}

/* ================= 相册 ================= */
.wa-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.wa-photo{
  margin:0;border-radius:12px;overflow:hidden;
  background:#f1ece9;aspect-ratio:1/1;
}
.wa-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.wa-photo:hover img{transform:scale(1.05)}

/* ================= 表单通用 ================= */
.wa-field{margin-bottom:18px}
.wa-field > label{
  display:block;font-size:14px;letter-spacing:.1em;
  color:var(--wa-muted);margin-bottom:8px;
}
.wa-field input[type=text],
.wa-field input[type=tel],
.wa-field input[type=number],
.wa-field input[type=url],
.wa-field input[type=datetime-local],
.wa-field input[type=file],
.wa-field textarea,
.wa-field select{
  width:100%;
  padding:12px 15px;
  border:1px solid rgba(0,0,0,.14);
  border-radius:10px;
  font-size:15.5px;
  font-family:inherit;
  background:#fff;
  color:var(--wa-ink);
  transition:border-color .2s,box-shadow .2s;
}
.wa-field input:focus,
.wa-field textarea:focus,
.wa-field select:focus{
  outline:none;
  border-color:var(--wa-theme);
  box-shadow:0 0 0 3px rgba(183,110,121,.15);
}
.wa-field input:disabled{background:#f5f0ee;color:#9a9290;cursor:not-allowed}
.wa-field textarea{min-height:100px;resize:vertical}
.wa-field-full{grid-column:1/-1}
.wa-hint{font-size:12.5px;color:var(--wa-muted);margin:7px 0 0;line-height:1.6}
.wa-req{color:#c0392b}

/* ================= 创建表单 ================= */
.wa-form-app{padding:0 0 30px}
.wa-form-head{
  padding:44px 30px 26px;
  text-align:center !important;
  background:linear-gradient(180deg,#fff 0%,#fffaf8 100%);
  border-bottom:1px solid var(--wa-line);
}
.wa-form-head h2{
  font-family:"Songti SC","STSong",Georgia,serif;
  font-size:28px;
  letter-spacing:.1em;
  font-weight:600;
  margin:0 auto 10px;
  text-align:center !important;
}
.wa-form-head p{
  color:var(--wa-muted);
  font-size:15px;
  margin:0 auto .6em;
  max-width:660px;
  text-align:center !important;
}
.wa-form-head .wa-form-quota{
  margin:10px auto 0 !important;
  font-size:14px;
  color:var(--wa-muted);
  text-align:center !important;
}

.wa-form{padding:8px 30px 0}
.wa-form-title{
  font-size:13px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--wa-theme);font-weight:700;
  margin:38px 0 18px;padding-bottom:10px;
  border-bottom:1px solid var(--wa-line);
}
.wa-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 22px}
.wa-form-actions{margin:34px 0 0;padding-top:24px;border-top:1px solid var(--wa-line)}

.wa-upload{position:relative}
.wa-upload-preview{
  display:block;width:86px;height:86px;object-fit:cover;
  border-radius:50%;margin-bottom:10px;border:2px solid #fff;
  box-shadow:0 6px 18px -8px rgba(0,0,0,.4);
}
.wa-upload input[type=file]{
  padding:8px 10px;font-size:13px;background:#faf7f5;
}

/* 照片管理 */
.wa-photo-manager{
  background:#fff;border:1px solid var(--wa-line);
  border-radius:14px;padding:18px;
}
.wa-photo-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.wa-photo-thumbs:empty{margin-bottom:0}
.wa-photo-thumb{
  position:relative;width:86px;height:86px;
  border-radius:10px;overflow:hidden;background:#f1ece9;
}
.wa-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wa-photo-remove{
  position:absolute;top:3px;right:3px;
  width:24px;height:24px;line-height:1;
  border:0;border-radius:50%;
  background:rgba(0,0,0,.55);color:#fff;
  font-size:16px;cursor:pointer;padding:0;
}
.wa-photo-remove:hover{background:#c0392b}

/* ================= RSVP 表单 ================= */
.wa-rsvp{max-width:580px;margin:0 auto}
.wa-radio-group{display:flex;gap:12px;flex-wrap:wrap}
.wa-radio-group > span{
  display:block;width:100%;font-size:14px;letter-spacing:.1em;
  color:var(--wa-muted);margin-bottom:8px;
}
.wa-radio{flex:1 1 140px;position:relative}
.wa-radio input{position:absolute;opacity:0;width:0;height:0}
.wa-radio label{
  display:block;text-align:center;padding:12px 10px;
  border:1px solid rgba(0,0,0,.14);border-radius:10px;
  cursor:pointer;font-size:15px;background:#fff;transition:all .2s;
}
.wa-radio input:checked + label{
  border-color:var(--wa-theme);background:var(--wa-theme);
  color:#fff;box-shadow:0 8px 20px -10px var(--wa-theme);
}
.wa-radio input:focus-visible + label{box-shadow:0 0 0 3px rgba(183,110,121,.25)}

.wa-submit{
  width:100%;padding:15px 20px;border:0;border-radius:10px;
  background:var(--wa-theme);color:#fff;font-size:16px;
  letter-spacing:.2em;font-family:inherit;cursor:pointer;
  transition:opacity .2s,transform .15s;
}
.wa-submit:hover{opacity:.9}
.wa-submit:active{transform:translateY(1px)}
.wa-submit:disabled{opacity:.6;cursor:not-allowed}

.wa-rsvp-msg{margin:16px 0 0;font-size:14.5px;text-align:center;min-height:1.4em}
.wa-rsvp-msg.is-ok{color:#2e7d5b}
.wa-rsvp-msg.is-err{color:#c0392b}

/* ================= 回执关闭提示 ================= */
.wa-rsvp-closed{
  max-width:580px;
  margin:0 auto;
  padding:36px 30px;
  text-align:center;
  background:#fff;
  border:1px solid var(--wa-line);
  border-radius:16px;
}
.wa-rsvp-closed-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;height:72px;
  margin:0 auto 20px;
  border-radius:50%;
  background:rgba(183,110,121,.1);
  color:var(--wa-theme);
}
.wa-rsvp-closed-icon svg{display:block}
.wa-rsvp-closed-title{
  font-size:16px;
  color:var(--wa-ink);
  font-weight:600;
  line-height:1.8;
  letter-spacing:.04em;
  margin:0 0 10px;
}
.wa-rsvp-closed-sub{
  font-size:13.5px;
  color:var(--wa-muted);
  letter-spacing:.08em;
  margin:0;
}

/* ================= 页脚 ================= */
.wa-footer{
  padding:30px 30px 38px;text-align:center;
  font-size:13.5px;letter-spacing:.16em;color:var(--wa-muted);
  border-top:1px solid var(--wa-line);background:#fff;
}

/* ================= 我的邀请函面板 ================= */
.wa-dash-app{padding:0 0 30px}
.wa-dash-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
  padding:38px 30px 24px;
  background:linear-gradient(180deg,#fff 0%,#fffaf8 100%);
  border-bottom:1px solid var(--wa-line);
}
.wa-dash-head h2{
  font-family:"Songti SC","STSong",Georgia,serif;
  font-size:26px;letter-spacing:.1em;font-weight:600;margin:0;
}
.wa-dash-list{padding:22px 30px 0;display:grid;gap:18px}

.wa-dash-item{
  background:#fff;border:1px solid var(--wa-line);
  border-radius:14px;overflow:hidden;
}
.wa-dash-item-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:20px 22px;border-bottom:1px solid var(--wa-line);
  background:#fdfbfa;
}
.wa-dash-item-head h3{
  font-family:"Songti SC","STSong",Georgia,serif;
  font-size:20px;letter-spacing:.06em;font-weight:600;margin:0;
}
.wa-badge{
  display:inline-block;padding:4px 12px;border-radius:999px;
  background:rgba(183,110,121,.12);color:var(--wa-theme);
  font-size:12.5px;font-weight:600;letter-spacing:.08em;white-space:nowrap;
}
.wa-dash-item-body{padding:20px 22px 22px}
.wa-dash-stat{font-size:15px;color:var(--wa-muted);margin:0 0 12px}
.wa-dash-stat strong{color:var(--wa-theme);font-size:17px}

.wa-dash-closed{
  font-size:13.5px;
  color:#8a6a2f;
  background:#fdf7e8;
  border:1px solid #f0e3b8;
  border-radius:10px;
  padding:10px 14px;
  margin:0 0 16px;
  line-height:1.75;
  letter-spacing:.02em;
}
.wa-dash-closed strong{color:#7a5a1f}

.wa-dash-link{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.wa-dash-link input[type=text]{
  flex:1 1 260px;min-width:0;
  padding:10px 12px;border:1px solid rgba(0,0,0,.14);
  border-radius:9px;font-size:13px;background:#faf7f5;
  color:var(--wa-muted);font-family:ui-monospace,Menlo,Consolas,monospace;
}

.wa-btn{
  display:inline-block;padding:10px 17px;border-radius:9px;
  background:var(--wa-theme);color:#fff !important;
  font-size:13.5px;letter-spacing:.08em;text-decoration:none;
  border:0;cursor:pointer;font-family:inherit;white-space:nowrap;
  transition:opacity .2s;
}
.wa-btn:hover{opacity:.88}
.wa-btn-ghost{
  background:#fff;color:var(--wa-theme) !important;
  border:1px solid rgba(183,110,121,.4);
}
.wa-btn-ghost:hover{background:rgba(183,110,121,.06);opacity:1}

.wa-dash-toggle{margin-top:4px}

.wa-rsvp-list{margin-top:16px;border-top:1px dashed var(--wa-line);padding-top:16px}
.wa-table{width:100%;border-collapse:collapse;font-size:14px}
.wa-table th,.wa-table td{
  padding:10px 11px;text-align:left;
  border-bottom:1px solid var(--wa-line);vertical-align:top;
}
.wa-table th{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--wa-muted);font-weight:600;background:#fdfbfa;
}
.wa-table tr:last-child td{border-bottom:0}
.wa-yes{color:#2e7d5b;font-weight:600}
.wa-no{color:#c0392b;font-weight:600}

/* ================= 提示 ================= */
.wa-notice{
  max-width:980px;margin:2rem auto;padding:24px 26px;
  background:#fffaf8;border:1px solid var(--wa-line);
  border-radius:14px;text-align:center;color:var(--wa-muted);
  font-size:15.5px;
}
.wa-muted{color:var(--wa-muted)}

/* ================= 可点击放大的图片 ================= */
.wa-photo img,
.wa-avatar img[data-wa-zoom],
.wa-story img{
  cursor:zoom-in;
}

/* ================= 灯箱 ================= */
.wa-lightbox{
  position:fixed;inset:0;z-index:2147483647;
  background:rgba(0,0,0,.92);
  display:flex;align-items:center;justify-content:center;
  padding:40px 30px;
  opacity:0;visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;
  cursor:zoom-out;
}
.wa-lightbox.is-open{opacity:1;visibility:visible}
.wa-lightbox img{
  max-width:100%;max-height:100%;
  object-fit:contain;
  border-radius:8px;
  box-shadow:0 30px 80px rgba(0,0,0,.55);
  cursor:default;
  transform:scale(.94);
  transition:transform .3s ease;
}
.wa-lightbox.is-open img{transform:scale(1)}
.wa-lightbox-close{
  position:absolute;top:18px;right:22px;
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;
  border:0;font-size:30px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  padding:0;transition:background .2s;
}
.wa-lightbox-close:hover{background:rgba(255,255,255,.3)}
.wa-lightbox-hint{
  position:absolute;bottom:18px;left:0;right:0;
  text-align:center;color:rgba(255,255,255,.6);
  font-size:12.5px;letter-spacing:.2em;
  pointer-events:none;
}

/* ================= 背景音乐悬浮按钮 ================= */
.wa-bgm{display:none}

.wa-bgm-toggle{
  position:fixed;
  right:20px;
  bottom:20px;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--wa-theme,#b76e79);
  color:#fff;
  border:0;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 20px -6px rgba(0,0,0,.4);
  z-index:9999;
  font-size:20px;
  padding:0;
  transition:transform .2s,opacity .2s;
}
.wa-bgm-toggle:hover{transform:scale(1.06)}
.wa-bgm-toggle.is-paused{opacity:.55}
.wa-bgm-toggle .wa-bgm-icon{
  display:inline-block;
  line-height:1;
  transform-origin:50% 50%;
}
.wa-bgm-toggle.is-playing .wa-bgm-icon{
  animation:wa-bgm-spin 2.4s linear infinite;
}
@keyframes wa-bgm-spin{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}

/* 自动播放被拦截时脉冲提示用户点击 */
.wa-bgm-toggle.is-hint {
  animation: wa-bgm-hint 1.8s ease-in-out infinite;
}
@keyframes wa-bgm-hint {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 6px 20px -6px rgba(0,0,0,.4);
  }
  50% {
    transform: scale(1.22);
    box-shadow: 0 10px 36px -4px rgba(183,110,121,.75);
  }
}

/* ================= 响应式 ================= */
@media (max-width:640px){
  .wa-app{font-size:16px}
  .wa-hero{padding:42px 18px 32px}

  /* 新人区域：手机端改为竖排，避免 & 被挤到一边 */
  .wa-couple{
    flex-direction: column;
    gap: 22px;
  }
  .wa-person{flex:0 0 auto}
  .wa-amp{
    font-size:30px;
    margin: -4px 0;
  }

  .wa-avatar{width:100px;height:100px;font-size:36px}
  .wa-eyebrow{gap:9px;margin-bottom:30px}
  .wa-eyebrow .wa-eyebrow-cn{font-size:16px}
  .wa-eyebrow .wa-eyebrow-en{font-size:11.5px}
  .wa-section{padding:34px 18px}
  .wa-section-title{margin-bottom:44px}
  .wa-section-title .wa-title-cn{font-size:18px}
  .wa-section-title .wa-title-en{font-size:11.5px}
  .wa-event-title{margin-bottom:24px}
  .wa-event-title-cn{font-size:15px}
  .wa-event-title-en{font-size:11px}
  .wa-cd{min-width:70px;padding:12px 6px 10px}
  .wa-cd b{font-size:26px}
  .wa-gallery{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}

  .wa-form{padding:8px 18px 0}
  .wa-form-head{padding:32px 18px 22px}
  .wa-form-head h2{font-size:24px}
  .wa-form-head p{font-size:14px}
  .wa-dash-head{padding:28px 18px 20px}
  .wa-dash-list{padding:16px 18px 0}
  .wa-table{font-size:13px}
  .wa-table th,.wa-table td{padding:8px 7px}

  .wa-rsvp-closed{padding:28px 20px}
  .wa-rsvp-closed-icon{width:60px;height:60px;margin-bottom:16px}
  .wa-rsvp-closed-title{font-size:15px}

  .wa-lightbox{padding:20px 12px}
  .wa-lightbox-close{top:10px;right:12px;width:40px;height:40px;font-size:26px}

  .wa-bgm-toggle{
    right:14px;
    bottom:14px;
    width:42px;
    height:42px;
    font-size:18px;
  }
}

/* ================= 通栏布局 ================= */
.wa-layout-full{max-width:none;margin:0;border-radius:0;box-shadow:none}


/* ================= 邀请函单页：收敛上下间距，避免与页眉页脚过远 ================= */
body.single-wa_invite main.wp-block-group {
  margin-top: 32px !important;
}
body.single-wa_invite main.wp-block-group > .wp-block-group.alignfull {
  padding-top: 32px !important;
  padding-bottom: 32px !important;
}
/* 卡片本身不再叠加 margin */
body.single-wa_invite .wa-app {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
/* 兜底：隐藏邀请函页 post-content 之后的所有兄弟块（主题的 post-terms/comments 等） */
body.single-wa_invite main.wp-block-group > .wp-block-group.alignfull > .alignfull ~ * {
  display: none !important;
}