/* ==========================================================================
   Delta Post Widgets — shared styles for all templates
   Everything is scoped under .dpw so it can't leak into the theme.
   ========================================================================== */

.dpw {
	--dpw-orange: #ff5000;
	--dpw-gray: #707071;
	--dpw-navy: #0e1627;
	--dpw-white: #ffffff;
	--dpw-border: #e5e7eb;
	--dpw-bg: #f8f9fa;
	--dpw-green: #22c55e;

	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	font-size: 15px;
	line-height: 1.5;
	margin: 32px 0;
	clear: both;
}

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

.dpw a,
.dpw a:hover,
.dpw a:focus,
.dpw a:active {
	text-decoration: none !important;
	box-shadow: none !important;
}

/* ---------- Shared text bits ---------- */

.dpw .dpw-title {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 4px;
}

.dpw .dpw-sub {
	font-size: 14px;
	margin: 0;
}

/* ---------- Buttons & links ---------- */

.dpw a.dpw-btn {
	display: inline-block;
	padding: 12px 28px;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	white-space: nowrap;
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.dpw a.dpw-btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
}

.dpw a.dpw-btn--orange,
.dpw a.dpw-btn--orange:hover,
.dpw a.dpw-btn--orange:focus,
.dpw a.dpw-btn--orange:active,
.dpw a.dpw-btn--orange:visited {
	background: var(--dpw-orange) !important;
	color: var(--dpw-white) !important;
}

.dpw a.dpw-btn--white,
.dpw a.dpw-btn--white:hover,
.dpw a.dpw-btn--white:focus,
.dpw a.dpw-btn--white:active,
.dpw a.dpw-btn--white:visited {
	background: var(--dpw-white) !important;
	color: var(--dpw-orange) !important;
}

.dpw a.dpw-btn--block {
	display: block;
	margin-top: 16px;
	padding: 12px;
}

.dpw a.dpw-btn--sm {
	padding: 10px 20px;
}

.dpw a.dpw-link,
.dpw a.dpw-link:hover,
.dpw a.dpw-link:focus,
.dpw a.dpw-link:visited {
	color: var(--dpw-orange) !important;
	font-weight: 500;
}

.dpw a.dpw-link:hover {
	text-decoration: underline !important;
}

/* ---------- CTA bars (templates 01, 03) ---------- */

.dpw-cta-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 24px 28px;
	border-radius: 8px;
	background: var(--dpw-navy);
}

.dpw-cta-bar--orange {
	background: var(--dpw-orange);
}

.dpw-cta-bar .dpw-title {
	color: var(--dpw-white);
}

.dpw-cta-bar .dpw-sub {
	color: rgba(255, 255, 255, 0.7);
}

.dpw-cta-bar--orange .dpw-sub {
	color: rgba(255, 255, 255, 0.85);
}

/* ---------- Inline CTA + Pro tip (templates 02, 06) ---------- */

.dpw-inline-cta,
.dpw-tip {
	background: var(--dpw-bg);
	border-left: 3px solid var(--dpw-orange);
}

.dpw-inline-cta {
	padding: 16px 20px;
	color: var(--dpw-gray);
	font-size: 15px;
}

.dpw-inline-cta a.dpw-link {
	margin-left: 6px;
}

.dpw-tip {
	padding: 20px 24px;
}

.dpw-tip__title {
	margin: 0 0 8px;
	color: var(--dpw-navy);
	font-size: 15px;
	font-weight: 600;
}

.dpw-tip__body {
	margin: 0;
	color: var(--dpw-gray);
	font-size: 15px;
	line-height: 1.7;
}

/* ---------- Phone bar (template 04) ---------- */

.dpw-phone {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 20px 24px;
	border-radius: 8px;
	background: var(--dpw-navy);
}

.dpw-phone__main {
	display: flex;
	align-items: center;
	gap: 14px;
}

.dpw-phone__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--dpw-orange);
	font-size: 20px;
	line-height: 1;
}

.dpw-phone__label {
	color: rgba(255, 255, 255, 0.6);
	font-size: 12px;
}

.dpw a.dpw-phone__number,
.dpw a.dpw-phone__number:hover,
.dpw a.dpw-phone__number:focus,
.dpw a.dpw-phone__number:visited {
	display: block;
	color: var(--dpw-white) !important;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.dpw-phone__hours {
	color: rgba(255, 255, 255, 0.5);
	font-size: 12px;
}

/* ---------- Stats row (template 05) ---------- */

.dpw-stats {
	display: flex;
	overflow: hidden;
	border: 1px solid var(--dpw-border);
	border-radius: 8px;
	background: var(--dpw-white);
}

.dpw-stats__item {
	flex: 1;
	padding: 20px 16px;
	border-right: 1px solid var(--dpw-border);
	text-align: center;
}

.dpw-stats__item:last-child {
	border-right: 0;
}

.dpw-stats__num {
	margin: 0 0 4px;
	color: var(--dpw-orange);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
}

.dpw-stats__label {
	margin: 0;
	color: var(--dpw-gray);
	font-size: 13px;
}

/* ---------- Qualification checklist (template 07) ---------- */

.dpw-check {
	overflow: hidden;
	border: 1px solid var(--dpw-border);
	border-radius: 8px;
	background: var(--dpw-white);
}

.dpw-check__head {
	padding: 14px 20px;
	background: var(--dpw-navy);
	color: var(--dpw-white);
	font-size: 15px;
	font-weight: 600;
}

.dpw-check__body {
	padding: 16px 20px;
}

.dpw-check__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dpw-check__item {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 10px 0;
	border-bottom: 1px solid var(--dpw-border);
	color: var(--dpw-navy);
	font-size: 15px;
}

.dpw-check__item:last-child {
	border-bottom: 0;
}

.dpw-check__mark {
	color: var(--dpw-green);
	font-weight: 700;
}

/* ---------- Testimonial (template 08) ---------- */

.dpw-quote {
	padding-left: 20px;
	border-left: 3px solid var(--dpw-orange);
}

.dpw .dpw-quote__text {
	margin: 0 0 12px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--dpw-navy);
	font-size: 16px;
	font-style: italic;
	line-height: 1.7;
	quotes: none;
}

.dpw .dpw-quote__text::before,
.dpw .dpw-quote__text::after {
	content: none;
}

.dpw-quote__by {
	margin: 0;
	color: var(--dpw-gray);
	font-size: 14px;
}

/* ---------- Comparison table (template 09) ---------- */

.dpw-compare {
	overflow-x: auto;
	border: 1px solid var(--dpw-border);
	border-radius: 8px;
	background: var(--dpw-white);
}

.dpw-compare table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.dpw-compare th,
.dpw-compare td {
	padding: 12px 16px;
	border: 0;
	background: transparent;
	font-size: 14px;
	text-align: center;
}

.dpw-compare th:first-child,
.dpw-compare td:first-child {
	text-align: left;
}

.dpw-compare thead tr {
	background: var(--dpw-navy);
}

.dpw-compare th {
	color: var(--dpw-white);
	font-weight: 600;
}

.dpw-compare th.is-accent {
	color: var(--dpw-orange);
}

.dpw-compare tbody tr:nth-child(odd) {
	background: var(--dpw-white);
}

.dpw-compare tbody tr:nth-child(even) {
	background: var(--dpw-bg);
}

.dpw-compare td {
	color: var(--dpw-gray);
}

.dpw-compare td:first-child {
	color: var(--dpw-navy);
	font-weight: 500;
}

/* ---------- Text-only CTA (template 10) ---------- */

.dpw-text-cta {
	padding: 24px;
	border-radius: 8px;
	background: var(--dpw-bg);
	text-align: center;
}

.dpw-text-cta__lead {
	margin: 0 0 8px;
	color: var(--dpw-navy);
	font-size: 16px;
}

.dpw a.dpw-text-cta__link,
.dpw a.dpw-text-cta__link:visited,
.dpw a.dpw-text-cta__link:focus,
.dpw a.dpw-text-cta__link:hover {
	color: var(--dpw-orange) !important;
	font-size: 16px;
	font-weight: 600;
}

/* ---------- Sticky bottom bar (template 11) ----------
   The article keeps a normal inline bar. templates.js also places a copy in
   <body> (so Elementor wrappers can't break position:fixed) and shows that
   copy while the inline bar is off-screen. */

.dpw-sticky__bar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border: 1px solid var(--dpw-border);
	border-radius: 8px;
	background: var(--dpw-white);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.dpw-sticky__title {
	color: var(--dpw-navy);
	font-size: 14px;
	font-weight: 600;
}

.dpw-sticky__sub {
	color: var(--dpw-gray);
	font-size: 12px;
}

.dpw .dpw-sticky__close {
	display: none;
	position: absolute;
	top: -12px;
	right: 12px;
	width: 24px;
	height: 24px;
	min-height: 0;
	margin: 0;
	padding: 0 !important;
	border: 1px solid var(--dpw-border) !important;
	border-radius: 50% !important;
	background: var(--dpw-white) !important;
	box-shadow: none !important;
	color: var(--dpw-gray) !important;
	font-size: 16px;
	line-height: 1;
	cursor: pointer;
}

.dpw.dpw-sticky-fixed {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 99999;
	margin: 0;
	padding: 0 12px;
	visibility: hidden;
	transform: translateY(110%);
	transition: transform 0.3s ease, visibility 0s linear 0.3s;
	pointer-events: none;
}

.dpw.dpw-sticky-fixed.is-visible {
	visibility: visible;
	transform: none;
	transition: transform 0.3s ease;
}

.dpw-sticky-fixed .dpw-sticky__bar {
	max-width: 720px;
	margin: 0 auto;
	border-bottom: 0;
	border-radius: 8px 8px 0 0;
	box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
	pointer-events: auto;
}

.dpw-sticky-fixed .dpw-sticky__close {
	display: block;
}

@media (max-width: 768px) {
	.dpw.dpw-sticky-fixed {
		padding: 0;
	}

	.dpw-sticky-fixed .dpw-sticky__bar {
		max-width: none;
		border-width: 1px 0 0;
		border-radius: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.dpw.dpw-sticky-fixed,
	.dpw.dpw-sticky-fixed.is-visible {
		transition: none;
	}
}

/* ---------- Small screens ---------- */

@media (max-width: 600px) {
	.dpw-cta-bar {
		padding: 20px;
	}

	.dpw-cta-bar a.dpw-btn {
		width: 100%;
	}

	.dpw-tip {
		padding: 16px 18px;
	}
}

@media (max-width: 480px) {
	.dpw-stats__item {
		padding: 16px 8px;
	}

	.dpw-stats__num {
		font-size: 20px;
	}

	.dpw-stats__label {
		font-size: 12px;
	}
}

/* ---------- Trustpilot TrustBox templates (12-14) ---------- */

.dpw-trustpilot .trustpilot-widget {
	width: 100%;
}

/* data-theme="dark" widgets use white text: give them a dark panel so they're visible. */
.dpw-trustpilot--dark {
	padding: 12px 16px;
	border-radius: 8px;
	background: var(--dpw-navy);
}

/* data-theme="light" widgets use dark text: keep them on white even inside coloured sections. */
.dpw-trustpilot--light {
	border-radius: 8px;
	background: var(--dpw-white);
}
