/* LEUCHTSIEGEL Guest V2 R55 — seal-confirm only. No upload/recording logic changes. */
html.lsw-v2-r55 body:has(.guest-shell--ceremony .guest-seal-screen--r55) {
  margin: 0 !important;
  min-height: 100dvh !important;
  background: #e6ddd1 !important;
  overflow-x: hidden !important;
}

html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  isolation: isolate !important;
  color: #2d2b29 !important;
  background:
    radial-gradient(circle at 50% 93%, rgba(255,238,190,.42), transparent 24%),
    #fbf7ef url('/assets/guest-invitation-paper-lossless-r52.webp') center / cover no-repeat !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55)::before,
html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55)::after {
  content: none !important;
  display: none !important;
}

html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) > header {
  position: absolute !important;
  top: max(4.8dvh, env(safe-area-inset-top)) !important;
  right: 6.2% !important;
  left: 6.2% !important;
  z-index: 10 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
}

html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) > header .guest-brand {
  color: #a4772e !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(16px, 4.4vw, 19px) !important;
  font-weight: 600 !important;
  letter-spacing: .22em !important;
  line-height: 1 !important;
  text-align: left !important;
  text-shadow: none !important;
}

html.lsw-v2-r55 .guest-shell--ceremony .guest-seal-screen--r55 {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  color: #2d2b29 !important;
}

/* 1. Botschaft aufgenommen */
html.lsw-v2-r55 .guest-seal-screen--r55 > h1 {
  position: absolute !important;
  top: 16.0% !important;
  right: 7% !important;
  left: 7% !important;
  margin: 0 !important;
  color: #24211e !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(27px, 7.4vw, 33px) !important;
  font-weight: 500 !important;
  line-height: 1.08 !important;
  letter-spacing: -.022em !important;
  white-space: nowrap !important;
  text-shadow: none !important;
}

/* 2. für + Jubiläum als eine optische Einheit */
html.lsw-v2-r55 .guest-seal-destination-r55 {
  position: absolute !important;
  top: 22.1% !important;
  right: 7% !important;
  left: 7% !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  color: #282521 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  line-height: 1 !important;
}

html.lsw-v2-r55 .guest-seal-destination-r55 > span {
  margin: 0 0 4.2dvh !important;
  color: #2e2924 !important;
  font-size: clamp(19px, 5.3vw, 24px) !important;
  font-weight: 500 !important;
}

html.lsw-v2-r55 .guest-seal-destination-r55 > strong {
  margin: 0 !important;
  color: #27231f !important;
  font-size: clamp(28px, 7.7vw, 34px) !important;
  font-weight: 500 !important;
  line-height: 1.05 !important;
  letter-spacing: -.018em !important;
}

html.lsw-v2-r55 .guest-seal-destination-r55 > em {
  margin-top: 8px !important;
  color: #b1843c !important;
  font-size: clamp(16px, 4.4vw, 19px) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
}

/* 3. Existing seal mark becomes the restrained LEUCHTSIEGEL line/diamond ornament. */
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark {
  position: absolute !important;
  top: 47.0% !important;
  left: 50% !important;
  width: 132px !important;
  height: 22px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 14px 1fr !important;
  align-items: center !important;
  gap: 9px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  text-shadow: none !important;
  transform: translateX(-50%) !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark::before,
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark::after {
  content: "" !important;
  display: block !important;
  width: 100% !important;
  height: 1px !important;
  border: 0 !important;
  background: linear-gradient(90deg, transparent, #d7ae5f) !important;
  box-shadow: none !important;
  position: static !important;
  transform: none !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark::after {
  transform: rotate(180deg) !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark > span {
  display: block !important;
  width: 9px !important;
  height: 9px !important;
  margin: 0 auto !important;
  border: 1px solid #c9983e !important;
  background: rgba(255,250,240,.48) !important;
  transform: rotate(45deg) !important;
  box-shadow: 0 0 8px rgba(195,145,52,.12) !important;
}

/* Old sprig and explanatory recipient copy are superseded visually. */
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-sprig-v32,
html.lsw-v2-r55 .guest-seal-screen--r55 > p {
  display: none !important;
}

/* 4. Nur noch ein Schritt — deliberately quieter than the destination. */
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-step-v2 {
  position: absolute !important;
  top: 55.3% !important;
  right: 10% !important;
  left: 10% !important;
  margin: 0 !important;
  color: #a6782e !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(20px, 5.4vw, 24px) !important;
  font-weight: 500 !important;
  line-height: 1.1 !important;
  text-shadow: none !important;
}

/* 5. CTA: same size intent, cleaner premium light treatment. */
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button {
  position: absolute !important;
  top: 64.2% !important;
  left: 50% !important;
  width: 64% !important;
  max-width: 300px !important;
  height: clamp(64px, 9.0dvh, 76px) !important;
  min-height: 64px !important;
  margin: 0 !important;
  padding: 12px 20px !important;
  border: 1px solid #c99b43 !important;
  border-radius: 14px !important;
  background:
    linear-gradient(110deg, rgba(255,245,213,.64), rgba(255,250,240,.88) 48%, rgba(247,232,197,.76)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.86),
    inset 0 0 0 1px rgba(202,155,67,.10),
    0 8px 18px rgba(119,81,29,.16) !important;
  color: #a57320 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(17px, 4.5vw, 20px) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-shadow: none !important;
  transform: translateX(-50%) !important;
  transition: transform 90ms ease, box-shadow 90ms ease, border-color 90ms ease, background 90ms ease !important;
  -webkit-tap-highlight-color: transparent !important;
  touch-action: manipulation !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button svg {
  width: 1.18em !important;
  height: 1.18em !important;
  color: #b17c25 !important;
  stroke-width: 1.7 !important;
  filter: none !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button:hover {
  border-color: #b78631 !important;
  background: linear-gradient(110deg, rgba(255,243,207,.82), #fffaf1 48%, rgba(244,223,182,.88)) !important;
  box-shadow: inset 0 1px 0 #fff, 0 10px 21px rgba(119,81,29,.18) !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button:active {
  border-color: #bd8f38 !important;
  background: linear-gradient(110deg, rgba(250,236,199,.92), rgba(255,248,235,.96), rgba(241,219,174,.90)) !important;
  box-shadow: inset 0 1px 3px rgba(125,86,31,.10), 0 5px 12px rgba(119,81,29,.14) !important;
  transform: translateX(-50%) translateY(1px) scale(.995) !important;
}
html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button:focus-visible {
  outline: 3px solid rgba(190,143,52,.34) !important;
  outline-offset: 4px !important;
}

html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) > footer {
  position: absolute !important;
  right: 5% !important;
  bottom: max(14px, env(safe-area-inset-bottom)) !important;
  left: 5% !important;
  z-index: 10 !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #847b70 !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: clamp(8px, 2.35vw, 10px) !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}
html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) > footer a {
  color: inherit !important;
  text-decoration-color: rgba(132,123,112,.40) !important;
  text-underline-offset: 2px !important;
}

/* Desktop = same composition in the accepted centered 429x690 presentation frame. */
@media (min-width: 640px) and (hover: hover) and (pointer: fine) {
  html.lsw-v2-r55 body:has(.guest-shell--ceremony .guest-seal-screen--r55) {
    min-height: 100dvh !important;
    padding: 24px !important;
    display: grid !important;
    place-items: center !important;
    background: #e6ddd1 !important;
  }
  html.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) {
    width: min(429px, calc(100vw - 48px), calc((100dvh - 48px) * 429 / 690)) !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 429 / 690 !important;
    border: 1px solid #d6c9b8 !important;
    border-radius: 8px !important;
    box-shadow: 0 30px 76px rgba(79,58,33,.20) !important;
  }
}

@media (max-height: 700px) and (max-width: 639px) {
  html.lsw-v2-r55 .guest-seal-screen--r55 > h1 { top: 14.8% !important; }
  html.lsw-v2-r55 .guest-seal-destination-r55 { top: 21.0% !important; }
  html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-mark { top: 46.0% !important; }
  html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-seal-step-v2 { top: 54.0% !important; }
  html.lsw-v2-r55 .guest-seal-screen--r55 > .guest-button { top: 63.0% !important; }
}

/* R55 final: outrank historical R32 finale geometry and use the accepted centered desktop frame. */
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony:has(.guest-seal-screen--r55) > header {
  top: 4.8% !important;
}
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony .guest-seal-screen--premium-v2.guest-seal-screen--confirm-v2.guest-seal-screen--r55 > h1 {
  top: 16.0% !important;
  color: #24211e !important;
  text-shadow: none !important;
  font-size: clamp(27px, 7.4vw, 33px) !important;
}
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony .guest-seal-screen--premium-v2.guest-seal-screen--confirm-v2.guest-seal-screen--r55 > .guest-seal-mark {
  top: 48.5% !important;
  left: 50% !important;
  width: 132px !important;
  height: 22px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 14px 1fr !important;
  align-items: center !important;
  gap: 9px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  transform: translateX(-50%) !important;
}
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony .guest-seal-screen--premium-v2.guest-seal-screen--confirm-v2.guest-seal-screen--r55 > .guest-seal-step-v2 {
  top: 58.5% !important;
  color: #a6782e !important;
  font-size: clamp(20px, 5.4vw, 24px) !important;
  font-weight: 500 !important;
  text-shadow: none !important;
}
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony .guest-seal-screen--premium-v2.guest-seal-screen--confirm-v2.guest-seal-screen--r55 > .guest-button {
  top: 67.2% !important;
  width: 64% !important;
  max-width: 300px !important;
  height: clamp(64px, calc(var(--r55-shell-h, 844px) * .09), 76px) !important;
  min-height: 64px !important;
  border: 1px solid #c99b43 !important;
  border-radius: 14px !important;
  background: linear-gradient(110deg, rgba(255,245,213,.64), rgba(255,250,240,.88) 48%, rgba(247,232,197,.76)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.86), inset 0 0 0 1px rgba(202,155,67,.10), 0 8px 18px rgba(119,81,29,.16) !important;
  color: #a57320 !important;
  text-shadow: none !important;
  transform: translateX(-50%) !important;
}
html.lsw-v2-r55 .guest-seal-destination-r55 > span {
  margin-bottom: calc(var(--r55-shell-h, 844px) * .042) !important;
}
html.lsw-v2-r55 .guest-shell--seal-r55-desktop {
  position: absolute !important;
  top: var(--r55-shell-top, 0px) !important;
  left: var(--r55-shell-left, 0px) !important;
  width: var(--r55-shell-w, 429px) !important;
  height: var(--r55-shell-h, 690px) !important;
  min-height: var(--r55-shell-h, 690px) !important;
  max-width: none !important;
  margin: 0 !important;
  border: 1px solid #d6c9b8 !important;
  border-radius: 8px !important;
  box-shadow: 0 30px 76px rgba(79,58,33,.20) !important;
}

/* R55 approved desktop frame: explicitly outrank historical R32 shell sizing. */
html.lsw-v2-premium-finale.lsw-v2-r55 .guest-shell--ceremony.guest-shell--seal-r55-desktop:has(.guest-seal-screen--premium-v2.guest-seal-screen--r55) {
  position: absolute !important;
  top: var(--r55-shell-top, 0px) !important;
  left: var(--r55-shell-left, 0px) !important;
  width: var(--r55-shell-w, 429px) !important;
  max-width: none !important;
  height: var(--r55-shell-h, 690px) !important;
  min-height: var(--r55-shell-h, 690px) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #d6c9b8 !important;
  border-radius: 8px !important;
  box-shadow: 0 30px 76px rgba(79,58,33,.20) !important;
}
