/* Mẫu Phong Thư Đỏ Rượu — nền trắng ngà, phong bì đỏ rượu, dấu sáp ngà, nhành lá khô. Bố cục chảy theo nội dung. */

.t-phong-thu {
  --pt-ivory: #faf7f4;
  --pt-paper: #f3ede6;
  --pt-wine: #5c1a22;
  --pt-wine-dark: #3f0f16;
  --pt-wine-soft: #8a4a52;
  --pt-ink: #3a2326;
  --pt-muted: #7d6a6b;
  --pt-seal: #e9dfc9;
  --f-script: "Italianno", "Pinyon Script", cursive;
  --f-serif: "Cormorant Garamond", Georgia, serif;
  --f-sans: "Josefin Sans", Arial, sans-serif;
  --gate-bg: #5c1a22;
  --gate-ink: #f5ece2;
  --accent-strong: #5c1a22;
}
.t-phong-thu .vela-frame { background: var(--pt-ivory); color: var(--pt-ink); font-family: var(--f-serif); }
.t-phong-thu .pt-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.t-phong-thu .pt-s { position: relative; padding: 0 28px; }
.t-phong-thu img { width: 100%; height: 100%; object-fit: cover; }

/* chữ dùng chung */
.t-phong-thu .pt-title {
  font-family: var(--f-script); font-size: 64px; line-height: 1; color: var(--pt-wine);
  text-align: center;
}
.t-phong-thu .pt-label {
  font-family: var(--f-sans); font-size: 12px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase;
  color: var(--pt-ink);
}
.t-phong-thu .pt-label--red { color: var(--pt-wine); font-size: 13px; }
.t-phong-thu .pt-kicker {
  font-family: var(--f-sans); font-size: 12px; letter-spacing: .4em; text-transform: uppercase; color: var(--pt-muted);
  text-align: center;
}
.t-phong-thu .pt-btn {
  display: inline-block; padding: 11px 22px;
  border: 1px solid var(--pt-wine); border-radius: 999px;
  background: var(--pt-wine); color: var(--pt-ivory);
  font-family: var(--f-sans); font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none;
  box-shadow: 0 6px 16px rgba(92, 26, 34, .2);
}
.t-phong-thu .pt-btn--ghost { background: transparent; color: var(--pt-wine); box-shadow: none; }

/* dấu sáp */
.t-phong-thu .pt-seal { position: absolute; display: grid; place-items: center; filter: drop-shadow(0 4px 5px rgba(40, 10, 14, .35)); }
.t-phong-thu .pt-seal svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.t-phong-thu .pt-seal span {
  position: relative; font-family: var(--f-script); color: #8f7f5f; letter-spacing: -.02em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .7), 0 -1px 0 rgba(120, 100, 60, .35);
}
.t-phong-thu .pt-branch { position: absolute; pointer-events: none; }
.t-phong-thu .pt-rose { position: absolute; pointer-events: none; filter: drop-shadow(0 3px 4px rgba(40, 10, 14, .3)); }

/* polaroid */
.t-phong-thu .pt-polaroid { margin: 0; padding: 12px 12px 0; background: #fff; box-shadow: 0 10px 26px rgba(58, 35, 38, .18); }
.t-phong-thu .pt-polaroid__img { aspect-ratio: 3 / 4; overflow: hidden; background: #eee; }
.t-phong-thu .pt-polaroid figcaption {
  padding: 10px 0 12px; text-align: center;
  font-family: var(--f-script); font-size: 34px; line-height: 1.1; color: var(--pt-wine);
}

/* ---------- 1. bìa ---------- */
.t-phong-thu .pt-hero {
  padding: 40px 20px 36px; overflow: hidden;
  background: radial-gradient(ellipse at 50% 20%, #fff 0, var(--pt-ivory) 60%, var(--pt-paper) 100%);
}
.t-phong-thu .pt-env {
  position: relative; width: 360px; height: 244px; margin: 0 auto;
  border-radius: 4px;
  background:
    radial-gradient(circle at 30% 25%, rgba(255, 255, 255, .08), transparent 55%),
    linear-gradient(160deg, #6e2029 0%, var(--pt-wine) 45%, var(--pt-wine-dark) 100%);
  box-shadow: 0 22px 40px rgba(63, 15, 22, .35), 0 4px 10px rgba(63, 15, 22, .25);
}
.t-phong-thu .pt-env__fold {
  position: absolute; inset: 0; border-radius: 4px;
  background:
    linear-gradient(to top right, transparent calc(50% - 1px), rgba(0, 0, 0, .16) 50%, transparent calc(50% + 1px)) left bottom / 50% 62% no-repeat,
    linear-gradient(to top left, transparent calc(50% - 1px), rgba(0, 0, 0, .16) 50%, transparent calc(50% + 1px)) right bottom / 50% 62% no-repeat;
}
.t-phong-thu .pt-env__flap {
  position: absolute; left: 0; top: 0; width: 100%; height: 62%;
  background: linear-gradient(175deg, #7a2530, #5a1820 70%, #4b121a);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .3));
}
/* phong bì mở nắp, ảnh bìa trồi lên */
.t-phong-thu .pt-env--open { width: 340px; height: 214px; margin-top: 206px; border-radius: 3px 3px 5px 5px; box-shadow: 0 22px 40px rgba(63, 15, 22, .32); }
.t-phong-thu .pt-env--open .pt-env__flap {
  left: 0; width: 100%;
  top: auto; bottom: 100%; height: 150px; margin-bottom: -1px;
  background: linear-gradient(5deg, #4b121a, #5a1820 40%, #74222d);
  clip-path: polygon(0 100%, 50% 0, 100% 100%); filter: none;
}
.t-phong-thu .pt-env__photo {
  position: absolute; left: 50%; top: -196px; z-index: 1; width: 252px; margin: 0; padding: 10px 10px 0;
  transform: translateX(-50%) rotate(-2deg); background: #fffaf3;
  box-shadow: 0 -2px 18px rgba(58, 35, 38, .22);
}
.t-phong-thu .pt-env__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.t-phong-thu .pt-env__pocket {
  position: absolute; left: 0; right: 0; bottom: 0; top: 34px; z-index: 2; border-radius: 0 0 5px 5px;
  background:
    linear-gradient(to top right, transparent calc(50% - 1px), rgba(0, 0, 0, .14) 50%, transparent calc(50% + 1px)) left bottom / 50% 100% no-repeat,
    linear-gradient(to top left, transparent calc(50% - 1px), rgba(0, 0, 0, .14) 50%, transparent calc(50% + 1px)) right bottom / 50% 100% no-repeat,
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .07), transparent 55%),
    linear-gradient(170deg, #6e2029 0%, var(--pt-wine) 45%, var(--pt-wine-dark) 100%);
  clip-path: polygon(0 0, 50% 42%, 100% 0, 100% 100%, 0 100%);
  filter: drop-shadow(0 -3px 4px rgba(0, 0, 0, .25));
}
.t-phong-thu .pt-env--open .pt-env__seal { top: 64%; z-index: 3; }
.t-phong-thu .pt-env--open ~ .pt-hero__branch { left: -40px; top: 412px; z-index: 4; transform: rotate(-14deg); }
.t-phong-thu .pt-hero .pt-env--open ~ .pt-kicker { margin-top: 38px; }
.t-phong-thu .pt-env__seal { left: 50%; top: 62%; width: 78px; height: 78px; transform: translate(-50%, -52%) rotate(-6deg); }
.t-phong-thu .pt-env__seal span { font-size: 38px; margin-top: 4px; }
.t-phong-thu .pt-hero__branch { left: -24px; top: 196px; width: 250px; height: 116px; transform: rotate(-8deg); }
.t-phong-thu .pt-hero .pt-kicker { margin-top: 46px; }
.t-phong-thu .pt-hero__names {
  margin-top: 8px; text-align: center;
  font-family: var(--f-script); font-size: 68px; line-height: 1.05; color: var(--pt-wine);
}
.t-phong-thu .pt-hero__names span { display: block; font-size: 44px; line-height: .8; color: var(--pt-wine-soft); }
.t-phong-thu .pt-hero__date {
  margin-top: 14px; text-align: center;
  font-family: var(--f-serif); font-size: 22px; letter-spacing: .3em; color: var(--pt-ink);
}

/* ---------- 2. thẻ mời + vé ngày ---------- */
.t-phong-thu .pt-invite { display: flex; align-items: flex-start; padding: 34px 20px 44px; min-height: 360px; }
.t-phong-thu .pt-card-red {
  position: relative; z-index: 1; flex: 0 0 196px; margin-top: 18px;
  padding: 30px 16px 30px;
  background: linear-gradient(170deg, #6a1f28, var(--pt-wine-dark));
  color: #f5ece2; text-align: center;
  box-shadow: 0 14px 30px rgba(63, 15, 22, .3);
  outline: 1px solid rgba(233, 223, 201, .5); outline-offset: -8px;
  transform: rotate(-2deg);
}
.t-phong-thu .pt-card-red__guest { display: block; margin: 4px 0 2px; font-family: var(--f-script, cursive); font-weight: 400; font-size: 26px; line-height: 1.2; letter-spacing: 0; text-transform: none; }
.t-phong-thu .pt-card-red__lead { font-family: var(--f-sans); font-size: 10px; letter-spacing: .14em; line-height: 1.7; text-transform: uppercase; }
.t-phong-thu .pt-card-red__name { margin-top: 10px; font-family: var(--f-script); font-size: 40px; line-height: 1; overflow-wrap: anywhere; }
.t-phong-thu .pt-card-red__amp { font-family: var(--f-script); font-size: 34px; line-height: .8; margin-top: 6px; opacity: .8; }
.t-phong-thu .pt-ticket {
  position: relative; z-index: 2; flex: 1; margin-left: -16px;
  padding: 26px 10px 24px;
  background: var(--pt-seal); color: var(--pt-ink); text-align: center;
  /* góc cắt tròn kiểu vé */
  -webkit-mask: radial-gradient(circle 14px at 0 0, transparent 98%, #000) top left / 51% 51% no-repeat,
                radial-gradient(circle 14px at 100% 0, transparent 98%, #000) top right / 51% 51% no-repeat,
                radial-gradient(circle 14px at 0 100%, transparent 98%, #000) bottom left / 51% 51% no-repeat,
                radial-gradient(circle 14px at 100% 100%, transparent 98%, #000) bottom right / 51% 51% no-repeat;
          mask: radial-gradient(circle 14px at 0 0, transparent 98%, #000) top left / 51% 51% no-repeat,
                radial-gradient(circle 14px at 100% 0, transparent 98%, #000) top right / 51% 51% no-repeat,
                radial-gradient(circle 14px at 0 100%, transparent 98%, #000) bottom left / 51% 51% no-repeat,
                radial-gradient(circle 14px at 100% 100%, transparent 98%, #000) bottom right / 51% 51% no-repeat;
  filter: drop-shadow(0 10px 18px rgba(58, 35, 38, .22));
  transform: rotate(2.5deg);
}
.t-phong-thu .pt-ticket::before {
  content: ""; position: absolute; inset: 8px; border: 1px solid rgba(92, 26, 34, .35);
  -webkit-mask: inherit; mask: inherit; pointer-events: none;
}
.t-phong-thu .pt-ticket__wd { font-family: var(--f-sans); font-size: 10.5px; letter-spacing: .25em; text-transform: uppercase; }
.t-phong-thu .pt-ticket__day { font-family: var(--f-script); font-size: 76px; line-height: .9; color: var(--pt-wine); margin-top: 6px; }
.t-phong-thu .pt-ticket__month { font-family: var(--f-script); font-size: 36px; line-height: 1; color: var(--pt-wine); }
.t-phong-thu .pt-ticket__year { font-size: 22px; letter-spacing: .2em; font-weight: 500; }
.t-phong-thu .pt-ticket__time { margin-top: 8px; font-family: var(--f-sans); font-size: 12px; letter-spacing: .2em; font-weight: 600; }
.t-phong-thu .pt-ticket__venue { margin-top: 4px; font-size: 15px; line-height: 1.3; padding: 0 4px; }
.t-phong-thu .pt-ticket__btn {
  display: inline-block; margin-top: 12px; padding: 7px 16px; border-radius: 999px;
  background: #fff; color: var(--pt-wine); text-decoration: none;
  font-family: var(--f-sans); font-size: 10.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase;
  box-shadow: 0 3px 8px rgba(58, 35, 38, .18);
}
.t-phong-thu .pt-invite__rose1 { left: 176px; bottom: 30px; width: 44px; height: 44px; z-index: 3; }
.t-phong-thu .pt-invite__rose2 { left: 206px; bottom: 16px; width: 30px; height: 30px; z-index: 3; }
.t-phong-thu .pt-invite__branch { left: 140px; bottom: -14px; width: 190px; height: 88px; z-index: 2; transform: scaleX(-1) rotate(-6deg); }

/* ---------- 3. ảnh bìa ---------- */
.t-phong-thu .pt-cover { padding: 20px 50px 40px; }
.t-phong-thu .pt-cover__card { position: relative; z-index: 1; transform: rotate(3deg); }
.t-phong-thu .pt-cover__branch { right: 6px; top: -6px; width: 200px; height: 92px; z-index: 2; transform: rotate(-150deg); }
.t-phong-thu .pt-quote {
  margin-top: 34px; text-align: center;
  font-family: var(--f-serif); font-style: italic; font-size: 20px; line-height: 1.5; color: var(--pt-muted);
}

/* ---------- 4. hai gia đình ---------- */
.t-phong-thu .pt-family { padding: 30px 18px 40px; background: var(--pt-paper); }
.t-phong-thu .pt-family__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
.t-phong-thu .pt-family__col { text-align: center; }
.t-phong-thu .pt-arch {
  width: 150px; height: 200px; margin: 0 auto 16px; overflow: hidden;
  border-radius: 75px 75px 4px 4px;
  outline: 1px solid var(--pt-wine-soft); outline-offset: 5px;
}
.t-phong-thu .pt-family__parents { margin-top: 8px; font-size: 16px; line-height: 1.45; }
.t-phong-thu .pt-family__addr { margin-top: 4px; font-size: 14px; font-style: italic; color: var(--pt-muted); }
.t-phong-thu .pt-family__role { margin-top: 14px; font-family: var(--f-sans); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--pt-wine); }
.t-phong-thu .pt-family__name { font-family: var(--f-script); font-size: 36px; line-height: 1.15; color: var(--pt-wine); }

/* ---------- 5. lịch trình ---------- */
.t-phong-thu .pt-program { padding: 48px 28px 40px; overflow: hidden; }
.t-phong-thu .pt-program__branch { left: -40px; top: 6px; width: 180px; height: 84px; transform: rotate(10deg); opacity: .8; }
.t-phong-thu .pt-program__list { list-style: none; margin: 20px 0 0; padding: 0; text-align: center; }
.t-phong-thu .pt-program__list li { display: grid; gap: 2px; padding: 10px 0; }
.t-phong-thu .pt-program__list li + li::before { content: "·"; display: block; margin: -8px 0 4px; color: var(--pt-wine-soft); font-size: 22px; line-height: 1; }
.t-phong-thu .pt-program__time { font-size: 20px; font-style: italic; color: var(--pt-muted); }
.t-phong-thu .pt-program__what { font-family: var(--f-sans); font-size: 14px; letter-spacing: .22em; text-transform: uppercase; color: var(--pt-ink); }
.t-phong-thu .pt-program__note { font-size: 15px; color: var(--pt-muted); }

/* ---------- 6. thông tin ---------- */
.t-phong-thu .pt-info { padding: 30px 30px 20px; text-align: center; }
.t-phong-thu .pt-info__item { margin-top: 26px; }
.t-phong-thu .pt-info__when { margin-top: 8px; font-size: 18px; font-weight: 500; }
.t-phong-thu .pt-info__lunar { font-size: 15px; font-style: italic; color: var(--pt-muted); }
.t-phong-thu .pt-info__text { margin-top: 6px; font-size: 17px; line-height: 1.5; }
.t-phong-thu .pt-info__text b { font-weight: 600; }

/* ---------- sự kiện thêm ---------- */
.t-phong-thu .vela-event { border-color: var(--pt-wine); border-radius: 4px; background: #fff; font-family: var(--f-serif); color: var(--pt-ink); }
.t-phong-thu .vela-event__map { border-radius: 999px; font-family: var(--f-sans); letter-spacing: .1em; }

/* ---------- 7. địa điểm ---------- */
.t-phong-thu .pt-venue { padding: 24px 28px 36px; text-align: center; }
.t-phong-thu .pt-venue__frame { height: 230px; padding: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 82 82'%3E%3Cpath d='M41 70C28 52 22 43 22 32a19 19 0 0 1 38 0C60 43 54 52 41 70Z' fill='%235c1a22'/%3E%3Ccircle cx='41' cy='31' r='8' fill='%23faf7f4'/%3E%3C/svg%3E") center / 56px no-repeat; box-shadow: 0 8px 22px rgba(58, 35, 38, .15); }
.t-phong-thu .pt-venue__frame iframe { width: 100%; height: 100%; border: 0; display: block; filter: sepia(.25) saturate(.8); }
.t-phong-thu .pt-venue__btns { display: flex; justify-content: center; gap: 10px; margin-top: 20px; flex-wrap: wrap; }

/* ---------- 8. lịch ---------- */
.t-phong-thu .pt-calendar { padding: 44px 36px 44px; text-align: center; background: var(--pt-paper); }
.t-phong-thu .pt-calendar__month { font-family: var(--f-script); font-size: 60px; line-height: 1; color: var(--pt-wine); }
.t-phong-thu .pt-calendar__year { font-family: var(--f-sans); font-size: 13px; letter-spacing: .5em; margin-top: 2px; color: var(--pt-muted); }
.t-phong-thu .pt-cal { margin-top: 20px; font-size: 17px; }
.t-phong-thu .pt-cal__row { display: grid; grid-template-columns: repeat(7, 1fr); }
.t-phong-thu .pt-cal__row span { display: grid; place-items: center; height: 40px; }
.t-phong-thu .pt-cal__row--head span { font-family: var(--f-sans); font-size: 11px; letter-spacing: .1em; color: var(--pt-muted); border-bottom: 1px solid rgba(92, 26, 34, .2); margin-bottom: 4px; }
.t-phong-thu .pt-cal .is-sun { color: var(--pt-wine-soft); }
.t-phong-thu .pt-cal .is-day { position: relative; color: #fff; font-weight: 600; }
.t-phong-thu .pt-cal .is-day::before {
  content: ""; position: absolute; z-index: -1; width: 36px; height: 36px; border-radius: 50%;
  background: var(--pt-wine); box-shadow: 0 0 0 3px var(--pt-paper), 0 0 0 4px var(--pt-wine-soft);
}
.t-phong-thu .pt-cal .is-day { z-index: 0; isolation: isolate; }
.t-phong-thu .pt-count { display: flex; justify-content: center; gap: 12px; margin-top: 26px; }
.t-phong-thu .pt-count p { display: grid; width: 70px; padding: 12px 0 10px; background: var(--pt-wine); color: #f5ece2; }
.t-phong-thu .pt-count b { font-size: 30px; font-weight: 500; line-height: 1; }
.t-phong-thu .pt-count small { margin-top: 4px; font-family: var(--f-sans); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; opacity: .85; }

/* ---------- 9. chuyện tình ---------- */
.t-phong-thu .pt-story { padding: 44px 20px 30px; }
.t-phong-thu .pt-story__stack { position: relative; height: 420px; margin-top: 16px; }
.t-phong-thu .pt-story__card { position: absolute; width: 210px; padding-bottom: 40px; }
.t-phong-thu .pt-story__card--0 { left: 14px; top: 10px; transform: rotate(-6deg); }
.t-phong-thu .pt-story__card--1 { right: 14px; top: 80px; transform: rotate(5deg); z-index: 1; }
.t-phong-thu .pt-story__branch { left: 150px; top: 318px; width: 230px; height: 106px; z-index: 2; transform: rotate(-4deg); }
.t-phong-thu .pt-story__rose { left: 142px; top: 364px; width: 42px; height: 42px; z-index: 3; }

/* ---------- 10. album ---------- */
.t-phong-thu .pt-album { padding: 30px 18px 36px; }
.t-phong-thu .pt-album__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
.t-phong-thu .pt-album__item { overflow: hidden; background: #eee; padding: 6px; background: #fff; box-shadow: 0 6px 16px rgba(58, 35, 38, .14); }
.t-phong-thu .pt-album__item--tall { aspect-ratio: 3 / 4; }
.t-phong-thu .pt-album__item--wide, .t-phong-thu .pt-album__item--half { grid-column: 1 / -1; aspect-ratio: 4 / 3; }

/* ---------- 11. rsvp + mừng cưới ---------- */
.t-phong-thu .pt-rsvp { display: flex; align-items: center; justify-content: center; padding: 40px 20px 30px; }
.t-phong-thu .pt-rsvp__card {
  position: relative; width: 190px; padding: 12px 12px 54px; background: #fff;
  box-shadow: 0 10px 26px rgba(58, 35, 38, .2); transform: rotate(-4deg);
}
.t-phong-thu .pt-rsvp__card::before {
  content: ""; display: block; aspect-ratio: 1; background:
    radial-gradient(circle at 50% 35%, #8a2b36, var(--pt-wine) 55%, var(--pt-wine-dark));
}
.t-phong-thu .pt-rsvp__kindly { position: absolute; left: 12px; right: 12px; top: 34px; text-align: center; color: #f5ece2; font-family: var(--f-sans); font-size: 9px; letter-spacing: .16em; text-transform: uppercase; }
.t-phong-thu .pt-rsvp__big { position: absolute; left: 12px; right: 12px; top: 56px; text-align: center; color: #f5ece2; font-family: var(--f-script); font-size: 64px; line-height: 1; }
.t-phong-thu .pt-rsvp__seal { left: 50%; bottom: 14px; width: 56px; height: 56px; transform: translateX(-50%); }
.t-phong-thu .pt-rsvp__seal span { font-size: 26px; margin-top: 3px; }
.t-phong-thu .pt-rsvp__circle {
  width: 148px; height: 148px; margin-left: -18px; z-index: 1; position: relative;
  border: 0; border-radius: 50%;
  background: var(--pt-wine); color: #f5ece2;
  outline: 1px solid rgba(233, 223, 201, .6); outline-offset: -8px;
  font-family: var(--f-sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; line-height: 1.7;
  box-shadow: 0 12px 26px rgba(63, 15, 22, .35);
}
.t-phong-thu .pt-rsvp__circle span { font-family: var(--f-script); font-size: 36px; letter-spacing: 0; text-transform: none; line-height: 1; }
.t-phong-thu .pt-gift { padding: 20px 30px 40px; text-align: center; }
.t-phong-thu .pt-gift__env {
  position: relative; width: 240px; height: 150px; border: 0; padding: 0; overflow: hidden;
  background: linear-gradient(160deg, #6e2029, var(--pt-wine-dark));
  box-shadow: 0 14px 28px rgba(63, 15, 22, .3);
}
.t-phong-thu .pt-gift__flap {
  position: absolute; left: 0; top: 0; width: 100%; height: 58%;
  background: linear-gradient(175deg, #7a2530, #4b121a); clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.t-phong-thu .pt-gift__text {
  position: absolute; left: 0; right: 0; bottom: 16px;
  font-family: var(--f-script); font-size: 34px; line-height: 1; color: #f5ece2;
}
.t-phong-thu .pt-gift__note { margin-top: 16px; font-style: italic; font-size: 17px; color: var(--pt-muted); }

/* ---------- 12. kết ---------- */
.t-phong-thu .pt-closing { padding: 0 0 36px; text-align: center; }
.t-phong-thu .pt-closing__photo { height: 480px; -webkit-mask: linear-gradient(#000 70%, transparent); mask: linear-gradient(#000 70%, transparent); }
.t-phong-thu .pt-closing__thanks { margin-top: -10px; font-family: var(--f-sans); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--pt-muted); }
.t-phong-thu .pt-closing__names { margin-top: 6px; font-family: var(--f-script); font-size: 62px; line-height: 1.05; color: var(--pt-wine); }
.t-phong-thu .pt-closing__names span { display: block; font-size: .7em; line-height: .8; color: var(--pt-wine-soft); }
.t-phong-thu .pt-closing__roman { margin-top: 6px; font-size: 20px; font-weight: 600; letter-spacing: .25em; color: var(--pt-ink); }

.t-phong-thu .pt-footer {
  display: flex; justify-content: center; gap: 8px; padding: 18px 0;
  background: var(--pt-wine); color: #f5ece2;
  font-family: var(--f-sans); font-size: 12px; letter-spacing: .15em;
}

/* ---------- màn mở thiệp: phong bì đỏ rượu ---------- */
.t-phong-thu .vela-gate__door {
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .06), transparent 60%),
    linear-gradient(160deg, #6e2029, var(--pt-wine-dark));
}
.t-phong-thu .vela-gate__card {
  background: var(--pt-seal); color: var(--pt-ink);
  padding: 70px 24px 36px; margin-top: 30px;
  box-shadow: 0 24px 50px rgba(0, 0, 0, .35);
  outline: 1px solid rgba(92, 26, 34, .35); outline-offset: -10px;
}
.t-phong-thu .vela-gate__card::before {
  content: ""; position: absolute; left: 50%; top: -36px; width: 76px; height: 76px; transform: translateX(-50%) rotate(-6deg);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 3C58 4 60 1 67 6C74 10 78 7 83 14C88 20 93 21 94 30C96 38 99 42 97 50C96 58 99 63 94 70C90 77 91 82 84 87C77 92 74 96 66 97C58 99 55 97 49 98C41 99 37 96 30 94C22 91 17 92 12 85C7 78 4 75 3 67C1 59 3 55 2 48C2 40 0 35 5 28C9 21 10 16 17 11C24 6 28 5 35 4C42 2 45 3 50 3Z' fill='%236a1f28'/%3E%3Ccircle cx='50' cy='50' r='33' fill='none' stroke='%23461118' stroke-width='3'/%3E%3Cpath d='M50 66C36 56 32 49 32 42a9 9 0 0 1 18-3a9 9 0 0 1 18 3c0 7-4 14-18 24z' fill='none' stroke='%23e9dfc9' stroke-width='2.4' opacity='.85'/%3E%3C/svg%3E") center / contain no-repeat;
  filter: drop-shadow(0 5px 6px rgba(0, 0, 0, .35));
}
.t-phong-thu .vela-gate__label { font-family: var(--f-sans); font-size: 11px; letter-spacing: .3em; color: var(--pt-muted); }
.t-phong-thu .vela-gate__guest { font-family: var(--f-script); font-size: 52px; line-height: 1.1; color: var(--pt-wine); }
.t-phong-thu .vela-gate__names { font-family: var(--f-script); font-size: 46px; line-height: 1.05; color: var(--pt-wine); }
.t-phong-thu .vela-gate__names span { display: block; font-size: 34px; line-height: .8; color: var(--pt-wine-soft); }
.t-phong-thu .vela-gate__date { font-family: var(--f-serif); font-size: 18px; color: var(--pt-ink); }
.t-phong-thu .vela-gate__open { background: var(--pt-wine); color: #f5ece2; font-family: var(--f-sans); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; font-size: 13px; }
.t-phong-thu .vela-btn:not(.vela-btn--ghost) { background: var(--pt-wine); color: #f5ece2; }
.t-phong-thu .vela-choice input { accent-color: var(--pt-wine); }
