/*
Theme Name: Drumskill TT5 Child
Theme URI: https://www.drumskill.ru/
Description: Child theme for migrating drumskill.ru from a custom WordPress theme to Twenty Twenty-Five.
Author: Drumskill
Template: twentytwentyfive
Version: 0.3.29
Text Domain: drumskill-tt5-child
Requires at least: 6.7
Requires PHP: 7.4
*/

@font-face {
	font-display: block;
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 400 800;
	src: url("assets/fonts/open-sans/open-sans-cyrillic.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-display: block;
	font-family: "Open Sans";
	font-style: normal;
	font-weight: 400 800;
	src: url("assets/fonts/open-sans/open-sans-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-display: block;
	font-family: "Open Sans Condensed";
	font-style: normal;
	font-weight: 300;
	src: url("assets/fonts/open-sans/open-sans-condensed-cyrillic.woff2") format("woff2");
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
	font-display: block;
	font-family: "Open Sans Condensed";
	font-style: normal;
	font-weight: 300;
	src: url("assets/fonts/open-sans/open-sans-condensed-latin.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

html {
	scroll-behavior: smooth;
}

body {
	background: #050505;
	color: #fff;
	font-family: "Open Sans", sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-synthesis: none;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-post-title {
	font-family: "Open Sans Condensed", "Arial Narrow", sans-serif;
	font-weight: 300;
}

.wp-site-blocks a,
.wp-site-blocks a:hover,
.wp-site-blocks a:focus,
.wp-site-blocks a:active,
.wp-site-blocks a:visited {
	text-decoration: none;
	text-decoration-line: none;
}

.ds-lightbox-disabled-image {
	cursor: default;
}

.ds-reviews-platforms-title,
.ds-reviews-platforms-links {
	text-align: center;
}

@media (hover: hover) and (pointer: fine) {
	.ds-lightbox-enabled-image {
		cursor: pointer;
		transition: transform 220ms ease;
	}

	.ds-lightbox-enabled-image img {
		transition: transform 220ms ease;
	}

	.ds-lightbox-enabled-image:hover {
		cursor: -webkit-zoom-in;
		cursor: zoom-in;
		transform: scale(1.025);
	}

	.ds-lightbox-enabled-image:hover img {
		transform: scale(1.025);
	}
}

/* Unified thin separators across the site. */
.wp-site-blocks hr,
.wp-site-blocks .wp-block-separator,
.wp-site-blocks .separator {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	clear: both;
	height: 0;
	opacity: 1;
}

/* Keep internal page titles at the same distance from the header. */
body:not(.home) main#wp--skip-link--target {
	margin-top: 0;
}

/* Global: every page except home has a divider directly under the page/post title. */
body:not(.home) .wp-block-post-title {
	border-bottom: 1px solid rgba(255, 255, 255, 0.18);
	margin-bottom: clamp(1.4rem, 3vw, 2rem);
	padding-bottom: clamp(0.9rem, 2vw, 1.3rem);
}

.ds-site-header {
	background: #050505;
	border-bottom: 0;
	color: #fff;
	position: relative;
	z-index: 5;
}

.ds-main-nav {
	--ds-nav-font-size: clamp(0.86rem, 1vw, 1rem);
	--ds-nav-link-pad-y: 0.46rem;
	--ds-nav-link-pad-x: 0.78rem;
	color: #ffd400;
	font-size: var(--ds-nav-font-size);
	font-weight: 500;
	justify-content: center;
	text-align: center;
}

.ds-site-header .wp-block-navigation {
	margin-left: auto;
	margin-right: auto;
}

.ds-site-header .wp-block-navigation__container {
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	width: fit-content;
}

.ds-site-header .ds-header-social {
	--ds-social-size: 2.15rem;
	--ds-social-gap: 0.65rem;
	column-gap: var(--ds-social-gap);
	display: none;
	grid-template-columns: repeat(4, var(--ds-social-size));
	row-gap: 0;
	width: calc((var(--ds-social-size) * 4) + (var(--ds-social-gap) * 3));
}

.ds-header-social p {
	margin: 0;
}

.ds-main-nav a {
	border: 1px solid transparent;
	border-radius: 999px;
	box-sizing: border-box;
	color: inherit;
	padding: var(--ds-nav-link-pad-y) var(--ds-nav-link-pad-x);
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, color 180ms ease;
}

.ds-main-nav a:hover,
.ds-main-nav .current-menu-item > a,
.ds-main-nav .current-menu-ancestor > a {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	color: #ffd400;
}

/* Keep keyboard focus visible in nav, but suppress mouse click focus ring. */
.ds-main-nav a:focus:not(:focus-visible) {
	outline: none;
}

.ds-main-nav a:focus-visible {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	color: #ffd400;
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

.ds-main-nav .wp-block-navigation__responsive-container-open {
	color: #ffd400;
}

.ds-main-nav .wp-block-navigation__responsive-container-open svg,
.ds-main-nav .wp-block-navigation__responsive-container-close svg {
	fill: currentColor;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: #050505;
	color: #ffd400;
	padding: clamp(1.5rem, 6vw, 2.5rem);
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-end;
	padding-top: clamp(4rem, 12vw, 6rem);
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: flex-end;
	gap: 1.25rem;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open a {
	color: #ffd400;
	font-size: clamp(1.35rem, 6vw, 2rem);
	font-weight: 500;
	line-height: 1.15;
	border: 1px solid transparent;
	border-radius: 999px;
	box-sizing: border-box;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open a:hover {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	border-radius: 999px;
	color: #ffd400;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open a:focus-visible {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	border-radius: 999px;
	color: #ffd400;
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > a,
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current_page_item > a {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	border-radius: 999px;
	color: #ffd400;
}

body.single-video .ds-main-nav .wp-block-navigation-item:not(.ds-language-switcher):has(> a[href*="/video"]) > a,
body.ds-single-video .ds-main-nav .wp-block-navigation-item:not(.ds-language-switcher):has(> a[href*="/video"]) > a {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	color: #ffd400;
}

body.single-video .ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.ds-language-switcher):has(> a[href*="/video"]) > a,
body.ds-single-video .ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:not(.ds-language-switcher):has(> a[href*="/video"]) > a {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.14));
	border: 1px solid rgba(132, 0, 50, 0.44);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
	color: #ffd400;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-ancestor > a,
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current-menu-parent > a,
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current_page_parent > a,
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .current_page_ancestor > a,
.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .menu-item-home:not(.current-menu-item):not(.current_page_item) > a {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a:focus-visible {
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

.ds-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a {
	border: 1px solid transparent;
	padding: 0.52rem 1rem;
}

.ds-main-nav .wp-block-navigation__responsive-container-close {
	color: #ffd400;
	right: clamp(1.25rem, 5vw, 2rem);
	top: clamp(1.25rem, 5vw, 2rem);
}

/*
 * Fallback for WP responsive navigation modal:
 * keep brand black/yellow colors even if container is rendered outside
 * .ds-main-nav subtree in some mobile layouts.
 */
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	background-color: #050505;
}

.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open {
	color: #ffd400;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: #ffd400;
}

.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container-open,
.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container-close {
	color: #ffd400;
}

/* Mobile header/navigation rules are isolated here for easier maintenance. */
@media (max-width: 720px) {
	html,
	body {
		overflow-x: hidden;
	}

	.ds-site-header {
		padding-top: 1rem;
		padding-bottom: 0.75rem;
	}

	.ds-header-inner {
		align-items: center;
		display: flex;
		flex-wrap: nowrap;
		justify-content: space-between;
		width: 100%;
	}

	.ds-site-header .ds-header-social {
		display: grid;
		flex: 0 0 auto;
	}

	.ds-site-header .ds-main-nav {
		flex: 0 0 auto;
	}

	.ds-site-header .wp-block-navigation,
	.ds-site-header .wp-block-navigation__container {
		flex-wrap: wrap;
		justify-content: flex-end;
		margin-left: auto;
		margin-right: 0;
		width: 100%;
	}

	.ds-site-header .wp-block-navigation {
		width: auto;
	}

	.ds-site-header .wp-block-navigation__container {
		width: fit-content;
	}

	.ds-site-header .wp-block-navigation__responsive-container-open {
		margin-left: auto;
		margin-right: 0;
	}

	/* Switch to overlay menu before horizontal links start wrapping on narrow viewports. */
	nav.ds-main-nav > .wp-block-navigation__responsive-container-open {
		display: flex;
	}

	nav.ds-main-nav > .wp-block-navigation__responsive-container:not(.is-menu-open):not(.has-modal-open) {
		display: none;
	}

	.ds-footer-phone,
	.ds-footer-phone a,
	.ds-footer-address,
	.ds-footer-address a,
	.ds-footer-seo a {
		white-space: normal;
	}
}

.ds-reference-hero {
	align-items: stretch;
	background: #050505;
	isolation: isolate;
	position: relative;
}

.ds-reference-hero .wp-block-cover__background {
	background:
		radial-gradient(circle at 70% 22%, rgba(255, 255, 255, 0.08), transparent 24rem),
		linear-gradient(90deg, rgba(0, 0, 0, 0.98) 0%, rgba(0, 0, 0, 0.88) 34%, rgba(0, 0, 0, 0.64) 62%, rgba(0, 0, 0, 0.9) 100%);
	opacity: 1;
}

.ds-reference-hero::after {
	display: none;
}

.ds-reference-hero .wp-block-cover__image-background {
	filter: grayscale(1) contrast(1.18) brightness(0.38);
	object-position: top center;
	transform: none;
}

.ds-reference-hero .wp-block-cover__inner-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: calc(76vh - 10rem);
	position: relative;
	width: 100%;
	z-index: 2;
}

.ds-hero-layout {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-left: auto;
	margin-right: auto;
	padding-top: clamp(1.4rem, 4vh, 3.5rem);
	text-align: center;
}

.ds-reference-title {
	letter-spacing: 0;
	margin-bottom: clamp(1.5rem, 3vw, 2.3rem);
	margin-left: auto;
	margin-right: auto;
	max-width: 760px;
	text-align: center;
	text-shadow: 0 2px 28px rgba(0, 0, 0, 0.6);
	transform: translateY(-0.5em);
}

.ds-title-line {
	display: block;
	margin-left: auto;
	margin-right: auto;
	white-space: nowrap;
	width: fit-content;
}

.ds-reference-subtitle {
	color: #fff;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-top: 0;
	margin-bottom: 0;
	text-align: center;
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.6);
}

.ds-reference-badge {
	border: 1px solid rgba(255, 255, 255, 0.85);
	border-radius: 6px;
	color: #fff;
	display: inline-block;
	font-size: 0.92rem;
	font-weight: 800;
	letter-spacing: 0.055em;
	margin-top: clamp(2rem, 4vw, 2.9rem);
	padding: 0.28rem 0.7rem;
}

.ds-reference-lead {
	color: rgba(255, 255, 255, 0.72);
	margin-left: auto;
	margin-right: auto;
	margin-top: clamp(3.4rem, 4.8vw, 4.5rem);
	max-width: 675px;
}

.ds-reference-lead .ds-lead-line {
	display: block;
	white-space: nowrap;
}

/* Wide desktop polish for home hero (2K+). */
@media (min-width: 1800px) {
	.ds-reference-hero .wp-block-cover__background {
		background:
			radial-gradient(circle at 68% 24%, rgba(255, 255, 255, 0.09), transparent 30rem),
			linear-gradient(90deg, rgba(0, 0, 0, 0.985) 0%, rgba(0, 0, 0, 0.9) 38%, rgba(0, 0, 0, 0.66) 65%, rgba(0, 0, 0, 0.9) 100%);
	}

	.ds-hero-layout {
		max-width: 760px;
		padding-top: clamp(2rem, 5vh, 4rem);
	}

	.ds-reference-title {
		font-size: clamp(4.35rem, 4.7vw, 5.2rem);
		line-height: 1.02;
		margin-bottom: clamp(2.4rem, 3vw, 3rem);
		max-width: 920px;
	}

	.ds-reference-subtitle {
		font-size: clamp(2.05rem, 2.2vw, 2.55rem);
		line-height: 1.15;
		max-width: none;
		white-space: nowrap;
	}

	.ds-reference-lead {
		font-size: 1.28rem;
		line-height: 1.6;
		margin-top: clamp(4.2rem, 5vw, 5.2rem);
		max-width: 760px;
	}

	.ds-reference-badge {
		font-size: 1.02rem;
		padding: 0.42rem 0.95rem;
	}

	.ds-main-nav {
		--ds-nav-font-size: 1.04rem;
		--ds-nav-link-pad-y: 0.54rem;
		--ds-nav-link-pad-x: 0.92rem;
	}
}

/* Home page: keep hero/menu centered on all desktop sizes. */
@media (min-width: 821px) {
	/* Needed to override Gutenberg layout classes that reflow hero content. */
	body:is(.home, .ds-page-home) .ds-hero-layout {
		align-items: center;
		display: flex;
		flex-direction: column;
		margin-left: auto;
		margin-right: auto;
		max-width: none;
		text-align: center;
		transform: none;
		width: 100%;
	}

	body:is(.home, .ds-page-home) :is(.ds-reference-title, .ds-reference-subtitle, .ds-reference-lead, .ds-reference-badge) {
		/* Needed to keep home hero text centered against Gutenberg align presets. */
		margin-left: auto !important;
		margin-right: auto !important;
		text-align: center;
	}

	body:is(.home, .ds-page-home) .ds-reference-title {
		max-width: min(92vw, 1200px);
		width: auto;
	}

	body:is(.home, .ds-page-home) .ds-reference-subtitle {
		max-width: min(92vw, 1400px);
		width: fit-content;
	}

	body:is(.home, .ds-page-home) .ds-reference-lead {
		max-width: min(92vw, 1000px);
		width: auto;
	}

	body:is(.home, .ds-page-home) .ds-title-line {
		width: fit-content;
	}
}

.ds-page-content {
	background:
		radial-gradient(circle at 92% 8%, rgba(255, 212, 0, 0.08), transparent 20rem),
		#050505;
	color: #fff;
}

.ds-page-content a {
	color: #ffd400;
	text-decoration-color: rgba(255, 212, 0, 0.38);
}

.ds-intro-block {
	border-left: 1px solid rgba(255, 212, 0, 0.78);
	color: rgba(255, 255, 255, 0.8);
	font-size: clamp(1.08rem, 1.45vw, 1.25rem);
	line-height: 1.78;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1.25rem, 3vw, 2.25rem);
}

.ds-intro-block p {
	margin-block: 0 1.15rem;
}

.ds-intro-block p:last-child {
	margin-bottom: 0;
}

.ds-numbered-grid {
	margin-top: clamp(4rem, 7vw, 6rem);
}

.ds-numbered-grid-second {
	margin-top: clamp(2rem, 4vw, 3rem);
}

.ds-numbered-card {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	min-height: 100%;
	padding-top: 1.65rem;
}

.ds-numbered-card h2,
.ds-diplomas h2 {
	color: #fff;
	font-size: clamp(1.65rem, 2.4vw, 2.15rem);
	font-weight: 900;
	letter-spacing: 0;
	line-height: 1.16;
	margin: 0 0 1rem;
}

.ds-numbered-card p {
	color: rgba(255, 255, 255, 0.68);
	font-size: 1.02rem;
	line-height: 1.66;
	margin-block: 0 0.95rem;
}

.ds-numbered-card p:last-child {
	margin-bottom: 0;
}

.ds-diplomas {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin-top: clamp(3.2rem, 6vw, 5rem);
	max-width: var(--wp--style--global--wide-size);
	padding-top: clamp(2.2rem, 4.5vw, 3.3rem);
	width: 100%;
}

.ds-diploma-grid {
	column-gap: clamp(2rem, 5vw, 4.5rem);
	justify-content: space-between;
	margin-top: 1.35rem;
	max-width: none;
	width: 100%;
}

.ds-diploma-grid .wp-block-column {
	max-width: none;
}

.ds-diploma-card {
	background: #111;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	margin: 0;
	overflow: hidden;
}

.ds-diploma-card img {
	aspect-ratio: 1.42 / 1;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ds-diploma-card figcaption {
	background: #0d0d0d;
	color: rgba(255, 255, 255, 0.72);
	display: flex;
	flex-wrap: wrap;
	font-size: 0.95rem;
	column-gap: 0.35rem;
	margin: 0;
	padding: 0.85rem 1rem;
	row-gap: 0.12rem;
	text-align: left;
}

.ds-diploma-caption-title {
	white-space: nowrap;
}

.ds-diploma-card figcaption a {
	color: #ffd400;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
	white-space: nowrap;
}

.ds-diploma-card figcaption a:hover,
.ds-diploma-card figcaption a:focus-visible {
	color: #fff;
}

@media (min-width: 721px) {
	.ds-diploma-grid {
		column-gap: clamp(2rem, 5vw, 4.5rem);
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.ds-diploma-grid > .wp-block-column {
		flex-basis: auto;
		min-width: 0;
	}
}

@media (min-width: 721px) and (max-width: 781px) {
	.ds-diploma-grid.wp-block-columns {
		flex-wrap: nowrap;
	}

	.ds-diploma-grid.wp-block-columns > .wp-block-column {
		/* Needed to override WordPress core mobile column stacking up to 781px. */
		flex-basis: 0 !important;
	}
}

@media (min-width: 1201px) and (hover: hover) and (pointer: fine) {
	.ds-numbered-grid {
		column-gap: clamp(2rem, 5vw, 4.5rem);
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.ds-numbered-grid > .wp-block-column {
		flex-basis: auto;
		min-width: 0;
	}
}

@media (min-width: 721px) and (max-width: 1366px) and (orientation: portrait) {
	body:is(.home, .ds-page-home) {
		--ds-home-main-pad-inline: 1.5rem;
	}

	body:is(.home, .ds-page-home) .ds-reference-hero {
		min-height: auto;
	}

	body:is(.home, .ds-page-home) .ds-reference-hero .wp-block-cover__inner-container {
		min-height: auto;
		padding-top: 2.1rem;
		padding-bottom: 2.8rem;
	}

	body:is(.home, .ds-page-home) .ds-hero-layout {
		gap: 3rem;
		margin-top: -3rem;
		padding-top: 0.2rem;
	}

	body:is(.home, .ds-page-home) .ds-reference-badge {
		margin-top: 0.7rem;
	}

	body:is(.home, .ds-page-home) .ds-reference-lead {
		margin-top: 0.5rem;
	}

	body.home .ds-numbered-grid.alignwide {
		margin-left: 0;
		margin-right: 0;
		max-width: none;
		width: 100%;
	}

	body.home .ds-numbered-grid.wp-block-columns {
		display: block;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column {
		flex-basis: 100%;
		margin-left: 0;
		margin-top: 0;
		width: 100%;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column + .wp-block-column {
		margin-top: 1.65rem;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column .ds-numbered-card {
		padding-bottom: 1.65rem;
		padding-top: 1.65rem;
	}

	body.home .ds-page-content > .alignwide,
	body.home .ds-page-content .ds-intro-block {
		max-width: 100%;
		width: 100%;
	}
}

@media (max-width: 720px) {
	body:is(.home, .ds-page-home) {
		--ds-home-main-pad-inline: 1.5rem;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column {
		margin-top: 0;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column + .wp-block-column {
		margin-top: 1.65rem;
	}

	body.home .ds-numbered-grid.wp-block-columns > .wp-block-column .ds-numbered-card {
		padding-bottom: 1.65rem;
		padding-top: 1.65rem;
	}
}

@media (min-width: 721px) and (max-width: 1366px) and (orientation: landscape) {
	.ds-numbered-grid {
		column-gap: clamp(2rem, 5vw, 4.5rem);
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.ds-numbered-grid > .wp-block-column {
		flex-basis: auto;
		min-width: 0;
	}

	body.home main.ds-page-content .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
		max-width: 100%;
	}

	body.home .ds-intro-block > :is(p, ul, ol, blockquote, pre, table, figure) {
		max-width: 100%;
	}
}

html.ds-lightbox-open,
html.ds-lightbox-open body {
	overflow: hidden;
	overscroll-behavior: contain;
	touch-action: none;
}

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

.ds-lightbox {
	align-items: center;
	background: rgba(0, 0, 0, 0.88);
	display: grid;
	grid-template-columns: minmax(3rem, 5vw) minmax(0, 1fr) minmax(3rem, 5vw);
	inset: 0;
	justify-items: center;
	padding: clamp(1rem, 3vw, 2.5rem);
	position: fixed;
	z-index: 9999;
}

.ds-lightbox:focus {
	outline: none;
}

.ds-lightbox__figure {
	grid-column: 2;
	margin: 0;
	max-height: 90vh;
	max-width: min(1120px, 86vw);
}

.ds-lightbox__viewport {
	margin: 0 auto;
	max-width: 100%;
	overflow: hidden;
	position: relative;
}

.ds-lightbox__image {
	border-radius: 6px;
	box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.55);
	display: block;
	max-height: 82vh;
	max-width: 100%;
	object-fit: contain;
}

.ds-lightbox__peek {
	border-radius: 6px;
	box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, 0.55);
	display: block;
	height: 100%;
	inset: 0;
	max-height: 82vh;
	max-width: 100%;
	object-fit: contain;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	width: 100%;
}

.ds-lightbox__caption {
	color: rgba(255, 255, 255, 0.72);
	font-size: 1rem;
	margin-top: 0.85rem;
	text-align: center;
}

.ds-lightbox__dots {
	align-items: center;
	display: flex;
	gap: 0.42rem;
	justify-content: center;
	margin-top: 0.5rem;
	min-height: 0.7rem;
}

.ds-lightbox__dot {
	background: rgba(255, 255, 255, 0.35);
	border-radius: 999px;
	display: block;
	height: 0.42rem;
	width: 0.42rem;
}

.ds-lightbox__dot.is-active {
	background: #ffd400;
	transform: scale(1.14);
}

.ds-lightbox__close,
.ds-lightbox__arrow {
	align-items: center;
	appearance: none;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-family: inherit;
	justify-content: center;
	line-height: 1;
	transition: background-color 180ms ease, color 180ms ease;
}

.ds-lightbox__close:hover,
.ds-lightbox__arrow:hover {
	background: #ffd400;
	color: #050505;
}

.ds-lightbox__close:focus-visible,
.ds-lightbox__arrow:focus-visible {
	background: #ffd400;
	color: #050505;
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

.ds-lightbox__close {
	font-size: 2rem;
	height: 3rem;
	position: absolute;
	right: clamp(1rem, 3vw, 2rem);
	top: clamp(1rem, 3vw, 2rem);
	width: 3rem;
}

.ds-lightbox__arrow {
	font-size: 3rem;
	height: 4rem;
	width: 4rem;
}

.ds-lightbox__arrow--prev {
	grid-column: 1;
}

.ds-lightbox__arrow--next {
	grid-column: 3;
}

/* Diploma lightbox: tablet/touch mode without side arrows, swipe navigation only. */
.ds-lightbox.ds-lightbox--no-arrows {
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
}

.ds-lightbox.ds-lightbox--no-arrows .ds-lightbox__figure {
	grid-column: 1;
	max-width: 94vw;
}

.ds-lightbox.ds-lightbox--no-arrows .ds-lightbox__arrow {
	display: none;
}

@media (max-width: 1200px), (hover: none), (pointer: coarse) {
	.ds-lightbox {
		grid-template-columns: 1fr;
		grid-template-rows: 1fr;
	}

	.ds-lightbox__figure {
		grid-column: 1;
		max-width: 94vw;
	}

	.ds-lightbox__arrow {
		display: none;
	}
}

.ds-site-footer {
	background: #050505;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.62);
	font-size: 1rem;
	line-height: 1.55;
	position: relative;
	z-index: 5;
}

.ds-footer-grid {
	display: grid;
	gap: clamp(2rem, 5vw, 5.5rem);
	grid-template-columns: minmax(10rem, 0.75fr) minmax(20rem, 1.3fr) minmax(9rem, 0.75fr) minmax(12rem, 0.9fr);
}

.ds-footer-social {
	--ds-social-size: 2.15rem;
	--ds-social-gap: 0.65rem;
	align-content: start;
	column-gap: var(--ds-social-gap);
	display: grid;
	grid-template-columns: repeat(4, var(--ds-social-size));
	row-gap: 0.75rem;
	padding-top: 0.25rem;
	width: calc((var(--ds-social-size) * 4) + (var(--ds-social-gap) * 3));
}

/* Keep footer column order identical across all breakpoints. */
.ds-site-footer .ds-footer-social {
	order: 1;
}

.ds-site-footer .ds-footer-seo {
	order: 2;
}

.ds-site-footer .ds-footer-menu--primary {
	order: 3;
}

.ds-site-footer .ds-footer-menu--secondary {
	order: 4;
}

.ds-footer-social p,
.ds-footer-social p {
	margin: 0;
}

.ds-footer-social .ds-footer-phone {
	grid-column: 1 / -1;
	margin-top: 0.15rem;
	text-align: left;
	width: 100%;
}

.ds-footer-phone,
.ds-footer-phone a {
	color: #ffd400;
	font-size: clamp(1.365rem, 1.5vw, 1.5rem);
	font-weight: 400;
	letter-spacing: 0;
	white-space: nowrap;
}

.ds-footer-phone a {
	display: block;
	text-decoration: none;
	transition: color 180ms ease;
}

.ds-footer-phone a:hover {
	color: #fff;
}

.ds-footer-address,
.ds-footer-address a {
	color: #ffd400;
	font-size: clamp(0.86rem, 0.95vw, 0.95rem);
	line-height: 1.2;
	white-space: nowrap;
}

.ds-footer-address a {
	display: block;
	text-decoration: none;
}

.ds-footer-address a:hover {
	color: #fff;
}

.ds-site-footer .ds-footer-phone,
.ds-site-footer .ds-footer-address {
	display: none;
}

.ds-social-link {
	--ds-social-hover-inset: 0.32rem;
	align-items: center;
	background: #ffd400;
	border-radius: 999px;
	color: #050505;
	display: flex;
	height: var(--ds-social-size);
	justify-content: center;
	overflow: hidden;
	position: relative;
	width: var(--ds-social-size);
}

.ds-social-link::before {
	background-color: #050505;
	content: "";
	display: block;
	height: 1.5rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 1.5rem;
}

.ds-social-link--instagram::before,
.ds-social-link--youtube::before,
.ds-social-link--tiktok::before,
.ds-social-link--patreon::before {
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 50%;
	height: var(--ds-social-size);
	transform: translate(-50%, -50%);
	width: var(--ds-social-size);
}

.ds-social-link--instagram::before {
	background-image: url("/wp-content/uploads/2026/05/instagram-logo.svg?v=1");
}

.ds-social-link--youtube::before {
	background-image: url("/wp-content/uploads/2026/05/youtube-logo.svg?v=1");
}

.ds-social-link--tiktok::before {
	background-image: url("/wp-content/uploads/2026/05/tiktok-logo.svg?v=1");
}

.ds-social-link--patreon::before {
	background-image: url("/wp-content/uploads/2026/05/patreon-logo.svg?v=2");
}

@media (hover: hover) and (pointer: fine) {
	.ds-social-link:hover {
		background: #fff;
		color: #050505;
	}

	/* Reveal a white hover ring by shrinking only the PNG icon layer. */
	.ds-social-link:is(.ds-social-link--instagram, .ds-social-link--youtube, .ds-social-link--tiktok, .ds-social-link--patreon):hover::before {
		height: calc(var(--ds-social-size) - var(--ds-social-hover-inset));
		width: calc(var(--ds-social-size) - var(--ds-social-hover-inset));
	}
}


.ds-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ds-footer-menu li + li {
	margin-top: 0.9rem;
}

.ds-footer-menu a {
	color: #ffd400;
	font-size: clamp(0.86rem, 1vw, 1rem);
	font-weight: 400;
	text-decoration: none;
	transition: color 180ms ease;
}

.ds-footer-menu a:hover {
	color: #fff;
}

.ds-footer-seo a {
	font-size: clamp(0.86rem, 1vw, 1rem);
	font-weight: 400;
	line-height: 1.45;
	white-space: nowrap;
}

@media (max-width: 720px) {
	.ds-mobile-break {
		display: block;
	}

	.ds-reference-hero {
		min-height: auto;
	}

	.ds-reference-hero .wp-block-cover__inner-container {
		align-items: center;
		min-height: auto;
		padding-left: 1rem;
		padding-right: 1rem;
		padding-top: 2.1rem;
		padding-bottom: 2.8rem;
	}

	.ds-hero-layout {
		--ds-hero-mobile-text-width: min(100%, 21rem);
		align-items: center;
		display: flex;
		flex-direction: column;
		gap: 3rem;
		margin-left: auto;
		margin-right: auto;
		margin-top: -3rem;
		padding-top: 0.2rem;
		text-align: center;
		width: 100%;
	}

		.ds-reference-title {
			/* Needed to override inline heading typography from block markup on narrow screens. */
		font-size: clamp(2.05rem, 8.6vw, 2.7rem) !important;
		line-height: 1.04;
		margin-bottom: 0.25rem;
		max-width: var(--ds-hero-mobile-text-width);
		text-wrap: balance;
		transform: none;
	}

	.ds-reference-title .ds-title-line {
		white-space: nowrap;
		display: block;
		text-align: center;
		width: 100%;
	}

		.ds-reference-subtitle {
			/* Needed to override inline subtitle font-size from block markup on narrow screens. */
			font-size: clamp(1.1rem, 5.9vw, 1.42rem) !important;
			font-weight: 800;
			line-height: 1.17;
			letter-spacing: -0.01em;
			margin-left: auto;
			margin-right: auto;
		max-width: var(--ds-hero-mobile-text-width);
		margin-top: 0.15rem;
		text-wrap: pretty;
		white-space: normal;
	}

	.ds-reference-badge {
		align-self: center;
		align-items: center;
		border-width: 2px;
		display: inline-flex;
		font-size: 0.72rem;
		justify-content: center;
		letter-spacing: 0.035em;
		margin-left: auto;
		margin-right: auto;
		margin-top: 0.7rem;
		padding: 0.34rem 0.95rem;
		text-align: center;
	}

	.ds-reference-lead {
		color: rgba(255, 255, 255, 0.86);
		font-size: 0.84rem;
		line-height: 1.55;
		margin-top: 0.5rem;
		max-width: var(--ds-hero-mobile-text-width);
		opacity: 0.96;
		text-wrap: pretty;
	}

	/* Mobile home hero centering: single source of truth. */
	body:is(.home, .ds-page-home) :is(.ds-reference-title, .ds-reference-subtitle, .ds-reference-lead, .ds-reference-badge) {
		box-sizing: border-box;
		margin-left: auto;
		margin-right: auto;
		text-align: center;
		transform: none;
	}

	body:is(.home, .ds-page-home) :is(.ds-reference-title, .ds-reference-subtitle, .ds-reference-lead) {
		display: block;
		max-width: var(--ds-hero-mobile-text-width);
		padding-left: 0;
		padding-right: 0;
		width: 100%;
	}

	body:is(.home, .ds-page-home) .ds-reference-badge {
		align-self: center;
		display: inline-flex;
		justify-content: center;
		left: 50%;
		position: relative;
		transform: translateX(-50%);
		width: fit-content;
	}

	.ds-reference-title,
	.ds-reference-subtitle,
	.ds-reference-lead {
		text-shadow: 0 4px 18px rgba(0, 0, 0, 0.9), 0 1px 1px rgba(0, 0, 0, 0.75);
	}

	.ds-lightbox {
		grid-template-columns: 1fr 1fr;
		grid-template-rows: 1fr auto;
		padding-top: 4.5rem;
	}

	.ds-lightbox__figure {
		grid-column: 1 / -1;
	}

	.ds-lightbox__arrow {
		font-size: 2.4rem;
		height: 3.25rem;
		margin-top: 1rem;
		width: 3.25rem;
	}

	.ds-lightbox__arrow--prev {
		grid-column: 1;
		grid-row: 2;
	}

	.ds-lightbox__arrow--next {
		grid-column: 2;
		grid-row: 2;
	}

	.ds-footer-grid {
		grid-template-columns: 1fr;
	}

	.ds-numbered-card {
		min-height: auto;
	}
}

/* ===== Tablet Adaptation (iPad mini / Air / Pro) ===== */
.ds-tablet-break {
	display: none;
}

.ds-mobile-break {
	display: none;
}

.ds-desktop-break {
	display: none;
}

.ds-desktop-space {
	display: none;
}

@media (min-width: 1025px) {
	.ds-desktop-break {
		display: block;
	}

	.ds-desktop-space {
		display: inline;
	}
}

@media (max-width: 720px) {
	.ds-mobile-break {
		display: block;
	}
}

/* Tablet narrow (iPad mini / Air portrait): compress only the top nav. */
@media (min-width: 721px) and (max-width: 820px) {
	.ds-site-header {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.ds-main-nav {
		--ds-nav-font-size: 0.8rem;
		--ds-nav-link-pad-x: 0.55rem;
		--ds-nav-link-pad-y: 0.42rem;
	}

	.ds-main-nav .wp-block-navigation__container {
		flex-wrap: nowrap;
		gap: 0.4rem;
	}

	.ds-main-nav a {
		white-space: nowrap;
	}

	/* Needed to override Gutenberg container class forcing left margin on hero children. */
	body:is(.home, .ds-page-home) :is(.ds-reference-title, .ds-reference-subtitle, .ds-reference-lead, .ds-reference-badge, .ds-title-line) {
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* Narrow laptops / foldables: keep top nav in a single row. */
@media (min-width: 821px) and (max-width: 1180px) {
	.ds-site-header {
		padding-left: clamp(1.1rem, 2.2vw, 1.7rem);
		padding-right: clamp(1.1rem, 2.2vw, 1.7rem);
	}

	.ds-main-nav {
		--ds-nav-font-size: 0.84rem;
		--ds-nav-link-pad-y: 0.4rem;
		--ds-nav-link-pad-x: 0.48rem;
	}

	.ds-main-nav .wp-block-navigation__container {
		flex-wrap: nowrap;
		gap: 0.3rem;
	}

	.ds-main-nav a {
		white-space: nowrap;
	}
}

/* Tablet/fold width range: keep home content full-width (no centered narrowing). */
@media (min-width: 721px) and (max-width: 1366px) {
	body.home .ds-page-content {
		--wp--style--global--content-size: 100%;
	}

	body.home main.ds-page-content.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
	body.home main.ds-page-content.is-layout-constrained > .alignwide {
		max-width: 100%;
	}

	body.home .ds-page-content > .alignwide {
		margin-left: 0;
		margin-right: 0;
		max-width: none;
		width: 100%;
	}

	body.home .ds-page-content .ds-intro-block {
		max-width: 100%;
		--wp--style--global--content-size: 100%;
	}

	body.home .ds-numbered-grid {
		--wp--style--global--content-size: 100%;
	}

	body.home .ds-numbered-card {
		--wp--style--global--content-size: 100%;
	}

	.ds-site-footer .ds-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ds-site-footer .ds-footer-social {
		width: 100%;
	}

	body:is(.home, .ds-page-home) .ds-hero-layout {
		align-items: center;
		text-align: center;
	}

	body:is(.home, .ds-page-home) :is(.ds-reference-title, .ds-reference-subtitle, .ds-reference-lead, .ds-reference-badge, .ds-title-line) {
		margin-left: auto;
		margin-right: auto;
		text-align: center;
	}

	body:is(.home, .ds-page-home) .ds-reference-title {
		max-width: min(92vw, 1200px);
		width: auto;
	}

	body:is(.home, .ds-page-home) .ds-reference-subtitle {
		max-width: min(92vw, 1400px);
		width: fit-content;
	}

	body:is(.home, .ds-page-home) .ds-reference-lead {
		max-width: min(92vw, 1000px);
		width: auto;
	}

	body:is(.home, .ds-page-home) .ds-title-line {
		width: fit-content;
	}

	.ds-tablet-break {
		display: block;
	}
}
/* ===== End Tablet Adaptation ===== */

/* --- Recovery overrides after stylesheet restore --- */

.ds-page-footer-divider {
	border: 0;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	margin: 0;
}

/* Equipment page: modern editorial layout with wrapped previews (30%). */
:is(body.page-id-58, body.ds-page-equipment) .ds-equipment-layout {
	display: grid;
	gap: clamp(1.25rem, 2.6vw, 2.2rem);
}

body.ds-page-price .ds-price-cards,
body.page-id-133 .ds-price-cards,
body.ds-page-video-index .ds-price-cards,
body.page-id-364 .ds-price-cards,
body.ds-page-articles-index .ds-price-cards {
	display: grid;
	gap: 0.9rem;
	margin-top: 0.35rem;
}

body.ds-page-price .ds-price-card,
body.page-id-133 .ds-price-card,
body.ds-page-video-index .ds-price-card,
body.page-id-364 .ds-price-card,
body.ds-page-articles-index .ds-price-card {
	background: linear-gradient(140deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.01));
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 18px;
	overflow: clip;
	padding: 1.1rem 1.2rem 1.15rem;
}

body.ds-page-price .ds-price-card__title {
	font-size: clamp(1.08rem, 2.4vw, 1.35rem);
	line-height: 1.35;
	margin: 0 0 0.8rem;
}

body.ds-page-price .ds-price-card p {
	margin: 0 0 0.8rem;
}

body.ds-page-price .ds-price-card p:last-child {
	margin-bottom: 0;
}

body.ds-page-price .ds-price-card--yellow,
body.page-id-133 .ds-price-card--yellow,
body.ds-page-video-index .ds-price-card--yellow,
body.page-id-364 .ds-price-card--yellow,
body.ds-page-articles-index .ds-price-card--yellow {
	background: linear-gradient(140deg, rgba(255, 212, 0, 0.08), rgba(255, 255, 255, 0.02));
	border: 1px solid rgba(255, 212, 0, 0.28);
}

body.ds-page-price .ds-price-card--menu-pill,
body.page-id-133 .ds-price-card--menu-pill,
body.ds-page-video-index .ds-price-card--menu-pill,
body.page-id-364 .ds-price-card--menu-pill,
body.ds-page-articles-index .ds-price-card--menu-pill {
	background: linear-gradient(140deg, rgba(132, 0, 50, 0.34), rgba(132, 0, 50, 0.12));
	border: 1px solid rgba(132, 0, 50, 0.65);
}

:is(body.page-id-58, body.ds-page-equipment) .ds-equipment-item[open] > .ds-equipment-question::after {
	background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
	color: #050505;
}

/* Video index (/video/): remove list bullets and increase link spacing by 50%. */
body.page-id-133 .ds-video-links__group,
body.ds-page-video-index .ds-video-links__group,
body.page-id-364 .ds-video-links__group,
body.ds-page-articles-index .ds-video-links__group {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

body.page-id-133 .ds-video-links__group li,
body.ds-page-video-index .ds-video-links__group li,
body.page-id-364 .ds-video-links__group li,
body.ds-page-articles-index .ds-video-links__group li {
	list-style: none;
	margin: 0;
}

body.page-id-133 .ds-video-links__group li + li,
body.ds-page-video-index .ds-video-links__group li + li,
body.page-id-364 .ds-video-links__group li + li,
body.ds-page-articles-index .ds-video-links__group li + li {
	margin-top: 0.5em;
}

body.page-id-133 .ds-video-links__group a:hover,
body.ds-page-video-index .ds-video-links__group a:hover,
body.page-id-364 .ds-video-links__group a:hover,
body.ds-page-articles-index .ds-video-links__group a:hover {
	color: #fff;
}

/* Shared visual language for media cards (single video + books). */
body.single-video .ds-video-lesson__item,
body.ds-single-video .ds-video-lesson__item,
body.page-id-72 .wp-block-post-content .item,
body.ds-page-books .wp-block-post-content .item {
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015));
	border: 1px solid rgba(255, 255, 255, 0.17);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.24);
	display: flex;
	flex-direction: column;
	margin: 0;
	overflow: hidden;
	padding: 0.55rem 0.55rem 0.7rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
	body.single-video .ds-video-lesson__item:hover,
	body.ds-single-video .ds-video-lesson__item:hover,
	body.page-id-72 .wp-block-post-content .item:hover,
	body.ds-page-books .wp-block-post-content .item:hover {
		border-color: rgba(255, 212, 0, 0.42);
		box-shadow: 0 16px 36px rgba(0, 0, 0, 0.32);
		transform: translateY(-2px);
	}
}

body.single-video .ds-video-lesson__item figcaption > span:first-child,
body.ds-single-video .ds-video-lesson__item figcaption > span:first-child,
body.page-id-72 .wp-block-post-content .item .name,
body.ds-page-books .wp-block-post-content .item .name {
	color: #fff;
	font-size: clamp(1.02rem, 1.8vw, 1.16rem);
	font-weight: 400;
	line-height: 1.3;
}

body.single-video .ds-video-lesson__item figcaption > span:last-child,
body.ds-single-video .ds-video-lesson__item figcaption > span:last-child,
body.page-id-72 .wp-block-post-content .item .book,
body.ds-page-books .wp-block-post-content .item .book {
	color: rgba(255, 255, 255, 0.78);
	font-size: clamp(0.9rem, 1.55vw, 1rem);
	line-height: 1.45;
}

/* Replace selected legacy underlines with italic. */
body.page-id-75 .wp-block-post-content u,
body.ds-page-distance .wp-block-post-content u,
body.single-video.postid-143 .ds-video-lesson__text u,
body.single-video.postid-145 .ds-video-lesson__text u,
body.single-video.postid-146 .ds-video-lesson__text u,
body.single-video.postid-154 .ds-video-lesson__text u,
body.ds-single-video.postid-143 .ds-video-lesson__text u,
body.ds-single-video.postid-145 .ds-video-lesson__text u,
body.ds-single-video.postid-146 .ds-video-lesson__text u,
body.ds-single-video.postid-154 .ds-video-lesson__text u {
	font-style: italic;
	text-decoration: none;
}

/* Lightbox icon optical centering inside circular buttons. */
.ds-lightbox__close,
.ds-lightbox__arrow {
	font-size: 0;
	line-height: 1;
	position: relative;
}

.ds-lightbox__close::before,
.ds-lightbox__arrow::before {
	display: block;
	font-size: 44px;
	font-weight: 400;
	left: 50%;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.ds-lightbox__close::before {
	content: "×";
	font-size: 48px;
	transform: translate(-50%, -53%);
}

.ds-lightbox__arrow--prev::before {
	content: "‹";
	transform: translate(-50%, -54%);
}

.ds-lightbox__arrow--next::before {
	content: "›";
	transform: translate(-50%, -54%);
}

/* Keep diploma lightbox close button at top-right (same as site-wide modals). */
.ds-lightbox__close {
	position: absolute;
	right: clamp(1rem, 3vw, 2rem);
	top: clamp(1rem, 3vw, 2rem);
}

/* Compatibility: current JS lightbox classes used on articles/equipment/books. */
.ds-image-lightbox {
	align-items: center;
	background: rgba(0, 0, 0, 0.9);
	display: none;
	inset: 0;
	justify-content: center;
	padding: 2.5rem 1rem 1rem;
	position: fixed;
	z-index: 10000;
}

.ds-image-lightbox.is-open {
	display: flex;
}

.ds-image-lightbox__image {
	height: auto;
	max-height: 88vh;
	max-width: 94vw;
	width: auto;
}

.ds-image-lightbox__close {
	align-items: center;
	appearance: none;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-size: 0;
	height: 3.8rem;
	justify-content: center;
	line-height: 1;
	position: absolute;
	right: clamp(0.6rem, 2vw, 1.25rem);
	top: clamp(0.7rem, 2vw, 1.35rem);
	width: 3.8rem;
}

.ds-image-lightbox__arrow {
	align-items: center;
	appearance: none;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-size: 0;
	height: 3.8rem;
	justify-content: center;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 3.8rem;
}

.ds-image-lightbox__arrow:hover,
.ds-image-lightbox__close:hover {
	background: #ffd400;
	border-color: #ffd400;
	color: #050505;
}

.ds-image-lightbox__arrow:focus-visible,
.ds-image-lightbox__close:focus-visible {
	background: #ffd400;
	border-color: #ffd400;
	color: #050505;
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

.ds-image-lightbox__arrow--prev {
	left: clamp(0.4rem, 2vw, 1.4rem);
}

.ds-image-lightbox__arrow--next {
	right: clamp(0.4rem, 2vw, 1.4rem);
}

.ds-image-lightbox__close::before,
.ds-image-lightbox__arrow::before {
	display: block;
	font-size: 44px;
	font-weight: 400;
	left: 50%;
	line-height: 1;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.ds-image-lightbox__close::before {
	content: "×";
	font-size: 48px;
	transform: translate(-50%, -53%);
}

.ds-image-lightbox__arrow--prev::before {
	content: "‹";
	transform: translate(-50%, -54%);
}

.ds-image-lightbox__arrow--next::before {
	content: "›";
	transform: translate(-50%, -54%);
}

/* ===== Premium Pass v1: lightweight global polish ===== */
:root {
	--ds-premium-text: rgba(255, 255, 255, 0.9);
	--ds-premium-muted: rgba(255, 255, 255, 0.72);
	--ds-premium-border: rgba(255, 255, 255, 0.14);
	--ds-premium-border-strong: rgba(255, 255, 255, 0.24);
	--ds-premium-accent: #ffd400;
	--ds-premium-radius-sm: 10px;
	--ds-premium-radius-md: 14px;
	--ds-premium-shadow-soft: 0 8px 24px rgba(0, 0, 0, 0.26);
	--ds-premium-shadow-strong: 0 14px 36px rgba(0, 0, 0, 0.34);
	--ds-premium-speed: 170ms;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.wp-site-blocks {
	color: var(--ds-premium-text);
	letter-spacing: 0.003em;
}

.wp-site-blocks main .wp-block-post-content {
	font-size: clamp(1rem, 1.08vw, 1.08rem);
	line-height: 1.72;
}

.wp-site-blocks main .wp-block-post-content p,
.wp-site-blocks main .wp-block-post-content li,
.wp-site-blocks main .wp-block-post-content dd {
	color: var(--ds-premium-text);
}

.wp-site-blocks main .wp-block-post-content > p,
.wp-site-blocks main .wp-block-post-content > ul,
.wp-site-blocks main .wp-block-post-content > ol,
.wp-site-blocks main .wp-block-post-content > blockquote,
.wp-site-blocks main .wp-block-post-content > pre,
.wp-site-blocks main .wp-block-post-content > table,
.wp-site-blocks main .wp-block-post-content > figure {
	max-width: min(72ch, 100%);
}

/* Keep full content width on article-like pages. */
body.ds-article-like .wp-site-blocks main .wp-block-post-content > :is(p, ul, ol, blockquote, pre, table, figure) {
	max-width: 100%;
}

body:is(.ds-page-404, .error404) .ds-404-bio__grid {
	align-items: start;
	display: grid;
	gap: clamp(1rem, 2.4vw, 1.8rem);
	grid-template-columns: minmax(0, 32%) minmax(0, 1fr);
	margin-top: clamp(1rem, 2.4vw, 1.8rem);
	width: 100%;
}

body:is(.ds-page-404, .error404) .ds-404-bio__grid :is(.image, .wp-block-image),
body:is(.ds-page-404, .error404) .ds-404-bio__grid :is(.image, .wp-block-image) img {
	max-width: 100%;
}

body:is(.ds-page-404, .error404) .ds-404-bio__grid :is(.image, .wp-block-image) {
	margin: 0;
	width: 100%;
}

body:is(.ds-page-404, .error404) .ds-404-bio__grid :is(.image, .wp-block-image) img {
	display: block;
	height: auto;
	width: 100%;
}

body:is(.ds-page-404, .error404) .ds-404-bio__text {
	margin: 0;
	max-width: 100%;
}

@media (max-width: 720px) {
	body:is(.ds-page-404, .error404) .ds-404-bio__grid {
		grid-template-columns: 1fr;
	}
}

.wp-site-blocks main .wp-block-post-content > ul,
.wp-site-blocks main .wp-block-post-content > ol {
	padding-inline-start: 1.15em;
}

/* Prevent extra top gap when a heading is the first element in a block/card. */
.wp-site-blocks main :is(h1, h2, h3, h4, h5, h6):first-child {
	margin-top: 0;
}

.wp-site-blocks h1,
.wp-site-blocks h2,
.wp-site-blocks h3,
.wp-site-blocks h4,
.wp-site-blocks h5,
.wp-site-blocks h6,
.wp-site-blocks .wp-block-post-title {
	letter-spacing: -0.012em;
}

@supports (text-wrap: balance) {
	.wp-site-blocks h2,
	.wp-site-blocks h3,
	.wp-site-blocks h4,
	.wp-site-blocks h5,
	.wp-site-blocks h6,
	.wp-site-blocks main .wp-block-post-content h2,
	.wp-site-blocks main .wp-block-post-content h3,
	.wp-site-blocks main .wp-block-post-content h4,
	.wp-site-blocks main .wp-block-post-content h5,
	.wp-site-blocks main .wp-block-post-content h6 {
		text-wrap: balance;
	}
}

.wp-site-blocks main a {
	text-decoration-color: rgba(255, 212, 0, 0.62);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
	transition: color var(--ds-premium-speed) ease, text-decoration-color var(--ds-premium-speed) ease, opacity var(--ds-premium-speed) ease;
}

@media (hover: hover) and (pointer: fine) {
	.wp-site-blocks main a:hover {
		color: #ffd84a;
		text-decoration-color: rgba(255, 216, 74, 0.92);
		text-decoration-thickness: 2px;
	}
}

/* Global: remove click-focus rings while preserving keyboard focus-visible. */
.wp-site-blocks :is(a, .wp-element-button, .wp-block-button__link, input[type="submit"], button):focus:not(:focus-visible) {
	outline: none;
}

.wp-site-blocks :is(a, .wp-element-button, .wp-block-button__link, input[type="submit"], button):focus-visible {
	outline: 2px solid var(--ds-premium-accent);
	outline-offset: 2px;
}

/* Global focus treatment for all accordion summaries (details/summary). */
.wp-site-blocks details > summary:focus:not(:focus-visible) {
	outline: none;
}

.wp-site-blocks details > summary:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 2px var(--ds-premium-accent);
	border-radius: 12px;
}

.wp-site-blocks .wp-block-button__link,
.wp-site-blocks .wp-element-button,
.wp-site-blocks input[type="submit"],
.wp-site-blocks button:not(.dyrc-read-more):not(.dyrc-load-more):not(.ds-lightbox__close):not(.ds-lightbox__arrow):not(.ds-image-lightbox__close):not(.ds-image-lightbox__arrow):not(.ds-video-playlist__item):not(.wp-block-navigation__responsive-container-open):not(.wp-block-navigation__responsive-container-close) {
	appearance: none;
	background: linear-gradient(160deg, #ffe36a 0%, #ffd400 100%);
	border: 1px solid #ffe36a;
	border-radius: 999px;
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
	color: #050505;
	font-size: clamp(0.95rem, 1.1vw, 1rem);
	font-weight: 700;
	letter-spacing: 0.01em;
	min-height: 44px;
	padding: 0.68rem 1.08rem;
	transition: transform var(--ds-premium-speed) ease, box-shadow var(--ds-premium-speed) ease, filter var(--ds-premium-speed) ease;
}

@media (hover: hover) and (pointer: fine) {
	.wp-site-blocks .wp-block-button__link:hover,
	.wp-site-blocks .wp-element-button:hover,
	.wp-site-blocks input[type="submit"]:hover,
	.wp-site-blocks button:not(.dyrc-read-more):not(.dyrc-load-more):not(.ds-lightbox__close):not(.ds-lightbox__arrow):not(.ds-image-lightbox__close):not(.ds-image-lightbox__arrow):not(.ds-video-playlist__item):not(.wp-block-navigation__responsive-container-open):not(.wp-block-navigation__responsive-container-close):hover {
		box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28);
		filter: saturate(1.04);
		transform: translateY(-1px);
	}
}

.wp-site-blocks .wp-block-table table,
.wp-site-blocks pre,
.wp-site-blocks .wp-block-quote {
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--ds-premium-border);
	border-radius: var(--ds-premium-radius-sm);
}

.wp-site-blocks .ds-numbered-card,
.wp-site-blocks .ds-price-card,
.wp-site-blocks .ds-equipment-item,
.wp-site-blocks .ds-faq-item,
.wp-site-blocks .wp-block-group.is-style-card {
	border-color: var(--ds-premium-border);
	box-shadow: var(--ds-premium-shadow-soft);
	transition: border-color var(--ds-premium-speed) ease, box-shadow var(--ds-premium-speed) ease, transform var(--ds-premium-speed) ease;
}

@media (hover: hover) and (pointer: fine) {
	.wp-site-blocks .ds-numbered-card:hover,
	.wp-site-blocks .ds-price-card:hover,
	.wp-site-blocks .ds-equipment-item:hover,
	.wp-site-blocks .ds-faq-item:hover,
	.wp-site-blocks .wp-block-group.is-style-card:hover {
		border-color: var(--ds-premium-border-strong);
		box-shadow: var(--ds-premium-shadow-strong);
		transform: translateY(-1px);
	}
}

/*
 * Final override for core Navigation modal on mobile/tablet.
 * WordPress core sets white overlay via .wp-block-navigation:not(.has-background) ...
 * this scoped rule keeps the branded dark menu while modal is open.
 */
html.has-modal-open .wp-site-blocks .wp-block-navigation__responsive-container.is-menu-open,
html.has-modal-open .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	--wp--preset--color--base: #050505;
	background-color: #050505;
	color: #ffd400;
}

html.has-modal-open .wp-site-blocks .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
html.has-modal-open .wp-site-blocks .wp-block-navigation__responsive-container.is-menu-open a {
	color: #ffd400;
}

html.has-modal-open .wp-site-blocks .wp-block-navigation__responsive-container-open,
html.has-modal-open .wp-site-blocks .wp-block-navigation__responsive-container-close {
	color: #ffd400;
}
