:root {
	--paper: #f4f3f3;
	--paper-2: #eae9e8;
	--ink: #171b19;
	--muted: #5b625e;
	--hero: #e6e9e6;
	--line: rgba(23, 27, 25, 0.16);
	--bronze: #a9834f;
	--shot: #f4f3f3;
	--head: #f4f3f3;
	--display: "Fira Sans Extra Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
	--text: "Fira Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	color-scheme: light;
	box-sizing: border-box;
	padding-top: env(safe-area-inset-top, 0px);
	padding-bottom: env(safe-area-inset-bottom, 0px)
}

html {
	scroll-padding-top: env(safe-area-inset-top, 0px);
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto
	}
}

*,
*::before,
*::after {
	box-sizing: border-box
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 17px/1.6 var(--text);
	-webkit-font-smoothing: antialiased
}

h1,
h2,
p,
ul {
	margin: 0
}

ul {
	padding: 0;
	list-style: none
}

a {
	color: inherit
}

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

.wrap {
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0 22px
}

.top {
	background: var(--hero);
	padding: 14px 0
}

.top img {
	display: block;
	height: 44px;
	width: auto
}

.hero {
	background: var(--hero);
	color: var(--ink);
	padding: 36px 0 0
}

.hero h1 {
	font: 700 clamp(3.4rem, 17vw, 7rem)/.92 var(--display);
	text-transform: uppercase;
	letter-spacing: 0.005em
}

.hero .lead {
	margin-top: 18px;
	max-width: 30ch;
	font-size: 1.1rem;
	color: var(--muted)
}

.kw {
	display: flex;
	margin-top: 30px;
	max-width: 460px
}

.kw li {
	flex: 1;
	padding: 2px 10px;
	text-align: center;
	font-size: .95rem;
	color: var(--ink)
}

.kw li + li {
	border-left: 1px solid rgba(169, 131, 79, .7)
}

.kw li:first-child {
	padding-left: 0;
	text-align: left
}

.kw li:last-child {
	padding-right: 0;
	text-align: right
}

.go {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 32px
}

.go a {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid var(--bronze);
	border-radius: 999px;
	text-decoration: none;
	font-weight: 500;
	font-size: 1rem;
	color: var(--ink);
	transition: background .25s, transform .25s
}

.go a:hover {
	background: rgba(169, 131, 79, .14)
}

.go a:active {
	transform: scale(.97)
}

.ridge {
	display: block;
	width: 100%;
	height: 84px;
	margin-top: 38px;
	margin-bottom: -1px;
}

.ridge .back {
	fill: rgba(29, 40, 34, .1);
}

.ridge .front {
	fill: var(--paper)
}

.ridge .edge {
	fill: none;
	stroke: var(--bronze);
	stroke-width: 1.6;
	stroke-linejoin: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 0
}

@media (prefers-reduced-motion: no-preference) {
	.ridge .edge {
		animation: draw 2.4s 0.15s cubic-bezier(0.3, 0.6, 0.2, 1) both;
	}
	@keyframes draw {
		from {
			stroke-dashoffset: 1;
		}
		to {
			stroke-dashoffset: 0;
		}
	}
}

.product {
	padding: 44px 0 8px
}

.product + .product {
	padding-top: 24px
}

.shot {
	background: var(--shot);
	border-radius: 6px;
	overflow: hidden
}

.shot img {
	display: block;
	width: 100%;
	height: auto;
	mix-blend-mode: multiply
}

@media (prefers-reduced-motion: no-preference) {
	.js .shot img {
		opacity: 0;
		transform: scale(1.035);
		transition: opacity 1s ease, transform 1.4s cubic-bezier(.2, .7, .2, 1)
	}

	.js .shot.in img {
		opacity: 1;
		transform: none
	}
}

.product h2 {
	margin-top: 26px;
	font: 700 clamp(2.1rem, 9vw, 3rem)/1 var(--display);
	text-transform: uppercase
}

.product .sub {
	margin-top: 10px;
	color: var(--muted)
}

.facts {
	display: grid;
	gap: 0;
	margin-top: 22px;
	border-top: 1px solid var(--line)
}

.facts li {
	padding: 12px 0 12px 22px;
	border-bottom: 1px solid var(--line);
	position: relative;
	font-weight: 500
}

.facts li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 50%;
	width: 8px;
	height: 8px;
	background: var(--bronze);
	transform: translateY(-50%) rotate(45deg)
}

.acc {
	margin-top: 26px;
	border-top: 1px solid var(--line)
}

.acc h3 {
	margin: 0 0 6px;
	font: 600 1.05rem/1.3 var(--text);
	color: var(--muted)
}

details {
	border-bottom: 1px solid var(--line);
}

summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 60px;
	padding: 12px 0;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	font-size: 1.05rem;
	line-height: 1.3;
	-webkit-tap-highlight-color: transparent
}

summary::-webkit-details-marker {
	display: none
}

summary::after {
	content: "";
	flex: none;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--bronze);
	border-bottom: 2px solid var(--bronze);
	transform: rotate(45deg) translate(-3px, -3px);
	transition: transform 0.35s cubic-bezier(.3, .7, .2, 1)
}

details.is-open summary::after {
	transform: rotate(-135deg) translate(-3px, 3px)
}

.body {
	overflow: hidden
}

summary {
	transition: color .25s
}

summary:hover {
	color: var(--bronze)
}

details p {
	padding: 0 0 18px;
	color: var(--muted);
	max-width: 60ch
}

.note {
	margin-top: 22px;
	padding: 16px 18px;
	background: var(--paper-2);
	border-left: 3px solid var(--bronze);
	border-radius: 0 6px 6px 0;
	font-size: .95rem;
	color: var(--ink)
}

.note b {
	font-weight: 600
}

.note + .note {
	margin-top: 12px
}

.rule {
	display: block;
	width: 100%;
	max-width: 1080px;
	height: 12px;
	margin: 40px auto 0;
	padding: 0 22px;
	color: var(--bronze)
}

footer {
	margin-top: 56px;
	background: var(--hero);
	color: var(--muted);
	padding: 30px 0 34px;
	font-size: .9rem;
	line-height: 1.55
}

footer strong {
	display: block;
	color: var(--ink);
	font: 700 1.5rem/1 var(--display);
	margin-bottom: 8px
}

footer p + p {
	margin-top: 12px;
	font-size: .85rem
}

@media (max-width: 370px) {
	.kw li {
		font-size: 0.82rem;
		padding-left: 6px;
		padding-right: 6px
	}
}

/* иконки-спрайт */
.sprite {
	position: absolute;
	width: 0;
	height: 0;
	overflow: hidden
}

/* вводный абзац продукта */
.lede {
	margin-top: 22px;
	max-width: 60ch;
	color: var(--ink)
}

/* карточки эффектов */
.effects {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 34px
}

.effect {
	padding: 22px 20px 24px;
	background: #fbfbfa;
	border: 1px solid var(--line);
	border-radius: 6px
}

.effect-ico {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	margin-bottom: 16px;
	border: 1px solid var(--bronze);
	border-radius: 50%;
	color: var(--bronze)
}

.effect-ico svg {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linecap: round;
	stroke-linejoin: round
}

.effect h3 {
	font: 700 1.45rem/1.1 var(--display)
}

.effect p {
	margin-top: 10px;
	font-size: .98rem;
	color: var(--muted)
}

.effect-list {
	margin-top: 10px;
	border-top: 1px solid var(--line)
}

.effect-list li {
	position: relative;
	padding: 9px 0 9px 20px;
	border-bottom: 1px solid var(--line);
	font-size: .96rem;
	font-weight: 500
}

.effect-list li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 50%;
	width: 7px;
	height: 7px;
	background: var(--bronze);
	transform: translateY(-50%) rotate(45deg)
}

/* блоки «Курс», «Важное замечание» и т. п. */
.callouts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-top: 14px
}

.callout {
	padding: 22px 20px 24px;
	background: var(--paper-2);
	border-left: 3px solid var(--bronze);
	border-radius: 0 6px 6px 0
}

.callout h3 {
	font: 700 1.45rem/1.1 var(--display)
}

.callout p {
	margin-top: 10px;
	font-size: .98rem;
	color: var(--muted)
}

.callout p + p {
	margin-top: 8px
}

.callout .num {
	display: block;
	margin-top: 12px;
	font: 700 clamp(3.6rem, 16vw, 5rem)/.9 var(--display);
	color: var(--ink)
}

.callout .num small {
	margin-left: 8px;
	font: 500 1.05rem/1 var(--text);
	color: var(--muted)
}

.chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 14px 0 4px
}

.chips li {
	padding: 6px 14px;
	border: 1px solid var(--bronze);
	border-radius: 999px;
	font-size: .92rem;
	font-weight: 500
}

/* страница 404 */
.err-page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh
}

.err-page .hero {
	flex: 1;
	display: flex;
	flex-direction: column
}

.err-page .ridge {
	margin-top: auto
}

.err-code {
	font: 700 clamp(7rem, 38vw, 17rem)/.8 var(--display);
	letter-spacing: .01em;
	color: var(--hero);
	-webkit-text-stroke: 1.5px var(--bronze);
	user-select: none
}

.err h1 {
	margin-top: 22px;
	font-size: clamp(2.4rem, 11vw, 4.2rem);
	line-height: .98
}

.err .lead {
	max-width: 36ch
}

.err-page footer {
	margin-top: 0
}

@media (prefers-reduced-motion: no-preference) {
	.err-code {
		animation: rise .9s cubic-bezier(.2, .7, .2, 1) both
	}

	@keyframes rise {
		from {
			opacity: 0;
			transform: translateY(14px)
		}
		to {
			opacity: 1;
			transform: none
		}
	}
}

@media (min-width: 600px) and (max-width: 819px) {
	.effects,
	.callouts {
		grid-template-columns: repeat(2, minmax(0, 1fr))
	}
}

@media (min-width: 820px) {
	body {
		font-size: 18px
	}

	.wrap {
		padding: 0 40px
	}

	.top img {
		height: 52px
	}

	.hero {
		padding-top: 72px
	}

	.ridge {
		height: 140px
	}

	.product {
		padding-top: 72px
	}

	.product + .product {
		padding-top: 40px
	}

	.product .wrap {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		column-gap: 56px;
		row-gap: 0;
		align-items: start
	}

	.product.flip .wrap {
		grid-template-columns: minmax(0, 6fr) minmax(0, 5fr)
	}

	.product .shot {
		grid-column: 1;
		grid-row: 1
	}

	.product .intro {
		grid-column: 2;
		grid-row: 1
	}

	.product.flip .shot {
		grid-column: 2
	}

	.product.flip .intro {
		grid-column: 1
	}

	.effects,
	.callouts {
		grid-column: 1 / -1
	}

	.product h2 {
		margin-top: 0
	}

	.effects {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
		margin-top: 44px
	}

	.effect,
	.callout {
		padding: 26px 24px 28px
	}

	.callouts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px
	}

	.lede {
		margin-top: 26px
	}

	.rule {
		padding: 0 40px
	}
}

.reveal-all .shot img {
	opacity: 1;
	transform: none
}

@media (min-width: 1040px) {
	.effects:not(.cols-2) {
		grid-template-columns: repeat(3, minmax(0, 1fr))
	}
}