.dpsm-subscribe {
	max-width: 560px;
	margin: 24px auto;
	padding: 32px;
	border: 1px solid #e2e8f0;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(15, 23, 42, 0.08);
	font-family: inherit;
	box-sizing: border-box;
}

.dpsm-subscribe *,
.dpsm-subscribe *::before,
.dpsm-subscribe *::after {
	box-sizing: border-box;
}

.dpsm-subscribe__header {
	margin-bottom: 24px;
}

.dpsm-subscribe__eyebrow {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .7;
}

.dpsm-subscribe__header h2 {
	margin: 0 0 8px;
	font-size: clamp(24px, 4vw, 32px);
	line-height: 1.15;
}

.dpsm-subscribe__header p {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	opacity: .75;
}

.dpsm-subscribe__form {
	display: grid;
	gap: 16px;
}

.dpsm-subscribe__field {
	display: grid;
	gap: 7px;
}

.dpsm-subscribe__field label {
	font-size: 14px;
	font-weight: 600;
}

.dpsm-subscribe__field input {
	width: 100%;
	min-height: 50px;
	padding: 12px 14px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
	font: inherit;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.dpsm-subscribe__field input:focus {
	outline: none;
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.dpsm-subscribe__button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 50px;
	padding: 12px 18px;
	border: 0;
	border-radius: 10px;
	background: #2563eb;
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: opacity .15s ease, transform .15s ease;
}

.dpsm-subscribe__button:hover {
	opacity: .92;
}

.dpsm-subscribe__button:disabled {
	cursor: wait;
	opacity: .7;
}

.dpsm-subscribe__spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255,255,255,.45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: dpsm-spin .7s linear infinite;
}

.dpsm-subscribe__form.is-loading .dpsm-subscribe__spinner {
	display: inline-block;
}

.dpsm-subscribe__status {
	min-height: 22px;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
}

.dpsm-subscribe__status.is-success {
	color: #15803d;
}

.dpsm-subscribe__status.is-error {
	color: #b91c1c;
}

.dpsm-subscribe__privacy {
	margin: 16px 0 0;
	font-size: 12px;
	opacity: .6;
	text-align: center;
}

.dpsm-subscribe__honeypot {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

@keyframes dpsm-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 600px) {
	.dpsm-subscribe {
		margin: 16px 0;
		padding: 24px 18px;
		border-radius: 14px;
	}
}

/* Site-wide floating subscription button and modal. */
.dpsm-floating-subscribe { position: fixed; right: 22px; bottom: 22px; z-index: 99990; font-family: inherit; }
.dpsm-floating-subscribe__trigger { display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 0 17px; border: 0; border-radius: 999px; background: #2563eb; color: #fff; box-shadow: 0 10px 28px rgba(15,23,42,.22); font: inherit; font-weight: 700; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.dpsm-floating-subscribe__trigger:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgba(15,23,42,.26); opacity: .96; }
.dpsm-floating-subscribe__icon { display: inline-flex; }
.dpsm-floating-subscribe__modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.dpsm-floating-subscribe__modal[hidden] { display: none; }
.dpsm-floating-subscribe__backdrop { position: absolute; inset: 0; background: rgba(15,23,42,.58); backdrop-filter: blur(2px); }
.dpsm-floating-subscribe__panel { position: relative; width: min(100%, 560px); max-height: calc(100vh - 40px); overflow: auto; padding: 28px; border-radius: 20px; background: #fff; box-shadow: 0 25px 70px rgba(15,23,42,.3); }
.dpsm-floating-subscribe__close { position: absolute; top: 12px; right: 14px; width: 38px; height: 38px; padding: 0; border: 0; border-radius: 50%; background: #f1f5f9; color: #334155; font-size: 26px; line-height: 1; cursor: pointer; }
.dpsm-floating-subscribe__intro { padding-right: 42px; }
.dpsm-floating-subscribe__intro h2 { margin: 3px 0 7px; font-size: 28px; line-height: 1.2; }
.dpsm-floating-subscribe__intro p { margin: 0; color: #64748b; line-height: 1.55; }
.dpsm-floating-subscribe__panel .dpsm-subscribe { margin: 20px 0 0; padding: 0; border: 0; border-radius: 0; box-shadow: none; max-width: none; }
.dpsm-floating-subscribe__panel .dpsm-subscribe__header { display: none; }
.dpsm-floating-subscribe__panel .dpsm-subscribe__privacy { margin-bottom: 0; }
.dpsm-floating-subscribe__panel .dpsm-subscribe__status { margin-top: 2px; }
body.dpsm-subscribe-modal-open { overflow: hidden; }
@media (max-width: 600px) {
  .dpsm-floating-subscribe { right: 14px; bottom: 14px; left: 14px; }
  .dpsm-floating-subscribe__trigger { width: 100%; justify-content: center; }
  .dpsm-floating-subscribe__modal { padding: 12px; }
  .dpsm-floating-subscribe__panel { max-height: calc(100vh - 24px); padding: 22px 18px; border-radius: 16px; }
  .dpsm-floating-subscribe__intro { padding-right: 34px; }
}
