/* =========================================================================
   Duety theme styles — aligned to the original duety.app static stylesheet.
   ========================================================================= */

:root {
	--teal: #00897B;
	--teal-dark: #00796B;
	--teal-light: #E0F2F1;
	--teal-subtle: #F0FAF9;
	--text-dark: #1a2332;
	--text-body: #4a5568;
	--text-muted: #718096;
	--border: #E2E8F0;
	--shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
	--shadow-md: 0 4px 20px rgba(0,0,0,0.08);
	--shadow-lg: 0 12px 40px rgba(0,0,0,0.12);
	--shadow-phone: 0 20px 60px rgba(0,0,0,0.15);
}

body { -webkit-font-smoothing: antialiased; }

/* ---- Animations ---- */

@keyframes duety-fade-up {
	from { opacity: 0; transform: translateY(30px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes duety-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
.animate-in { opacity: 0; animation: duety-fade-up 0.7s ease forwards; }
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }

/* ---- Sticky header ---- */

.wp-site-blocks > header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.duety-header {
	background: rgba(255,255,255,0.92);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--border);
}
.duety-header .wp-block-site-title a {
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--text-dark);
}
.duety-header .wp-block-site-logo img { border-radius: 8px; }

/* Header CTA = outline button */
.duety-header .wp-block-button__link {
	background: transparent;
	border: 2px solid var(--teal);
	color: var(--teal);
	padding: 10px 22px;
	font-size: 0.88rem;
}
.duety-header .wp-block-button__link:hover {
	background: var(--teal-light);
	border-color: var(--teal-dark);
	color: var(--teal-dark);
}

/* ---- Buttons ---- */

.wp-block-button__link {
	transition: all 0.25s ease;
	box-shadow: 0 2px 8px rgba(0,137,123,0.3);
}
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 16px rgba(0,137,123,0.35);
}
.duety-btn-icon .wp-block-button__link::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-right: 8px;
	vertical-align: -4px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.199l2.302 2.302a1 1 0 0 1 0 1.38l-2.302 2.302L15.396 12l2.302-2.492zM5.864 2.658L16.8 8.99l-2.302 2.302-8.635-8.635z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.199l2.302 2.302a1 1 0 0 1 0 1.38l-2.302 2.302L15.396 12l2.302-2.492zM5.864 2.658L16.8 8.99l-2.302 2.302-8.635-8.635z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.duety-btn-white .wp-block-button__link {
	background: #fff;
	color: var(--teal);
	font-weight: 700;
	box-shadow: var(--shadow-md);
}
.duety-btn-white .wp-block-button__link:hover {
	background: #fff;
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
}

/* ---- Phone mockup ---- */

.phone-mockup {
	width: 280px;
	height: 580px;
	background: #1a1a1a;
	border-radius: 36px;
	padding: 12px;
	box-shadow: var(--shadow-phone);
	position: relative;
	margin: 0 auto;
	animation: duety-float 4s ease-in-out infinite;
}
.phone-mockup::before {
	content: '';
	position: absolute;
	top: 14px;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 6px;
	background: #333;
	border-radius: 3px;
	z-index: 2;
}
.phone-mockup .wp-block-image,
.phone-mockup figure {
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 26px;
	overflow: hidden;
	background: #fff;
}
.phone-mockup img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
.phone-mockup--slow { animation-duration: 5s; }

/* ---- Header alignment ---- */

.duety-header > .wp-block-group.alignwide,
.duety-header .wp-block-group.alignwide.is-layout-flex {
	align-items: center;
}

/* ---- Header logo (native Image + linked text) ---- */

.duety-logo-group { align-items: center; gap: 10px; }
.duety-logo-icon { margin: 0; }
.duety-logo-icon img { border-radius: 8px; display: block; }
.duety-logo-word { margin: 0; }
.duety-logo-word a {
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--text-dark);
}

/* ---- Header nav links ---- */

.duety-nav { align-items: center; gap: 32px; }
.duety-nav__links { gap: 32px; align-items: center; }
.duety-nav__links p { margin: 0; }
.duety-nav__links a {
	text-decoration: none;
	color: var(--text-body);
	font-weight: 500;
	transition: color 0.2s;
}
.duety-nav__links a:hover { color: var(--teal); }

/* ---- Eyebrow tag ---- */

.duety-eyebrow {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--teal);
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

/* ---- Cards (audiences / steps / features) ---- */

.duety-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 16px;
	transition: all 0.3s ease;
	height: 100%;
}
.duety-card:hover {
	border-color: var(--teal);
	box-shadow: var(--shadow-md);
	transform: translateY(-4px);
}

/* Audience emoji icons — tinted rounded squares, per-card colour */
.duety-card__emoji {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	line-height: 1;
}
.duety-audience .wp-block-column:nth-child(1) .duety-card__emoji { background: #FCE4EC; }
.duety-audience .wp-block-column:nth-child(2) .duety-card__emoji { background: #E8F5E9; }
.duety-audience .wp-block-column:nth-child(3) .duety-card__emoji { background: #E3F2FD; }

/* ---- Steps ---- */

.duety-step { text-align: center; }
.duety-step__number {
	width: 40px;
	height: 40px;
	background: var(--teal);
	color: #fff;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 1rem;
	margin-left: auto;
	margin-right: auto;
}

/* ---- Feature icons ---- */

.duety-feature__icon {
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 12px;
	background: var(--teal-light);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	line-height: 1;
}

/* ---- Fairness checklist ---- */

.duety-checklist ul { list-style: none; padding-left: 0; }
.duety-checklist li {
	position: relative;
	padding-left: 36px;
	margin-bottom: 16px;
	font-size: 0.95rem;
}
.duety-checklist li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 2px;
	width: 24px;
	height: 24px;
	background-color: var(--teal-light);
	border-radius: 6px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300897B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 14px;
	background-position: center;
	background-repeat: no-repeat;
}

/* ---- Pricing ---- */

.duety-price-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 20px;
	transition: all 0.3s ease;
	height: 100%;
}
.duety-price-card:hover { box-shadow: var(--shadow-md); }
.duety-price-card--premium { border: 2px solid var(--teal); }

.duety-price-card .duety-price {
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--teal);
}

.duety-badge {
	display: inline-block;
	background: var(--teal);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 5px 14px;
	border-radius: 20px;
}

.duety-price-card ul { list-style: none; padding-left: 0; }
.duety-price-card li {
	position: relative;
	padding: 8px 0 8px 28px;
	font-size: 0.9rem;
	color: var(--text-body);
}
.duety-price-card li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 10px;
	width: 18px;
	height: 18px;
	background-color: var(--teal-light);
	border-radius: 50%;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300897B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 11px;
	background-position: center;
	background-repeat: no-repeat;
}

/* ---- Footer (dark) ---- */

.duety-footer {
	background: var(--text-dark);
	color: rgba(255,255,255,0.5);
	font-size: 0.85rem;
}
.duety-footer p { color: rgba(255,255,255,0.5); }
.duety-footer a {
	color: rgba(255,255,255,0.5);
	text-decoration: none;
	transition: color 0.2s;
}
.duety-footer a:hover { color: rgba(255,255,255,0.9); }

/* ---- Cookie banner ---- */

.duety-cookie-banner {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	width: calc(100% - 48px);
	max-width: 600px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 16px;
	box-shadow: 0 8px 32px rgba(0,0,0,0.12);
	z-index: 9999;
	padding: 20px 24px;
	animation: duety-consent-slide-up 0.3s ease;
}
@keyframes duety-consent-slide-up {
	from { opacity: 0; transform: translateX(-50%) translateY(16px); }
	to { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.duety-cookie-banner__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}
.duety-cookie-banner__emoji { font-size: 24px; flex-shrink: 0; }
.duety-cookie-banner__copy { flex: 1; min-width: 200px; }
.duety-cookie-banner__copy strong {
	display: block;
	font-size: 15px;
	color: #1a1a1a;
	margin-bottom: 2px;
}
.duety-cookie-banner__copy p {
	font-size: 13px;
	color: #666;
	margin: 0;
	line-height: 1.4;
}
.duety-cookie-banner__actions { display: flex; gap: 8px; flex-shrink: 0; }
.duety-cookie-banner__actions button {
	padding: 9px 20px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 600;
	font-family: 'DM Sans', sans-serif;
	cursor: pointer;
	border: none;
	transition: opacity 0.15s;
}
.duety-cookie-banner__actions button:hover { opacity: 0.85; }
.duety-cookie-banner__accept { background: #00897B; color: #fff; }
.duety-cookie-banner__decline { background: #f0f0f0; color: #444; }

/* ---- Accessibility & motion ---- */

:focus-visible {
	outline: 3px solid var(--teal);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	.animate-in { opacity: 1; animation: none; }
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* ---- Responsive ---- */

@media (max-width: 600px) {
	.phone-mockup { width: 240px; height: 500px; }
}

/* ---- Blog ---- */

.duety-post-card { overflow: hidden; padding: 0; }
.duety-post-card .wp-block-post-featured-image { margin: 0; }
.duety-post-card .wp-block-post-featured-image img { display: block; }
.duety-post-card__cats a,
.duety-eyebrow a {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--teal);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	text-decoration: none;
}
.duety-post-card .wp-block-post-title a {
	text-decoration: none;
	color: var(--text-dark);
	transition: color 0.2s;
}
.duety-post-card .wp-block-post-title a:hover { color: var(--teal); }
.duety-post-card .wp-block-post-excerpt__more-link {
	font-weight: 600;
	text-decoration: none;
}

.duety-post-meta {
	color: var(--text-muted);
	font-size: 0.9rem;
	gap: 8px;
}
.duety-post-meta > *::after { content: '·'; margin-left: 8px; color: var(--border); }
.duety-post-meta > *:last-child::after { content: ''; }

/* Single post body typography */
.wp-block-post-content h2 { font-size: 1.7rem; margin-top: 2.5rem; }
.wp-block-post-content h3 { font-size: 1.25rem; margin-top: 2rem; }
.wp-block-post-content p { line-height: 1.75; }
.wp-block-post-content img { border-radius: 12px; }
.wp-block-post-content blockquote {
	border-left: 4px solid var(--teal);
	background: var(--teal-subtle);
	border-radius: 0 12px 12px 0;
	padding: 16px 24px;
	margin-left: 0;
}

.wp-block-post-navigation-link a {
	font-weight: 600;
	text-decoration: none;
}

/* Pagination */
.wp-block-query-pagination a,
.wp-block-query-pagination .wp-block-query-pagination-numbers .current {
	padding: 8px 14px;
	border-radius: 10px;
	text-decoration: none;
	font-weight: 600;
}
.wp-block-query-pagination .wp-block-query-pagination-numbers .current {
	background: var(--teal);
	color: #fff;
}

/* ---- Block style aliases (editor sidebar styles) ---- */

p.is-style-duety-eyebrow {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--teal);
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

.wp-block-group.is-style-duety-card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 16px;
	transition: all 0.3s ease;
}
.wp-block-group.is-style-duety-card:hover {
	border-color: var(--teal);
	box-shadow: var(--shadow-md);
	transform: translateY(-4px);
}

.wp-block-group.is-style-phone-mockup {
	width: 280px;
	height: 580px;
	background: #1a1a1a;
	border-radius: 36px;
	padding: 12px;
	box-shadow: var(--shadow-phone);
	position: relative;
	margin: 0 auto;
	animation: duety-float 4s ease-in-out infinite;
}
.wp-block-group.is-style-phone-mockup::before {
	content: '';
	position: absolute;
	top: 14px;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 6px;
	background: #333;
	border-radius: 3px;
	z-index: 2;
}
.wp-block-group.is-style-phone-mockup .wp-block-image,
.wp-block-group.is-style-phone-mockup figure {
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 26px;
	overflow: hidden;
	background: #fff;
}
.wp-block-group.is-style-phone-mockup img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

ul.is-style-duety-checklist {
	list-style: none;
	padding-left: 0;
}
ul.is-style-duety-checklist li {
	position: relative;
	padding-left: 36px;
	margin-bottom: 16px;
	font-size: 0.95rem;
}
ul.is-style-duety-checklist li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 2px;
	width: 24px;
	height: 24px;
	background-color: var(--teal-light);
	border-radius: 6px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300897B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 14px;
	background-position: center;
	background-repeat: no-repeat;
}

.wp-block-button.is-style-duety-play-icon .wp-block-button__link::before {
	content: '';
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-right: 8px;
	vertical-align: -4px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.199l2.302 2.302a1 1 0 0 1 0 1.38l-2.302 2.302L15.396 12l2.302-2.492zM5.864 2.658L16.8 8.99l-2.302 2.302-8.635-8.635z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 0 1-.61-.92V2.734a1 1 0 0 1 .609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.199l2.302 2.302a1 1 0 0 1 0 1.38l-2.302 2.302L15.396 12l2.302-2.492zM5.864 2.658L16.8 8.99l-2.302 2.302-8.635-8.635z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-button.is-style-duety-white .wp-block-button__link {
	background: #fff;
	color: var(--teal);
	font-weight: 700;
	box-shadow: var(--shadow-md);
}
.wp-block-button.is-style-duety-white .wp-block-button__link:hover {
	background: #fff;
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
}

/* ---- Footer social icons ---- */

.duety-social .wp-social-link {
	transition: transform 0.2s ease;
}
.duety-social .wp-social-link svg { opacity: 0.5; transition: opacity 0.2s; }
.duety-social .wp-social-link:hover svg { opacity: 0.9; }
.duety-social .wp-social-link:hover { transform: translateY(-2px); }

/* ---- Fixes: constrained-layout icon centering + hero subtitle width ---- */

.is-layout-constrained > .duety-card__emoji,
.is-layout-constrained > .duety-feature__icon,
.is-layout-constrained > .duety-badge {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.hero-subtitle {
	max-width: 460px;
}

/* Centered section subtitles cap at 560px like the original .section-header */
.is-layout-constrained > p.has-text-align-center.has-text-muted-color {
	max-width: 560px !important;
}

/* ---- v1.2.1 fixes ---- */

/* Logo (theme-bundled, no site settings required) */
.duety-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--text-dark);
}
.duety-logo img { width: 36px; height: 36px; border-radius: 8px; display: block; }

/* No root block-gap between header / main / footer */
.wp-site-blocks > main,
.wp-site-blocks > footer,
.wp-site-blocks > header {
	margin-block-start: 0;
}

/* ---- v1.2.2 fixes ---- */

/* No block-gap between full-width sections inside main */
main.wp-block-group > .alignfull {
	margin-block-start: 0 !important;
}

/* =========================================================================
   v1.3.0 — Mobile parity with the original duety.app breakpoints
   ========================================================================= */

/* Tablet range: steps in a 2x2 grid like the original 600-900px rules */
@media (min-width: 601px) and (max-width: 781px) {
	#how-it-works .wp-block-columns {
		flex-wrap: wrap !important;
	}
	#how-it-works .wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 12px) !important;
	}
}

/* Stacked layout (WP columns stack at 781px) */
/* Header: hide nav links on mobile (no hamburger), keep the Get the App button */
@media (max-width: 900px) {
	.duety-header .duety-nav__links {
		display: none;
	}
}

@media (max-width: 781px) {
	/* Hero: gap between the CTA and the phone mockup when stacked */
	.has-hero-gradient-background .wp-block-columns > .wp-block-column:first-child {
		margin-bottom: 48px;
	}

	/* Hero: centered text, subtitle, and CTA */
	.has-hero-gradient-background .wp-block-column {
		text-align: center;
	}
	.has-hero-gradient-background .hero-subtitle {
		margin-left: auto;
		margin-right: auto;
	}
	.has-hero-gradient-background .wp-block-buttons {
		justify-content: center;
	}

	/* Fairness: centered section, checklist stays left-readable */
	.duety-fairness .wp-block-column {
		text-align: center;
	}
	.duety-fairness .duety-checklist {
		text-align: left;
		max-width: 480px;
		margin-left: auto;
		margin-right: auto;
	}

	/* Single-column cards capped and centered like the original grids */
	.duety-audience .duety-card,
	#features .duety-card {
		max-width: 400px;
		margin-left: auto;
		margin-right: auto;
	}
	.duety-price-card {
		max-width: 360px;
		margin-left: auto;
		margin-right: auto;
	}
}

@media (max-width: 600px) {
	#how-it-works .duety-card {
		max-width: 340px;
		margin-left: auto;
		margin-right: auto;
	}

	/* Footer: stacked and centered (override core flex layout) */
	.duety-footer .wp-block-group.alignwide.is-layout-flex,
	.duety-footer .wp-block-group.alignwide {
		flex-direction: column !important;
		justify-content: center !important;
		align-items: center !important;
		text-align: center;
		gap: 14px;
	}
	.duety-footer .wp-block-group.alignwide > .wp-block-group.is-layout-flex,
	.duety-footer .wp-block-group.alignwide > .wp-block-group {
		flex-direction: column !important;
		align-items: center !important;
		gap: 12px;
	}
}

/* Admin bar is position:absolute (scrolls away) at <=600px, so don't offset */
@media (max-width: 600px) {
	.wp-site-blocks > header {
		top: 0;
	}
}

/* ---- Google Play badge (anchor in sticky bar, Button block in content) ---- */

a.duety-play-badge,
.wp-block-button.duety-play-badge > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: #1a1a1a;
	color: #fff;
	text-decoration: none;
	padding: 12px 22px;
	border-radius: 12px;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
a.duety-play-badge::before,
.wp-block-button.duety-play-badge > .wp-block-button__link::before {
	content: '';
	width: 18px;
	height: 20px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 1.8a1 1 0 0 0-.6.9v18.6a1 1 0 0 0 .6.9l10.2-10.2L3.6 1.8zm11 9.1 2.3 2.3-10.9 6.3 8.6-8.6zm3.2-3.2 2.3 2.3a1 1 0 0 1 0 1.4l-2.3 2.3L15.4 12l2.4-2.5zM5.9 2.7 16.8 9l-2.3 2.3-8.6-8.6z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 1.8a1 1 0 0 0-.6.9v18.6a1 1 0 0 0 .6.9l10.2-10.2L3.6 1.8zm11 9.1 2.3 2.3-10.9 6.3 8.6-8.6zm3.2-3.2 2.3 2.3a1 1 0 0 1 0 1.4l-2.3 2.3L15.4 12l2.4-2.5zM5.9 2.7 16.8 9l-2.3 2.3-8.6-8.6z'/%3E%3C/svg%3E") center / contain no-repeat;
}
a.duety-play-badge:hover,
.wp-block-button.duety-play-badge > .wp-block-button__link:hover {
	background: #000;
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 6px 18px rgba(0,0,0,0.22);
}
a.duety-play-badge--light,
.wp-block-button.duety-play-badge--light > .wp-block-button__link {
	background: #fff;
	color: #1a1a1a;
}
a.duety-play-badge--light:hover,
.wp-block-button.duety-play-badge--light > .wp-block-button__link:hover {
	background: #fff;
	color: #000;
}

/* ---- Hero CTA + fairness float ---- */

.duety-hero-cta__note {
	font-size: 0.85rem;
	color: var(--text-muted);
	font-weight: 500;
}

.duety-hero-visual { position: relative; display: inline-block; }
.duety-hero-visual .phone-mockup { margin: 0; }

.duety-fairness-float {
	position: absolute;
	left: -36px;
	bottom: 96px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(0,105,92,0.18);
	padding: 14px 18px;
	width: 188px;
	display: flex;
	flex-direction: column;
	gap: 7px;
	animation: duety-float 4s ease-in-out infinite;
	animation-delay: 0.5s;
}
.duety-fairness-float > * { margin-block: 0; }
.duety-fairness-float p { margin: 0; }
.duety-fairness-float__label {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--teal);
}
.duety-fairness-float__bar {
	height: 8px;
	min-height: 8px;
	border-radius: 4px;
	background: var(--teal-light);
	overflow: hidden;
	position: relative;
}
.duety-fairness-float__bar::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 88%;
	background: linear-gradient(90deg, var(--teal), var(--teal-dark));
	border-radius: 4px;
}
.duety-fairness-float__value { font-size: 0.8rem; font-weight: 600; color: var(--ink, #1a2332); }

.duety-cta-badge { display: flex; justify-content: center; margin-top: 35px; }

@media (max-width: 781px) {
	.duety-fairness-float { left: 0; bottom: 24px; }
}
@media (max-width: 480px) {
	.duety-fairness-float { display: none; }
}

/* ---- Testimonials ---- */

.duety-rating {
	margin-top: 18px;
	font-size: 0.98rem;
	color: var(--text-body);
}
.duety-rating mark { background: transparent; letter-spacing: 2px; font-size: 1.1rem; }
.duety-rating em { color: var(--text-muted); font-style: italic; font-size: 0.85rem; }

.duety-testimonial {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.duety-testimonial::before {
	content: "\201C";
	font-family: 'Bricolage Grotesque', sans-serif;
	font-size: 2.75rem;
	line-height: 1;
	height: 0.7em;
	color: var(--teal-light);
}
.duety-testimonial__text {
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.6;
	color: var(--text-dark);
}
.duety-testimonial__cite {
	margin: 0;
	margin-top: auto;
	padding-top: 4px;
	color: var(--text-muted);
}
.duety-testimonial__cite strong { display: block; color: var(--text-dark); }

/* ---- Pricing price + notes ---- */

.duety-price__amount { font-size: 2.2rem; }
.duety-price__period { font-size: 1rem; color: var(--text-muted); font-weight: 600; }
.duety-price-sub { margin-top: -8px !important; }
.duety-price-note {
	margin-top: 16px !important;
	color: var(--text-muted);
	display: flex;
	align-items: center;
	gap: 6px;
}

/* ---- FAQ accordion (native core Details blocks) ---- */

.duety-faq { margin-top: var(--wp--preset--spacing--50); display: flex; flex-direction: column; gap: 12px; }
.wp-block-details.duety-faq__item {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
	margin-right: 0;
	box-sizing: border-box;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: 14px;
	padding: 0 22px;
	transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.wp-block-details.duety-faq__item[open] { border-color: var(--teal); box-shadow: var(--shadow-md); }
.wp-block-details.duety-faq__item summary {
	list-style: none;
	cursor: pointer;
	font-family: 'Bricolage Grotesque', sans-serif;
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--text-dark);
	padding: 20px 36px 20px 0;
	position: relative;
}
.wp-block-details.duety-faq__item summary::-webkit-details-marker { display: none; }
.wp-block-details.duety-faq__item summary::marker { content: ''; }
.wp-block-details.duety-faq__item summary::before,
.wp-block-details.duety-faq__item summary::after {
	content: '';
	position: absolute;
	top: 50%;
	background: var(--teal);
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}
.wp-block-details.duety-faq__item summary::before { right: 2px; width: 16px; height: 2px; transform: translateY(-50%); }
.wp-block-details.duety-faq__item summary::after { right: 9px; width: 2px; height: 16px; transform: translateY(-50%); }
.wp-block-details.duety-faq__item[open] summary::after { transform: translateY(-50%) rotate(90deg); opacity: 0; }
.wp-block-details.duety-faq__item p { margin: 0 0 20px; color: var(--text-body); line-height: 1.7; }

@media (prefers-reduced-motion: reduce) {
	.wp-block-details.duety-faq__item summary::before,
	.wp-block-details.duety-faq__item summary::after { transition: none; }
}

/* ---- Mobile sticky download bar ---- */

.duety-sticky-cta { display: none; }

@media (max-width: 781px) {
	.duety-sticky-cta {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 900;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
		background: rgba(255,255,255,0.96);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
		border-top: 1px solid var(--border);
		box-shadow: 0 -6px 20px rgba(26,46,43,0.10);
		transform: translateY(100%);
		transition: transform 0.3s ease;
	}
	.duety-sticky-cta.is-visible { transform: translateY(0); }
	.duety-sticky-cta__app { display: flex; align-items: center; gap: 10px; min-width: 0; }
	.duety-sticky-cta__app img { border-radius: 8px; flex-shrink: 0; }
	.duety-sticky-cta__name {
		display: flex;
		flex-direction: column;
		font-family: 'Bricolage Grotesque', sans-serif;
		font-weight: 700;
		color: var(--text-dark);
		line-height: 1.1;
	}
	.duety-sticky-cta__name small { font-family: 'DM Sans', sans-serif; font-weight: 500; font-size: 0.72rem; color: var(--text-muted); }
	.duety-sticky-cta .duety-play-badge { padding: 8px 14px; }
}

@media (prefers-reduced-motion: reduce) {
	.duety-sticky-cta { transition: none; }
}


/* ---- Legal pages: teal title + section headings (matches the app site) ---- */

.duety-legal-page .wp-block-post-title,
.duety-legal-page .wp-block-post-content :is(h2, h3) {
	color: var(--teal);
}
