/* Mẫu Hoa Đỏ Nhung — nền nhung đỏ, dải ảnh photobooth, polaroid, hoa trắng đỏ. Phần chung ở templates/_ewed/ewed.css. */

.t-hoa-do-nhung {
  --wine: rgb(137, 0, 0);
  --wine-deep: rgb(115, 0, 0);
  --f-motherland: "NVN Motherland Signature", "Great Vibes", cursive;
  --f-funky: "NVN Funky Signature", "Great Vibes", cursive;
  --f-pw: "Playwrite IS", "Playwrite VN", cursive;
  --f-pw-guides: "Playwrite NZ Guides", "Playwrite VN Guides", cursive;
  --gate-bg: #f7eeee;
  --accent-strong: #890000;
}

.t-hoa-do-nhung .velvet {
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(120% 70% at 30% 20%, #8d1612 0%, #730c0d 45%, #5f0909 100%);
}

@keyframes hdn-slide-down { from { transform: translate3d(0, -100%, 0); } to { transform: none; } }
.t-hoa-do-nhung [data-anim="slide-in-down"].is-in { animation-name: hdn-slide-down; }

/* ---------- 1. bìa ---------- */
.t-hoa-do-nhung .s-hero { height: 799px; overflow: hidden; }
.t-hoa-do-nhung .hero-kicker { left: 68px; top: 52px; width: 284px; font-family: var(--f-motherland); font-size: 17px; line-height: 25.5px; letter-spacing: 1px; color: #fff; text-align: center; }
.t-hoa-do-nhung .hero-names { left: -12px; top: 96px; width: 444px; font-family: var(--f-pw-guides); font-size: 32px; line-height: 64px; color: #fff; text-align: center; white-space: nowrap; }
.t-hoa-do-nhung .booth-slot {
  left: 108px; top: 199px; width: 205px; height: 36px;
  border-radius: 8px;
  background: linear-gradient(#e6e8ea, #a9abae 45%, #d7d9db 70%, #8f9295);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .35);
}
.t-hoa-do-nhung .booth-slot::after { content: ""; position: absolute; left: 14px; right: 14px; top: 15px; height: 6px; border-radius: 3px; background: #2a2c2e; }
.t-hoa-do-nhung .booth-strip { left: 134px; top: 218px; width: 152px; height: 433px; background: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .35); overflow: hidden; }
.t-hoa-do-nhung .booth-photo { left: 9px; width: 134px; height: 124px; }
.t-hoa-do-nhung .booth-photo--0 { top: 24px; }
.t-hoa-do-nhung .booth-photo--1 { top: 154px; }
.t-hoa-do-nhung .booth-photo--2 { top: 285px; }
.t-hoa-do-nhung .hero-pill { left: 111px; top: 684px; width: 199px; height: 49px; border-radius: 50px; background: #fff; box-shadow: 0 6px 14px rgba(0, 0, 0, .3); }
.t-hoa-do-nhung .hero-pill p { position: absolute; left: -37px; top: 10px; width: 273px; font-family: var(--f-pw); font-size: 19px; line-height: 28.5px; font-weight: 700; letter-spacing: 2px; color: var(--wine); text-align: center; }

/* ---------- 2. hai gia đình + polaroid ---------- */
.t-hoa-do-nhung .s-family { height: 552px; }
.t-hoa-do-nhung .fam-side { left: 22px; width: 210px; font-family: var(--f-motherland); font-size: 16px; line-height: 32px; }
.t-hoa-do-nhung .fam-parents { left: 22px; width: 388px; font-family: var(--f-pw); font-size: 13px; line-height: 19.5px; color: var(--wine); }
.t-hoa-do-nhung .fam-addr { left: 22px; width: 388px; font-family: var(--f-pw); font-size: 12px; line-height: 18px; color: var(--wine); }
.t-hoa-do-nhung .fam-side--groom { top: 52px; }
.t-hoa-do-nhung .fam-parents--groom { top: 88px; }
.t-hoa-do-nhung .fam-addr--groom { top: 117px; }
.t-hoa-do-nhung .fam-rule { left: 22px; top: 154px; width: 96px; height: 1px; background: #333; }
.t-hoa-do-nhung .fam-side--bride { top: 181px; }
.t-hoa-do-nhung .fam-parents--bride { top: 217px; }
.t-hoa-do-nhung .fam-addr--bride { top: 246px; }
.t-hoa-do-nhung .polaroid { left: 206px; top: 272px; width: 214px; height: 262px; }
.t-hoa-do-nhung .polaroid > * { position: absolute; }
.t-hoa-do-nhung .polaroid__back { left: 14px; top: 20px; width: 196px; height: 226px; background: #f6f6f4; transform: rotate(4deg); box-shadow: 0 6px 14px rgba(0, 0, 0, .2); }
.t-hoa-do-nhung .polaroid__front { left: 8px; top: 14px; width: 198px; height: 226px; padding: 12px 12px 48px; background: #fbfbfa; transform: rotate(-1.5deg); box-shadow: 0 8px 18px rgba(0, 0, 0, .22); }
.t-hoa-do-nhung .polaroid__front .ph { position: relative; width: 100%; height: 100%; }
.t-hoa-do-nhung .polaroid__clip { left: 110px; top: -8px; width: 26px; height: 56px; }
.t-hoa-do-nhung .fam-news { left: 5px; width: 210px; font-family: var(--f-pw); font-size: 14px; line-height: 21px; text-align: center; }
.t-hoa-do-nhung .fam-news--1 { top: 377px; }
.t-hoa-do-nhung .fam-news--2 { top: 437px; }
.t-hoa-do-nhung .fam-news-title { left: 5px; top: 402px; width: 210px; font-family: var(--f-upright); font-size: 21px; line-height: 31.5px; color: var(--wine); text-align: center; text-transform: uppercase; }

/* ---------- 3. tên đầy đủ ---------- */
.t-hoa-do-nhung .s-names { height: 219px; }
.t-hoa-do-nhung .nm-full { left: 0; width: 420px; font-family: var(--f-motherland); font-size: 28px; line-height: 84px; color: rgb(140, 16, 7); text-align: center; white-space: nowrap; }
.t-hoa-do-nhung .nm-full--groom { top: 0; }
.t-hoa-do-nhung .nm-full--bride { top: 127px; }
.t-hoa-do-nhung .nm-and { left: 152px; top: 64px; width: 118px; font-family: var(--f-funky); font-size: 50px; line-height: 75px; text-align: center; }

/* ---------- 4. hai ảnh nghiêng ---------- */
.t-hoa-do-nhung .s-tilt { height: 324px; }
.t-hoa-do-nhung .tilt { background: #fff; border: 2px solid #7a1010; padding: 8px; box-shadow: 0 8px 18px rgba(0, 0, 0, .25); }
.t-hoa-do-nhung .tilt .ph { position: relative; width: 100%; height: 100%; }
.t-hoa-do-nhung .tilt--a { left: 100px; top: 16px; width: 187px; height: 244px; transform: rotate(-8deg); }
.t-hoa-do-nhung .tilt--b { left: 242px; top: 64px; width: 172px; height: 224px; transform: rotate(7deg); }
.t-hoa-do-nhung .flowers { width: 239px; height: 136px; }
.t-hoa-do-nhung .flowers--tl { left: -36px; top: 189px; }
.t-hoa-do-nhung .flowers--tr { left: 321px; top: 206px; }

/* ---------- 5. lễ thành hôn ---------- */
.t-hoa-do-nhung .s-ceremony-hdn { height: 306px; }
.t-hoa-do-nhung .s-ceremony-hdn p { left: 0; width: 420px; text-align: center; }
.t-hoa-do-nhung .chd-lead { top: 37px; font-family: var(--f-upright); font-size: 23px; line-height: 34.5px; }
.t-hoa-do-nhung .chd-place { top: 73px; font-family: var(--f-upright); font-size: 21px; line-height: 31.5px; color: var(--wine); text-transform: uppercase; }
.t-hoa-do-nhung .chd-at { top: 122px; font-family: var(--f-pw); font-size: 16px; line-height: 24px; }
.t-hoa-do-nhung .chd-time { top: 162px; font-family: var(--f-pw); font-size: 16px; line-height: 24px; color: var(--wine); }
.t-hoa-do-nhung .chd-date { top: 197px; font-family: var(--f-pw); font-size: 18px; line-height: 27px; letter-spacing: 2px; color: var(--wine); }
.t-hoa-do-nhung .chd-lunar { top: 241px; font-family: var(--f-pw); font-size: 15px; line-height: 22.5px; color: rgba(137, 0, 0, .75); }

/* ---------- 6. tiệc mừng ---------- */
.t-hoa-do-nhung .s-party-hdn { height: 799px; color: #fff; }
.t-hoa-do-nhung .s-party-hdn p { left: 0; width: 420px; text-align: center; }
.t-hoa-do-nhung .phd-lead { top: 27px; font-family: var(--f-upright); font-size: 21px; line-height: 31.5px; }
.t-hoa-do-nhung .phd-title { top: 116px; font-family: var(--f-upright); font-size: 27px; line-height: 40.5px; text-transform: uppercase; }
.t-hoa-do-nhung .phd-time { top: 192px; font-family: var(--f-pw); font-size: 16px; line-height: 24px; }
.t-hoa-do-nhung .phd-date { top: 227px; font-family: var(--f-pw); font-size: 18px; line-height: 27px; letter-spacing: 5px; }
.t-hoa-do-nhung .phd-lunar { top: 271px; font-family: var(--f-pw); font-size: 15px; line-height: 22.5px; color: rgba(255, 255, 255, .75); }
.t-hoa-do-nhung .phd-venue { top: 352px; font-family: var(--f-pw); font-size: 16px; line-height: 24px; text-transform: uppercase; }
.t-hoa-do-nhung .phd-addr { top: 388px; padding: 0 12px; font-family: var(--f-pw); font-size: 15px; line-height: 22.5px; }
.t-hoa-do-nhung .phd-btn {
  left: 117px; top: 457px; width: 187px; height: 32px;
  display: grid; place-items: center;
  border-radius: 42px; background: #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
  font-family: var(--f-pw); font-size: 15px; color: var(--wine); text-decoration: none;
}
.t-hoa-do-nhung .phd-map { left: 15px; top: 514px; width: 390px; height: 250px; background: #fff; box-shadow: 0 8px 18px rgba(0, 0, 0, .35); overflow: hidden; }
.t-hoa-do-nhung .phd-map iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ---------- 7. lịch ---------- */
.t-hoa-do-nhung .s-calendar-hdn { height: 363px; }
.t-hoa-do-nhung .clh-card { left: 59px; top: 18px; width: 305px; height: 305px; border: 1px solid #000; border-radius: 4px; background: rgba(255, 255, 255, .5); }
.t-hoa-do-nhung .clh-card > * { position: absolute; }
.t-hoa-do-nhung .clh-title { left: 0; top: 15px; width: 303px; white-space: nowrap; font-family: "Pinyon Script", cursive; font-size: 25px; line-height: 37.5px; text-align: center; }
.t-hoa-do-nhung .clh-grid { left: 20px; top: 62px; width: 264px; font-family: var(--f-open); font-size: 13px; }
.t-hoa-do-nhung .clh-row { display: grid; grid-template-columns: repeat(7, 1fr); }
.t-hoa-do-nhung .clh-row span { position: relative; display: grid; place-items: center; height: 36px; }
.t-hoa-do-nhung .clh-row--head { border-top: 1px solid #555; border-bottom: 1px solid #555; margin-bottom: 8px; }
.t-hoa-do-nhung .clh-row--head span { height: 30px; font-weight: 700; }
.t-hoa-do-nhung .clh-grid::after { content: ""; display: block; height: 1px; margin-top: 2px; background: #555; }
.t-hoa-do-nhung .clh-row .is-sun { font-weight: 700; }
.t-hoa-do-nhung .clh-heart { position: absolute; left: 50%; top: 50%; width: 40px; height: 38px; margin: -19px 0 0 -20px; animation: vela-heart 4s ease-in-out infinite; }
.t-hoa-do-nhung .flowers--cal { left: 269px; top: 228px; }

/* ---------- 8. xác nhận tham dự ---------- */
.t-hoa-do-nhung .s-rsvp-hdn { height: 618px; }
.t-hoa-do-nhung .rhd-card {
  left: 28px; top: 62px; width: 364px; height: 492px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"),
    #f8f7f5;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .4);
}
.t-hoa-do-nhung .rhd-card > * { position: absolute; }
.t-hoa-do-nhung .rhd-seal { left: 137px; top: -40px; width: 90px; height: 90px; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35)); }
.t-hoa-do-nhung .rhd-title { left: 8px; top: 76px; width: 349px; font-family: var(--f-upright); font-size: 28px; line-height: 42px; letter-spacing: 1px; text-align: center; text-transform: uppercase; }
.t-hoa-do-nhung .rhd-rule { left: 142px; top: 141px; width: 77px; height: 1px; background: #333; }
.t-hoa-do-nhung .rhd-form { left: 12px; top: 176px; width: 340px; display: grid; gap: 12px; }
.t-hoa-do-nhung .rhd-form input:not(.vela-hp), .t-hoa-do-nhung .rhd-form select {
  width: 100%; height: 43px; padding: 0 12px;
  border: 0; border-radius: 22px;
  background: rgba(255, 255, 255, .6); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .05);
  font-family: var(--f-pw); font-size: 14px; color: #111;
}
.t-hoa-do-nhung .rhd-form input::placeholder { color: #222; }
.t-hoa-do-nhung .rhd-form select:invalid { color: #222; }
.t-hoa-do-nhung .rhd-form button {
  justify-self: center; width: 238px; height: 43px; margin-top: 13px;
  border: 0; border-radius: 30px; background: var(--wine-deep); box-shadow: 0 6px 12px rgba(0, 0, 0, .3);
  font-family: var(--f-pw); font-size: 16px; color: #fff;
}
.t-hoa-do-nhung .rhd-msg { min-height: 0; font-family: var(--f-pw); font-size: 13px; color: var(--wine); text-align: center; }
.t-hoa-do-nhung .rhd-msg:empty { display: none; }

/* ---------- 9. mừng cưới ---------- */
.t-hoa-do-nhung .s-gift-hdn { height: 229px; }
.t-hoa-do-nhung .ghd-card {
  left: 128px; top: 35px; width: 164px; height: 149px; padding: 0;
  border: 1px solid var(--wine); border-radius: 10px;
  background: #fff; box-shadow: 0 6px 14px rgba(0, 0, 0, .25);
}
.t-hoa-do-nhung .ghd-env { position: absolute; left: 24px; top: 11px; width: 116px; height: 84px; }
.t-hoa-do-nhung .ghd-card span { position: absolute; left: -8px; top: 106px; width: 179px; font-family: var(--f-upright); font-size: 19px; line-height: 28.5px; color: #111; text-align: center; text-transform: uppercase; }

/* ---------- 10. album ---------- */
.t-hoa-do-nhung .s-album-hdn { padding: 0 12px 7px 13px; }
.t-hoa-do-nhung .s-album-hdn > .ahd-grid { position: static; }
.t-hoa-do-nhung .ahd-grid { display: grid; grid-template-columns: 194px 195px; grid-auto-rows: 141px; gap: 8px 7px; }
.t-hoa-do-nhung .ahd-item { overflow: hidden; background: #eee; }
.t-hoa-do-nhung .ahd-item img { width: 100%; height: 100%; object-fit: cover; }
.t-hoa-do-nhung .ahd-item--tall { grid-row: span 2; }
.t-hoa-do-nhung .ahd-item--half { height: 126px; align-self: center; }
.t-hoa-do-nhung .ahd-item--short { grid-row: span 2; height: 184px; }

/* ---------- 11. kết ---------- */
.t-hoa-do-nhung .s-closing-hdn { height: 437px; overflow: hidden; }
.t-hoa-do-nhung .khd-photo { left: 0; top: 7px; width: 420px; height: 419px; }
.t-hoa-do-nhung .khd-shade { left: 0; top: 7px; width: 420px; height: 419px; background: rgba(40, 0, 0, .35); }
.t-hoa-do-nhung .khd-names { left: 0; top: 73px; width: 421px; font-family: var(--f-motherland); font-size: 17px; line-height: 34px; color: #fff; text-align: center; }
.t-hoa-do-nhung .khd-sub { left: 0; top: 165px; width: 420px; font-family: var(--f-pw); font-size: 14px; line-height: 21px; color: #fff; text-align: center; }
.t-hoa-do-nhung .flowers--bl { left: -30px; top: 340px; }
.t-hoa-do-nhung .flowers--br { left: 240px; top: 330px; }
