/**
 * ATC Page Models — front styles of the models and of the ATC widgets.
 * Two themes, set per section by the generator: .atcpm-std (default pages) and .atcpm-bf (Black Friday).
 * Sizes, colours and spacing follow the ATC reference layout (sent by the ATC team, drawn at 960px wide).
 * Every colour comes from the tokens below; widgets override --atcpm-title/-text/-accent from Elementor.
 */

.atcpm-std,
.atcpm-bf,
.atcpm-hero,
.atcpm-heading,
.atcpm-card,
.atcpm-faq,
.atcpm-countdown,
.atcpm-video,
.atcpm-lessons,
.atcpm-reviews,
.atcpm-reviews-google,
.atcpm-guarantee,
.atcpm-practice,
.atcpm-infoband,
.atcpm-blackmax {
	--atcpm-font: "DejaVu Sans", Verdana, Geneva, sans-serif;
	--atcpm-bg: #ffffff;
	--atcpm-surface: #ffffff;
	--atcpm-border: #dfe5ec;
	--atcpm-title: #0f1d40;
	--atcpm-text: #5a6478;
	--atcpm-muted: #6b7280;
	--atcpm-accent: #f49b23;
	--atcpm-accent-hover: #e0860f;
	--atcpm-accent-ink: #0f1a42;
	--atcpm-eyebrow: #0f1d40;
	--atcpm-eyebrow-dark: #f2b552;
	--atcpm-form-eyebrow: #1e3489;
	--atcpm-field: #f1f5f9;
	--atcpm-field-border: #d9e1ea;
	--atcpm-navy: #071b3e;
	--atcpm-feature-bg: #0a1b42;
	--atcpm-feature-icon: #f49b23;
	--atcpm-arrow-bg: #ffffff;
	--atcpm-arrow-ink: #111111;
	--atcpm-arrow-border: #f39a1f;
	--atcpm-dot: #c8cdd6;
	--atcpm-dot-on: #f49b23;
	--atcpm-review-bg: #eef3f8;
	--atcpm-on-dark: #ffffff;
	--atcpm-on-dark-muted: #dbe1eb;
	--atcpm-whatsapp: #1fbb68;
	--atcpm-whatsapp-ink: #ffffff;
	--atcpm-radius: 10px;
	--atcpm-radius-sm: 4px;
	--atcpm-max: 1140px;
	--atcpm-side: max(20px, 5.5vw);
	/* A long word or URL typed in Elementor must wrap instead of widening the page. */
	overflow-wrap: break-word;
}

.atcpm-bf,
.atcpm-bf .atcpm-hero,
.atcpm-bf .atcpm-heading,
.atcpm-bf .atcpm-card,
.atcpm-bf .atcpm-faq,
.atcpm-bf .atcpm-countdown,
.atcpm-bf .atcpm-video,
.atcpm-bf .atcpm-lessons,
.atcpm-bf .atcpm-reviews,
.atcpm-bf .atcpm-reviews-google,
.atcpm-bf .atcpm-guarantee,
.atcpm-bf .atcpm-practice,
.atcpm-bf .atcpm-infoband,
.atcpm-bf .atcpm-blackmax {
	--atcpm-title: #111111;
	--atcpm-text: #3f3f46;
	--atcpm-eyebrow: #111111;
	--atcpm-eyebrow-dark: #ffe329;
	--atcpm-form-eyebrow: #111111;
	--atcpm-accent-ink: #111111;
	--atcpm-field: #f4f4f4;
	--atcpm-field-border: #e2e2e2;
	--atcpm-navy: #111113;
	--atcpm-feature-bg: #111111;
	--atcpm-feature-icon: #ffe329;
	--atcpm-arrow-bg: #ffe329;
	--atcpm-arrow-ink: #111111;
	--atcpm-arrow-border: #ffe329;
	--atcpm-dot: #c9c9c9;
	--atcpm-dot-on: #f5d200;
	--atcpm-on-dark-muted: #d4d4d8;
}

/* ---------------------------------------------------------------- Sections */

.e-con.atcpm-section {
	--padding-top: 56px;
	--padding-bottom: 56px;
	--padding-left: var(--atcpm-side);
	--padding-right: var(--atcpm-side);
	position: relative;
	background-color: var(--atcpm-bg);
	color: var(--atcpm-text);
	font-family: var(--atcpm-font);
}

/* Containers inside a section carry no padding or gap of their own (Elementor defaults to 10px and
   20px): spacing comes from this sheet. :where() keeps this below every specific rule further down. */
.e-con.atcpm-section :where(.e-con) {
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
}

.e-con.atcpm-section > .e-con-inner,
.e-con.atcpm-section > .atcpm-wrap,
.e-con.atcpm-section .atcpm-wrap {
	--content-width: var(--atcpm-max);
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--atcpm-max);
	margin-inline: auto;
}

.atcpm-section .elementor-widget:not(:last-child) {
	margin-bottom: 0;
}

/* Photo sections: the overlay is a layer of its own, so it can fade into the sections around it. */
.e-con.atcpm-section--hero,
.e-con.atcpm-section--trial {
	background-size: cover;
	background-position: center;
	color: var(--atcpm-on-dark-muted);
}

.e-con.atcpm-section--hero::before,
.e-con.atcpm-section--trial::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: auto;
	height: auto;
	opacity: 1;
	pointer-events: none;
}

.e-con.atcpm-section--hero::before {
	background: rgba(9, 28, 66, .7);
}

.e-con.atcpm-bf.atcpm-section--hero::before {
	background: rgba(17, 17, 17, .74);
}

.e-con.atcpm-section--hero {
	--padding-top: 31px;
	--padding-bottom: 56px;
}

/* Standard: the resources carousel sits in the bottom of the hero photo, its dots just below it. */
.e-con.atcpm-std.atcpm-section--hero {
	--padding-bottom: 10px;
}

/* The Hub header of the ATC site overlays the page (desktop and mobile): the hero opens below it,
   as the hand-made ATC heroes do. Heights measured on the live header; Hub swaps the mobile header
   for the desktop one above the Elementor tablet breakpoint of the ATC kit (1024px). */
.main-header-overlay ~ #lqd-site-content {
	--atcpm-header-height: 96px;
}

.main-header-overlay ~ #lqd-site-content .e-con.atcpm-section--hero {
	--padding-top: calc(var(--atcpm-header-height) + 31px);
}

@media (min-width: 1025px) {
	.main-header-overlay ~ #lqd-site-content {
		--atcpm-header-height: 113px;
	}
}

.e-con.atcpm-section--features {
	--padding-top: 7px;
	--padding-bottom: 40px;
	/* The track bleeds to the right edge of the window. */
	overflow: hidden;
}

.e-con.atcpm-section--video {
	--padding-top: 78px;
	--padding-bottom: 40px;
}

.e-con.atcpm-bf.atcpm-section--video {
	--padding-top: 56px;
}

.e-con.atcpm-section--lessons {
	--padding-top: 0px;
	--padding-bottom: 48px;
}

/* Plans: the white page fades into the navy band. */
.e-con.atcpm-section--plans {
	--padding-top: 160px;
	--padding-bottom: 50px;
	background: linear-gradient(180deg, #ffffff 0, #d9dce3 40px, #6c7690 75px, var(--atcpm-navy) 110px);
	color: var(--atcpm-on-dark-muted);
}

.e-con.atcpm-bf.atcpm-section--plans {
	--padding-top: 72px;
	background: linear-gradient(180deg, #2c2d31 0, var(--atcpm-navy) 60px);
}

.atcpm-section--plans .elementor-menu-anchor {
	scroll-margin-top: 96px;
}

/* In a column e-con the pricing grid is sized from its intrinsic width, which on phones
   leaves ~1900px of empty space under the cards; a definite width gives the real height. */
.atcpm-wrap > .elementor-widget-atc-pricing-cards {
	width: 100%;
}

.e-con.atcpm-section--trial {
	--padding-top: 90px;
	--padding-bottom: 150px;
}

.e-con.atcpm-section--trial::before {
	background: linear-gradient(180deg, var(--atcpm-navy) 0, rgba(7, 27, 62, .78) 90px, rgba(7, 27, 62, .74) 70%, #071b3c 100%);
}

.e-con.atcpm-bf.atcpm-section--trial::before {
	background: linear-gradient(180deg, var(--atcpm-navy) 0, rgba(10, 10, 12, .74) 90px, rgba(10, 10, 12, .72) 75%, #171717 100%);
}

/* Guarantee: navy band that fades into the white reviews. */
.e-con.atcpm-section--guarantee {
	--padding-top: 56px;
	--padding-bottom: 200px;
	background: linear-gradient(180deg, #071b3c calc(100% - 110px), #8a93a8 calc(100% - 55px), #ffffff 100%);
	color: var(--atcpm-on-dark-muted);
}

.e-con.atcpm-bf.atcpm-section--guarantee {
	--padding-bottom: 170px;
	border-top: 4px solid #14224d;
	background: linear-gradient(180deg, #111111 calc(100% - 65px), #9a9ca3 calc(100% - 30px), #ffffff 100%);
}

/* Practice: dark band after the free trial. In Black Friday it fades into the white reviews, as the
   guarantee does; in Standard the guarantee follows it, so it stays one solid navy band. */
.e-con.atcpm-section--practice {
	--padding-top: 64px;
	--padding-bottom: 56px;
	background: #071b3c;
	color: var(--atcpm-on-dark-muted);
}

.e-con.atcpm-bf.atcpm-section--practice {
	--padding-bottom: 125px;
	background: linear-gradient(180deg, #111111 calc(100% - 65px), #9a9ca3 calc(100% - 30px), #ffffff 100%);
}

.e-con.atcpm-section--reviews {
	--padding-top: 45px;
	--padding-bottom: 52px;
}

.e-con.atcpm-section--grade {
	--padding-top: 0px;
	--padding-bottom: 52px;
}

.e-con.atcpm-section--faq {
	--padding-top: 0px;
	--padding-bottom: 40px;
}

.e-con.atcpm-section--support {
	--padding-top: 0px;
	--padding-bottom: 48px;
}

/* Black Max: the white page fades into the dark band that frames the box. */
.e-con.atcpm-section--blackmax {
	--padding-top: 80px;
	--padding-bottom: 16px;
	--padding-left: 20px;
	--padding-right: 20px;
	background: linear-gradient(180deg, #ffffff 0, #c9ccd4 30px, #5d6170 52px, #16171d 64px);
}

.e-con.atcpm-section--blackmax > .atcpm-wrap {
	max-width: calc(var(--atcpm-max) + 66px);
}

/* Grid: two columns on desktop, one on phones. */
.e-con.atcpm-grid--hero {
	--flex-direction: column;
	--gap: 32px;
	--row-gap: 32px;
	--column-gap: 32px;
	flex-direction: column;
	align-items: stretch;
}

@media (min-width: 900px) {
	.e-con.atcpm-grid--hero {
		--flex-direction: row;
		--gap: 40px;
		--row-gap: 40px;
		--column-gap: 40px;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}

	.e-con.atcpm-grid--hero > .elementor-widget-atcpm-hero {
		flex: 1 1 auto;
		min-width: 0;
	}

	.e-con.atcpm-grid--hero > .atcpm-card--form {
		flex: 0 0 clamp(262px, 27.3%, 320px);
	}
}

.atcpm-std.atcpm-section--hero .elementor-widget-atcpm-feature-carousel {
	margin-top: 50px;
}

/* Target of the hero's free-trial button when the page has no trial section. */
.atcpm-section--hero .atcpm-card--form {
	scroll-margin-top: 24px;
}

/* ------------------------------------------------------------- Typography */

.atcpm-eyebrow,
.atcpm-badge {
	margin: 0 0 12px;
	font-family: var(--atcpm-font);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--atcpm-eyebrow);
}

.atcpm-badge {
	/* inline-block, not inline-flex: the text of a flex box cannot shrink, so a long badge widened the page. */
	display: inline-block;
	max-width: 100%;
	padding: 4px 12px;
	line-height: 20px;
	border-radius: 14px;
	background: var(--atcpm-accent);
	color: var(--atcpm-accent-ink);
}

.atcpm-heading {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
}

.atcpm-heading.atcpm-align-left {
	max-width: none;
	margin-inline: 0;
	text-align: left;
}

.atcpm-heading__title,
.atcpm-hero__title {
	margin: 0;
	font-family: var(--atcpm-font);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0;
	color: var(--atcpm-title);
	text-transform: none;
}

.atcpm-heading__title {
	font-size: 29px;
}

.atcpm-heading__subtitle {
	margin: 12px 0 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--atcpm-text);
}

.atcpm-heading__title + .atcpm-heading__subtitle {
	margin-top: 14px;
}

.atcpm-section > .atcpm-wrap > .elementor-widget-atcpm-section-heading + .elementor-element {
	margin-top: 24px;
}

.atcpm-section--plans .atcpm-eyebrow,
.atcpm-section--guarantee .atcpm-eyebrow {
	color: var(--atcpm-eyebrow-dark);
}

.atcpm-section--plans .atcpm-heading__title,
.atcpm-section--trial .atcpm-heading__title,
.atcpm-section--guarantee .atcpm-heading__title {
	color: var(--atcpm-on-dark);
}

.atcpm-section--plans .atcpm-heading__subtitle,
.atcpm-section--trial .atcpm-heading__subtitle {
	color: var(--atcpm-on-dark-muted);
}

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

.atcpm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	max-width: 100%;
	min-height: 48px;
	padding: 12px 26px;
	border: 2px solid transparent;
	/* anywhere, not break-word: only anywhere lets the flex text shrink below its longest word. */
	overflow-wrap: anywhere;
	border-radius: 6px;
	font-family: var(--atcpm-font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}

.atcpm-btn:hover {
	transform: translateY(-1px);
}

.atcpm-btn:focus-visible,
.atcpm-carousel__arrow:focus-visible,
.atcpm-carousel__dots button:focus-visible,
.atcpm-video__open:focus-visible,
.atcpm-video__link:focus-visible,
.atcpm-lessons__open:focus-visible,
.atcpm-faq__question:focus-visible,
.atcpm-guarantee__link:focus-visible,
.atcpm-lightbox__close:focus-visible,
.atcpm-carousel__track:focus-visible {
	outline: 3px solid var(--atcpm-accent);
	outline-offset: 3px;
}

.atcpm-btn--primary {
	background: var(--atcpm-accent);
	color: var(--atcpm-accent-ink);
}

.atcpm-btn--primary:hover,
.atcpm-btn--primary:focus-visible {
	background: var(--atcpm-accent-hover);
	color: var(--atcpm-accent-ink);
}

.atcpm-btn--ghost {
	border-color: currentColor;
	background: transparent;
	color: var(--atcpm-on-dark);
}

.atcpm-btn--ghost:hover,
.atcpm-btn--ghost:focus-visible {
	background: var(--atcpm-on-dark);
	border-color: var(--atcpm-on-dark);
	color: var(--atcpm-navy);
}

.atcpm-btn--whatsapp {
	background: var(--atcpm-whatsapp);
	color: var(--atcpm-whatsapp-ink);
}

.atcpm-btn--whatsapp:hover,
.atcpm-btn--whatsapp:focus-visible {
	background: #18a65b;
	color: var(--atcpm-whatsapp-ink);
}

.atcpm-icon {
	width: 1em;
	height: 1em;
	flex: none;
}

.atcpm-btn .atcpm-icon {
	width: 22px;
	height: 22px;
}

/* Reviews link: the core button styled as our ghost button. */
.atcpm-link-button {
	text-align: center;
}

/* .elementor-widget-button in the selector: the post CSS ships the same two classes later and would win. */
.atcpm-link-button.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	min-height: 44px;
	padding: 10px 24px;
	border: 2px solid var(--atcpm-title);
	border-radius: 6px;
	background: transparent;
	color: var(--atcpm-title);
	font-family: var(--atcpm-font);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	overflow-wrap: anywhere;
	transition: background-color .2s, color .2s;
}

.atcpm-link-button.elementor-widget-button .elementor-button:hover,
.atcpm-link-button.elementor-widget-button .elementor-button:focus-visible {
	background: var(--atcpm-title);
	color: var(--atcpm-bg);
}

/* ------------------------------------------------------------------- Hero */

.atcpm-hero {
	font-family: var(--atcpm-font);
	color: var(--atcpm-on-dark);
}

.atcpm-hero .atcpm-eyebrow {
	margin-bottom: 14px;
	font-size: 13.5px;
	letter-spacing: .02em;
	color: var(--atcpm-accent);
}

.atcpm-hero .atcpm-badge {
	margin-bottom: 16px;
}

.atcpm-hero__title {
	font-size: 38px;
	line-height: 1.1;
	color: var(--atcpm-on-dark);
}

.atcpm-hero__text {
	margin: 14px 0 0;
	max-width: 620px;
	font-size: 16px;
	line-height: 1.5;
	color: var(--atcpm-on-dark-muted);
}

.atcpm-hero__checks {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 62px;
	margin: 30px 0 0;
	padding: 0;
	list-style: none;
}

.atcpm-hero__checks li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-on-dark);
}

.atcpm-hero__checks .atcpm-icon {
	width: 14px;
	height: 14px;
}

.atcpm-hero__slogan {
	margin-top: 46px;
}

.atcpm-hero__kicker {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-on-dark);
}

.atcpm-hero__motto {
	margin: 12px 0 0;
	font-size: 27px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--atcpm-on-dark);
}

.atcpm-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

/* ----------------------------------------------------------- Form cards */

.atcpm-card:not(.e-con) {
	position: relative;
	padding: 20px;
	border-radius: var(--atcpm-radius);
	background: var(--atcpm-surface);
	color: var(--atcpm-text);
	font-family: var(--atcpm-font);
}

.e-con.atcpm-card--form {
	--padding-top: 18px;
	--padding-bottom: 16px;
	--padding-left: 19px;
	--padding-right: 19px;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	border-radius: var(--atcpm-radius);
	background: #ffffff;
	box-shadow: 3px 4px 0 rgba(214, 221, 231, .95), 0 10px 30px rgba(4, 14, 36, .18);
}

.e-con.atcpm-card--trial {
	--padding-top: 18px;
	--padding-bottom: 30px;
	--padding-left: 18px;
	--padding-right: 18px;
	width: 100%;
	max-width: 294px;
	margin: 58px auto 0;
}

.atcpm-card--form .atcpm-heading {
	margin: 0 0 12px;
	text-align: left;
}

.atcpm-card--form .atcpm-eyebrow {
	margin-bottom: 14px;
	font-size: 11.5px;
	letter-spacing: .02em;
	color: var(--atcpm-form-eyebrow);
}

.atcpm-card--form .atcpm-heading__title {
	font-size: 20px;
	line-height: 1.25;
	color: var(--atcpm-title);
}

.atcpm-note,
.atcpm-note p {
	margin: 0;
	font-family: var(--atcpm-font);
	font-size: 9px;
	line-height: 1.35;
	color: var(--atcpm-muted);
}

.atcpm-card--form .atcpm-note {
	margin-top: 13px;
}

.atcpm-note a {
	color: inherit;
	font-weight: 400;
	text-decoration: none;
}

.atcpm-note a:hover {
	text-decoration: underline;
}

/* The Kommo form of the ATC site, drawn as in the reference: light fields with the label inside,
   one orange button with navy ink. Two classes deeper than the plugin's own stylesheet, so it wins. */
.atcpm-section .kommo-form {
	max-width: none;
	font-family: var(--atcpm-font);
}

.atcpm-section .kommo-form .kommo-form__field {
	margin-bottom: 6.5px;
}

.atcpm-section .kommo-form .kommo-form__input {
	height: 32px;
	padding: 0 10px;
	border: 1px solid var(--atcpm-field-border);
	border-radius: var(--atcpm-radius-sm);
	background-color: var(--atcpm-field);
	font-family: var(--atcpm-font);
	/* Below 16px iOS zooms the page into the field; the reference size applies from tablets up. */
	font-size: 16px;
	line-height: 30px;
	color: #1f2937;
}

.atcpm-section .kommo-form .kommo-form__input:focus {
	border-color: var(--atcpm-form-eyebrow);
	box-shadow: 0 0 0 3px rgba(30, 52, 137, .16);
}

.atcpm-section .kommo-form .kommo-form__label {
	top: 50%;
	left: 11px;
	font-family: var(--atcpm-font);
	font-size: 12px;
	font-weight: 400;
	color: #6b7280;
	transform: translateY(-50%);
	transition: opacity .15s;
}

/* The label works as the placeholder: it steps aside once the field is in use. */
.atcpm-section .kommo-form .kommo-form__input:focus ~ .kommo-form__label,
.atcpm-section .kommo-form .kommo-form__input:not(:placeholder-shown) ~ .kommo-form__label {
	opacity: 0;
	transform: translateY(-50%);
}

.atcpm-section .kommo-form .kommo-form__button {
	min-height: 40px;
	margin-top: 10px;
	padding: 8px 14px;
	border: 0;
	border-radius: var(--atcpm-radius-sm);
	background-color: var(--atcpm-accent);
	font-family: var(--atcpm-font);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--atcpm-accent-ink);
}

.atcpm-section .kommo-form .kommo-form__button:hover,
.atcpm-section .kommo-form .kommo-form__button:focus-visible {
	background-color: var(--atcpm-accent-hover);
	color: var(--atcpm-accent-ink);
}

.atcpm-card--trial .kommo-form .kommo-form__label {
	font-size: 13px;
}

.atcpm-card--trial .kommo-form .kommo-form__button {
	font-size: 15px;
}

@media (min-width: 768px) {
	.atcpm-section .kommo-form .kommo-form__input {
		font-size: 12px;
	}

	.atcpm-card--trial .kommo-form .kommo-form__input {
		font-size: 13px;
	}
}

/* ------------------------------------------------------------ Carousel */

.atcpm-carousel {
	position: relative;
	font-family: var(--atcpm-font);
}

.atcpm-carousel__stage {
	position: relative;
}

.atcpm-carousel__track {
	--atcpm-carousel-gap: 13px;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(220px, 82%);
	/* Every card is as tall as the tallest one, so the row reads as one even band. */
	align-items: stretch;
	gap: var(--atcpm-carousel-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.atcpm-carousel__track::-webkit-scrollbar {
	display: none;
}

@media (min-width: 520px) {
	.atcpm-carousel__track {
		grid-auto-columns: calc((100% - var(--atcpm-carousel-gap)) / 2);
	}
}

@media (min-width: 700px) {
	.atcpm-carousel__track {
		grid-auto-columns: calc((100% - 2 * var(--atcpm-carousel-gap)) / 3);
	}
}

@media (min-width: 900px) {
	.atcpm-carousel__track {
		grid-auto-columns: calc((100% - 3 * var(--atcpm-carousel-gap)) / 4);
	}
}

.atcpm-carousel__item {
	scroll-snap-align: start;
	margin: 0;
}

.atcpm-carousel .atcpm-card {
	padding: 9px 10px 10px 12px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 6px;
	box-shadow: 2px 2px 0 rgba(214, 221, 231, .9);
	background: var(--atcpm-feature-bg);
	color: #dfe5f0;
}

.atcpm-card__icon {
	display: block;
	width: 18px;
	height: 18px;
	margin: 0 0 8px;
	color: var(--atcpm-feature-icon);
}

.atcpm-card__icon .atcpm-icon,
.atcpm-card__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.atcpm-card__title {
	margin: 0;
	font-family: var(--atcpm-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	color: #ffffff;
}

.atcpm-card__text {
	margin: 4px 0 0;
	font-size: 10.5px;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: #dfe5f0;
	white-space: pre-line;
}

.atcpm-carousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1.5px solid var(--atcpm-arrow-border);
	border-radius: 50%;
	background: var(--atcpm-arrow-bg);
	color: var(--atcpm-arrow-ink);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
	transition: opacity .2s, transform .2s;
}

/* The drawn arrow is small; its hit area reaches the 44px touch floor. */
.atcpm-carousel__arrow::after {
	content: "";
	position: absolute;
	inset: -8px;
}

.atcpm-carousel__arrow--prev {
	left: max(-38px, calc((100% - 100vw) / 2 + 4px));
}

.atcpm-carousel__arrow--next {
	right: max(-38px, calc((100% - 100vw) / 2 + 4px));
}

.atcpm-carousel__arrow[disabled] {
	opacity: .45;
	cursor: default;
}

/* The Standard layout keeps both arrows at full strength, as drawn in the ATC reference. */
.atcpm-std .atcpm-carousel__arrow[disabled] {
	opacity: 1;
}

.atcpm-carousel.is-static .atcpm-carousel__arrow,
.atcpm-carousel.is-static .atcpm-carousel__dots {
	display: none;
}

.atcpm-carousel__foot {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-top: 12px;
}

/* Standard: the dots hang below the hero photo, on the white page. */
.atcpm-std.atcpm-section--hero .atcpm-carousel__foot {
	position: absolute;
	top: 100%;
	right: 0;
	left: 0;
	margin-top: 10px;
}

.atcpm-carousel__hint {
	margin: 0;
	font-size: 15px;
	line-height: 1.4;
	color: #555555;
	text-align: center;
	white-space: pre-wrap;
}

.atcpm-carousel__dots {
	display: flex;
	justify-content: center;
}

/* The dot is small, its hit area is wider. */
.atcpm-carousel__dots button {
	position: relative;
	width: 13px;
	height: 28px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.atcpm-carousel__dots button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--atcpm-dot);
	transform: translate(-50%, -50%);
	transition: background-color .2s;
}

.atcpm-carousel__dots button[aria-current="true"]::after {
	background: var(--atcpm-dot-on);
}

/* Black Friday: bigger black cards, ~3.5 on screen, the track running off the right edge. */
/* The cards stay inside the content width, between the two arrows: none of them slides under an arrow. */
.atcpm-bf .atcpm-carousel__track {
	--atcpm-carousel-gap: 18px;
}

.atcpm-bf .atcpm-carousel .atcpm-card {
	padding: 10px 12px 16px 16px;
	border: 1px solid #3a3a3a;
	border-left-color: #7a7a7a;
	border-radius: 8px;
	color: #c8c8c8;
}

.atcpm-bf .atcpm-card__icon {
	width: 20px;
	height: 20px;
	margin-bottom: 9px;
}

.atcpm-bf .atcpm-card__title {
	font-size: 16px;
	letter-spacing: -.01em;
}

.atcpm-bf .atcpm-card__text {
	margin-top: 4px;
	font-size: 12.5px;
	line-height: 1.4;
	color: #c8c8c8;
}

.atcpm-bf .atcpm-carousel__arrow {
	width: 36px;
	height: 36px;
	font-size: 18px;
	border: 0;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

.atcpm-bf .atcpm-carousel__arrow::after {
	inset: -4px;
}

.atcpm-bf .atcpm-carousel__arrow--prev {
	left: max(-49px, calc((100% - 100vw) / 2 + 4px));
}

.atcpm-bf .atcpm-carousel__arrow--next {
	right: max(-49px, calc((100% - 100vw) / 2 + 4px));
}

.atcpm-bf .atcpm-carousel__foot {
	gap: 10px;
	margin-top: 12px;
}

/* ------------------------------------------------------------------ Video */

.atcpm-video {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	align-items: center;
	font-family: var(--atcpm-font);
}

@media (min-width: 900px) {
	.atcpm-video {
		grid-template-columns: minmax(0, 1.82fr) minmax(0, 1fr);
		gap: 31px;
	}

	/* The frame's border sits outside the content edge, as in the reference. */
	.atcpm-video__frame {
		margin-left: -7px;
	}
}

.atcpm-video__frame {
	position: relative;
	overflow: hidden;
	border: 7px solid #0b1d42;
	border-radius: 10px;
	background: #0b1d42;
}

.atcpm-video__frame::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 3px;
	background: #c99a3b;
	pointer-events: none;
}

.atcpm-bf .atcpm-video__frame {
	border-color: #0b1530;
	background: #0b1530;
}

.atcpm-video__open {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 3px;
	background: #000;
	aspect-ratio: 16 / 9;
	cursor: pointer;
}

.atcpm-video__open img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s;
}

.atcpm-video__open:hover img {
	transform: scale(1.03);
}

.atcpm-video__play {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--atcpm-accent);
	color: #0f1a42;
	transform: translate(-50%, -50%);
}

.atcpm-video__play .atcpm-icon,
.atcpm-video__play svg {
	width: 26px;
	height: 26px;
	margin-left: 4px;
}

.atcpm-video__copy .atcpm-heading__title {
	font-size: 30px;
	line-height: 1.07;
}

.atcpm-video__text {
	margin: 20px 0 0;
	font-size: 16px;
	line-height: 1.45;
	color: var(--atcpm-text);
}

.atcpm-video__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 30px 0 0;
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--atcpm-font);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-title);
	text-align: left;
	cursor: pointer;
}

.atcpm-video__link:hover span {
	text-decoration: underline;
}

.atcpm-video__link svg {
	flex: none;
	width: 15px;
	height: 15px;
}

/* ---------------------------------------------------------------- Lessons */

.atcpm-lessons {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(150px, 42%);
	gap: 13px;
	margin: 0;
	padding: 0 0 4px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	font-family: var(--atcpm-font);
}

@media (min-width: 700px) {
	.atcpm-lessons {
		grid-auto-flow: row;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		overflow: visible;
	}
}

.atcpm-lessons__item {
	margin: 0;
	scroll-snap-align: start;
}

.atcpm-lessons__open {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 4px;
	background: #111;
	aspect-ratio: 16 / 10;
	cursor: pointer;
}

.atcpm-lessons__open img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s;
}

.atcpm-lessons__open:hover img {
	transform: scale(1.04);
}

.atcpm-lessons .atcpm-video__play {
	width: 32px;
	height: 32px;
}

.atcpm-lessons .atcpm-video__play .atcpm-icon,
.atcpm-lessons .atcpm-video__play svg {
	width: 14px;
	height: 14px;
	margin-left: 2px;
}

.atcpm-lessons__title {
	margin: 15px 0 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--atcpm-title);
}

.atcpm-section--lessons .atcpm-heading__subtitle {
	margin-top: 0;
}

.atcpm-section--lessons .elementor-widget-atcpm-section-heading + .elementor-element {
	margin-top: 18px;
}

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

/* The copied ATC Pricing Cards widget, recoloured to the reference. !important on the tokens only:
   the widget writes the same properties from its own Elementor controls, with a deeper selector. */
.atcpm-section--plans .atcpc,
.atcpm-section--plans .atcpc-card,
.atcpm-section--plans .atcpm-plan-card {
	--atcpc-font-heading: var(--atcpm-font) !important;
	--atcpc-font-body: var(--atcpm-font) !important;
	--atcpc-card-bg: #f9f8f4 !important;
	--atcpc-card-bg-hover: #f9f8f4 !important;
	--atcpc-card-radius: 6px !important;
	--atcpc-eyebrow-color: #6b7a90 !important;
	--atcpc-title-color: #0f1d40 !important;
	--atcpc-text-color: #5a6478 !important;
	--atcpc-period-color: #4a5468 !important;
	--atcpc-price-color: #0f1d40 !important;
	--atcpc-secondary-color: #5a6478 !important;
	--atcpc-divider-color: #e5dccb !important;
	--atcpc-feature-color: #0f1d40 !important;
	--atcpc-link-color: #0f1d40 !important;
	--atcpc-accent: #c19443 !important;
	--atcpc-btn-bg: #0f1a42 !important;
	--atcpc-btn-bg-hover: #1e3489 !important;
	--atcpc-btn-color: #ffffff !important;
	--atcpc-btn-radius: 4px !important;
	--atcpc-ribbon-bg: #c19443 !important;
	--atcpc-ribbon-color: #0f1a42 !important;
	--atcpc-featured-border: #c19443 !important;
}

.atcpm-bf.atcpm-section--plans .atcpc,
.atcpm-bf.atcpm-section--plans .atcpc-card,
.atcpm-bf.atcpm-section--plans .atcpm-plan-card {
	--atcpc-eyebrow-color: #52525b !important;
	--atcpc-title-color: #111111 !important;
	--atcpc-price-color: #111111 !important;
	--atcpc-feature-color: #111111 !important;
	--atcpc-link-color: #111111 !important;
	--atcpc-accent: #e5c300 !important;
	--atcpc-btn-bg: #111111 !important;
	--atcpc-btn-bg-hover: #333333 !important;
	--atcpc-ribbon-bg: #fbe134 !important;
	--atcpc-ribbon-color: #111111 !important;
	--atcpc-featured-border: #fbe134 !important;
}

.atcpm-section--plans .atcpc {
	background: none !important;
	padding-inline: 0 !important;
}

/* Card sizes of the ATC layout: the widget's own typography controls are larger, so these win. */
.atcpm-section--plans .atcpc__grid {
	--atcpc-gap: 13px !important;
	--atcpc-icon-size: 11px !important;
}

@media (min-width: 900px) {
	.atcpm-section--plans .atcpc__grid {
		--atcpc-columns: 4 !important;
	}

	/* Two or three plans (the MBAs) keep the width of a card in four columns and sit in the middle. */
	.atcpm-section--plans .atcpc__grid:has(> :nth-child(2):last-child) {
		--atcpc-columns: 2 !important;
		max-width: calc((100% - 3 * var(--atcpc-gap)) / 2 + var(--atcpc-gap));
		margin-inline: auto;
	}

	.atcpm-section--plans .atcpc__grid:has(> :nth-child(3):last-child) {
		--atcpc-columns: 3 !important;
		max-width: calc((100% - 3 * var(--atcpc-gap)) * 3 / 4 + 2 * var(--atcpc-gap));
		margin-inline: auto;
	}
}

/* The button runs almost edge to edge (10px); the dividers and the items sit 14px in. */
.atcpm-section--plans .atcpc-card {
	--atcpc-pad-top: 21px !important;
	--atcpc-pad-right: 10px !important;
	--atcpc-pad-bottom: 10px !important;
	--atcpc-pad-left: 10px !important;
}

.atcpm-section--plans .atcpc-card__pricing {
	margin-inline: 14px !important;
}

.atcpm-section--plans .atcpc ul.atcpc-card__features {
	padding-inline: 14px !important;
}

.atcpm-section--plans .atcpc-card__eyebrow {
	font-size: 9px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
}

.atcpm-section--plans .atcpc-card__title {
	font-size: 20px !important;
	line-height: 1.25 !important;
}

.atcpm-section--plans .atcpc-card__old {
	font-size: 9px !important;
}

.atcpm-section--plans .atcpc-card__period {
	font-size: 11.5px !important;
}

.atcpm-section--plans .atcpc-card__price,
.atcpm-section--plans .atcpc-card__price-label,
.atcpm-section--plans .atcpc-card__prefix,
.atcpm-section--plans .atcpc-card__currency,
.atcpm-section--plans .atcpc-card__amount,
.atcpm-section--plans .atcpc-card__value {
	font-size: 19px !important;
	line-height: 1.25 !important;
}

.atcpm-section--plans .atcpc-card__note {
	font-size: 11.5px !important;
	font-weight: 700 !important;
}

.atcpm-section--plans .atcpc-card__secondary {
	font-size: 8.5px !important;
	line-height: 1.6 !important;
}

.atcpm-section--plans .atcpc-card__feature,
.atcpm-section--plans .atcpc-card__feature-text,
.atcpm-section--plans .atcpc-card__detail-text {
	font-size: 8.5px !important;
	line-height: 1.35 !important;
}

.atcpm-section--plans .atcpc-card__toggle-label {
	font-size: 11px !important;
}

.atcpm-section--plans .atcpc-card__actions a,
.atcpm-section--plans .atcpc-card__actions button {
	min-height: 34px !important;
	font-size: 11px !important;
}

.atcpm-section--plans .atcpc-card__ribbon {
	font-size: 8.5px !important;
}

/* Black Friday cards as in the reference: the struck "De:" price sits under the plan name, above the divider,
   and the items are marked with solid yellow checks. */
.atcpm-bf.atcpm-section--plans .atcpc-card__pricing {
	display: flex !important;
	flex-direction: column !important;
	border-top: 0 !important;
	padding-top: 0 !important;
}

.atcpm-bf.atcpm-section--plans .atcpc-card__period {
	border-top: 1px solid var(--atcpc-divider-color) !important;
	padding-top: 16px !important;
}

.atcpm-bf.atcpm-section--plans .atcpc-card__old {
	order: -1;
	margin: -8px 0 14px !important;
	font-size: 10px !important;
	color: #52525b !important;
	text-decoration: line-through !important;
}

.atcpm-bf.atcpm-section--plans .atcpc-card__icon circle {
	fill: #fde047;
	stroke: #e5c300;
}

.atcpm-bf.atcpm-section--plans .atcpc-card__icon path {
	stroke: #111111;
	stroke-width: 2.2;
}

/* Black Friday cards: installments in plain text, the Pix price in bold below. */
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price > *,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__value > * {
	font-size: 18px !important;
}

.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__value {
	flex-wrap: nowrap !important;
	white-space: nowrap !important;
	letter-spacing: -.02em !important;
}

.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__note {
	font-size: 9.5px !important;
	font-weight: 400 !important;
}

.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__actions a,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__actions button {
	white-space: nowrap !important;
}

.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__secondary {
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #111111 !important;
}

/* Hand-made Hub cards (pages built before the pricing widget) keep their content and prices, and get the
   card look of the layout: they are built with Hub, PowerPack or plain Elementor widgets depending on the
   page, so every rule targets what those widgets print. !important because each widget writes the same
   properties from its own Elementor controls with a deeper selector. */
.e-con.atcpm-plan-cards {
	--gap: 13px;
	--row-gap: 13px;
	--column-gap: 13px;
	width: 100%;
}

.atcpm-plan-cards .e-con:has(> .atcpm-plan-card),
.atcpm-plan-cards .e-con-inner:has(> .atcpm-plan-card) {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: stretch !important;
	gap: 13px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}

.atcpm-section--plans .e-con.atcpm-plan-card {
	--padding-top: 21px;
	--padding-right: 14px;
	--padding-bottom: 10px;
	--padding-left: 14px;
	--gap: 8px;
	--row-gap: 8px;
	flex: 0 1 270px !important;
	width: 270px !important;
	max-width: 100% !important;
	min-width: 0 !important;
	flex-direction: column !important;
	justify-content: flex-start !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 21px 14px 10px !important;
	background: var(--atcpc-card-bg) !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: var(--atcpc-card-radius) !important;
	box-shadow: none !important;
	color: var(--atcpc-text-color) !important;
	font-family: var(--atcpm-font) !important;
	text-align: left !important;
}

@media (max-width: 767px) {
	.atcpm-section--plans .e-con.atcpm-plan-card {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}

/* A boxed card repeats its padding on the inner box: the inner box only stacks the content. */
.atcpm-section--plans .atcpm-plan-card > .e-con-inner {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	gap: 8px !important;
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Nested rows inside a card (title and price split in two headings) stay on one line. */
.atcpm-section--plans .atcpm-plan-card .e-con {
	--padding-top: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: baseline !important;
	gap: 0 .3em !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	background: none !important;
	border: 0 !important;
}

.atcpm-section--plans .atcpm-plan-card .elementor-widget {
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.atcpm-section--plans .atcpm-plan-card :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	margin: 0 !important;
	color: var(--atcpc-title-color) !important;
	font-family: var(--atcpm-font) !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	background: none !important;
	-webkit-text-fill-color: currentColor !important;
}

.atcpm-section--plans .atcpm-plan-card :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) * {
	color: inherit !important;
	font: inherit !important;
}

.atcpm-section--plans .atcpm-plan-card .atcpm-plan-price :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	color: var(--atcpc-price-color) !important;
	font-size: 19px !important;
}

.atcpm-section--plans .atcpm-plan-card :is(p, li, .elementor-widget-text-editor) {
	color: var(--atcpc-text-color) !important;
	font-family: var(--atcpm-font) !important;
	font-size: 11.5px !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.atcpm-section--plans .atcpm-plan-card p {
	margin: 0 !important;
}

/* Feature lists: one line per item with the check of the layout. */
.atcpm-section--plans .atcpm-plan-card ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.atcpm-section--plans .atcpm-plan-card ul li {
	position: relative !important;
	margin: 0 0 6px !important;
	padding: 0 0 0 18px !important;
	color: var(--atcpc-feature-color) !important;
	font-size: 8.5px !important;
	line-height: 1.35 !important;
	list-style: none !important;
	border: 0 !important;
}

.atcpm-section--plans .atcpm-plan-card ul li::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 11px;
	height: 11px;
	background-color: var(--atcpc-accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M8 12.5l2.7 2.7L16.5 9.5'/%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' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M8 12.5l2.7 2.7L16.5 9.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Icon lists bring their own icon: the drawn check replaces it, so every card reads the same. */
.atcpm-section--plans .atcpm-plan-card ul li :is(.pp-icon-wrapper, .pp-list-icon, .elementor-icon-list-icon) {
	display: none !important;
}

.atcpm-section--plans .atcpm-plan-card ul li * {
	font-size: inherit !important;
	color: inherit !important;
}

/* The button runs almost edge to edge at the foot of the card. */
.atcpm-section--plans .atcpm-plan-card :is(.elementor-widget-button, .elementor-widget-ld_button) {
	width: 100% !important;
	margin-top: auto !important;
}

.atcpm-section--plans .atcpm-plan-card .elementor-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 42px !important;
	padding: 14px 20px !important;
	border: 0 !important;
	border-radius: var(--atcpc-btn-radius) !important;
	background: var(--atcpc-btn-bg) !important;
	box-shadow: none !important;
	color: var(--atcpc-btn-color) !important;
	font-family: var(--atcpm-font) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

.atcpm-section--plans .atcpm-plan-card .elementor-button:is(:hover, :focus-visible) {
	background: var(--atcpc-btn-bg-hover) !important;
	color: var(--atcpc-btn-color) !important;
}

.atcpm-section--plans .atcpm-plan-card .elementor-button * {
	color: inherit !important;
	font: inherit !important;
}

/* The "Detalhes" accordion of the Hub cards reads as the link of the layout. */
.atcpm-section--plans .atcpm-plan-card :is(.pp-accordion-item, .pp-accordion-tab-title, .pp-advanced-accordion .pp-accordion-tab-content) {
	border: 0 !important;
	background: none !important;
}

.atcpm-section--plans .atcpm-plan-card .pp-accordion-tab-title {
	justify-content: center !important;
	padding: 6px 0 !important;
	color: var(--atcpc-link-color) !important;
	font-family: var(--atcpm-font) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
}

/* Larger price type, asked by ATC on 2026-10-29 so prices and payment terms read easily. These rules come
   after the layout sizes above and use the same selectors, so they win; sizes start at the phone and grow. */
.atcpm-section--plans .atcpc__grid {
	--atcpc-icon-size: 14px !important;
}

.atcpm-section--plans .atcpc-card__eyebrow,
.atcpm-section--plans .atcpc-card__ribbon {
	font-size: 12px !important;
}

.atcpm-section--plans .atcpc-card__title,
.atcpm-section--plans .atcpm-plan-card :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title) {
	font-size: 22px !important;
	overflow-wrap: anywhere !important;
}

.atcpm-section--plans .atcpc-card__old,
.atcpm-bf.atcpm-section--plans .atcpc-card__old {
	font-size: 14px !important;
}

.atcpm-section--plans .atcpc-card__period,
.atcpm-section--plans .atcpc-card__note,
.atcpm-section--plans .atcpm-plan-card :is(p, li, .elementor-widget-text-editor) {
	font-size: 15px !important;
}

.atcpm-section--plans .atcpc-card__price,
.atcpm-section--plans .atcpc-card__price-label,
.atcpm-section--plans .atcpc-card__prefix,
.atcpm-section--plans .atcpc-card__currency,
.atcpm-section--plans .atcpc-card__amount,
.atcpm-section--plans .atcpc-card__value,
.atcpm-section--plans .atcpm-plan-card .atcpm-plan-price :is(h1, h2, h3, h4, h5, h6, .elementor-heading-title),
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price > *,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__value > * {
	font-size: 28px !important;
	line-height: 1.2 !important;
}

.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__note {
	font-size: 13px !important;
}

.atcpm-section--plans .atcpc-card__secondary,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__secondary {
	font-size: 14px !important;
	line-height: 1.45 !important;
}

.atcpm-section--plans .atcpc-card__feature,
.atcpm-section--plans .atcpc-card__feature-text,
.atcpm-section--plans .atcpc-card__detail-text,
.atcpm-section--plans .atcpm-plan-card ul li {
	font-size: 14px !important;
	line-height: 1.45 !important;
}

.atcpm-section--plans .atcpm-plan-card ul li {
	padding-left: 22px !important;
}

.atcpm-section--plans .atcpm-plan-card ul li::before {
	top: .2em;
	width: 14px;
	height: 14px;
}

.atcpm-section--plans .atcpc-card__toggle-label,
.atcpm-section--plans .atcpm-plan-card .pp-accordion-tab-title {
	font-size: 14px !important;
}

.atcpm-section--plans .atcpc-card__actions a,
.atcpm-section--plans .atcpc-card__actions button,
.atcpm-section--plans .atcpm-plan-card .elementor-button {
	min-height: 44px !important;
	font-size: 15px !important;
}

/* Four cards side by side leave a narrow column on small laptops: the price steps down there and grows back. */
@media (min-width: 900px) and (max-width: 1199px) {
	.atcpm-section--plans .atcpc-card__price,
	.atcpm-section--plans .atcpc-card__price-label,
	.atcpm-section--plans .atcpc-card__prefix,
	.atcpm-section--plans .atcpc-card__currency,
	.atcpm-section--plans .atcpc-card__amount,
	.atcpm-section--plans .atcpc-card__value,
	.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price > *,
	.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__value > * {
		font-size: 22px !important;
	}
}

/* "Por:" is a label, not the price: smaller, so "Por: R$ 1.000,00" fits a card in four columns without overflowing. */
.atcpm-section--plans .atcpc-card__price > .atcpc-card__price-label,
.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price > .atcpc-card__price-label {
	font-size: 20px !important;
}

@media (min-width: 900px) and (max-width: 1199px) {
	.atcpm-section--plans .atcpc-card__price > .atcpc-card__price-label,
	.atcpm-bf.atcpm-section--plans .is-featured .atcpc-card__price > .atcpc-card__price-label {
		font-size: 16px !important;
	}
}

/* -------------------------------------------------------------- Countdown */

.atcpm-countdown {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	font-family: var(--atcpm-font);
	text-align: left;
}

.atcpm-section--plans .elementor-widget-atcpm-countdown {
	margin-top: 60px;
}

.atcpm-section--plans .elementor-widget-atcpm-countdown + .elementor-element {
	margin-top: 0;
}

/* Hand-made cards have no top padding of their own, unlike the pricing widget. */
.atcpm-section--plans .elementor-widget-atcpm-countdown + .e-con.atcpm-plan-cards {
	margin-top: 32px;
}

.atcpm-countdown__info {
	min-width: 0;
	padding-top: 6px;
}

.atcpm-countdown__heading {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	color: #f3c671;
}

.atcpm-countdown__date {
	margin: 12px 0 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: #ffffff;
}

.atcpm-countdown__time {
	margin: 10px 0 0;
	font-size: 14px;
	line-height: 1.3;
	color: #b9b9b9;
}

.atcpm-countdown__label {
	flex-basis: 100%;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #f3c671;
}

.atcpm-countdown__units {
	display: flex;
	gap: 11px;
}

.atcpm-countdown__unit {
	display: grid;
	justify-items: center;
	gap: 12px;
}

.atcpm-countdown__unit strong {
	display: grid;
	place-items: center;
	width: 70px;
	height: 65px;
	border: 1px solid #3d3d3d;
	border-radius: 6px;
	background: #232323;
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: #ffdf95;
}

.atcpm-countdown__unit small {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #c9c9c9;
}

.atcpm-countdown__ended {
	display: none;
	flex-basis: 100%;
	margin: 0;
	font-weight: 700;
	color: #ffffff;
}

.atcpm-countdown.is-ended .atcpm-countdown__ended {
	display: block;
}

.atcpm-countdown.is-ended .atcpm-countdown__units {
	opacity: .5;
}

.atcpm-countdown.is-ended.is-hidden {
	display: none;
}

/* -------------------------------------------------------------- Free trial */

.atcpm-section--trial .atcpm-heading {
	max-width: 690px;
}

.atcpm-section--trial .atcpm-heading__title {
	font-size: 29px;
}

.atcpm-section--trial .atcpm-heading__subtitle {
	margin-top: 22px;
	line-height: 1.45;
	color: #e9edf5;
}

.atcpm-section--trial .elementor-widget-atcpm-section-heading + .elementor-element {
	margin-top: 0;
}

/* -------------------------------------------------------------- Guarantee */

.atcpm-guarantee {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	align-items: start;
	justify-items: start;
	font-family: var(--atcpm-font);
	color: var(--atcpm-on-dark-muted);
}

.atcpm-guarantee__seal {
	width: 165px;
	height: auto;
}

.atcpm-guarantee__copy {
	min-width: 0;
	max-width: 560px;
}

.atcpm-guarantee .atcpm-eyebrow {
	margin-bottom: 14px;
	color: var(--atcpm-eyebrow-dark);
}

.atcpm-guarantee .atcpm-heading__title {
	font-size: 30px;
	line-height: 1.2;
	color: var(--atcpm-on-dark);
}

.atcpm-guarantee__copy p:not(.atcpm-eyebrow) {
	margin: 40px 0 0;
	font-size: 16px;
	line-height: 1.4;
	color: #dce2ec;
}

.atcpm-guarantee__link {
	display: inline-block;
	margin-top: 30px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-eyebrow-dark);
	text-decoration: none;
}

.atcpm-guarantee__link span {
	display: inline-block;
	margin-left: 6px;
	transition: transform .2s;
}

.atcpm-guarantee__link:hover,
.atcpm-guarantee__link:focus-visible {
	color: var(--atcpm-eyebrow-dark);
	text-decoration: underline;
}

.atcpm-guarantee__link:hover span {
	transform: translateX(3px);
}

@media (min-width: 768px) {
	.atcpm-guarantee {
		grid-template-columns: 165px minmax(0, 1fr);
		gap: 53px;
		padding-left: 19px;
	}
}

/* ---------------------------------------------------------------- Reviews */

.atcpm-reviews {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-family: var(--atcpm-font);
}

@media (min-width: 768px) {
	.atcpm-reviews {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.atcpm-reviews__item {
	margin: 0;
	padding: 20px 16px 28px;
	border-radius: 8px;
	background: var(--atcpm-review-bg);
}

.atcpm-reviews__name {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-title);
}

.atcpm-reviews__meta {
	margin: 8px 0 0;
	font-size: 10px;
	line-height: 1.3;
	color: var(--atcpm-muted);
}

.atcpm-reviews__meta a {
	color: inherit;
	text-decoration: none;
}

.atcpm-reviews__meta a:hover {
	text-decoration: underline;
}

.atcpm-reviews__stars {
	display: flex;
	gap: 2px;
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1;
	color: #e3a33b;
}

/* The Standard reference has no stars on the review cards. */
.atcpm-std .atcpm-reviews__stars {
	display: none;
}

.atcpm-reviews__stars + .atcpm-reviews__text {
	margin-top: 16px;
}

.atcpm-reviews__text {
	margin: 24px 0 0;
	padding: 0;
	border: 0;
	font-style: normal;
}

.atcpm-reviews__text p {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	color: #2d3748;
}

.atcpm-bf .atcpm-reviews__text p {
	color: #1f1f1f;
}

/* Google reviews (Trustindex) as on the course pages, with the link to every review below. */
.atcpm-reviews-google {
	font-family: var(--atcpm-font);
}

.atcpm-reviews-google__all {
	margin: 16px 0 0;
	text-align: center;
}

.atcpm-reviews-google__all a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--atcpm-title);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
}

.atcpm-reviews-google__all a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

/* --------------------------------------------------------------- Practice */

.atcpm-practice {
	font-family: var(--atcpm-font);
	color: var(--atcpm-on-dark-muted);
}

.atcpm-practice__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 24px;
	align-items: start;
}

.atcpm-practice__photo {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 6px;
}

.atcpm-practice__copy {
	min-width: 0;
}

.atcpm-practice .atcpm-eyebrow {
	margin: 0 0 12px;
	color: #f2c27a;
}

.atcpm-practice .atcpm-heading__title {
	margin: 0;
	font-size: 26px;
	line-height: 1.2;
	color: var(--atcpm-on-dark);
	text-wrap: balance;
}

.atcpm-practice__text {
	margin: 16px 0 0;
	font-size: 16px;
	line-height: 1.45;
	color: #e4e6ec;
}

.atcpm-practice__highlight {
	margin: 24px 0 0;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	color: #f2c27a;
}

.atcpm-practice__highlight--note {
	margin-top: 10px;
}

.atcpm-practice__note {
	margin: 16px 0 0;
	font-size: 13px;
	line-height: 1.45;
	color: #b9bec9;
}

.atcpm-practice__more {
	margin-top: 36px;
}

.atcpm-practice__subtitle {
	margin: 0;
	font-family: var(--atcpm-font);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-on-dark);
}

.atcpm-practice__more p {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.45;
	color: #e4e6ec;
}

@media (min-width: 768px) {
	.atcpm-practice__intro {
		grid-template-columns: minmax(0, 43%) minmax(0, 1fr);
		gap: 34px;
	}

	.atcpm-practice .atcpm-heading__title {
		font-size: 30px;
	}
}

/* The photo slider: the same carousel as the benefits, with photos in place of cards. */
.atcpm-carousel--photos {
	margin-top: 48px;
}

.atcpm-carousel--photos .atcpm-carousel__photo {
	overflow: hidden;
	border-radius: 6px;
	aspect-ratio: 7 / 5;
}

.atcpm-carousel--photos .atcpm-carousel__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.atcpm-carousel--photos .atcpm-carousel__arrow,
.atcpm-bf .atcpm-carousel--photos .atcpm-carousel__arrow {
	width: 28px;
	height: 28px;
	border: 1.5px solid #f2c27a;
	background: transparent;
	box-shadow: none;
	color: #f2c27a;
	font-size: 15px;
}

.atcpm-carousel--photos .atcpm-carousel__arrow::after {
	inset: -8px;
}

.atcpm-carousel--photos .atcpm-carousel__arrow[disabled] {
	opacity: .4;
}

.atcpm-carousel--photos .atcpm-carousel__dots button::after {
	background: #6d6f78;
}

.atcpm-carousel--photos .atcpm-carousel__dots button[aria-current="true"]::after {
	background: #f2c27a;
}

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

.atcpm-faq {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 26px;
	align-items: start;
	font-family: var(--atcpm-font);
}

@media (min-width: 768px) {
	.atcpm-faq {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.atcpm-section--faq .elementor-widget-atcpm-section-heading + .elementor-element {
	margin-top: 14px;
}

.atcpm-faq__item {
	border-bottom: 1px solid var(--atcpm-border);
}

.atcpm-faq__question {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	min-height: 40px;
	padding: 12px 6px 13px 0;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--atcpm-title);
	cursor: pointer;
	list-style: none;
}

.atcpm-faq__question > :first-child {
	min-width: 0;
}

.atcpm-faq__question::-webkit-details-marker {
	display: none;
}

.atcpm-faq__chevron {
	flex: none;
	width: 16px;
	height: 16px;
	margin-top: 2px;
	color: var(--atcpm-title);
}

.atcpm-faq__plus-v {
	transform-origin: center;
	transition: transform .2s;
}

.atcpm-faq__item[open] .atcpm-faq__plus-v {
	transform: scaleY(0);
}

.atcpm-faq__answer {
	padding: 0 24px 16px 0;
}

.atcpm-faq__answer p {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	color: var(--atcpm-text);
}

/* ------------------------------------------------------------ Curriculum */

/* The curriculum is the course page's own PowerPack accordion (or, on the MBA pages, an icon list), copied with
   the colours of the live page: white titles in Open Sans, drawn for a dark band. In the layout it reads like
   the FAQ, so every rule wins over the widget's own Elementor controls (!important, deeper selector). */
.atcpm-section--grade .elementor-widget-heading + .elementor-element,
.atcpm-section--grade .elementor-widget-atcpm-section-heading + .elementor-element {
	margin-top: 14px;
}

.atcpm-section--grade :is(.elementor-widget-pp-advanced-accordion, .atcpm-grade-list) {
	width: 100% !important;
	max-width: none !important;
	font-family: var(--atcpm-font) !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-item {
	margin: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--atcpm-border) !important;
	background: transparent !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-title {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 16px;
	min-height: 40px;
	padding: 12px 6px 13px 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-family: var(--atcpm-font) !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	color: var(--atcpm-title) !important;
}

/* The toggle icons keep their own icon font (Liquid/Font Awesome): only the colour follows the title. */
.atcpm-section--grade .pp-advanced-accordion .pp-accordion-title-text {
	font-family: inherit !important;
	font-size: inherit !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-title :is(span, i, svg) {
	color: inherit !important;
	fill: currentColor !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-toggle-icon {
	flex: none;
	font-size: 16px !important;
	color: var(--atcpm-title) !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-content {
	padding: 0 24px 16px 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-family: var(--atcpm-font) !important;
	font-size: 13px !important;
	line-height: 1.55 !important;
	color: var(--atcpm-text) !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-content :is(p, li, ol, ul, span, strong) {
	font-family: inherit !important;
	font-size: inherit !important;
	color: inherit !important;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-content :is(p, ol, ul) {
	margin: 0 0 6px;
}

.atcpm-section--grade .pp-advanced-accordion .pp-accordion-tab-content :is(ol, ul) {
	padding-left: 20px;
}

.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-items {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 26px;
}

@media (min-width: 768px) {
	.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-item {
	align-items: flex-start !important;
	gap: 8px;
	margin: 0 !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid var(--atcpm-border);
}

.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-text {
	padding: 0 !important;
	font-family: var(--atcpm-font) !important;
	font-size: 12.5px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	color: var(--atcpm-title) !important;
}

.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-icon {
	margin-top: 2px;
	color: var(--atcpm-accent) !important;
}

.atcpm-section--grade .atcpm-grade-list .elementor-icon-list-icon :is(svg, i) {
	width: 13px;
	height: 13px;
	font-size: 13px;
	fill: currentColor !important;
	color: inherit !important;
}

/* ---------------------------------------------------------- Info band */

.atcpm-infoband {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
	font-family: var(--atcpm-font);
	text-align: center;
	color: var(--atcpm-text);
}

.atcpm-infoband__copy {
	min-width: 0;
	max-width: 100%;
}

.atcpm-infoband__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--atcpm-accent);
	color: var(--atcpm-accent-ink);
}

.atcpm-infoband__icon .atcpm-icon {
	width: 34px;
	height: 34px;
}

.atcpm-infoband__title {
	margin: 0;
	font-family: var(--atcpm-font);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--atcpm-title);
}

.atcpm-infoband__text {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.5;
}

@media (min-width: 768px) {
	.atcpm-infoband {
		flex-direction: row;
		text-align: left;
	}
}

/* The support line of the reference: plain text on the white page. */
.atcpm-infoband--plain {
	align-items: flex-start;
	text-align: left;
}

.atcpm-infoband--plain .atcpm-infoband__title {
	font-size: 17px;
	color: #102a5c;
}

.atcpm-bf .atcpm-infoband--plain .atcpm-infoband__title {
	color: #111111;
}

.atcpm-infoband--plain .atcpm-infoband__text {
	margin-top: 14px;
	font-size: 13px;
	color: var(--atcpm-text);
}

/* ------------------------------------------------------------- Black Max */

.atcpm-blackmax {
	position: relative;
	overflow: hidden;
	border: 1px solid #8c7440;
	border-radius: 16px;
	font-family: var(--atcpm-font);
	color: #d9d9d9;
	background: linear-gradient(90deg, #0d0e14 40%, #1f1a12);
}

/* One set of long gold diagonals over the whole card (offer and footer), so no line is cut where the two meet;
   as in the reference they live on the right and fade out towards the copy. */
.atcpm-blackmax::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: repeating-linear-gradient(123deg, transparent 0 56px, rgba(193, 160, 90, .45) 56px 57px);
	-webkit-mask-image: linear-gradient(90deg, transparent 38%, #000 72%);
	mask-image: linear-gradient(90deg, transparent 38%, #000 72%);
}

.atcpm-blackmax__card,
.atcpm-blackmax__footer {
	position: relative;
	z-index: 1;
}

.atcpm-blackmax__card {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	padding: 12px 20px 0;
}

@media (min-width: 900px) {
	.atcpm-blackmax__card {
		grid-template-columns: minmax(0, 1fr) 233px;
		padding-right: 33px;
	}
}

.atcpm-blackmax__pill {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	min-height: 44px;
	margin: 0;
	padding: 6px 28px 6px 13px;
	border: 2px solid #f3c671;
	border-radius: 999px;
	background: #111111;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .01em;
	color: #f3c671;
	text-transform: uppercase;
}

.atcpm-blackmax__pill span {
	flex: none;
	width: 13px;
	height: 13px;
	border-radius: 50%;
	background: #f3c671;
}

.atcpm-blackmax__title {
	margin: 20px 0 0;
	font-family: var(--atcpm-font);
	font-size: 30px;
	font-weight: 700;
	line-height: 1.35;
	color: #ffffff;
}

.atcpm-blackmax__title span {
	display: block;
	color: #f3c671;
}

.atcpm-blackmax__text {
	margin: 30px 0 0;
	font-size: 16px;
	line-height: 1.5;
	color: #d9d9d9;
}

.atcpm-blackmax .atcpm-btn--whatsapp {
	width: 381px;
	min-height: 55px;
	margin-top: 40px;
	font-size: 20px;
	border-radius: 6px;
}

.atcpm-checklist {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.atcpm-checklist li {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 15px;
	line-height: 1.5;
}

.atcpm-checklist li > :last-child {
	min-width: 0;
}

.atcpm-checklist .atcpm-icon {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	color: #f3c671;
}

.atcpm-blackmax__copy {
	min-width: 0;
}

.atcpm-blackmax__box {
	display: grid;
	justify-items: center;
	align-content: center;
	min-height: 202px;
	padding: 18px 12px;
	border: 1px solid #c8a55a;
	border-radius: 14px;
	background: #101014;
	text-align: center;
}

.atcpm-blackmax__before {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	color: #f3c671;
}

.atcpm-blackmax__value {
	margin: 6px 0 0;
	font-size: 70px;
	font-weight: 700;
	line-height: 1;
	color: #ffdf95;
}

.atcpm-blackmax__after {
	margin: 12px 0 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	color: #ffffff;
}

.atcpm-blackmax__note {
	margin: 18px 0 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	color: #f3c671;
}

.atcpm-blackmax__footer {
	padding: 32px 20px 22px;
	text-align: center;
}

.atcpm-blackmax__footer p {
	margin: 10px 0 0;
	font-size: 14px;
	line-height: 1.4;
	color: #cfcfcf;
}

.atcpm-blackmax__footer .atcpm-blackmax__footer-title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: #f3c671;
}

/* ---------------------------------------------------------- Lightbox */

.atcpm-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 56px 16px 16px;
	background: rgba(0, 0, 0, .88);
}

.atcpm-lightbox[hidden] {
	display: none;
}

.atcpm-lightbox__frame {
	width: min(1100px, 100%);
	aspect-ratio: 16 / 9;
	max-height: calc(100vh - 80px);
}

.atcpm-lightbox__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 10px;
}

.atcpm-lightbox__close {
	position: absolute;
	top: max(8px, env(safe-area-inset-top));
	right: max(8px, env(safe-area-inset-right));
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .14);
	color: #fff;
	cursor: pointer;
}

.atcpm-lightbox__close svg {
	width: 22px;
	height: 22px;
}

html.atcpm-no-scroll {
	overflow: hidden;
}

/* ---------------------------------------------------------------- Modals */

.e-con.atcpm-modals {
	--padding-top: 0;
	--padding-bottom: 0;
	--min-height: 0;
	min-height: 0;
	padding: 0;
}

/* ---------------------------------------------------- Editor-only helpers */

.atcpm-slot {
	padding: 20px;
	border: 2px dashed #d63638;
	border-radius: 10px;
	background: #fcf0f1;
	color: #8a1f21;
	font-size: 14px;
	line-height: 1.5;
}

.atcpm-slot p,
.atcpm-editor-note {
	margin: 6px 0 0;
}

.atcpm-editor-note {
	padding: 12px;
	border: 1px dashed currentColor;
	border-radius: 8px;
	font-size: 14px;
}

/* ---------------------------------------------------------------- Motion */

@media (prefers-reduced-motion: reduce) {
	.atcpm-carousel__track {
		scroll-behavior: auto;
	}

	.atcpm-btn,
	.atcpm-btn:hover,
	.atcpm-video__open img,
	.atcpm-video__open:hover img,
	.atcpm-lessons__open img,
	.atcpm-lessons__open:hover img,
	.atcpm-guarantee__link span {
		transition: none;
		transform: none;
	}

	.atcpm-faq__plus-v,
	.atcpm-carousel__dots button::after {
		transition: none;
	}
}

/* ------------------------------------------------------------ Phones */

@media (max-width: 899px) {
	.e-con.atcpm-card--form {
		width: 100%;
		max-width: 420px;
	}

	.e-con.atcpm-std.atcpm-section--hero .elementor-widget-atcpm-feature-carousel {
		margin-top: 36px;
	}
}

@media (max-width: 767px) {
	.e-con.atcpm-section {
		--padding-top: 40px;
		--padding-bottom: 40px;
	}

	.e-con.atcpm-section--hero {
		--padding-top: 24px;
		--padding-bottom: 40px;
	}

	.main-header-overlay ~ #lqd-site-content .e-con.atcpm-section--hero {
		--padding-top: calc(var(--atcpm-header-height) + 20px);
	}

	.e-con.atcpm-std.atcpm-section--hero {
		--padding-bottom: 10px;
	}

	.e-con.atcpm-section--video {
		--padding-top: 64px;
		--padding-bottom: 32px;
	}

	.e-con.atcpm-section--lessons,
	.e-con.atcpm-section--faq,
	.e-con.atcpm-section--grade,
	.e-con.atcpm-section--support {
		--padding-top: 0px;
	}

	.e-con.atcpm-section--plans {
		--padding-top: 130px;
	}

	.e-con.atcpm-bf.atcpm-section--plans {
		--padding-top: 56px;
	}

	.e-con.atcpm-section--trial {
		--padding-top: 72px;
		--padding-bottom: 110px;
	}

	.e-con.atcpm-section--guarantee {
		--padding-top: 48px;
		--padding-bottom: 160px;
	}

	.e-con.atcpm-section--practice {
		--padding-top: 48px;
	}

	.e-con.atcpm-bf.atcpm-section--practice {
		--padding-bottom: 110px;
	}

	.e-con.atcpm-section--blackmax {
		--padding-top: 64px;
		--padding-left: 12px;
		--padding-right: 12px;
	}

	.atcpm-hero__title { font-size: 28px; }
	.atcpm-hero__motto { font-size: 21px; }
	.atcpm-hero__checks { gap: 6px 28px; margin-top: 20px; }
	.atcpm-hero__checks li,
	.atcpm-hero__kicker { font-size: 14px; }
	.atcpm-hero__slogan { margin-top: 26px; }
	.atcpm-heading__title,
	.atcpm-video__copy .atcpm-heading__title,
	.atcpm-guarantee .atcpm-heading__title,
	.atcpm-section--trial .atcpm-heading__title { font-size: 23px; }
	.atcpm-blackmax__title { font-size: 23px; }
	.atcpm-heading__subtitle,
	.atcpm-video__text,
	.atcpm-guarantee__copy p:not(.atcpm-eyebrow),
	.atcpm-blackmax__text { font-size: 14.5px; }
	.atcpm-guarantee__copy p:not(.atcpm-eyebrow) { margin-top: 20px; }
	.atcpm-video__link { margin-top: 18px; }
	.atcpm-guarantee__seal { width: 120px; }
	.atcpm-blackmax__pill { font-size: 12.5px; padding-right: 18px; }
	.atcpm-blackmax .atcpm-btn--whatsapp { width: 100%; font-size: 17px; }
	.atcpm-blackmax__value { font-size: 56px; }
	.atcpm-blackmax__card { padding-top: 18px; }
	.atcpm-countdown__unit strong { width: 60px; height: 56px; font-size: 24px; }
	.atcpm-countdown__units { gap: 8px; }
	.atcpm-bf .atcpm-carousel__arrow--prev { left: calc((100% - 100vw) / 2 + 4px); }
}
