/* Additions to the snapshot's stylesheets: the photo viewer the studio's runtime used to render. */
.photo-viewer {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  padding: 16px;
  background: transparent;
}
.photo-viewer[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.photo-viewer::backdrop {
  background: rgb(0 0 0 / 0.92);
}
.photo-viewer-image {
  max-width: 100%;
  max-height: calc(100% - 120px);
  object-fit: contain;
}
.photo-viewer button {
  position: absolute;
  border: 0;
  background: none;
  color: rgb(255 255 255 / 0.8);
  cursor: pointer;
}
.photo-viewer button:hover {
  color: #fff;
}
.photo-viewer button[hidden] {
  display: none;
}
.photo-viewer-close {
  top: 16px;
  right: 16px;
  padding: 8px 16px;
  font-size: 14px;
}
.photo-viewer-arrow {
  top: 50%;
  transform: translateY(-50%);
  padding: 16px;
  font-size: 40px;
  line-height: 1;
}
.photo-viewer-prev {
  left: 4px;
}
.photo-viewer-next {
  right: 4px;
}
.photo-viewer-count {
  position: absolute;
  bottom: 20px;
  margin: 0;
  color: rgb(255 255 255 / 0.7);
  font-size: 14px;
}

/* The template outlines focused fields with a square frame around the input, which clashes with
   the field's rounded border; the caret already shows where the guest is typing. */
.cam-tu-cau .ladi-form-control:focus,
.cam-tu-cau .ladi-form-control:focus-visible {
  outline: none;
}

/* RSVP form without the "Bạn có tham dự cùng ai khác không?" field: the fields below it, the
   button and the gift link move up by its 45px slot, and the form, its group and the section
   shrink by the same amount. */
.cam-tu-cau [data-ct=FORM_ITEM11] {
  top: 200px;
}
.cam-tu-cau [data-ct=BUTTON3] {
  top: 247px;
}
.cam-tu-cau [data-ct=FORM3] {
  height: 287px;
}
.cam-tu-cau [data-ct=GROUP115] {
  height: 402.5px;
}
.cam-tu-cau[data-rsvp-gift=true][data-hide-timeline=true] [data-ct=SECTION9] {
  height: 548px;
}

/* Closing "Trân trọng cảm ơn" block after the last section, in normal flow so its text wraps
   instead of overlapping when a phone enlarges text. Sized in the 420px design units the
   invitation is scaled from. */
.cam-tu-cau .ct-gratitude {
  /* Above the absolutely positioned backgrounds that hang down from the sections before it. */
  position: relative;
  z-index: 1;
  padding: 44px 22px 52px;
  text-align: center;
  color: #065631;
  font-family: CamTuCauArno, serif;
  background: url(../assets/template/12-bg1-20260603022836-lmkpp.jpg) center / cover;
}
.cam-tu-cau .ct-gratitude-diamond {
  display: block;
  width: 9px;
  height: 9px;
  margin: 0 auto 14px;
  background: #baa576;
  transform: rotate(45deg);
}
.cam-tu-cau .ct-gratitude-eyebrow {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
}
.cam-tu-cau .ct-gratitude-title {
  margin: 12px 0 0;
  font-size: 38px;
  font-weight: 400;
  line-height: 1.2;
}
.cam-tu-cau .ct-gratitude-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 14px 0 26px;
}
.cam-tu-cau .ct-gratitude-divider::before,
.cam-tu-cau .ct-gratitude-divider::after {
  content: "";
  width: 46px;
  height: 1px;
  background: #8d9a91;
}
.cam-tu-cau .ct-gratitude-divider span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #baa576;
}
.cam-tu-cau .ct-gratitude-message {
  margin: 0;
  font-size: 16px;
  font-style: italic;
  line-height: 1.75;
  text-wrap: balance;
  opacity: 0.85;
}
/* The names use the invitation's own name style (as on the cover); the template's script face
   is too ornate to fit both names on one line. */
.cam-tu-cau .ct-gratitude-names {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 34px 0 0;
  font-size: 24px;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-transform: uppercase;
}
.cam-tu-cau .ct-gratitude-names::before,
.cam-tu-cau .ct-gratitude-names::after {
  content: "";
  flex: 1 1 0;
  min-width: 16px;
  height: 1px;
  background: #8d9a91;
}
