/* PixelTaken: styles the free Elementor editor has no controls for.
   Selectors that must beat Elementor's per-element rules (three classes) start with
   ".elementor .elementor-element". */

/* --- base ---------------------------------------------------------------- */

html {
	scroll-behavior: smooth;
}

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

/* In-page links land below the sticky header. */
[id] {
	scroll-margin-top: 76px;
}

.elementor-widget-text-editor p:first-child {
	margin-top: 0;
}

.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/* Elementor leaves the icon in a text line box, which makes every icon 7px taller than drawn. */
.elementor-widget-icon .elementor-icon-wrapper {
	line-height: 0;
}

/* Line length caps, as in the design. The "c" variants also centre the text block. */
.pt-w42 p { max-width: 42ch; }
.pt-w46 p { max-width: 46ch; }
.pt-w46c p { max-width: 46ch; margin-inline: auto; }
.pt-w50c p { max-width: 50ch; margin-inline: auto; }
.pt-w52 p { max-width: 52ch; }
.pt-w56c p { max-width: 56ch; margin-inline: auto; }
.pt-w58c p { max-width: 58ch; margin-inline: auto; }

.pt-nowrap,
.pt-nowrap .elementor-heading-title {
	white-space: nowrap;
}

.pt-pretty .elementor-heading-title {
	text-wrap: pretty;
}

.pt-balance .elementor-heading-title {
	text-wrap: balance;
}

/* The design's `flex: 1; min-width: N`: columns share a row evenly and wrap once they would
   get narrower than N. Elementor has no flex-basis or min-width control for containers. */
.elementor .elementor-element.pt-col {
	--width: auto;
	--flex-basis: 0%;
	--flex-grow: 1;
	--flex-shrink: 1;
	min-width: min(100%, var(--pt-col-min, 300px));
}

.elementor .elementor-element.pt-col-320 { --pt-col-min: 320px; }
.elementor .elementor-element.pt-col-340 { --pt-col-min: 340px; }

/* "Modules / Time Tracker" above a module page's heading. */
.pt-crumbs p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
}

.elementor .pt-crumbs a {
	color: inherit;
}

.elementor .pt-crumbs a:hover {
	color: #c4185c;
}

.pt-crumbs [aria-current] {
	color: #13131b;
}

/* Items separated by dots. The row is pulled left by one gap and clipped, so the dot of an
   item that starts a wrapped line is hidden instead of dangling at the edge. */
.pt-dots {
	--pt-dots-gap: 32px;
	overflow: hidden;
}

.pt-dots p,
.pt-dots__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	row-gap: 10px;
	margin-left: calc(-1 * var(--pt-dots-gap));
}

.pt-dots p > *,
.pt-dots__row > * {
	position: relative;
	margin-left: var(--pt-dots-gap);
}

.pt-dots p > *::before,
.pt-dots__row > *::before {
	content: "";
	position: absolute;
	top: 50%;
	left: calc(var(--pt-dots-gap) / -2 - 2px);
	width: 4px;
	height: 4px;
	margin-top: -2px;
	border-radius: 50%;
	background: #cfcfda;
}

/* Cards that lift on hover. */
.elementor .elementor-element.pt-lift {
	transition: transform .2s, border-color .2s, box-shadow .2s;
}

.elementor .elementor-element.pt-lift:hover {
	transform: translateY(-3px);
	border-color: #e01e6a;
	box-shadow: 0 24px 46px -26px rgba(224, 30, 106, .42);
}

.elementor .elementor-element.pt-lift--dark:hover {
	box-shadow: 0 26px 48px -24px rgba(224, 30, 106, .5);
}

.elementor .elementor-element.pt-lift--small {
	transition-duration: .18s;
}

.elementor .elementor-element.pt-lift--small:hover {
	transform: translateY(-2px);
	box-shadow: 0 16px 30px -18px rgba(224, 30, 106, .55);
}

/* "Learn more" under a feature row: the link itself is padded to a tap target of about 26px. */
.pt-more .elementor-heading-title a {
	display: inline-block;
	padding: 4px 0;
}

/* "Learn more" stays at the foot of a card however long the text above it is (Elementor's own
   margin control has no "auto"). */
.elementor .elementor-element.pt-learn-more {
	margin-top: auto;
}

.elementor .elementor-element.pt-lift--plain:hover {
	border-color: #ececf3;
	box-shadow: 0 14px 34px -26px rgba(22, 22, 50, .3);
}

/* Soft pink glows on dark blocks. Elementor only offers centred radial gradients. */
.pt-glow::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.pt-glow > * {
	position: relative;
	z-index: 1;
}

.pt-glow--corner::after { background: radial-gradient(46% 60% at 80% 12%, rgba(224, 30, 106, .22), transparent 70%); }
.pt-glow--card::after { background: radial-gradient(60% 50% at 78% 8%, rgba(224, 30, 106, .28), transparent 70%); }
.pt-glow--cta::after { background: radial-gradient(60% 80% at 50% 0%, rgba(224, 30, 106, .4), transparent 65%); }
.pt-glow--madeby::after { background: radial-gradient(52% 62% at 50% 46%, rgba(224, 30, 106, .16), transparent 70%); }
.pt-glow--demo::after { background: radial-gradient(50% 60% at 50% 45%, rgba(224, 30, 106, .32), transparent 70%); }

/* A section whose decoration bleeds sideways must not make the page scroll horizontally. */
.elementor .elementor-element.pt-clip {
	overflow-x: clip;
}

@supports not (overflow-x: clip) {
	.elementor .elementor-element.pt-clip {
		overflow: hidden;
	}
}

/* The colour wash behind a screenshot; it spills outside its box on purpose. */
.pt-wash::after {
	content: "";
	position: absolute;
	z-index: 0;
	pointer-events: none;
}

.pt-wash > * {
	position: relative;
	z-index: 1;
}

.pt-wash--hero::after {
	inset: -12% -8% -16% -8%;
	background:
		radial-gradient(60% 60% at 70% 25%, rgba(224, 30, 106, .18), transparent 70%),
		radial-gradient(50% 50% at 20% 90%, rgba(56, 189, 248, .16), transparent 70%);
	filter: blur(8px);
}

.pt-wash--pink::after {
	inset: -8% -6% -12% -6%;
	background: radial-gradient(58% 58% at 62% 40%, rgba(224, 30, 106, .16), transparent 70%);
}

/* The dot in the "For Windows · macOS · Ubuntu" pill. */
.pt-pill .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: 9px;
}

.pt-pill .elementor-heading-title::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #e01e6a;
}

/* "✓ Installs in one click · No account needed · …" */
.pt-facts .pt-ok {
	color: #0b8048; /* 5:1 on white; the design's #16b669 was 2.7:1 */
}

.pt-drop-shadow img {
	filter: drop-shadow(0 14px 26px rgba(22, 22, 50, .24));
}

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

/* Sticky bar. The header plugin sets `.ehf-header #masthead { position: relative }`,
   so these selectors carry the extra `body` to win. */
body.ehf-header #masthead {
	position: sticky;
	top: 0;
	z-index: 50;
}

body.ehf-header.admin-bar #masthead {
	top: 32px;
}

@media (max-width: 782px) {
	body.ehf-header.admin-bar #masthead {
		top: 46px;
	}
}

/* Below 600px the WordPress toolbar scrolls away with the page. */
@media (max-width: 600px) {
	body.ehf-header.admin-bar #masthead {
		top: 0;
	}
}

.pt-header {
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.pt-header .pt-menu-login {
	display: none;
}

.pt-header nav.hfe-dropdown .pt-menu-login {
	display: block;
}

/* The hidden "Log in" item is the last child, so the visible last link would keep its spacing. */
.pt-header nav:not(.hfe-dropdown) .hfe-nav-menu > li:has(+ .pt-menu-login) {
	margin-right: 0 !important;
}

/* Two things the header plugin does for its phone dropdown also reach the wide layout:
   - on every window resize its script pins the menu's width in pixels, to whatever it
     measures at that moment. A window opened narrow (where the links sit closer together)
     and then widened keeps the narrow width, and the last link drops to a second line;
   - a phone menu left open stays positioned as a dropdown once the window is widened, and
     the links pile up over the page. */
@media (min-width: 768px) {
	.pt-header nav.hfe-nav-menu__layout-horizontal {
		position: static !important;
		width: auto !important;
	}
}

/* On phones the plugin keeps the closed dropdown in the bar's row: invisible, but as wide as
   its longest link. That box squeezed the Download button's own box, lay over most of the
   button and swallowed the taps meant for it. A closed dropdown takes no room at all. */
@media (max-width: 767px) {
	.pt-header .hfe-nav-menu__toggle:not(.hfe-active-menu) + nav {
		display: none;
	}
}

/* --- Features dropdown -------------------------------------------------------- */

/* The arrow after "Features". The plugin draws it with the Font Awesome font, which the site
   does not load (icons are inline SVG), so it is drawn from the theme's chevron instead. */
.pt-header .hfe-nav-menu .sub-arrow i {
	display: none;
}

.pt-header .hfe-nav-menu .sub-arrow::before {
	content: "";
	width: 10px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url(../icons/chevron-down.svg) center / contain no-repeat;
	mask: url(../icons/chevron-down.svg) center / contain no-repeat;
	transition: transform .18s;
}

.pt-header .hfe-nav-menu .sub-menu-active .sub-arrow::before,
.pt-header nav:not(.hfe-dropdown) .menu-item-has-children:hover .sub-arrow::before,
.pt-header nav:not(.hfe-dropdown) .menu-item-has-children:focus-within .sub-arrow::before {
	transform: rotate(180deg);
}

/* Wide screens: a panel under the bar, in the style of the Download menu. The layout class
   outweighs the menu widget's own width and padding rules. */
@media (min-width: 768px) {
	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu {
		width: 360px;
		margin-top: 26px;
		padding: 6px;
		border: 1px solid #e9e7f2;
		border-radius: 14px;
		background: #fff;
		box-shadow: 0 24px 48px -18px rgba(20, 20, 45, .34);
	}

	/* Bridges the gap between the link and the panel, so the pointer can travel down to it. */
	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu::before {
		content: "";
		position: absolute;
		top: -28px;
		right: 0;
		left: 0;
		height: 28px;
	}

	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu li.menu-item {
		border: 0 !important;
		background: none;
	}

	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
		padding: 10px 12px;
		border-radius: 10px;
		background: none;
		transition: background-color .18s;
	}

	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover,
	.pt-header nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:focus-visible {
		background: #faf9fd;
	}
}

/* One entry: icon tile, module name and a line about it (markup from inc/menu.php). */
.pt-header .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:has(.pt-mi__icon) {
	justify-content: flex-start;
	align-items: center;
	gap: 12px;
}

.pt-mi__icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(224, 30, 106, .1);
	color: #e01e6a;
}

.pt-mi__icon svg {
	width: 18px;
	height: 18px;
}

.pt-mi__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.pt-mi__name {
	color: #13131b;
	font: 700 14px/1.3 "Sora", system-ui, sans-serif;
}

.pt-mi__desc {
	color: #6e6e80;
	font: 500 12.5px/1.4 "Manrope", system-ui, sans-serif;
	white-space: normal;
}

.pt-header .hfe-sub-menu-item-active .pt-mi__name {
	color: #d01a62;
}

.pt-dl-menu {
	position: relative;
}

.pt-dl-menu__button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border-radius: 10px;
	background: #e01e6a;
	box-shadow: 0 8px 18px -6px rgba(224, 30, 106, .6);
	color: #fff;
	font: 600 13.5px/1.26 "Sora", system-ui, sans-serif;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

/* Small phones: the bar holds the logo, this button and the menu toggle, so trim the button. */
@media (max-width: 374px) {
	.pt-header .pt-dl-menu__button > svg {
		display: none;
	}
}

@media (max-width: 339px) {
	.pt-header .pt-dl-menu {
		display: none;
	}
}

.pt-dl-menu__button::-webkit-details-marker {
	display: none;
}

.pt-dl-menu__button:hover {
	background: #c4185c;
}

.pt-dl-menu__button > svg {
	width: 14px;
	height: 14px;
}

.pt-dl-menu__chevron {
	display: grid;
	place-items: center;
	transition: transform .18s;
}

.pt-dl-menu__chevron svg {
	width: 11px;
	height: 11px;
}

.pt-dl-menu[open] .pt-dl-menu__chevron {
	transform: rotate(180deg);
}

.pt-dl-menu__panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	z-index: 60;
	width: 290px;
	overflow: hidden;
	border: 1px solid #e9e7f2;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 24px 48px -18px rgba(20, 20, 45, .34);
}

/* On phones the button sits beside the menu toggle. Lining the panel up with the toggle's outer
   edge (toggle 37px + gap 12px - its 8px pull) keeps it on screen down to 340px, where the button
   itself is hidden; aligned with the button it lost up to 11px off the left edge. */
@media (max-width: 767px) {
	.pt-header .pt-dl-menu__panel {
		right: -41px;
	}
}

.pt-dl-menu .pt-dl-menu__row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	color: inherit;
	text-decoration: none;
	transition: background-color .18s;
}

.pt-dl-menu .pt-dl-menu__row:hover,
.pt-dl-menu .pt-dl-menu__row:focus-visible {
	background: #faf9fd;
	color: inherit;
}

.pt-dl-menu .pt-dl-menu__row:focus-visible {
	outline: 2px solid #e01e6a;
	outline-offset: -2px;
}

.pt-dl-menu__row + .pt-dl-menu__row {
	border-top: 1px solid #f0eef7;
}

.pt-dl-menu__dot {
	flex: none;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 9px;
	background: #f5f4fa;
}

.pt-dl-menu__dot i {
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.pt-dl-menu__text {
	flex: 1;
	min-width: 0;
	line-height: 1.37;
}

.pt-dl-menu__text strong {
	display: block;
	color: #13131b;
	font: 700 13.5px/1.26 "Sora", system-ui, sans-serif;
}

.pt-dl-menu__text small {
	display: block;
	margin-top: 1px;
	color: #6e6e80; /* about 5:1 on white; the design's #8b8b9c was 3.4:1 at this size */
	font-size: 11.5px;
	font-weight: 600;
}

.pt-dl-menu__get {
	flex: none;
	padding: 10px 18px;
	border-radius: 10px;
	background: #e01e6a;
	color: #fff;
	font: 700 13px/1.26 "Sora", system-ui, sans-serif;
	transition: background-color .18s;
}

.pt-dl-menu__row:hover .pt-dl-menu__get {
	background: #c4185c;
}

/* --- download buttons ---------------------------------------------------- */

/* One variant per operating system is printed; show the visitor's (Windows when unknown). */
.pt-dl [data-os] {
	display: none;
}

html:not([data-pt-os]) .pt-dl--cta .pt-dl__set[data-os="windows"],
html[data-pt-os="windows"] .pt-dl--cta .pt-dl__set[data-os="windows"],
html[data-pt-os="mac"] .pt-dl--cta .pt-dl__set[data-os="mac"],
html[data-pt-os="linux"] .pt-dl--cta .pt-dl__set[data-os="linux"] {
	display: flex;
}

html:not([data-pt-os]) .pt-dl__caption[data-os="windows"],
html[data-pt-os="windows"] .pt-dl__caption[data-os="windows"],
html[data-pt-os="mac"] .pt-dl__caption[data-os="mac"],
html[data-pt-os="linux"] .pt-dl__caption[data-os="linux"] {
	display: inline;
}

.pt-dl svg {
	flex: none;
}

/* Hero: three buttons, the visitor's system first and filled. */
.pt-dl--hero .pt-dl__buttons {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px;
}

.pt-dl--hero a.pt-dl__button {
	flex: 0 1 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 15px;
	border: 1.5px solid #e3e3ec;
	border-radius: 13px;
	background: #fff;
	color: #2a2a38;
	font: 700 14.5px/1.26 "Sora", system-ui, sans-serif;
	white-space: nowrap;
}

.pt-dl--hero a.pt-dl__button:hover {
	border-color: #e01e6a;
	color: #c4185c;
}

.pt-dl--hero a.pt-dl__button svg {
	width: 15px;
	height: 15px;
}

html:not([data-pt-os]) .pt-dl--hero a.pt-dl__button[data-os="windows"],
html[data-pt-os="windows"] .pt-dl--hero a.pt-dl__button[data-os="windows"],
html[data-pt-os="mac"] .pt-dl--hero a.pt-dl__button[data-os="mac"],
html[data-pt-os="linux"] .pt-dl--hero a.pt-dl__button[data-os="linux"] {
	order: -1;
	gap: 9px;
	padding: 15px 19px;
	border: 0;
	background: #e01e6a;
	box-shadow: 0 16px 30px -12px rgba(224, 30, 106, .65);
	color: #fff;
	font-size: 15px;
}

html:not([data-pt-os]) .pt-dl--hero a.pt-dl__button[data-os="windows"]:hover,
html[data-pt-os="windows"] .pt-dl--hero a.pt-dl__button[data-os="windows"]:hover,
html[data-pt-os="mac"] .pt-dl--hero a.pt-dl__button[data-os="mac"]:hover,
html[data-pt-os="linux"] .pt-dl--hero a.pt-dl__button[data-os="linux"]:hover {
	background: #c4185c;
	color: #fff;
}

html:not([data-pt-os]) .pt-dl--hero a.pt-dl__button[data-os="windows"] svg,
html[data-pt-os="windows"] .pt-dl--hero a.pt-dl__button[data-os="windows"] svg,
html[data-pt-os="mac"] .pt-dl--hero a.pt-dl__button[data-os="mac"] svg,
html[data-pt-os="linux"] .pt-dl--hero a.pt-dl__button[data-os="linux"] svg {
	width: 16px;
	height: 16px;
}

.pt-dl--hero a.pt-dl__button {
	display: inline-flex;
}

.pt-dl--hero .pt-dl__note {
	--pt-dots-gap: 36px;
	margin-top: 16px;
	color: #71717f;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.37;
}

.pt-dl--hero a.pt-dl__demo {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #2a2a38;
	font: 700 13.5px/1.26 "Sora", system-ui, sans-serif;
}

.pt-dl--hero a.pt-dl__demo:hover {
	color: #c4185c;
}

.pt-dl--hero a.pt-dl__demo svg {
	width: 13px;
	height: 13px;
}

/* Final call to action on a dark card. */
.pt-dl--cta {
	text-align: center;
}

.pt-dl--cta .pt-dl__set {
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.pt-dl--cta a.pt-dl__main,
.pt-dl--cta a.pt-dl__store {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border-radius: 13px;
	font: 700 15.5px/1.26 "Sora", system-ui, sans-serif;
}

.pt-dl--cta a.pt-dl__main {
	padding: 15px 26px;
	background: #fff;
	color: #13131b;
}

.pt-dl--cta a.pt-dl__main:hover {
	background: #ffe6f0;
	color: #13131b;
}

.pt-dl--cta a.pt-dl__main svg {
	width: 17px;
	height: 17px;
}

.pt-dl--cta a.pt-dl__store {
	padding: 14px 24px;
	border: 1px solid rgba(255, 255, 255, .2);
	background: rgba(255, 255, 255, .1);
	color: #fff;
}

.pt-dl--cta a.pt-dl__store:hover {
	background: rgba(255, 255, 255, .16);
	color: #fff;
}

.pt-dl--cta a.pt-dl__store svg {
	width: 16px;
	height: 16px;
}

.pt-dl--cta .pt-dl__note {
	margin-top: 18px;
	color: #8a8aa0;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.37;
}

.pt-dl__other summary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	padding-bottom: 3px;
	border-bottom: 1px dashed rgba(255, 255, 255, .28);
	color: #cfcfe0;
	font: 700 13.5px/1.26 "Sora", system-ui, sans-serif;
	cursor: pointer;
	list-style: none;
}

.pt-dl__other summary::-webkit-details-marker {
	display: none;
}

.pt-dl__other summary:hover {
	color: #fff;
}

.pt-dl__other summary svg {
	width: 13px;
	height: 13px;
	transition: transform .18s;
}

.pt-dl__other[open] summary svg {
	transform: rotate(180deg);
}

.pt-dl__list {
	max-width: 560px;
	margin: 22px auto 0;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 16px;
	background: rgba(255, 255, 255, .05);
	text-align: left;
}

.pt-dl__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	padding: 17px 20px;
}

.pt-dl__row + .pt-dl__row {
	border-top: 1px solid rgba(255, 255, 255, .1);
}

.pt-dl__logo {
	flex: none;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .08);
	color: #fff;
}

.pt-dl__logo svg {
	width: 18px;
	height: 18px;
}

.pt-dl__row-text {
	flex: 1;
	min-width: 120px;
}

.pt-dl__row-text strong {
	display: block;
	color: #fff;
	font: 700 15px/1.26 "Sora", system-ui, sans-serif;
}

.pt-dl__row-text small {
	display: block;
	margin-top: 2px;
	color: #8a8aa0;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.37;
}

.pt-dl__row-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pt-dl .pt-dl__row-actions a {
	padding: 9px 15px;
	border-radius: 9px;
	font: 700 13px/1.26 "Sora", system-ui, sans-serif;
}

.pt-dl .pt-dl__row-actions a.is-solid {
	background: #fff;
	color: #13131b;
}

.pt-dl .pt-dl__row-actions a.is-solid:hover {
	background: #ffe6f0;
}

.pt-dl .pt-dl__row-actions a.is-ghost {
	padding: 8px 15px;
	border: 1px solid rgba(255, 255, 255, .2);
	background: rgba(255, 255, 255, .1);
	color: #fff;
}

.pt-dl .pt-dl__row-actions a.is-ghost:hover {
	background: rgba(255, 255, 255, .18);
}

/* Phones: every button gets a full line under the platform name. */
@media (max-width: 480px) {
	.pt-dl__row-actions {
		flex: 1 1 100%;
	}

	.pt-dl .pt-dl__row-actions a {
		flex: 1 1 100%;
		text-align: center;
	}
}

/* --- recent posts -------------------------------------------------------- */

.pt-posts {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
}

.pt-posts a.pt-post {
	flex: 1;
	min-width: 280px;
	display: block;
	overflow: hidden;
	border: 1px solid #ececf3;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 34px -26px rgba(22, 22, 50, .3);
	transition: transform .2s;
}

.pt-posts a.pt-post:hover {
	transform: translateY(-3px);
}

.pt-post__cover {
	position: relative;
	display: block;
	height: 150px;
	background: linear-gradient(135deg, #e9ecfb, #f1eafd);
}

.pt-post--2 .pt-post__cover { background: linear-gradient(135deg, #eafbf2, #eaf2fd); }
.pt-post--3 .pt-post__cover { background: linear-gradient(135deg, #fdeef0, #f4eafd); }

.pt-post__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pt-post__chip {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 4px 9px;
	border-radius: 6px;
	background: #fff;
	color: #d01a62;
	font: 700 11px/1.26 "Sora", system-ui, sans-serif;
}

/* Darker shades of the design's green and coral, 5:1 on white at 11px (they were 2.7 and 3.1). */
.pt-post--2 .pt-post__chip { color: #0b8048; }
.pt-post--3 .pt-post__chip { color: #cc3b2f; }

.pt-post__body {
	display: block;
	padding: 20px;
}

.pt-post__body time {
	display: block;
	margin-bottom: 8px;
	color: #6e6e80;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.37;
}

.pt-post__title {
	display: block;
	color: #13131b;
	font: 700 16.5px/1.32 "Sora", system-ui, sans-serif;
	letter-spacing: -.01em;
}

/* --- footer and small fixes ---------------------------------------------- */

/* Outline icons draw with currentColor; Elementor only sets fill on list icons. */
.elementor-icon-list-icon svg {
	color: var(--e-icon-list-icon-color);
}

.pt-fade-link a:hover {
	opacity: .75;
}

.pt-footer-copy strong {
	color: #cfcfdd;
	font-weight: 600;
}

/* "Features" on a module page, see inc/menu.php. */
.pt-header nav:not(.hfe-dropdown) .menu-item.pt-menu-current a.hfe-menu-item {
	color: #16161d;
}

/* WordPress marks every same-page anchor link as "current"; only real pages should be. */
.home .pt-header nav:not(.hfe-dropdown) .menu-item a.hfe-menu-item[href*="#"]:not(:hover) {
	color: #6a6a7a !important;
}

/* --- demo video ---------------------------------------------------------- */

.elementor .elementor-element.pt-demo {
	aspect-ratio: 16 / 9;
}

/* The play button on the poster, as in the design: a white disc with a pink triangle. */
.pt-demo__video .elementor-custom-embed-image-overlay .elementor-custom-embed-play {
	display: grid;
	place-items: center;
	width: 78px;
	height: 78px;
	border-radius: 50%;
	background: #fff;
	color: #e01e6a;
	box-shadow: 0 18px 40px -10px rgba(0, 0, 0, .5);
	transition: transform .2s;
}

.pt-demo__video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play {
	transform: translate(-50%, -50%) scale(1.06);
}

/* The triangle looks centred only when nudged right. */
.pt-demo__video .elementor-custom-embed-image-overlay .elementor-custom-embed-play svg {
	width: 26px;
	height: 26px;
	margin-left: 5px;
	fill: #e01e6a;
	filter: none;
	opacity: 1;
}

/* On a phone the design's 78px disc would cover half of the poster. */
@media (max-width: 767px) {
	.pt-demo__video .elementor-custom-embed-image-overlay .elementor-custom-embed-play {
		width: 56px;
		height: 56px;
	}

	.pt-demo__video .elementor-custom-embed-image-overlay .elementor-custom-embed-play svg {
		width: 19px;
		height: 19px;
		margin-left: 4px;
	}
}

/* --- FAQ ----------------------------------------------------------------- */

.pt-faq .e-n-accordion-item {
	overflow: hidden;
	border: 1px solid #ececf3;
	border-radius: 13px;
	background: #fff;
}

/* One border around the whole item, none between the question and its answer. */
.elementor .elementor-element.pt-faq .e-n-accordion-item-title,
.elementor .elementor-element.pt-faq .e-n-accordion-item > .e-con {
	border: 0;
}

.pt-faq .e-n-accordion-item-title-icon {
	flex: none;
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: rgba(224, 30, 106, .1);
}

/* --- newsletter ---------------------------------------------------------- */

.pt-newsletter form p {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}

.pt-newsletter br {
	display: none;
}

.pt-newsletter .wpcf7-form-control-wrap {
	flex: 1;
	min-width: 180px;
}

.pt-newsletter .wpcf7 input[type="email"] {
	width: 100%;
	padding: 14px 16px;
	border: 0;
	border-radius: 11px;
	background: #fff;
	color: #16161d;
	font: 500 14px/1.37 "Manrope", system-ui, sans-serif;
}

.pt-newsletter .wpcf7 input[type="email"]::placeholder {
	color: #9a9aab;
}

.pt-newsletter .wpcf7 input[type="submit"] {
	padding: 14px 22px;
	border: 0;
	border-radius: 11px;
	background: #fff;
	color: #e01e6a;
	font: 700 14.5px/1.26 "Sora", system-ui, sans-serif;
	cursor: pointer;
}

.pt-newsletter .wpcf7 input[type="submit"]:hover {
	background: #ffe9f3;
	color: #e01e6a;
}

.pt-newsletter .wpcf7-spinner {
	display: none;
}

.pt-newsletter .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
}

.pt-newsletter .wpcf7 form .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: 9px;
	color: #fff;
	font-size: 13px;
	font-weight: 600;
}

/* --- contact form (Contact Form 7 inside a .pt-form widget) --------------- */

.pt-form .wpcf7 form {
	display: grid;
	gap: 16px;
}

.pt-form .wpcf7 form p {
	margin: 0;
}

.pt-form .wpcf7 label {
	display: block;
	color: #3a3a48;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.37;
}

.pt-form .wpcf7 label br {
	display: none;
}

.pt-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}

.pt-form .wpcf7 input:not([type="submit"]),
.pt-form .wpcf7 textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid #e3e3ec;
	border-radius: 11px;
	background: #fff;
	color: #13131b;
	font: 500 15px/1.4 "Manrope", system-ui, sans-serif;
	transition: border-color .18s, box-shadow .18s;
}

.pt-form .wpcf7 textarea {
	display: block;
	height: 150px;
	resize: vertical;
}

.pt-form .wpcf7 input:not([type="submit"]):focus,
.pt-form .wpcf7 textarea:focus {
	border-color: #e01e6a;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(224, 30, 106, .12);
}

.pt-form .wpcf7 input[type="submit"] {
	border: 0;
	box-shadow: 0 16px 30px -12px rgba(224, 30, 106, .65);
	cursor: pointer;
}

.pt-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #d4264b;
	font-size: 12.5px;
	font-weight: 600;
}

.pt-form .wpcf7 form .wpcf7-response-output {
	margin: 0;
	padding: 11px 14px;
	border-width: 1.5px;
	border-radius: 11px;
	color: #3a3a48;
	font-size: 14px;
	font-weight: 600;
}

/* A picture that fills the top of a card. */
.pt-cover img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
