.ppaccess-form-row { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; padding: 8px 0; align-items: center; }
.ppaccess-form-row label { font-weight: 500; }
.ppaccess-button {
	display: inline-block; padding: 10px 20px; background: #1e2747; color: #fff; border: 0;
	border-radius: 6px; font-weight: 500; text-decoration: none; cursor: pointer;
}
.ppaccess-button:hover { background: #2d3a6b; color: #fff; }
.ppaccess-button:disabled { opacity: .6; cursor: not-allowed; }

.ppaccess-fullpage-main { max-width: 760px; margin: 40px auto; padding: 0 20px; }
.ppaccess-fullpage-header { text-align: center; margin-bottom: 24px; }
.ppaccess-fullpage-meta { color: #64748b; font-size: 14px; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .04em; }
.ppaccess-fullpage-title {
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.15;
	font-weight: 700;
	color: #0f172a;
	margin: 0 0 24px;
}
.ppaccess-fullpage-thumb { margin: 0 0 24px; }
.ppaccess-fullpage-thumb img { width: 100%; height: auto; border-radius: 12px; box-shadow: 0 12px 24px -16px rgba(15, 23, 42, .35); }
.ppaccess-fullpage-thumb figcaption { color: #64748b; font-size: 13px; margin-top: 8px; text-align: center; }
.ppaccess-fullpage-excerpt {
	font-size: 18px; line-height: 1.55; color: #334155;
	margin: 0 0 12px; text-align: left;
}
.ppaccess-fullpage-leadin {
	font-size: 17px; line-height: 1.7; color: #1f2937;
	max-width: 100%; margin: 0 0 8px;
}
.ppaccess-fullpage-leadin > p { margin: 0 0 16px; }
.ppaccess-fullpage-leadin h2,
.ppaccess-fullpage-leadin h3 { margin: 24px 0 12px; }
.ppaccess-fullpage-leadin img { max-width: 100%; height: auto; border-radius: 8px; }

.ppaccess-paywall {
	position: relative;
	margin: 32px auto;
	max-width: 720px;
	padding: 0;
	border: 0;
	background: transparent;
	text-align: center;
}
.ppaccess-paywall-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	padding: 40px 32px;
	box-shadow: 0 18px 40px -28px rgba(15, 23, 42, .35);
}
.ppaccess-paywall-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px; height: 56px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #eef2ff;
	color: #1e2747;
}
.ppaccess-paywall-heading {
	margin: 0 0 8px;
	font-size: 26px;
	line-height: 1.2;
	font-weight: 700;
	color: #0f172a;
}
.ppaccess-paywall-subhead {
	margin: 0 0 22px;
	color: #475569;
	font-size: 15px;
	line-height: 1.55;
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
}
.ppaccess-paywall-actions { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.ppaccess-paywall-register-actions { display: none; }
.ppaccess-paywall-cta {
	display: inline-block; padding: 12px 28px; background: #1e2747; color: #fff;
	border-radius: 999px; text-decoration: none; font-weight: 600; font-size: 15px;
	box-shadow: 0 6px 16px -8px rgba(30, 39, 71, .55);
}
.ppaccess-paywall-cta:hover { background: #2d3a6b; color: #fff; }
.ppaccess-paywall-secondary { margin: 0; color: #64748b; font-size: 14px; }
.ppaccess-paywall-secondary a { color: #1e2747; font-weight: 500; }

html.ppaccess-slideup-open,
body.ppaccess-slideup-open {
	overflow: hidden;
}
.ppaccess-slideup-root {
	--ppaccess-slideup-top: 350px;
	position: fixed;
	inset: 0;
	z-index: 9998;
	visibility: hidden;
	pointer-events: none;
}
.ppaccess-slideup-root.is-visible {
	visibility: visible;
	pointer-events: auto;
}
.ppaccess-slideup-mask {
	position: fixed;
	inset: 0;
	z-index: 0;
	background: linear-gradient(rgba(0, 0, 0, .2) 20%, rgba(0, 0, 0, .8));
	opacity: 0;
	transition: opacity .2s ease;
	will-change: opacity;
}
.ppaccess-slideup-root.is-active .ppaccess-slideup-mask {
	opacity: 1;
}
.ppaccess-slideup-portal {
	position: fixed;
	inset: 0;
	z-index: 1;
	pointer-events: none;
}
.ppaccess-slideup-root.is-visible .ppaccess-slideup-portal {
	pointer-events: auto;
}
.ppaccess-paywall--slideup {
	width: 100%;
	max-width: none;
	min-height: calc(100vh - var(--ppaccess-slideup-top, 350px));
	margin: 0;
	padding: 105px 24px 80px;
	background: #fff;
	color: #111827;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}
.ppaccess-slideup-root .ppaccess-paywall--slideup {
	position: fixed;
	top: var(--ppaccess-slideup-top, 350px);
	right: 0;
	left: 0;
	z-index: 2;
	height: 100vh;
	transform: translateY(calc(100vh - var(--ppaccess-slideup-top, 350px)));
	transition: transform .3s ease-out;
	will-change: transform;
}
.ppaccess-slideup-root.is-active .ppaccess-paywall--slideup {
	transform: translateY(0);
}
.ppaccess-paywall--slideup .ppaccess-paywall-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}
.ppaccess-paywall--slideup .ppaccess-paywall-icon,
.ppaccess-paywall--slideup .ppaccess-paywall-actions,
.ppaccess-paywall--slideup .ppaccess-paywall-plans {
	display: none;
}
.ppaccess-paywall--slideup .ppaccess-paywall-heading {
	width: 100%;
	max-width: 640px;
	margin: 0;
	color: #111827;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: .1px;
	line-height: 28px;
	text-align: center;
}
.ppaccess-paywall--slideup .ppaccess-paywall-subhead {
	width: min(100%, 523px);
	max-width: none;
	margin: 0 0 15px;
	color: #111827;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: .1px;
	line-height: 22px;
	text-align: center;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-actions {
	display: block;
	width: 100%;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-form {
	width: 100%;
	max-width: 420px;
	margin: 0 auto;
	gap: 0;
	align-items: stretch;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-field {
	display: block;
	margin-bottom: 20px;
	text-align: left;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-field label {
	display: block;
	margin-bottom: 8px;
	color: #111827;
	font-size: 14px;
	font-weight: 500;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-field input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid #ddd;
	border-radius: 6px;
	outline: 0;
	background: #fff;
	color: #1d2327;
	font-size: 16px;
	transition: border-color .15s ease, box-shadow .15s ease;
	-webkit-appearance: none;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-field input[type="email"]:focus {
	border-color: #174a92;
	box-shadow: 0 0 0 2px rgba(23, 74, 146, .15);
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-field input[type="email"]::placeholder {
	color: #999;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-form .ppaccess-paywall-cta {
	display: block;
	min-width: 200px;
	margin: 0 auto 24px;
	padding: 12px 32px;
	border: 0;
	border-radius: 6px;
	background: #174a92;
	box-shadow: none;
	color: #fff;
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .5px;
	line-height: 1.2;
	text-align: center;
	transition: opacity .15s ease;
}
.ppaccess-paywall--slideup .ppaccess-paywall-register-form .ppaccess-paywall-cta:hover {
	background: #174a92;
	opacity: .9;
}
.ppaccess-paywall--slideup .ppaccess-paywall-terms {
	margin: 0;
	color: #111827;
	font-size: 13px;
	line-height: 1.4;
	opacity: .6;
	text-align: center;
}
.ppaccess-paywall--slideup .ppaccess-form-result {
	min-height: 24px;
	text-align: center;
	font-style: italic;
}
@media (prefers-reduced-motion: reduce) {
	.ppaccess-slideup-root .ppaccess-paywall--slideup,
	.ppaccess-slideup-mask {
		transition: none;
	}
}
@media (max-width: 600px) {
	.ppaccess-paywall-card { padding: 28px 20px; }
	.ppaccess-paywall-heading { font-size: 22px; }
	.ppaccess-slideup-root {
		--ppaccess-slideup-top: 38vh;
	}
	.ppaccess-paywall--slideup {
		padding: 60px 20px 80px;
	}
	.ppaccess-paywall--slideup .ppaccess-paywall-card { padding: 0; }
	.ppaccess-paywall--slideup .ppaccess-paywall-heading { font-size: 24px; }
}

.ppaccess-levels-grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px; margin: 16px 0;
}
.ppaccess-level-card {
	padding: 24px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
	text-align: center;
}
.ppaccess-level-card h3 { margin-top: 0; color: #1e2747; }
.ppaccess-level-price { font-size: 28px; color: #1e2747; }
.ppaccess-level-interval { font-size: 14px; color: #6b7280; }

.ppaccess-form { display: flex; flex-direction: column; gap: 8px; max-width: 400px; }
.ppaccess-form input[type="email"], .ppaccess-form input[type="password"], .ppaccess-form input[type="text"] {
	padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 6px; width: 100%;
}
.ppaccess-form-result { min-height: 24px; font-size: 14px; }
.ppaccess-form-result.success { color: #15803d; }
.ppaccess-form-result.error { color: #b91c1c; }
.ppaccess-subscribe [hidden] { display: none !important; }

.ppaccess-account { padding: 24px; background: #fff; border-radius: 8px; }
.ppaccess-account-actions { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.ppaccess-status-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.ppaccess-status-active { background: #dcfce7; color: #166534; }
.ppaccess-status-expired, .ppaccess-status-canceled { background: #f3f4f6; color: #4b5563; }
.ppaccess-status-pending_cancel, .ppaccess-status-past_due { background: #fef3c7; color: #92400e; }

.ppaccess-payment-element {
	margin: 16px 0; padding: 16px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fff;
	min-height: 60px;
}
.ppaccess-subscribe {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}
.ppaccess-subscribe form {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.ppaccess-form-section {
	font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
	color: #6b7280; margin: 24px 0 12px;
}
.ppaccess-form-section:first-of-type { margin-top: 0; }
.ppaccess-form-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}
.ppaccess-form-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ppaccess-form-field.ppaccess-full { grid-column: 1 / -1; }
.ppaccess-form-field label { font-size: 13px; font-weight: 500; color: #1f2937; }
.ppaccess-form-field input[type=text],
.ppaccess-form-field input[type=email],
.ppaccess-form-field input[type=tel],
.ppaccess-form-field input[type=password] {
	padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 6px;
	font-size: 14px; background: #fff; color: #1f2937;
	transition: border-color .15s ease, box-shadow .15s ease;
	width: 100%;
}
.ppaccess-form-field input:focus {
	outline: 0; border-color: #1e2747; box-shadow: 0 0 0 3px rgba(30, 39, 71, .12);
}

.ppaccess-card-element {
	padding: 12px 14px; border: 1px solid #d1d5db; border-radius: 6px; background: #fff;
}
.ppaccess-card-element.StripeElement--focus {
	border-color: #1e2747; box-shadow: 0 0 0 3px rgba(30, 39, 71, .12);
}
.ppaccess-card-element.StripeElement--invalid { border-color: #b91c1c; }
.ppaccess-card-errors { color: #b91c1c; font-size: 13px; min-height: 18px; }

.ppaccess-coupon-status {
	min-height: 18px;
	margin: 2px 0 0;
	color: #15803d;
	font-size: 13px;
	line-height: 1.35;
}
.ppaccess-coupon-status.is-pending { color: #555; }
.ppaccess-coupon-status.is-error { color: #b91c1c; }

.ppaccess-order-total {
	display: flex; align-items: center; justify-content: space-between;
	margin-top: 24px; padding: 14px 16px; background: #f3f4f6; border-radius: 6px;
}
.ppaccess-order-total span { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #6b7280; }
.ppaccess-order-total strong { font-size: 18px; color: #1f2937; }

.ppaccess-subscribe-button { width: 100%; padding: 14px; margin-top: 16px; font-size: 15px; }

.ppaccess-standalone-site-title { display: none; }
.ppaccess-recaptcha-legal { font-size: 11px; color: #6b7280; margin: 8px 0 0; line-height: 1.4; }
.ppaccess-recaptcha-legal a { color: #6b7280; text-decoration: underline; }
.ppaccess-recaptcha-legal a:hover { color: #374151; }
.grecaptcha-badge { visibility: hidden !important; }

.ppaccess-subscribe--layout-stepped {
	max-width: 560px;
}
.ppaccess-subscribe--layout-stepped form { max-width: 560px; }

.ppaccess-subscribe--template-full_page {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: 0;
	margin-bottom: 0;
	box-shadow: 0 0 0 100vmax #fff;
	clip-path: inset(0 -100vmax);
}
.ppaccess-subscribe--template-full_page form {
	max-width: 100%;
}
.ppaccess-checkout-fullpage {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 32vw);
	min-height: clamp(680px, 72vh, 980px);
	background: #fff;
	color: #151515;
}
.ppaccess-checkout-main {
	padding: clamp(48px, 6vw, 80px) clamp(24px, 7vw, 112px);
}
.ppaccess-checkout-form-wrap {
	width: min(560px, 100%);
	margin: 0 auto;
}
.ppaccess-subscribe--template-full_page.ppaccess-subscribe--layout-default .ppaccess-checkout-form-wrap {
	width: min(640px, 100%);
}
.ppaccess-checkout-title {
	margin: 0 0 clamp(32px, 5vw, 56px);
	color: #151515;
	font-size: clamp(34px, 4vw, 48px);
	font-weight: 700;
	line-height: 1.12;
	letter-spacing: 0;
}
.ppaccess-checkout-summary {
	display: flex;
	align-items: center;
	background: #f5f4ef;
	border-left: 1px solid #e2ded6;
	box-shadow: 100vmax 0 0 100vmax #f5f4ef;
	clip-path: inset(0 -100vmax 0 0);
	padding: clamp(40px, 6vw, 84px) clamp(28px, 5vw, 64px);
}
.ppaccess-order-summary-panel {
	width: min(360px, 100%);
	margin: 0 auto;
}
.ppaccess-order-summary-kicker {
	margin: 0 0 12px;
	color: #151515;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
}
.ppaccess-order-summary-panel h2 {
	margin: 0 0 18px;
	color: #151515;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}
.ppaccess-order-summary-line {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-top: 8px;
	color: #4b5563;
	font-size: 14px;
	line-height: 1.35;
}
.ppaccess-order-summary-line strong {
	color: #151515;
	font-size: 14px;
	text-align: right;
}
.ppaccess-order-summary-includes {
	margin-top: 22px;
}
.ppaccess-order-summary-includes p {
	margin: 0 0 10px;
	color: #151515;
	font-size: 14px;
	font-weight: 700;
}
.ppaccess-order-summary-includes ul {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ppaccess-order-summary-includes li {
	position: relative;
	margin: 0;
	padding-left: 22px;
	color: #2f2f2f;
	font-size: 14px;
	line-height: 1.4;
}
.ppaccess-order-summary-includes li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: 10px;
	height: 6px;
	border-left: 2px solid #d71920;
	border-bottom: 2px solid #d71920;
	transform: rotate(-45deg);
}
.ppaccess-order-summary-secure {
	margin: 24px 0 0;
	color: #555;
	font-size: 13px;
}
.ppaccess-subscribe--template-full_page .ppaccess-order-total {
	display: none;
}

.ppaccess-checkout-standalone-body {
	margin: 0;
	background: #fff;
	color: #151515;
}
.ppaccess-checkout-standalone-body * {
	box-sizing: border-box;
}
.ppaccess-standalone-page {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 28vw);
	min-height: 100vh;
	background: #fff;
}
.ppaccess-standalone-page--full {
	grid-template-columns: minmax(0, 1fr);
	background: #f7f7f5;
}
.ppaccess-standalone-left {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	min-height: 100vh;
}
.ppaccess-standalone-header {
	padding: clamp(24px, 4vw, 48px) clamp(24px, 4vw, 56px) 0;
}
.ppaccess-standalone-page--full .ppaccess-standalone-header {
	display: flex;
	justify-content: center;
	text-align: center;
}
.ppaccess-standalone-brand {
	display: inline-flex;
	align-items: center;
}
.ppaccess-standalone-page--full .ppaccess-standalone-brand {
	justify-content: center;
	text-align: center;
}
.ppaccess-standalone-brand-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	max-width: min(420px, 72vw);
	color: #151515;
	text-decoration: none;
}
.ppaccess-standalone-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
}
.ppaccess-standalone-logo-img {
	display: block;
	width: auto;
	max-width: 148px;
	max-height: 56px;
}
.ppaccess-standalone-site-title {
	display: block;
	color: #151515;
	font-size: 20px;
	font-weight: 800;
	line-height: 1.1;
	overflow-wrap: anywhere;
}
.ppaccess-standalone-main {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(56px, 9vh, 108px) clamp(24px, 6vw, 88px) clamp(56px, 8vh, 96px);
}
.ppaccess-standalone-page--full .ppaccess-standalone-main {
	padding-top: clamp(36px, 6vh, 72px);
}
.ppaccess-standalone-single-column {
	width: min(680px, 100%);
}
.ppaccess-standalone-inline-summary {
	width: 100%;
	margin: 0 0 36px;
	padding: clamp(24px, 4vw, 32px);
	border: 1px solid #e6e3dc;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 14px 32px -28px rgba(15, 23, 42, .45);
}
.ppaccess-standalone-inline-summary .ppaccess-order-summary-panel {
	width: 100%;
	margin: 0;
}
.ppaccess-standalone-inline-summary .ppaccess-order-summary-includes {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid #e6e3dc;
}
.ppaccess-standalone-inline-summary .ppaccess-order-summary-secure {
	display: none;
}
.ppaccess-subscribe--template-standalone {
	width: min(560px, 100%);
	max-width: none;
	margin: 0;
}
.ppaccess-subscribe--template-standalone_full {
	width: 100%;
}
.ppaccess-subscribe--template-standalone form {
	max-width: 100%;
}
.ppaccess-standalone-form-wrap {
	width: 100%;
}
.ppaccess-subscribe--template-standalone .ppaccess-checkout-title {
	margin-bottom: 24px;
	font-size: clamp(38px, 5vw, 48px);
	font-weight: 400;
}
.ppaccess-subscribe--template-standalone .ppaccess-order-total {
	display: none;
}
.ppaccess-subscribe--template-standalone_full.ppaccess-subscribe--layout-stepped,
.ppaccess-subscribe--template-standalone_full.ppaccess-subscribe--layout-stepped form {
	max-width: none;
}
.ppaccess-standalone-summary {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 100vh;
	background: #f5f4ef;
	border-left: 1px solid #e2ded6;
	padding: clamp(64px, 8vh, 96px) clamp(28px, 4vw, 56px);
}
.ppaccess-standalone-summary .ppaccess-order-summary-panel {
	width: min(360px, 100%);
	margin: 0 auto;
}
.ppaccess-standalone-footer {
	padding: 0 clamp(24px, 4vw, 56px) clamp(18px, 3vw, 28px);
	color: #555;
	font-size: 12px;
	line-height: 1.4;
}
.ppaccess-standalone-page--full .ppaccess-standalone-footer {
	text-align: center;
}
@media (max-width: 840px) {
	.ppaccess-checkout-fullpage {
		grid-template-columns: 1fr;
		min-height: 0;
	}
	.ppaccess-checkout-main {
		padding: 40px 22px;
	}
	.ppaccess-checkout-summary {
		align-items: flex-start;
		border-left: 0;
		border-top: 1px solid #e2ded6;
		padding: 32px 22px 40px;
	}
	.ppaccess-order-summary-panel {
		width: min(560px, 100%);
	}
	.ppaccess-checkout-title {
		font-size: 34px;
	}
	.ppaccess-standalone-page {
		grid-template-columns: 1fr;
	}
	.ppaccess-standalone-left {
		min-height: auto;
	}
	.ppaccess-standalone-main {
		padding: 42px 22px 56px;
	}
	.ppaccess-standalone-page--full .ppaccess-standalone-main {
		padding-top: 34px;
	}
	.ppaccess-standalone-inline-summary {
		margin-bottom: 28px;
		padding: 22px;
	}
	.ppaccess-standalone-summary {
		min-height: 0;
		border-left: 0;
		border-top: 1px solid #e2ded6;
		padding: 32px 22px 40px;
	}
	.ppaccess-standalone-footer {
		padding: 0 22px 24px;
	}
}
@media (max-width: 540px) {
	.ppaccess-standalone-header {
		padding: 22px 20px 0;
	}
	.ppaccess-standalone-brand {
		align-items: flex-start;
		max-width: 100%;
	}
	.ppaccess-standalone-brand-link {
		gap: 10px;
		max-width: 100%;
	}
	.ppaccess-standalone-logo-img {
		max-width: 132px;
		max-height: 48px;
	}
	.ppaccess-subscribe--template-standalone .ppaccess-checkout-title {
		font-size: 34px;
	}
}
.ppaccess-checkout-steps {
	display: flex;
	flex-direction: column;
	border-top: 1px solid #d6d6d6;
}
.ppaccess-checkout-step {
	border-bottom: 1px solid #d6d6d6;
	padding: 0;
}
.ppaccess-checkout-step-header {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: start;
	padding: 18px 0;
}
.ppaccess-step-marker {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border: 1.5px solid #2454c6;
	border-radius: 999px;
	color: #2454c6;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}
.ppaccess-checkout-step.is-active .ppaccess-step-marker {
	background: #2454c6;
	color: #fff;
}
.ppaccess-checkout-step.is-complete .ppaccess-step-marker {
	background: #fff;
	color: #2454c6;
}
.ppaccess-checkout-step.is-locked .ppaccess-step-marker {
	border-color: #2454c6;
	color: #2454c6;
	background: #fff;
}
.ppaccess-checkout-step-header h3 {
	margin: 0;
	color: #151515;
	font-size: 18px;
	line-height: 1.2;
	font-weight: 700;
}
.ppaccess-checkout-step-header p {
	margin: 4px 0 0;
	color: #555;
	font-size: 13px;
	line-height: 1.35;
}
.ppaccess-step-edit {
	padding: 0;
	border: 0;
	background: transparent;
	color: #151515;
	text-decoration: underline;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}
.ppaccess-checkout-step-body {
	display: none;
	padding: 0 0 24px 34px;
}
.ppaccess-checkout-step.is-active .ppaccess-checkout-step-body {
	display: block;
}
.ppaccess-step-button {
	width: 100%;
	margin-top: 18px;
	background: #151515;
	border-radius: 2px;
}
.ppaccess-step-button:hover {
	background: #333;
}
.ppaccess-account-hint {
	margin: 10px 0 0;
	font-size: 13px;
	color: #555;
}
.ppaccess-account-hint.error {
	color: #b91c1c;
}
.ppaccess-payment-choice {
	border: 1px solid #d1d5db;
	border-radius: 3px;
	background: #fff;
	overflow: hidden;
}
.ppaccess-payment-choice-top {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 16px 18px;
	border-bottom: 1px solid #e5e7eb;
}
.ppaccess-payment-radio {
	width: 20px;
	height: 20px;
	border: 1px solid #151515;
	border-radius: 999px;
	background: radial-gradient(circle at center, #151515 0 4px, transparent 5px);
}
.ppaccess-card-badges {
	display: inline-flex;
	gap: 6px;
	align-items: center;
}
.ppaccess-card-badges span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	height: 22px;
	border: 1px solid #d1d5db;
	border-radius: 3px;
	background: #f8fafc;
	color: #2454c6;
	font-size: 10px;
	font-weight: 700;
}
.ppaccess-payment-choice .ppaccess-form-field {
	padding: 16px 18px 18px;
}
.ppaccess-review-panel {
	border: 1px solid #d1d5db;
	border-radius: 3px;
	background: #fbfbfa;
}
.ppaccess-review-panel > div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	border-bottom: 1px solid #e5e7eb;
}
.ppaccess-review-panel > div:last-child {
	border-bottom: 0;
}
.ppaccess-review-panel span {
	color: #555;
	font-size: 13px;
}
.ppaccess-review-panel strong {
	color: #151515;
	font-size: 14px;
	text-align: right;
}

@media (max-width: 540px) {
	.ppaccess-form-grid { grid-template-columns: 1fr; }
	.ppaccess-checkout-step-header { grid-template-columns: 24px minmax(0, 1fr); }
	.ppaccess-step-edit { grid-column: 2; justify-self: start; }
	.ppaccess-checkout-step-body { padding-left: 0; }
	.ppaccess-payment-choice-top { grid-template-columns: 22px minmax(0, 1fr); }
	.ppaccess-card-badges { grid-column: 2; }
	.ppaccess-review-panel > div { flex-direction: column; gap: 4px; }
	.ppaccess-review-panel strong { text-align: left; }
}

/* =========================================================================
 * Plan grid (inline upsell inside the card, or as tiles inside a modal)
 * ========================================================================= */
.ppaccess-paywall-plans {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px; margin-top: 24px;
}
.ppaccess-paywall-card > .ppaccess-paywall-plans {
	margin: 28px 0 40px;
	padding-top: 24px;
	border-top: 1px solid #e5e7eb;
}
.ppaccess-paywall-plan {
	background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
	padding: 20px; display: flex; flex-direction: column; gap: 8px;
	text-align: center;
}
.ppaccess-paywall-plan-name { margin: 0; font-size: 16px; font-weight: 700; color: #1f2937; }
.ppaccess-paywall-plan-price { margin: 0; font-size: 22px; color: #1f2937; }
.ppaccess-paywall-plan-price strong { font-weight: 700; }
.ppaccess-paywall-plan-interval { font-size: 13px; color: #6b7280; }
.ppaccess-paywall-plan-description { margin: 0; font-size: 13px; color: #4b5563; flex: 1; }
.ppaccess-paywall-plan-cta { margin-top: 8px; align-self: stretch; text-align: center; }

/* =========================================================================
 * Modal layout
 * ========================================================================= */
.ppaccess-paywall-modal {
	position: fixed; inset: 0; z-index: 999999;
	display: flex; align-items: center; justify-content: center;
	padding: 20px;
}
.ppaccess-paywall-modal[hidden] { display: none; }
.ppaccess-paywall-modal-backdrop {
	position: absolute; inset: 0; background: rgba(15, 23, 42, .6);
	backdrop-filter: blur(2px);
}
.ppaccess-paywall-modal-card {
	position: relative; max-width: 520px; width: 100%; max-height: 90vh;
	overflow-y: auto; background: #fff; border-radius: 8px; padding: 32px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
}
.ppaccess-paywall-modal-toplink {
	margin: 0 0 16px 0; padding-bottom: 14px; border-bottom: 1px solid #e5e7eb;
	font-size: 13px; color: #6b7280; text-align: center;
}
.ppaccess-paywall-modal-toplink a { color: #1f2937; text-decoration: underline; }
.ppaccess-paywall-modal-plans {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
	gap: 8px; margin: 18px 0;
}
.ppaccess-paywall-modal-plan {
	display: flex; flex-direction: column; align-items: center; padding: 12px 8px;
	border: 2px solid #e5e7eb; border-radius: 6px; text-decoration: none; color: #1f2937;
	transition: border-color .15s;
}
.ppaccess-paywall-modal-plan:hover { border-color: #1f2937; }
.ppaccess-paywall-modal-plan-name { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #6b7280; }
.ppaccess-paywall-modal-plan-price { font-size: 18px; font-weight: 700; margin-top: 4px; }
.ppaccess-paywall-modal-plan-interval { font-size: 11px; color: #6b7280; margin-top: 2px; }
.ppaccess-paywall-modal-checkout { margin-top: 16px; }
body.ppaccess-modal-open { overflow: hidden; }

/* =========================================================================
 * Style presets — typography + button accent only.
 * The base layout is shared; presets only override visual tokens.
 * ========================================================================= */

/* Economist: dark-blue button, classical serif, tight letter-spacing */
.ppaccess-paywall--preset-economist .ppaccess-paywall-heading,
.ppaccess-paywall--preset-economist .ppaccess-paywall-subhead {
	font-family: "Milo Serif", Georgia, "Times New Roman", serif;
}
.ppaccess-paywall--preset-economist .ppaccess-paywall-heading {
	font-size: 26px; font-weight: 700; letter-spacing: -0.01em; color: #121212;
}
.ppaccess-paywall--preset-economist .ppaccess-paywall-cta {
	background: #1f3a5f; color: #fff; border-radius: 0; padding: 12px 24px;
	font-weight: 600; letter-spacing: .02em;
}
.ppaccess-paywall--preset-economist .ppaccess-paywall-card { border-top: 3px solid #e3120b; padding-top: 24px; }

/* Wall Street Journal: serif headline, blue Subscribe Now button, sharp corners */
.ppaccess-paywall--preset-wsj .ppaccess-paywall-heading {
	font-family: "Escrow", "Exchange", Georgia, serif; font-size: 30px; font-weight: 700; color: #000;
}
.ppaccess-paywall--preset-wsj .ppaccess-paywall-subhead { font-family: Georgia, serif; color: #5a5a5a; }
.ppaccess-paywall--preset-wsj .ppaccess-paywall-cta {
	background: #0274be; color: #fff; border-radius: 2px; padding: 12px 32px;
	font-weight: 700; text-transform: none;
}

/* Minimal: pill button, no card border, restrained type */
.ppaccess-paywall--preset-minimal .ppaccess-paywall-card { border: 0; box-shadow: none; padding: 16px 0; }
.ppaccess-paywall--preset-minimal .ppaccess-paywall-heading { font-weight: 600; font-size: 22px; }
.ppaccess-paywall--preset-minimal .ppaccess-paywall-cta {
	background: #000; color: #fff; border-radius: 999px; padding: 10px 28px; font-weight: 500;
}

/* FT Classic: single cream card, FT pink accent, slim button */
.ppaccess-paywall--preset-ft-classic { background: transparent; padding: 0; }
/* Hide the white fade-in pseudo-element from the base style — it conflicts
 * with the cream card background. */
.ppaccess-paywall--preset-ft-classic::before { display: none; }
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-card {
	background: #fff1e5;
	border: 0; box-shadow: none; border-radius: 0;
	padding: 40px 32px;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-icon {
	background: transparent; color: #990f3d;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-heading {
	font-family: "Financier Display", "Times New Roman", Georgia, serif;
	font-size: 28px; font-weight: 600; line-height: 1.2; color: #1d1d1b;
	margin-bottom: 10px;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-subhead {
	color: #66605c; font-size: 15px; line-height: 1.5; margin-bottom: 22px;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-cta {
	background: #990f3d; color: #fff;
	border-radius: 0; padding: 12px 28px;
	font-weight: 600; font-size: 14px; letter-spacing: 0;
	border: 0;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-cta:hover { background: #b30e3f; }
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-secondary {
	color: #66605c; font-size: 13px; margin-top: 14px;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-secondary a {
	color: #990f3d; text-decoration: underline;
}

/* FT Classic plan tiles — sit inside the same cream card, separated only by a hairline */
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-plans {
	background: transparent; padding: 24px 0 0;
	border-top: 1px solid #ddd5cc; margin-top: 24px;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-plan {
	background: #fff8f0; border: 1px solid #ddd5cc; border-radius: 0;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-plan-name {
	font-family: "Financier Display", Georgia, serif; color: #1d1d1b;
}
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-plan-price { color: #1d1d1b; }
.ppaccess-paywall--preset-ft-classic .ppaccess-paywall-plan-cta {
	background: #990f3d; color: #fff; border-radius: 0;
}

/* =========================================================================
 * Lead-in fade — the WSJ/NYT-style gradient where the last paragraph fades
 * into the page background. Color comes from --ppaccess-fade-color set
 * inline by the resolver from the admin setting, so it matches the theme.
 * ========================================================================= */
.ppaccess-paywall-leadin {
	position: relative;
	margin-bottom: -32px; /* pull the paywall card up into the fade for a smooth handoff */
	padding-bottom: 32px;
}
.ppaccess-paywall-leadin::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 60%;
	pointer-events: none;
	z-index: 2;
	background: linear-gradient(
		to bottom,
		transparent 0%,
		var(--ppaccess-fade-color, #ffffff) 100%
	);
}
.ppaccess-preview-frame .ppaccess-paywall--slideup {
	width: auto;
	min-height: 420px;
	margin: 0;
	padding: 64px 24px 80px;
}
.ppaccess-preview-frame .ppaccess-paywall--slideup .ppaccess-paywall-card {
	max-width: 420px;
}

.ppaccess-gift-checkout,
.ppaccess-gift-redemption {
	--ppaccess-gift-ink: #172033;
	--ppaccess-gift-muted: #667085;
	--ppaccess-gift-border: #d9e2ef;
	--ppaccess-gift-soft: #f6f8fc;
	--ppaccess-gift-surface: #ffffff;
	--ppaccess-gift-accent: #0f766e;
	--ppaccess-gift-gold: #b7791f;
	--ppaccess-gift-blue: #1d4ed8;
	box-sizing: border-box;
	padding: 48px 0;
	color: var(--ppaccess-gift-ink);
}
.ppaccess-gift-checkout {
	width: min(760px, calc(100% - 32px));
	margin: 0 auto;
}
.ppaccess-gift-redemption {
	display: grid;
	justify-items: center;
	gap: 22px;
	width: min(760px, calc(100% - 32px)) !important;
	max-width: 760px !important;
	margin: 0 auto !important;
	padding-top: clamp(36px, 7vw, 72px);
}
.ppaccess-gift-checkout *,
.ppaccess-gift-redemption * {
	box-sizing: border-box;
}
.ppaccess-gift-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: start;
}
.ppaccess-gift-main,
.ppaccess-gift-redeem-form,
.ppaccess-gift-code-form {
	display: grid;
	gap: 16px;
}
.ppaccess-gift-hero {
	position: relative;
	overflow: hidden;
	padding: 30px;
	border: 1px solid var(--ppaccess-gift-border);
	border-radius: 18px;
	background:
		linear-gradient(135deg, #ffffff 0%, #f8fbff 48%, #eff8f4 100%);
	box-shadow: 0 20px 50px rgba(23, 32, 51, 0.08);
}
.ppaccess-gift-hero::before,
.ppaccess-gift-review::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--ppaccess-gift-accent), var(--ppaccess-gift-gold), var(--ppaccess-gift-blue));
}
.ppaccess-gift-eyebrow,
.ppaccess-gift-review-kicker {
	margin: 0 0 8px;
	color: var(--ppaccess-gift-accent);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.ppaccess-gift-hero h2 {
	max-width: 620px;
	margin: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.08;
	color: var(--ppaccess-gift-ink);
}
.ppaccess-gift-section,
.ppaccess-gift-summary,
.ppaccess-gift-code-form,
.ppaccess-gift-redeem-form {
	position: relative;
	display: grid;
	gap: 16px;
	padding: 22px;
	border: 1px solid var(--ppaccess-gift-border);
	border-radius: 16px;
	background: var(--ppaccess-gift-surface);
	box-shadow: 0 14px 36px rgba(23, 32, 51, 0.06);
}
.ppaccess-gift-section::before {
	content: attr(data-step);
	position: absolute;
	top: 18px;
	right: 18px;
	display: grid;
	width: 34px;
	height: 34px;
	place-items: center;
	border: 1px solid #cfe8df;
	border-radius: 50%;
	background: #f0faf6;
	color: var(--ppaccess-gift-accent);
	font-size: 12px;
	font-weight: 800;
}
.ppaccess-section-heading {
	padding-right: 48px;
}
.ppaccess-section-heading h3,
.ppaccess-gift-summary h2,
.ppaccess-gift-review h3 {
	margin: 0;
	color: var(--ppaccess-gift-ink);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}
.ppaccess-gift-checkout .ppaccess-form label,
.ppaccess-gift-redemption .ppaccess-form label {
	display: grid;
	gap: 7px;
	margin: 0;
	color: var(--ppaccess-gift-ink);
	font-weight: 750;
}
.ppaccess-gift-checkout .ppaccess-form label span,
.ppaccess-gift-redemption .ppaccess-form label span {
	font-size: 13px;
	line-height: 1.3;
}
.ppaccess-gift-checkout .ppaccess-form input,
.ppaccess-gift-checkout .ppaccess-form select,
.ppaccess-gift-checkout .ppaccess-form textarea,
.ppaccess-gift-redemption .ppaccess-form input,
.ppaccess-gift-redemption .ppaccess-form select,
.ppaccess-gift-redemption .ppaccess-form textarea {
	width: 100%;
	min-height: 48px;
	border: 1px solid #cfd9e6;
	border-radius: 12px;
	padding: 12px 14px;
	background: #fbfcff;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
	color: #111827;
	font: inherit;
	transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.ppaccess-gift-checkout .ppaccess-form textarea,
.ppaccess-gift-redemption .ppaccess-form textarea {
	min-height: 118px;
	resize: vertical;
}
.ppaccess-gift-checkout .ppaccess-form input:focus,
.ppaccess-gift-checkout .ppaccess-form select:focus,
.ppaccess-gift-checkout .ppaccess-form textarea:focus,
.ppaccess-gift-redemption .ppaccess-form input:focus,
.ppaccess-gift-redemption .ppaccess-form select:focus,
.ppaccess-gift-redemption .ppaccess-form textarea:focus {
	outline: 0;
	border-color: var(--ppaccess-gift-accent);
	background: #ffffff;
	box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
}
.ppaccess-gift-checkout .ppaccess-form-grid,
.ppaccess-gift-redemption .ppaccess-form-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.ppaccess-gift-coupon-message {
	min-height: 18px;
	font-size: 13px;
	color: var(--ppaccess-gift-muted);
}
.ppaccess-gift-payment #ppaccess-gift-payment-element {
	min-height: 52px;
	padding: 10px;
	border: 1px dashed #cad6e4;
	border-radius: 14px;
	background: var(--ppaccess-gift-soft);
}
.ppaccess-gift-review {
	position: relative;
	top: auto;
	overflow: hidden;
	padding: 26px 22px 22px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 18px;
	background: #172033;
	color: #ffffff;
	box-shadow: 0 28px 70px rgba(23, 32, 51, 0.22);
}
.ppaccess-gift-review-kicker {
	color: #8dd7c8;
}
.ppaccess-gift-review h3 {
	margin-bottom: 22px;
	color: #ffffff;
	font-size: 26px;
	font-weight: 600;
}
.ppaccess-gift-review dl {
	display: grid;
	gap: 0;
	margin: 0;
}
.ppaccess-gift-review dl div {
	display: grid;
	grid-template-columns: 92px minmax(0, 1fr);
	gap: 12px;
	padding: 14px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.ppaccess-gift-review dt {
	color: #aeb8c7;
	font-size: 13px;
	font-weight: 700;
}
.ppaccess-gift-review dd {
	margin: 0;
	color: #ffffff;
	font-size: 14px;
	font-weight: 750;
	line-height: 1.35;
	text-align: right;
}
.ppaccess-gift-review-total {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin: 18px 0;
	padding: 18px 0 0;
	border-top: 1px solid rgba(255, 255, 255, 0.18);
}
.ppaccess-gift-review-total span {
	color: #aeb8c7;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
}
.ppaccess-gift-review-total strong {
	color: #ffffff;
	font-size: 24px;
	line-height: 1;
	text-align: right;
}
.ppaccess-gift-review-note {
	margin: 0 0 18px;
	color: #cbd5e1;
	font-size: 13px;
	line-height: 1.5;
}
.ppaccess-gift-review .ppaccess-button {
	width: 100%;
	min-height: 52px;
	border: 0;
	border-radius: 14px;
	background: #f6c453;
	color: #172033;
	font-weight: 900;
	box-shadow: 0 12px 28px rgba(246, 196, 83, 0.24);
}
.ppaccess-gift-review .ppaccess-button:hover,
.ppaccess-gift-review .ppaccess-button:focus {
	background: #ffd66e;
	color: #172033;
}
.ppaccess-gift-message {
	margin-bottom: 16px;
	padding: 14px 16px;
	border: 1px solid #bfdbfe;
	border-radius: 12px;
	background: #eff6ff;
	color: #1e3a8a;
	font-weight: 700;
}
.ppaccess-gift-message.is-success,
.ppaccess-gift-coupon-message.is-success {
	color: #166534;
}
.ppaccess-gift-coupon-message.is-pending {
	color: var(--ppaccess-gift-muted);
}
.ppaccess-gift-message.is-error,
.ppaccess-gift-coupon-message.is-error {
	color: #991b1b;
}
.ppaccess-gift-message.is-error {
	border-color: #fecaca;
	background: #fef2f2;
}
.ppaccess-gift-summary {
	margin-bottom: 18px;
	background:
		linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
}
.ppaccess-gift-summary p {
	margin: 0;
	color: var(--ppaccess-gift-muted);
}
.ppaccess-gift-summary blockquote {
	margin: 14px 0 0;
	padding: 12px 0 12px 16px;
	border-left: 4px solid var(--ppaccess-gift-accent);
	color: #334155;
	font-size: 18px;
	line-height: 1.45;
}
.ppaccess-gift-redemption .ppaccess-gift-message,
.ppaccess-gift-redemption .ppaccess-empty,
.ppaccess-gift-redemption .ppaccess-gift-summary,
.ppaccess-gift-redemption .ppaccess-gift-redeem-form {
	width: min(620px, 100%) !important;
	max-width: 620px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}
.ppaccess-gift-redemption .ppaccess-gift-summary {
	overflow: hidden;
	gap: 12px;
	padding: 34px 34px 30px;
	border-radius: 8px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .9)),
		linear-gradient(135deg, rgba(15, 118, 110, .12), rgba(183, 121, 31, .1));
	box-shadow: 0 24px 70px rgba(23, 32, 51, .1);
	text-align: center;
}
.ppaccess-gift-redemption .ppaccess-gift-summary::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 5px;
	background: linear-gradient(90deg, var(--ppaccess-gift-accent), var(--ppaccess-gift-gold), var(--ppaccess-gift-blue));
}
.ppaccess-gift-redemption .ppaccess-gift-summary h2 {
	max-width: 520px;
	margin: 0 auto;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	line-height: 1.1;
}
.ppaccess-gift-redemption .ppaccess-gift-summary p {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: center;
	min-height: 32px;
	margin: 4px 0 0;
	padding: 6px 12px;
	border: 1px solid #d9e2ef;
	border-radius: 999px;
	background: #ffffff;
	color: #475569;
	font-size: 14px;
	font-weight: 700;
}
.ppaccess-gift-redemption .ppaccess-gift-summary blockquote {
	width: min(500px, 100%);
	margin: 8px auto 0;
	padding: 18px 20px;
	border: 0;
	border-radius: 8px;
	background: #f8fafc;
	color: #263241;
	font-size: 17px;
	line-height: 1.55;
	text-align: left;
	box-shadow: inset 4px 0 0 var(--ppaccess-gift-accent);
}
.ppaccess-gift-personal-note {
	width: min(500px, 100%);
	margin: 16px auto 0;
	text-align: left;
}
.ppaccess-gift-personal-note > span {
	display: block;
	color: #64748b;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.3;
	text-transform: uppercase;
}
.ppaccess-gift-code-form {
	width: min(460px, 100%);
	margin: 0 auto;
	text-align: center;
}
.ppaccess-gift-code-form label {
	text-align: center;
}
.ppaccess-gift-code-form button[type="submit"],
.ppaccess-gift-redeem-form button[type="submit"] {
	min-height: 50px;
}
.ppaccess-gift-redemption .ppaccess-gift-redeem-form {
	gap: 18px;
	padding: 28px;
	border-radius: 8px;
	background: #ffffff;
	box-shadow: 0 20px 60px rgba(23, 32, 51, .08);
	justify-self: center;
}
.ppaccess-gift-redemption .ppaccess-gift-redeem-form button[type="submit"] {
	width: 100%;
	min-height: 54px;
	font-size: 15px;
	font-weight: 800;
}
.ppaccess-gift-code-form button[type="submit"] {
	justify-self: center;
	min-width: 180px;
}
.ppaccess-gift-code-form button[type="submit"]:disabled,
.ppaccess-gift-redeem-form button[type="submit"]:disabled {
	cursor: not-allowed;
	opacity: .6;
}
@media (max-width: 900px) {
	.ppaccess-gift-checkout,
	.ppaccess-gift-redemption {
		width: min(100% - 24px, 720px);
		padding: 32px 0;
	}
}
@media (max-width: 640px) {
	.ppaccess-gift-hero,
	.ppaccess-gift-section,
	.ppaccess-gift-summary,
	.ppaccess-gift-code-form,
	.ppaccess-gift-redeem-form,
	.ppaccess-gift-review {
		border-radius: 14px;
		padding: 18px;
	}
	.ppaccess-gift-hero h2 {
		font-size: 28px;
	}
	.ppaccess-gift-checkout .ppaccess-form-grid,
	.ppaccess-gift-redemption .ppaccess-form-grid,
	.ppaccess-gift-coupon-row {
		grid-template-columns: 1fr;
	}
	.ppaccess-gift-review dl div {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.ppaccess-gift-review dd {
		text-align: left;
	}
}

/* Gift subscriptions reuse the main checkout shell. Keep gift-specific rules
 * limited to fields and live summary content that regular checkout does not have.
 */
.ppaccess-gift-checkout.ppaccess-subscribe--template-full_page {
	width: 100vw;
	max-width: none;
	margin: 0 calc(50% - 50vw);
	padding: 0;
	color: #151515;
	font-family: inherit;
}
.ppaccess-gift-checkout .ppaccess-gift-form {
	display: block;
	max-width: 100%;
	margin: 0;
}
.ppaccess-gift-checkout .ppaccess-checkout-fullpage {
	min-height: clamp(760px, 78vh, 1080px);
}
.ppaccess-gift-checkout .ppaccess-checkout-form-wrap {
	width: min(640px, 100%);
}
.ppaccess-gift-checkout--template-default {
	max-width: 720px;
	margin: 32px auto;
	padding: 0 20px;
	color: #151515;
	font-family: inherit;
}
.ppaccess-gift-checkout--template-default .ppaccess-gift-form {
	display: block;
	max-width: 720px;
	margin: 0 auto;
}
.ppaccess-gift-checkout--template-default h2 {
	margin: 0 0 28px;
	color: #151515;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.18;
}
.ppaccess-gift-inline-summary {
	margin: 0 0 28px;
	padding: 20px;
	border: 1px solid #e2ded6;
	border-radius: 4px;
	background: #f5f4ef;
}
.ppaccess-gift-inline-summary .ppaccess-order-summary-panel {
	width: 100%;
	margin: 0;
}
.ppaccess-gift-inline-summary .ppaccess-order-summary-includes {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid #e2ded6;
}
.ppaccess-gift-checkout .ppaccess-form-field select,
.ppaccess-gift-checkout .ppaccess-form-field input[type=date],
.ppaccess-gift-checkout .ppaccess-form-field textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #fff;
	color: #1f2937;
	font-size: 14px;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ppaccess-gift-checkout .ppaccess-form-field select,
.ppaccess-gift-checkout .ppaccess-form-field input[type=date] {
	min-height: 42px;
}
.ppaccess-gift-checkout .ppaccess-form-field textarea {
	min-height: 116px;
	resize: vertical;
}
.ppaccess-gift-checkout .ppaccess-form-field select:focus,
.ppaccess-gift-checkout .ppaccess-form-field input[type=date]:focus,
.ppaccess-gift-checkout .ppaccess-form-field textarea:focus {
	outline: 0;
	border-color: #1e2747;
	box-shadow: 0 0 0 3px rgba(30, 39, 71, .12);
}
.ppaccess-gift-coupon-message {
	min-height: 18px;
	margin: 0;
	color: #555;
	font-size: 13px;
	line-height: 1.35;
}
.ppaccess-gift-coupon-message.is-success {
	color: #15803d;
}
.ppaccess-gift-coupon-message.is-pending {
	color: #64748b;
}
.ppaccess-gift-coupon-message.is-error {
	color: #b91c1c;
}
.ppaccess-gift-checkout .ppaccess-gift-card-element {
	min-height: 44px;
	margin: 0;
}
.ppaccess-gift-checkout .ppaccess-payment-choice .ppaccess-payment-element {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: #fff;
	min-height: 94px;
	padding: 18px 20px;
	text-align: center;
}
.ppaccess-gift-checkout .ppaccess-payment-choice .ppaccess-payment-element.is-ready {
	display: block;
	min-height: 0;
	padding: 16px 20px 20px;
	text-align: left;
}
.ppaccess-gift-checkout .ppaccess-gift-message {
	width: min(640px, calc(100% - 44px));
	margin: 20px auto;
	padding: 14px 16px;
	border: 1px solid #bfdbfe;
	border-radius: 6px;
	background: #eff6ff;
	color: #1e3a8a;
	font-size: 14px;
	font-weight: 600;
}
.ppaccess-gift-checkout .ppaccess-gift-message.is-success {
	border-color: #bbf7d0;
	background: #f0fdf4;
	color: #166534;
}
.ppaccess-gift-checkout .ppaccess-gift-message.is-error {
	border-color: #fecaca;
	background: #fef2f2;
	color: #991b1b;
}
.ppaccess-gift-message p {
	margin: 0;
}
.ppaccess-gift-message p + p {
	margin-top: 10px;
}
.ppaccess-gift-success-detail {
	display: grid;
	gap: 4px;
}
.ppaccess-gift-success-detail span {
	color: inherit;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	opacity: .72;
}
.ppaccess-gift-success-detail code,
.ppaccess-gift-success-detail a {
	overflow-wrap: anywhere;
	font-size: 13px;
	font-weight: 700;
}
.ppaccess-gift-success-note {
	color: #92400e;
	font-size: 13px;
	font-weight: 600;
}
.ppaccess-gift-checkout .ppaccess-gift-review {
	position: static;
	overflow: visible;
	align-items: flex-start;
	padding: clamp(40px, 6vw, 84px) clamp(28px, 5vw, 64px);
	border: 0;
	border-left: 1px solid #e2ded6;
	border-radius: 0;
	background: #f5f4ef;
	box-shadow: 100vmax 0 0 100vmax #f5f4ef;
	clip-path: inset(0 -100vmax 0 0);
	color: #151515;
}
.ppaccess-gift-checkout .ppaccess-gift-review::before {
	display: none;
}
.ppaccess-gift-checkout .ppaccess-gift-review h2 {
	color: #151515;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}
.ppaccess-gift-total {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-top: 24px;
	padding-top: 18px;
	border-top: 1px solid #e2ded6;
	color: #151515;
}
.ppaccess-gift-total span {
	color: #555;
	font-size: 13px;
	font-weight: 700;
}
.ppaccess-gift-total strong {
	color: #151515;
	font-size: 20px;
	text-align: right;
}
@media (max-width: 840px) {
	.ppaccess-gift-checkout .ppaccess-gift-review {
		border-left: 0;
		border-top: 1px solid #e2ded6;
		padding: 32px 22px 40px;
	}
}
@media (max-width: 540px) {
	.ppaccess-gift-checkout .ppaccess-gift-message {
		width: calc(100% - 40px);
	}
	.ppaccess-gift-total {
		flex-direction: column;
		gap: 4px;
	}
	.ppaccess-gift-total strong {
		text-align: left;
	}
}
