/* Guest actions sit on the invitation paper, beside its existing music button. */
body .dtc-response-dock {
	position: fixed; z-index: 83;
	right: calc(var(--dtc-music-frame-right, max(0px, (100vw - 500px) / 2)) + 68px);
	bottom: max(14px, env(safe-area-inset-bottom));
	width: calc(var(--dtc-music-frame-width, min(100vw, 500px)) - 82px);
	max-width: calc(100vw - 82px); display: flex; align-items: center; justify-content: flex-end; gap: 10px;
	margin: 0; padding: 0; box-sizing: border-box; pointer-events: none;
}
body.dtc-vw .dtc-response-dock { z-index: 2147483000; }
body .dtc-response-dock > button {
	position: relative; display: flex; align-items: center; justify-content: center;
	flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px;
	margin: 0; padding: 0; border: 1px solid rgb(255 255 255 / 22%); border-radius: 50%;
	background: rgb(60 60 60 / 57%); color: #fff; box-shadow: 0 2px 8px rgb(0 0 0 / 8%);
	font: 500 13px/1.3 Arial, sans-serif; text-transform: none; letter-spacing: normal;
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	cursor: pointer; pointer-events: auto; appearance: none;
	transition: transform .22s cubic-bezier(.22, 1.2, .36, 1), background .2s ease, box-shadow .22s ease;
	overflow: hidden;
}
body .dtc-response-dock > button::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
	background: radial-gradient(circle at center, rgb(255 255 255 / 28%) 0%, transparent 65%);
	opacity: 0; transform: scale(.55);
}
body .dtc-response-dock > .dtc-response-dock__wish { flex: 1 1 auto; width: auto; min-width: 0; border-radius: 999px; padding: 0 15px; justify-content: space-between; gap: 10px; }
body .dtc-response-dock__wish > span { flex: 1; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body .dtc-response-dock svg { flex: 0 0 21px; width: 21px; height: 21px; color: inherit; transition: transform .22s ease; }
body .dtc-response-dock > button:hover { background: rgb(45 45 45 / 77%); transform: translateY(-1px); box-shadow: 0 6px 16px rgb(0 0 0 / 14%); }
body .dtc-response-dock > button:active { transform: scale(.94); box-shadow: 0 1px 4px rgb(0 0 0 / 10%); }
body .dtc-response-dock > button.is-press {
	transform: scale(.92); background: rgb(40 40 40 / 82%);
	box-shadow: 0 0 0 4px rgb(161 61 78 / 22%);
}
body .dtc-response-dock > button.is-press::after {
	animation: dtc-response-dock-ripple .45s ease-out;
}
body .dtc-response-dock > button.is-press svg { transform: scale(.9); }
body .dtc-response-dock > button:focus-visible { outline: 2px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 4px #53433f; }
@keyframes dtc-response-dock-ripple {
	0% { opacity: .55; transform: scale(.45); }
	100% { opacity: 0; transform: scale(1.35); }
}
body .dtc-response-dock[hidden], html.dtc-guest-unavailable body .dtc-response-dock { display: none !important; }
/* The final authored action must scroll above the fixed guest response dock.
   Keep this outside invitation sections and entirely out of the editor. */
html:not(.dtc-guest-unavailable) body:not(.iv-editing):has(.dtc-response-dock:not([hidden])) {
	padding-bottom: max(84px, calc(70px + env(safe-area-inset-bottom)));
}
/* Replace only floating response shortcuts. Existing artwork and inline forms remain. */
body:has(.dtc-response-dock) .iv-dock,
body:has(.dtc-response-dock) .t10-action-dock { display: none !important; }
body:has(.dtc-response-dock) .cv-ch10-rsvp,
body:has(.dtc-response-dock) .cv-ch10-nav__row > a { display: none !important; }
body:has(.dtc-response-dock) .cv-ch10-nav { bottom: calc(max(14px, env(safe-area-inset-bottom)) + 56px); width: 44px; left: calc(100vw - var(--dtc-music-frame-right, 0px) - var(--dtc-music-frame-width, 100vw) + 14px); right: auto; transform: none; }
body:has(.dtc-response-dock):has(.iv-demobar) .cv-ch10-nav { bottom: calc(max(14px, env(safe-area-inset-bottom)) + 112px); }
body:has(.dtc-response-dock) .cv-ch10-nav__row { height: 44px; padding: 0; border: 0; border-radius: 50%; justify-content: center; }
body:has(.dtc-response-dock) .cv-ch10-nav__links { left: 0; right: auto; width: min(300px, calc(100vw - 40px)); }
body:has(.dtc-response-dock) .cv-ch10-nav__music { display: none; }
body:has(.dtc-response-dock) .iv-demobar { bottom: calc(max(14px, env(safe-area-inset-bottom)) + 56px); padding-right: 68px; }

/* Minimal popup inspired by common guest RSVP/guestbook sheets; accent follows site rose. */
body .dtc-response-modal {
	--dtc-resp-ink: #1d1d1d;
	--dtc-resp-muted: rgb(64 64 64 / 60%);
	--dtc-resp-line: rgb(64 64 64 / 16%);
	--dtc-resp-soft: #f3ecee;
	--dtc-resp-accent: #a13d4e;
	--dtc-resp-accent-deep: #8c3342;
	position: fixed; inset: 0; z-index: 2147483100;
	width: min(360px, calc(100vw - 24px)); max-width: calc(100vw - 24px);
	max-height: min(88vh, 88dvh); height: fit-content; margin: auto;
	padding: 18px 16px 16px; box-sizing: border-box;
	border: 0; border-radius: 16px; background: rgb(250 248 248 / 98%); color: var(--dtc-resp-ink);
	box-shadow: 0 16px 48px rgb(29 29 29 / 12%);
	overflow: auto; overscroll-behavior: contain;
	font: 400 14px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif;
	text-align: left; letter-spacing: normal;
	opacity: 0; transform: translateY(28px) scale(.94);
	transition: opacity .32s ease, transform .42s cubic-bezier(.16, 1.12, .3, 1);
}
body .dtc-response-modal:not([open]) { display: none !important; }
body .dtc-response-modal[open].is-ready { opacity: 1; transform: none; }
body .dtc-response-modal[open].is-closing {
	opacity: 0; transform: translateY(14px) scale(.97);
	transition: opacity .2s ease, transform .22s ease; pointer-events: none;
}
body .dtc-response-modal::backdrop { background: rgb(20 16 17 / 0%); transition: background .34s ease; }
body .dtc-response-modal[open].is-ready::backdrop { background: rgb(20 16 17 / 30%); }
body .dtc-response-modal[open].is-closing::backdrop { background: rgb(20 16 17 / 0%); }
body .dtc-response-modal[open] .dtc-response-modal__header,
body .dtc-response-modal[open] .dtc-response-modal__subtitle,
body .dtc-response-modal[open] .dtc-response-tabs,
body .dtc-response-modal[open] [data-dtc-response-panel]:not([hidden]) {
	opacity: 0; transform: translateY(12px);
}
body .dtc-response-modal[open].is-ready .dtc-response-modal__header,
body .dtc-response-modal[open].is-ready .dtc-response-modal__subtitle,
body .dtc-response-modal[open].is-ready .dtc-response-tabs,
body .dtc-response-modal[open].is-ready [data-dtc-response-panel]:not([hidden]) {
	opacity: 1; transform: none;
	transition: opacity .34s ease, transform .4s cubic-bezier(.16, 1.1, .3, 1);
}
body .dtc-response-modal[open].is-ready .dtc-response-modal__header { transition-delay: .04s; }
body .dtc-response-modal[open].is-ready .dtc-response-modal__subtitle { transition-delay: .1s; }
body .dtc-response-modal[open].is-ready .dtc-response-tabs { transition-delay: .14s; }
body .dtc-response-modal[open].is-ready [data-dtc-response-panel]:not([hidden]) { transition-delay: .18s; }
body .dtc-response-modal[open].is-closing .dtc-response-modal__header,
body .dtc-response-modal[open].is-closing .dtc-response-modal__subtitle,
body .dtc-response-modal[open].is-closing .dtc-response-tabs,
body .dtc-response-modal[open].is-closing [data-dtc-response-panel]:not([hidden]) {
	opacity: 0; transform: translateY(8px); transition: opacity .14s ease, transform .14s ease; transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
	body .dtc-response-dock > button,
	body .dtc-response-dock > button::after,
	body .dtc-response-modal,
	body .dtc-response-modal::backdrop,
	body .dtc-response-modal[open] .dtc-response-modal__header,
	body .dtc-response-modal[open] .dtc-response-modal__subtitle,
	body .dtc-response-modal[open] .dtc-response-tabs,
	body .dtc-response-modal[open] [data-dtc-response-panel]:not([hidden]),
	body .dtc-response-attendance__card,
	body .dtc-response-tabs > button { transition: none !important; animation: none !important; transform: none !important; }
	body .dtc-response-modal[open] { opacity: 1; }
	body .dtc-response-modal[open] .dtc-response-modal__header,
	body .dtc-response-modal[open] .dtc-response-modal__subtitle,
	body .dtc-response-modal[open] .dtc-response-tabs,
	body .dtc-response-modal[open] [data-dtc-response-panel]:not([hidden]) { opacity: 1; }
}
html.dtc-response-open { overflow: hidden !important; }
.dtc-response-modal *, .dtc-response-modal *::before, .dtc-response-modal *::after { box-sizing: border-box; }
.dtc-response-modal [hidden] { display: none !important; }

body .dtc-response-modal__header {
	display: grid; grid-template-columns: 36px 1fr 36px; align-items: center; gap: 8px; margin: 0 0 10px;
}
body .dtc-response-modal__icon {
	display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%;
	background: #3a3235; color: #fff;
}
body .dtc-response-modal__icon svg { width: 16px; height: 16px; }
body .dtc-response-modal[data-dtc-response-kind="wish"] .dtc-response-modal__icon-rsvp,
body .dtc-response-modal[data-dtc-response-kind="rsvp"] .dtc-response-modal__icon-wish { display: none; }
body .dtc-response-modal__heading { min-width: 0; text-align: center; }
body .dtc-response-modal h2 {
	margin: 0; padding: 0; font: 500 17px/1.35 system-ui, -apple-system, "Segoe UI", sans-serif;
	color: var(--dtc-resp-ink); text-transform: none; letter-spacing: normal;
}
body .dtc-response-modal__demo { display: block; margin-top: 1px; color: var(--dtc-resp-muted); font: 400 11px/1.35 system-ui, sans-serif; }
body .dtc-response-modal__close {
	display: grid; place-items: center; width: 36px; height: 36px; min-height: 36px; margin: 0; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--dtc-resp-ink); cursor: pointer;
}
body .dtc-response-modal__close svg { width: 12px; height: 12px; }
body .dtc-response-modal__close:hover { background: var(--dtc-resp-soft); }
body .dtc-response-modal__subtitle {
	margin: 0 0 16px; color: var(--dtc-resp-muted); text-align: center;
	font: 400 13px/1.55 system-ui, sans-serif;
}

body .dtc-response-tabs {
	display: flex; gap: 2px; padding: 3px; margin: 0 0 18px;
	border-radius: 999px; background: var(--dtc-resp-soft);
}
body .dtc-response-tabs > button {
	flex: 1; min-width: 0; min-height: 34px; margin: 0; padding: 7px 6px; border: 0; border-radius: 999px;
	background: transparent; color: #6a5960; font: 500 13px/1.3 system-ui, sans-serif;
	cursor: pointer; text-transform: none; letter-spacing: normal;
	transition: color .18s ease, background .18s ease, transform .18s ease;
}
body .dtc-response-tabs > button[aria-pressed="true"] { background: #fff; color: var(--dtc-resp-accent); }
body .dtc-response-tabs > button:active { transform: scale(.97); }

body .dtc-response-modal form { display: flex; flex-direction: column; gap: 22px; margin: 0; padding: 0; width: 100%; }
body .dtc-response-modal small { font: 400 11px/1.4 system-ui, sans-serif; color: var(--dtc-resp-muted); }

body .dtc-response-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
body .dtc-response-field__label {
	margin: 0; color: var(--dtc-resp-ink); font: 500 13px/1.4 system-ui, sans-serif;
}
body .dtc-response-field__label i {
	margin-right: 3px; font: 600 13px/1 system-ui, sans-serif; color: var(--dtc-resp-accent); font-style: normal;
}
body .dtc-response-modal :is(input:not([type="radio"]):not([type="hidden"]), textarea) {
	display: block; position: static; width: 100%; min-width: 0; max-width: 100%; height: auto; min-height: 0;
	margin: 0; padding: 6px 0 10px; border: 0; border-bottom: 1px solid var(--dtc-resp-line); border-radius: 0;
	background: transparent; color: var(--dtc-resp-ink); box-shadow: none;
	font: 500 14px/1.5 system-ui, sans-serif;
	text-align: left; letter-spacing: normal; transform: none;
}
body .dtc-response-modal textarea { min-height: 72px; resize: none; }
body .dtc-response-modal :is(input, textarea)::placeholder { opacity: 1; color: rgb(64 64 64 / 38%); }
body .dtc-response-modal :is(input, textarea):focus {
	outline: none; border-bottom-color: var(--dtc-resp-accent);
}

body .dtc-response-attendance {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
	min-width: 0; margin: 0; padding: 0; border: 0;
}
body .dtc-response-attendance__option { position: relative; display: block; min-width: 0; margin: 0; cursor: pointer; }
body .dtc-response-attendance__option--full { grid-column: 1 / -1; }
body .dtc-response-attendance input[type="radio"] {
	position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0;
	opacity: 0; border: 0; clip-path: inset(50%);
}
body .dtc-response-attendance__card {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	min-height: 52px; padding: 0 12px 0 16px; border: 1px solid var(--dtc-resp-line); border-radius: 8px;
	background: transparent; color: var(--dtc-resp-ink);
	transition: border-color .18s ease, background .18s ease, transform .18s cubic-bezier(.22, 1.2, .36, 1);
}
body .dtc-response-attendance__option:active .dtc-response-attendance__card { transform: scale(.98); }
body .dtc-response-attendance__label { font: 500 13px/1.3 system-ui, sans-serif; }
body .dtc-response-attendance__check {
	flex: 0 0 18px; width: 18px; height: 18px; border: 1.5px solid rgb(64 64 64 / 28%); border-radius: 50%;
}
body .dtc-response-attendance input:checked + .dtc-response-attendance__card {
	border-color: var(--dtc-resp-accent); background: #faf4f5;
}
body .dtc-response-attendance input:checked + .dtc-response-attendance__card .dtc-response-attendance__check {
	border-color: var(--dtc-resp-accent); background: var(--dtc-resp-accent);
	box-shadow: inset 0 0 0 3px #fff;
}
body .dtc-response-attendance input:focus-visible + .dtc-response-attendance__card {
	outline: 2px solid var(--dtc-resp-accent); outline-offset: 2px;
}

body .dtc-response-count { display: flex; flex-direction: column; gap: 8px; }
body .dtc-response-stepper {
	display: inline-flex; align-items: center; align-self: flex-start;
	border-radius: 8px; border: 1px solid var(--dtc-resp-line); background: #fff;
}
body .dtc-response-stepper button {
	display: grid; place-items: center; width: 40px; height: 40px; margin: 0; padding: 0;
	border: 0; border-radius: 8px; background: transparent; color: var(--dtc-resp-accent);
	font: 400 18px/1 system-ui, sans-serif; cursor: pointer;
}
body .dtc-response-stepper button:disabled { color: #c9b7bc; cursor: default; }
body .dtc-response-stepper input[type="number"] {
	width: 36px; min-height: 40px; height: 40px; padding: 0; border: 0; border-bottom: 0;
	text-align: center; font-size: 14px; color: var(--dtc-resp-ink);
	-moz-appearance: textfield; appearance: textfield;
}
body .dtc-response-stepper input::-webkit-inner-spin-button,
body .dtc-response-stepper input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }

body .dtc-response-modal .dtc-response-submit {
	display: flex; align-items: center; justify-content: center; width: 100%;
	min-height: 52px; margin: 2px 0 0; padding: 12px 16px;
	border: 1px solid var(--dtc-resp-line); border-radius: 8px;
	background: transparent; color: rgb(64 64 64 / 35%);
	font: 500 14px/1.4 system-ui, sans-serif; cursor: pointer;
	text-transform: none; letter-spacing: normal; box-shadow: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease, transform .18s ease;
}
body .dtc-response-modal form:valid .dtc-response-submit {
	border-color: transparent; background: var(--dtc-resp-accent); color: #fff;
}
body .dtc-response-modal form:valid .dtc-response-submit:hover:not(:disabled) { background: var(--dtc-resp-accent-deep); }
body .dtc-response-modal form:valid .dtc-response-submit:active:not(:disabled) { transform: scale(.985); }
body .dtc-response-modal .dtc-response-submit:disabled { opacity: .55; cursor: wait; }
body .dtc-response-modal button:focus-visible { outline: 2px solid var(--dtc-resp-accent); outline-offset: 2px; }

body .dtc-response-modal .dtc-response-feedback { min-height: 0; margin: -8px 0 0; color: var(--dtc-resp-accent-deep); font: 400 12px/1.45 system-ui, sans-serif; }
body .dtc-response-feedback:empty { display: none; }
body .dtc-response-feedback[data-state="success"] { padding: 8px 10px; border-radius: 8px; background: #eef5ee; color: #2f5236; }
body .dtc-response-hp {
	position: absolute !important; width: 1px !important; height: 1px !important;
	margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip-path: inset(50%);
}
body .dtc-response-wishes { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--dtc-resp-line); }
body .dtc-response-wishes summary { cursor: pointer; color: var(--dtc-resp-muted); font: 400 12px/1.4 system-ui, sans-serif; text-align: center; }
body .dtc-response-wishes summary > span {
	display: inline-block; min-width: 18px; margin-left: 3px; padding: 0 5px;
	border-radius: 999px; background: var(--dtc-resp-soft); color: var(--dtc-resp-accent); font-size: 11px;
}
body .dtc-response-wishes [data-dtc-wishes-list] { margin-top: 10px; }
body .dtc-response-wish { margin: 0 0 8px; padding: 10px 0; border-bottom: 1px solid var(--dtc-resp-line); overflow-wrap: anywhere; background: transparent; border-radius: 0; }
body .dtc-response-wish:last-child { border-bottom: 0; }
body .dtc-response-wish b { font: 600 12px/1.4 system-ui, sans-serif; color: var(--dtc-resp-accent-deep); }
body .dtc-response-wish p { margin: 2px 0 0; color: #4a4144; white-space: pre-line; font: 400 13px/1.55 system-ui, sans-serif; }
@media (max-width: 360px) {
	body .dtc-response-modal { padding: 16px 14px 14px; }
	body .dtc-response-modal h2 { font-size: 16px; }
	body .dtc-response-attendance { grid-template-columns: 1fr; }
	body .dtc-response-attendance__option--full { grid-column: auto; }
}
@media print { body .dtc-response-dock, body .dtc-response-modal { display: none !important; } }
