/* ============================================================
   Profit Share Plan — Landing Page
   ============================================================ */
:root {
	--color-primary: hsl(255, 60%, 52%);
	--color-primary-fg: #fff;
	--color-bg: #ffffff;
	--color-bg-alt: hsl(240, 5%, 96%);
	--color-fg: hsl(240, 10%, 10%);
	--color-muted: hsl(240, 5%, 46%);
	--color-border: hsl(240, 6%, 90%);
	--color-accent: hsl(42, 95%, 55%);
	--grad-purple: linear-gradient(
		135deg,
		hsl(255, 60%, 52%),
		hsl(270, 55%, 58%)
	);
	--grad-gold: linear-gradient(135deg, hsl(42, 95%, 55%), hsl(32, 90%, 50%));
	--shadow-card: 0 2px 16px -2px rgba(0, 0, 0, 0.06);
	--shadow-hover: 0 8px 30px -4px rgba(0, 0, 0, 0.1);
	--shadow-purple: 0 6px 24px -6px hsla(255, 60%, 52%, 0.3);
	--font-display:
		'Unbounded', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui,
		Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
		'Noto Color Emoji';
	--font-body:
		'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui,
		Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',
		'Noto Color Emoji';
	--radius: 1rem;
	--ease: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: var(--font-body);
	color: var(--color-fg);
	background: var(--color-bg);
	line-height: 1.6;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}
a {
	color: var(--color-primary);
	text-decoration: none;
}
button {
	font-family: inherit;
	cursor: pointer;
	border: none;
	background: none;
}
input {
	font-family: inherit;
}
ul {
	list-style: none;
}
h1,
h2,
h3,
h4 {
	font-family: var(--font-display);
	line-height: 1.2;
	color: var(--color-fg);
}

/* Container */
.container {
	max-width: 1268px;
	margin: 0 auto;
	padding: 0 1rem;
}

/* Utilities */
.text-gradient-purple {
	background: var(--grad-purple);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

/* Reveal-анимация для цветных акцентов в заголовках (слева направо) */
@property --reveal-pos {
	syntax: '<percentage>';
	inherits: false;
	initial-value: 0%;
}
:is(h1, h2, h3, h4) .text-gradient-purple {
	--reveal-pos: 0%;
	display: inline-block;
	opacity: 0.3;
	-webkit-mask-image: linear-gradient(
		90deg,
		rgba(0, 0, 0, 1) var(--reveal-pos),
		rgba(0, 0, 0, 0.3) var(--reveal-pos)
	);
	mask-image: linear-gradient(
		90deg,
		rgba(0, 0, 0, 1) var(--reveal-pos),
		rgba(0, 0, 0, 0.3) var(--reveal-pos)
	);
	transition: opacity 0.3s;
}
:is(h1, h2, h3, h4) .text-gradient-purple.is-revealed {
	opacity: 1;
	animation: textRevealMask 1.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
@keyframes textRevealMask {
	to {
		--reveal-pos: 100%;
	}
}
@media (prefers-reduced-motion: reduce) {
	:is(h1, h2, h3, h4) .text-gradient-purple {
		opacity: 1;
		-webkit-mask-image: none;
		mask-image: none;
	}
}
.hero-title .text-gradient-purple {
	opacity: 1;
	animation: textRevealMask 1.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}
.text-gradient-gold {
	background: var(--grad-gold);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.text-muted {
	color: var(--color-muted);
}
.text-primary {
	color: var(--color-primary);
}
.font-semibold {
	font-weight: 600;
}

/* Sections */
.section {
	padding: 6rem 0;
}
.section-alt {
	background: var(--color-bg-alt);
}
.section-heading {
	text-align: center;
	margin-bottom: 3.5rem;
}
.section-heading h2 {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	font-weight: 700;
	margin-bottom: 0.5rem;
}
.section-subtitle,
.section-heading > p {
	color: var(--color-muted);
	font-size: 1.1rem;
	max-width: 640px;
	margin: 0.5rem auto 0;
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.9rem;
	padding: 0.85rem 1.75rem;
	border-radius: 9999px;
	transition: all var(--ease);
	white-space: nowrap;
}
.btn-primary {
	background: var(--grad-purple);
	color: #fff;
	box-shadow: var(--shadow-purple);
}
.btn-primary:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}
.btn-outline {
	border: 2px solid rgba(0, 0, 0, 0.15);
	color: var(--color-fg);
}
.btn-outline:hover {
	background: rgba(0, 0, 0, 0.05);
}

/* Animations */
@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.animate-on-scroll {
	opacity: 0;
	transform: translateY(30px);
	transition:
		opacity 0.6s var(--ease),
		transform 0.6s var(--ease);
}
.animate-on-scroll.animate-in {
	opacity: 1;
	transform: translateY(0);
}

/* ============================================================
   HERO
   ============================================================ */
/* Source: min-h-[90vh] flex items-center, py-16 md:py-20 */
.hero {
	height: calc(100dvh - 140px);
	min-height: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	padding: 1.5rem 0;
	position: relative;
	margin-top: 100px;
}
@media (max-width: 1200px) {
	.hero {
		margin-top: 88px;
	}
}
@media (max-width: 768px) {
	.hero {
		margin-top: 72px;
	}
}
@media (max-width: 640px) {
	.hero {
		margin-top: 70px;
	}
}
@media (max-height: 1000px) and (min-width: 1025px) {
	.hero {
		height: 100dvh;
		margin-top: 70px;
		padding: 0.75rem 0;
	}
	.hero-mosaic {
		min-height: 300px;
	}
	.hero-title {
		font-size: clamp(1.5rem, 2.6vw, 32px);
		margin-bottom: 0.6rem;
	}
	.hero-subtitle {
		font-size: 0.88rem;
		margin-bottom: 0.85rem;
		line-height: 1.45;
	}
	.hero-highlights {
		gap: 0.35rem;
		margin-bottom: 0.85rem;
	}
	.hero-highlight {
		font-size: 0.82rem;
	}
	.hero-text {
		padding: 1rem 1.75rem 1rem 2.25rem;
	}
	.hero-gallery {
		padding: 1rem 1rem 1rem 0.5rem;
	}
	.hero-buttons .btn {
		padding: 0.65rem 1.4rem;
		font-size: 0.85rem;
	}
}
@media (min-height: 900px) {
	.hero-mosaic {
		/* max-width: 100%; */
		height: 90%;
	}
}

/* Scroll cue под hero */
.hero-scroll-cue {
	position: static;
	display: flex;
	justify-content: center;
	margin-top: 1.5rem;
	color: var(--color-primary);
	text-decoration: none;
	opacity: 0.85;
	transition: opacity var(--ease);
	z-index: 2;
}
.hero-scroll-cue:hover {
	opacity: 1;
}
.hero-scroll-cue__arrow {
	display: inline-flex;
	width: 2.25rem;
	height: 2.25rem;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	background: hsla(255, 60%, 52%, 0.1);
	animation: heroCueBounce 1.6s ease-in-out infinite;
}
@keyframes heroCueBounce {
	0%,
	100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(6px);
	}
}
@media (max-width: 640px) {
	.hero-scroll-cue {
		display: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.hero-scroll-cue__arrow {
		animation: none;
	}
}
/* Source: bg-primary/5 rounded-[2.5rem] overflow-hidden */
.hero-cloud {
	background: hsla(255, 60%, 52%, 0.05);
	border-radius: 2.5rem;
	overflow: hidden;
}
/* Source: grid lg:grid-cols-2 gap-0 — gallery gets slightly more space */
.hero-grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 0;
}
/* Source: p-8 md:p-12 lg:p-14, flex flex-col justify-center */
.hero-text {
	padding: 2rem 3rem 1rem 3.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: left;
	word-spacing: normal;
}
/* Source: text-3xl md:text-4xl lg:text-5xl font-bold leading-tight mb-5 */
.hero-title {
	font-size: clamp(1.9rem, 4.5vw, 47px);
	font-weight: 700;
	line-height: 1.2;
	margin-bottom: 1.25rem;
	text-align: left;
	word-spacing: normal;
}
/* Source: text-base md:text-lg mb-6 max-w-lg leading-relaxed */
.hero-subtitle {
	color: var(--color-muted);
	font-size: 1rem;
	line-height: 1.625;
	margin-bottom: 1.5rem;
	max-width: 32rem;
}
.hero-subtitle strong {
	color: var(--color-fg);
}
/* Source: flex flex-col gap-2.5 mb-7 */
.hero-highlights {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	margin-bottom: 1.75rem;
}
/* Source: flex items-center gap-3, text-sm font-medium */
.hero-highlight {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
}
/* Source: w-8 h-8 rounded-lg bg-primary/10 */
.hero-highlight-icon {
	width: 2rem;
	height: 2rem;
	border-radius: 0.5rem;
	background: hsla(255, 60%, 52%, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-primary);
	flex-shrink: 0;
}
/* Source: flex flex-wrap gap-3 */
.hero-buttons {
	display: flex;
	gap: 0.75rem;
}
/* Source: px-7 py-3 rounded-full text-sm */
.hero-buttons .btn {
	font-size: 0.875rem;
	padding: 0.75rem 1.75rem;
}

/* Hero mosaic */
/* Source: p-3 md:p-5 lg:p-6 */
.hero-gallery {
	padding: 1.5rem 1.5rem 1.5rem 0.75rem;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
/* Source: grid grid-cols-12 grid-rows-6 gap-2.5 h-full min-h-[380px] md:min-h-[440px] */
.hero-mosaic {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: repeat(6, 1fr);
	gap: 0.625rem;
	width: 85%;
	min-height: 440px;
}
.hero-mosaic-slider {
	display: contents;
}
/* Source: rounded-[1.2rem] */
.hero-gallery-tile {
	position: relative;
	overflow: hidden;
	border-radius: 1.2rem;
	cursor: default;
	border: none;
	padding: 0;
}
.hero-gallery-tile.tile-1 {
	cursor: pointer;
}
.hero-gallery-tile img,
.hero-gallery-tile video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}
.hero-gallery-tile:hover video {
	transform: scale(1.05);
}
.hero-gallery-tile:hover img {
	transform: scale(1.05);
}
.tile-overlay {
	position: absolute;
	inset: 0;
	background: transparent;
	transition: background var(--ease);
}
.hero-gallery-tile:hover .tile-overlay {
	background: rgba(0, 0, 0, 0.1);
}
.tile-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.tile-play svg {
	width: 20px;
	height: 20px;
	color: #fff;
}
.tile-play::before {
	content: '';
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: hsla(255, 60%, 52%, 0.9);
	position: absolute;
	transition: transform 0.3s ease;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}
.hero-gallery-tile:hover .tile-play::before {
	transform: scale(1.15);
}
.hero-gallery-tile:hover .tile-play svg {
	transform: scale(1.15);
}
.tile-play svg {
	position: relative;
	z-index: 1;
	margin-left: 2px;
	transition: transform 0.3s ease;
}
/* Source: col-span-7 row-span-4 */
.tile-1 {
	grid-column: 1/8;
	grid-row: 1/5;
}
/* Source: col-span-5 row-span-3 */
.tile-2 {
	grid-column: 8/13;
	grid-row: 1/4;
}
/* Source: col-span-5 row-span-3 */
.tile-3 {
	grid-column: 8/13;
	grid-row: 4/7;
}
/* Source: col-span-4 row-span-2 */
.tile-4 {
	grid-column: 1/5;
	grid-row: 5/7;
}
/* Source: col-span-3 row-span-2 */
.tile-5 {
	grid-column: 5/8;
	grid-row: 5/7;
}

/* Modal */
.modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0, 0, 0, 0.8);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.modal[hidden] {
	display: none;
}
.modal-close {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
	line-height: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	transition: background var(--ease);
	backdrop-filter: blur(4px);
}
.modal-close svg {
	display: block;
}
.modal-close:hover {
	background: rgba(255, 255, 255, 0.4);
}
.modal-content {
	max-width: 56rem;
	width: 100%;
	border-radius: 1rem;
	overflow: hidden;
}
.modal-content img {
	width: 100%;
	height: auto;
}
.modal-content iframe {
	width: 100%;
	aspect-ratio: 16/9;
	border: none;
}
.modal-content video {
	width: 100%;
	aspect-ratio: 16/9;
	object-fit: cover;
	border: none;
	background: #000;
	display: block;
	border-radius: 1rem;
}

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.steps-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2rem;
	position: relative;
}
.step-card {
	text-align: center;
	position: relative;
}
.step-connector {
	display: none;
}
.step-icon {
	width: 5rem;
	height: 5rem;
	margin: 0 auto 1.25rem;
	border-radius: 1rem;
	background: var(--grad-purple);
	border: 1px solid transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	position: relative;
	box-shadow: 0 8px 24px -6px hsla(255, 60%, 52%, 0.5);
	transition: transform 0.3s ease;
}
.step-icon svg {
	stroke: #fff;
	transition: transform 0.3s ease;
}
.step-card:hover .step-icon {
	transform: scale(1.06);
}
.step-card:hover .step-icon svg {
	transform: scale(1.1);
}
.steps-spark {
	display: none !important;
}
.step-num {
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--grad-gold);
	color: var(--color-fg);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
}
.step-card h3 {
	font-family: var(--font-display);
	font-weight: 600;
	margin-bottom: 0.5rem;
}
.step-card p {
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}

/* Connector line between steps (tablet+) */
@media (min-width: 768px) {
	.step-card:not(:last-child) .step-connector {
		display: block;
		position: absolute;
		top: 2.5rem;
		left: 60%;
		width: 80%;
		height: 2px;
		background: linear-gradient(
			to right,
			hsla(255, 60%, 52%, 0.3),
			transparent
		);
	}
}
/* На 2-колоночной сетке (768-1024) скрываем connector у каждого второго шага */
@media (min-width: 768px) and (max-width: 1024px) {
	.step-card:nth-child(2n) .step-connector {
		display: none;
	}
}

/* ============================================================
   CALCULATOR
   ============================================================ */
.calc-card {
	max-width: 64rem;
	margin: 0 auto;
	background: var(--color-bg);
	border-radius: 1.5rem;
	box-shadow: var(--shadow-card);
	border: 1px solid var(--color-border);
	overflow: hidden;
	width: 100%;
}
.calc-layout {
	display: flex;
}
.calc-inputs {
	flex: 1;
	padding: 2rem 2.5rem;
	min-width: 0;
	overflow: hidden;
}
.calc-input-group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	margin-bottom: 2.5rem;
}
.calc-field {
	margin-bottom: 1.5rem;
}
.calc-field label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-muted);
	display: block;
	margin-bottom: 0.75rem;
}
.calc-input-wrap {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
}
.calc-input-wrap input {
	width: 100%;
	max-width: 100%;
	background: transparent;
	color: var(--color-fg);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	border: none;
	border-bottom: 2px solid var(--color-border);
	padding-bottom: 0.5rem;
	outline: none;
	transition: border-color var(--ease);
	overflow: hidden;
	text-overflow: ellipsis;
}
.calc-input-wrap input:focus {
	border-bottom-color: var(--color-primary);
}
.calc-currency {
	font-size: 1.5rem;
	color: var(--color-muted);
	font-family: var(--font-display);
}

.calc-warn {
	margin-top: 0.6rem;
	padding: 0.5rem 0.75rem;
	background: hsla(42, 95%, 55%, 0.12);
	color: hsl(30, 90%, 40%);
	border-radius: 0.5rem;
	font-size: 0.8rem;
	font-weight: 500;
}

.calc-info-rows {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.9rem 1rem;
	background: var(--color-bg-alt);
	border-radius: 0.75rem;
	margin-bottom: 1.25rem;
}
.calc-info-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	color: var(--color-muted);
}
.calc-info-row svg {
	color: var(--color-primary);
	flex-shrink: 0;
}
.calc-info-row > span:nth-child(2) {
	flex: 1;
}
.calc-info-val {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-fg);
	white-space: nowrap;
}

.calc-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}
.calc-chip {
	position: relative;
	cursor: pointer;
	user-select: none;
}
.calc-chip input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.calc-chip span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4.5rem;
	height: 2.625rem;
	padding: 0 1rem;
	border: 2px solid var(--color-border);
	border-radius: 0.75rem;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--color-fg);
	transition: all var(--ease);
	background: var(--color-bg);
}
.calc-chip input:checked + span {
	border-color: var(--color-primary);
	background: var(--grad-purple);
	color: #fff;
	box-shadow: var(--shadow-purple);
}
.calc-chip:hover span {
	border-color: hsla(255, 60%, 52%, 0.5);
}
.calc-chip-custom {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}
.calc-chip-custom input {
	width: 4rem;
	height: 2.625rem;
	text-align: center;
	border: 2px solid var(--color-border);
	border-radius: 0.75rem;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 0.9rem;
	outline: none;
	transition:
		border-color var(--ease),
		box-shadow var(--ease);
	-moz-appearance: textfield;
}
.calc-chip-custom input::-webkit-inner-spin-button,
.calc-chip-custom input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.calc-chip-custom input:focus {
	border-color: var(--color-primary);
}
.calc-chip-custom input.blink {
	animation: calcChipBlink 1.2s ease-in-out infinite;
	border-color: var(--color-primary);
}
.calc-chip-custom span {
	font-family: var(--font-display);
	font-weight: 700;
	color: var(--color-muted);
}
@keyframes calcChipBlink {
	0%,
	100% {
		box-shadow: 0 0 0 0 hsla(255, 60%, 52%, 0.4);
	}
	50% {
		box-shadow: 0 0 0 6px hsla(255, 60%, 52%, 0);
	}
}

.calc-breakdown {
	border-top: 1px solid var(--color-border);
	margin-top: 0.5rem;
}
.calc-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 0;
	border-bottom: 1px solid var(--color-border);
	color: rgba(0, 0, 0, 0.7);
	font-size: 0.95rem;
	transition: opacity var(--ease);
	overflow: hidden;
	gap: 1rem;
}
.calc-row:last-child {
	border-bottom: none;
}
.calc-row.dimmed {
	opacity: 0.4;
}
.calc-row-neg .calc-val {
	color: hsl(0, 75%, 55%);
}
.calc-row#calc-profit-row.loss .calc-val {
	color: hsl(0, 75%, 55%);
}
.calc-val {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--color-fg);
	white-space: nowrap;
	flex-shrink: 0;
}
.calc-val-highlight {
	color: var(--color-primary);
}
.calc-disclaimer {
	text-align: center;
	color: var(--color-muted);
	font-size: 0.85rem;
	margin-top: 1.5rem;
}
.calc-circle-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 2.5rem 2rem 0;
}
.calc-circle {
	width: clamp(220px, 20vw, 260px);
	height: clamp(220px, 20vw, 260px);
	border-radius: 50%;
	background: var(--grad-purple);
	box-shadow: var(--shadow-purple);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.5rem;
	flex-shrink: 0;
	transition: opacity 0.5s;
}
.calc-circle.dimmed {
	opacity: 0.6;
}
.calc-circle-label {
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 0.25rem;
}
.calc-circle-total {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(1.3rem, 2.5vw, 1.8rem);
	color: #fff;
	line-height: 1.2;
}
.calc-circle-sub {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 0.5rem;
}
.calc-circle-roi {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-accent);
	margin-top: 0.75rem;
}
.calc-circle-roi.negative {
	color: hsl(0, 80%, 70%);
}

/* ============================================================
   BENEFITS
   ============================================================ */
.section:has(.benefits-grid),
#how-it-works {
	padding-top: 0;
}
.benefits-grid {
	max-width: 64rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25rem;
}
.benefit-card {
	background: var(--color-bg);
	border-radius: 1rem;
	border: 1px solid var(--color-border);
	padding: 1.75rem;
	box-shadow: var(--shadow-card);
	transition:
		transform var(--ease),
		box-shadow var(--ease);
}
.benefit-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
}
.benefit-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1rem;
}
.benefit-icon {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 0.75rem;
	background: hsla(255, 60%, 52%, 0.1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-primary);
	flex-shrink: 0;
}
.benefit-card h3 {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.05rem;
}
.benefit-card p {
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.6;
}
.motivation-banner {
	max-width: 52rem;
	margin: 1.25rem auto 0;
	display: flex;
	align-items: center;
	gap: 1rem;
	background: hsla(255, 60%, 52%, 0.05);
	border: 1px solid hsla(255, 60%, 52%, 0.1);
	border-radius: 1rem;
	padding: 1.25rem 1.5rem;
	color: var(--color-primary);
}
.motivation-banner p {
	font-size: 0.9rem;
	color: var(--color-fg);
}

/* ============================================================
   SERVICES
   ============================================================ */
.services-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem;
}
.service-card {
	border-radius: 1rem;
	overflow: hidden;
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-card);
	background: var(--color-bg);
	transition:
		transform var(--ease),
		box-shadow var(--ease);
}
.service-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
}
.service-img {
	position: relative;
	height: 12rem;
	overflow: hidden;
}
.service-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s;
}
.service-card:hover .service-img img {
	transform: scale(1.05);
}
.service-img-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.6) 0%, transparent 60%);
}
.service-img h3 {
	position: absolute;
	bottom: 1rem;
	left: 1.25rem;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: #fff;
	z-index: 1;
}
.service-list {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.service-list li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	color: var(--color-muted);
}
.dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: hsla(255, 60%, 52%, 0.6);
	flex-shrink: 0;
}

/* Flip Cards — Liquid Glass (Variant C) */
.flip-section-heading {
	text-align: center;
	margin: 4rem 0 2rem;
}
.flip-section-title {
	font-family: var(--font-display);
	font-size: clamp(1.74rem, 3.5vw, 2.5rem);
	font-weight: 700;
	line-height: 1.15;
	margin: 0 0 0.75rem;
}
.flip-section-sub {
	font-size: 1rem;
	color: var(--color-muted);
	max-width: 42rem;
	margin: 0 auto;
}
.flip-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}
.flip-card {
	perspective: 1000px;
	height: 18rem;
	cursor: pointer;
}
.flip-card-inner {
	position: relative;
	width: 100%;
	height: 100%;
	transition: transform 0.7s cubic-bezier(0.4, 0.2, 0.2, 1);
	transform-style: preserve-3d;
}
.flip-card:hover .flip-card-inner,
.flip-card.flipped .flip-card-inner {
	transform: rotateY(180deg);
}
@media (hover: none) {
	.flip-card:hover .flip-card-inner {
		transform: none;
	}
	.flip-card.flipped .flip-card-inner {
		transform: rotateY(180deg);
	}
}
.flip-card-front,
.flip-card-back {
	position: absolute;
	inset: 0;
	border-radius: 1.5rem;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	overflow: hidden;
}

/* Front — photo + glass pill at bottom */
.flip-card-front {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	color: #fff;
	text-align: center;
	padding: 1.25rem;
	background-size: cover;
	background-position: center;
}
.flip-card-front svg {
	display: none;
}
.flip-card-front::after {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.15);
	transition: background 0.4s;
}
.flip-card:hover .flip-card-front::after {
	background: rgba(0, 0, 0, 0.25);
}

/* Flip hint badge — угловой индикатор "переверни меня" */
.flip-card-front::before {
	content: '';
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18)
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8'/><path d='M21 3v5h-5'/></svg>")
		center/58% no-repeat;
	backdrop-filter: blur(12px) saturate(1.4);
	-webkit-backdrop-filter: blur(12px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.35);
	box-shadow:
		0 4px 14px rgba(0, 0, 0, 0.2),
		inset 0 1px 0 rgba(255, 255, 255, 0.25);
	z-index: 3;
	transition:
		transform 0.4s cubic-bezier(0.4, 0.2, 0.2, 1),
		background-color 0.3s;
	animation: flipHintPulse 2.4s ease-in-out infinite;
}
.flip-card:hover .flip-card-front::before {
	transform: rotate(180deg);
	background-color: rgba(255, 255, 255, 0.28);
	animation: none;
}
@keyframes flipHintPulse {
	0%,
	100% {
		box-shadow:
			0 4px 14px rgba(0, 0, 0, 0.2),
			inset 0 1px 0 rgba(255, 255, 255, 0.25),
			0 0 0 0 rgba(255, 255, 255, 0.45);
	}
	70% {
		box-shadow:
			0 4px 14px rgba(0, 0, 0, 0.2),
			inset 0 1px 0 rgba(255, 255, 255, 0.25),
			0 0 0 10px rgba(255, 255, 255, 0);
	}
}
@media (prefers-reduced-motion: reduce) {
	.flip-card-front::before {
		animation: none;
	}
}
.flip-card-front h4 {
	position: relative;
	z-index: 2;
	font-family: var(--font-display);
	font-size: 1rem;
	font-weight: 700;
	color: #fff;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(20px) saturate(1.6);
	-webkit-backdrop-filter: blur(20px) saturate(1.6);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 100px;
	padding: 0.65rem 1.8rem;
	box-shadow:
		0 8px 32px rgba(0, 0, 0, 0.15),
		inset 0 1px 0 rgba(255, 255, 255, 0.3),
		inset 0 -1px 0 rgba(255, 255, 255, 0.05);
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	letter-spacing: 0.03em;
	transition:
		transform 0.35s,
		box-shadow 0.35s;
}
.flip-card:hover .flip-card-front h4 {
	transform: scale(1.08);
	box-shadow:
		0 16px 48px rgba(0, 0, 0, 0.25),
		inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* Back — frosted glass over photo */
.flip-card-back {
	transform: rotateY(180deg);
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 2rem 1.5rem;
	background-size: cover;
	background-position: center;
}
.flip-card-back::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(28px) saturate(1.4);
	-webkit-backdrop-filter: blur(28px) saturate(1.4);
}
.flip-card-back::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 40%;
	background: linear-gradient(
		180deg,
		rgba(255, 255, 255, 0.1) 0%,
		transparent 100%
	);
	pointer-events: none;
}
.flip-card-back h4 {
	position: relative;
	z-index: 1;
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 700;
	color: #fff;
	margin-bottom: 0.85rem;
	background: rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 100px;
	padding: 0.45rem 1.3rem;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.flip-card-back p {
	position: relative;
	z-index: 1;
	font-size: 0.9rem;
	line-height: 1.7;
	opacity: 0.95;
	max-width: 20rem;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Photos — Меню */
.flip-bg-streetfood {
	background: url(https://www.art-active24.ru/images/kassa2026/services/streetfood.jpg)
		center/cover no-repeat;
}
.flip-bg-grill {
	background: url(https://www.art-active24.ru/images/kassa2026/services/grill.jpg)
		center/cover no-repeat;
}
.flip-bg-kids {
	background: url(https://www.art-active24.ru/images/kassa2026/services/kids.jpg)
		center/cover no-repeat;
}
.flip-bg-bar {
	background: url(https://www.art-active24.ru/images/kassa2026/services/bar.jpg)
		center/cover no-repeat;
}

/* Photos — Форматы раздачи */
.flip-bg-gastro {
	background: url(https://www.art-active24.ru/images/kassa2026/services/gastro.jpg)
		center/cover no-repeat;
}
.flip-bg-field {
	background: url(https://www.art-active24.ru/images/kassa2026/services/field.jpg)
		center/cover no-repeat;
}
.flip-bg-mangal {
	background: url(https://www.art-active24.ru/images/kassa2026/services/mangal.jpg)
		center/cover no-repeat;
}
.flip-bg-kiosk {
	background: url(https://www.art-active24.ru/images/kassa2026/services/kiosk.jpg)
		center/cover no-repeat;
}

/* Foodtruck banner */
.foodtruck-banner {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 0;
	margin-bottom: 2.5rem;
	border-radius: 1.5rem;
	overflow: hidden;
	border: 1px solid var(--color-border);
	box-shadow: var(--shadow-card);
	background: var(--color-bg);
}
.foodtruck-img {
	min-height: 26rem;
	overflow: hidden;
}
.foodtruck-placeholder {
	width: 100%;
	height: 100%;
	min-height: 26rem;
	background: var(--color-bg-alt);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-muted);
	font-size: 1.1rem;
	font-weight: 500;
}
.foodtruck-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}
.foodtruck-text {
	padding: 2.5rem 3rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.foodtruck-text h3 {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.5rem;
	margin-bottom: 1rem;
}
.foodtruck-text p {
	color: var(--color-muted);
	font-size: 0.95rem;
	line-height: 1.7;
	margin-bottom: 1.5rem;
}
.foodtruck-text ul {
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}
.foodtruck-text li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.95rem;
	font-weight: 500;
}

/* ============================================================
   CAROUSELS (EventTypes & Gallery)
   ============================================================ */
.carousel-wrapper {
	position: relative;
}
.carousel-container {
	display: flex;
	gap: 1rem;
	overflow-x: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	padding-left: max(1rem, calc((100vw - 1280px) / 2 + 1rem));
	padding-right: 1rem;
	padding-bottom: 1rem;
	scrollbar-width: none;
}
.carousel-container::-webkit-scrollbar {
	display: none;
}
.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
}
.carousel-dots button {
	width: 8px;
	height: 8px;
	border-radius: 9999px;
	background: hsla(240, 5%, 46%, 0.25);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: all var(--ease);
}
.carousel-dots button.active {
	width: 2rem;
	background: var(--color-primary);
}

/* Event cards */
.event-card {
	flex: 0 0 auto;
	width: 16rem;
	aspect-ratio: 2/3;
	border-radius: 1rem;
	overflow: hidden;
	position: relative;
	scroll-snap-align: start;
	cursor: pointer;
}
.event-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s;
}
.event-card:hover img {
	transform: scale(1.05);
}
.event-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, transparent 50%);
}
.event-text {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 1.25rem 1.25rem 1.5rem;
	color: #fff;
	z-index: 1;
}
.event-text h3 {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.125rem;
	margin-bottom: 0.25rem;
	color: #fff;
}
.event-text p {
	font-size: 0.875rem;
	opacity: 0.7;
	line-height: 1.4;
}

/* Gallery infinite scroll */
.gallery-infinite {
	overflow: hidden;
	width: 100%;
}
.gallery-track {
	display: flex;
	gap: 1rem;
	width: max-content;
	animation: gallery-scroll 30s linear infinite;
	cursor: grab;
	user-select: none;
}
.gallery-track:hover {
	animation-play-state: paused;
}
.gallery-track.dragging {
	cursor: grabbing;
	animation: none !important;
}
@keyframes gallery-scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(-50%);
	}
}
.gallery-card {
	flex: 0 0 auto;
	width: 35rem;
	aspect-ratio: 3/2;
	border-radius: 1rem;
	overflow: hidden;
	cursor: pointer;
}
.gallery-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s;
}
.gallery-card:hover img {
	transform: scale(1.05);
}

/* ============================================================
   FAQ
   ============================================================ */
.faq-group-title {
	font-family: var(--font-display);
	font-size: 1.15rem;
	font-weight: 700;
	max-width: 42rem;
	margin: 2rem auto 0.75rem;
	padding-left: 0.5rem;
}
.faq-group-title:first-of-type {
	margin-top: 0;
}
.faq-card {
	max-width: 42rem;
	margin: 0 auto;
	background: var(--color-bg);
	border: 1px solid var(--color-border);
	border-radius: 1.5rem;
	box-shadow: var(--shadow-card);
	overflow: hidden;
	padding: 0.5rem 0;
}
.faq-item {
	border-bottom: 1px solid var(--color-border);
}
.faq-item:last-child {
	border-bottom: none;
}
.faq-question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 1.75rem;
	font-family: var(--font-display);
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--color-fg);
	text-align: left;
	cursor: pointer;
	transition: color var(--ease);
	background: transparent;
}
.faq-question:hover {
	color: var(--color-primary);
}
.faq-chevron {
	flex-shrink: 0;
	color: var(--color-muted);
	transition: transform var(--ease);
}
.faq-item.faq-open .faq-chevron {
	transform: rotate(180deg);
}
.faq-answer {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.4s ease;
}
.faq-answer p {
	padding: 0 1.75rem 1.25rem;
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.7;
}

/* ============================================================
   CONTACT FORM
   ============================================================ */
.contact-card {
	max-width: 52rem;
	margin: 0 auto;
	background: var(--grad-purple);
	border-radius: 1.5rem;
	box-shadow: var(--shadow-purple);
	padding: 2.5rem 3.5rem;
	color: #fff;
}
.contact-card h2 {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	color: #fff;
	margin-bottom: 0.5rem;
}
.contact-card > p {
	color: rgba(255, 255, 255, 0.7);
	margin-bottom: 2rem;
	font-size: 1rem;
}
.contact-form {
	display: flex;
	gap: 0.75rem;
}
.contact-form input {
	flex: 1;
	background: rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 0.75rem;
	padding: 1rem 1.25rem;
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	outline: none;
	transition: all var(--ease);
}
.contact-form input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}
.contact-form input:focus {
	border-color: rgba(255, 255, 255, 0.5);
	background: rgba(255, 255, 255, 0.22);
}
.contact-form button {
	background: #fff;
	color: var(--color-primary);
	padding: 1rem 2rem;
	border-radius: 0.75rem;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	white-space: nowrap;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
	transition: all var(--ease);
}
.contact-form button:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
}
.contact-success {
	text-align: center;
	padding: 3rem 0;
}
.contact-success[hidden] {
	display: none;
}
.contact-success svg {
	color: var(--color-primary);
	margin: 0 auto 1.5rem;
}
.contact-success h2 {
	font-size: 1.5rem;
	margin-bottom: 0.75rem;
}
.contact-success p {
	color: var(--color-muted);
}

/* Contact Modal */
.contact-modal-content {
	max-width: 52rem;
	width: 100%;
}
.contact-modal-content .contact-card {
	border-radius: 1.5rem;
	padding: 3rem 3.5rem;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.3);
	overflow: hidden;
}
.contact-modal-content .contact-success {
	background: var(--grad-purple);
	border-radius: 1.5rem;
	padding: 3rem 2rem;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.3);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
	.hero {
		height: auto;
		min-height: auto;
	}
	.hero-grid {
		grid-template-columns: 1fr;
	}
	.hero-text {
		padding: 1rem 2rem;
	}
	.hero-gallery {
		padding: 1rem;
	}
	.hero-mosaic {
		max-width: 600px;
		margin: 0 auto;
		min-height: 380px;
	}
	.steps-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.calc-layout {
		flex-direction: column;
	}
	.calc-circle-wrap {
		padding: 0 2.5rem 2rem;
	}
	.calc-input-group {
		grid-template-columns: 1fr;
	}
	.benefits-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.services-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.flip-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.foodtruck-banner {
		grid-template-columns: 1fr;
	}
	.foodtruck-img {
		min-height: 14rem;
	}
	.foodtruck-placeholder {
		min-height: 14rem;
	}
	.foodtruck-text {
		padding: 1.75rem 1.5rem;
	}
	.event-card {
		width: 14rem;
	}
	.gallery-card {
		width: 24rem;
	}
	.contact-form {
		flex-direction: column;
	}
}

@media (max-width: 640px) {
	.hero {
		min-height: auto;
		height: auto;
	}
	.hero-cloud {
		border-radius: 1.5rem;
	}
	.hero-mosaic {
		display: flex;
		flex-direction: column;
		gap: 0.625rem;
		min-height: auto;
	}
	.hero-mosaic > .tile-1 {
		width: 100%;
		aspect-ratio: 16/10;
	}
	.hero-mosaic-slider {
		display: flex;
		gap: 0.625rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		margin: 0 -1rem;
		padding: 0 1rem 0.25rem;
	}
	.hero-mosaic-slider::-webkit-scrollbar {
		display: none;
	}
	.hero-mosaic-slider .hero-gallery-tile {
		flex: 0 0 calc(50% - 0.3125rem);
		scroll-snap-align: start;
		aspect-ratio: 270/356;
	}
	.hero-buttons {
		flex-direction: column;
	}
	.hero-buttons .btn {
		width: 100%;
		justify-content: center;
	}
	.section {
		padding: 3.5rem 0;
	}
	.steps-grid {
		grid-template-columns: 1fr;
	}
	.benefits-grid {
		grid-template-columns: 1fr;
	}
	.services-grid {
		grid-template-columns: 1fr;
	}
	.flip-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1rem;
	}
	.flip-card {
		height: 16rem;
	}
	.flip-card-front h4 {
		font-size: 0.8rem;
		padding: 0.5rem 1rem;
		letter-spacing: 0.02em;
	}
	.flip-card-back {
		padding: 1.25rem 1rem;
	}
	.flip-card-back h4 {
		font-size: 0.85rem;
		padding: 0.35rem 0.9rem;
		margin-bottom: 0.55rem;
	}
	.flip-card-back p {
		font-size: 0.78rem;
		line-height: 1.5;
	}
	.flip-card-front::before {
		top: 0.5rem;
		right: 0.5rem;
		width: 1.75rem;
		height: 1.75rem;
	}
	.motivation-banner {
		flex-direction: column;
		text-align: center;
	}
	.calc-inputs {
		padding: 1.5rem;
	}
	.contact-card {
		padding: 2rem 1.5rem;
		border-radius: 1.25rem;
	}
	.event-card {
		width: 11rem;
	}
	.gallery-card {
		width: 18rem;
	}
}

/* ============================================================
   CALCULATOR EMBED (copy of spacerental.ru/igor/Kassa/calculator-embed_final7.html)
   Все стили под префиксом .ce- чтобы не конфликтовать.
   ============================================================ */
.ce {
	max-width: 1247px;
	margin: 0 auto;
	font-family: 'Inter', sans-serif;
	color: #1a1a1a;
}
.ce-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}
.ce-card {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 14px;
	padding: 24px;
}
.ce-card-label {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.8px;
	color: #888;
	margin-bottom: 12px;
}
.ce-label {
	font-size: 13px;
	color: #555;
	display: block;
	margin-bottom: 6px;
}

.ce-input-wrap {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
}
.ce-input-wrap input[type='number'] {
	width: 100%;
	font-size: 22px;
	font-weight: 700;
	border: 2px solid #e5e5e5;
	border-radius: 10px;
	padding: 10px 14px;
	outline: none;
	transition: border 0.2s;
	-moz-appearance: textfield;
	font-family: inherit;
	color: #1a1a1a;
	background: #fff;
}
.ce-input-wrap input:focus {
	border-color: var(--color-primary);
}
.ce-input-wrap input::-webkit-inner-spin-button,
.ce-input-wrap input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.ce-unit {
	font-size: 14px;
	color: #999;
	white-space: nowrap;
}

.ce-info-row {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: #555;
	margin-bottom: 6px;
}
.ce-icon {
	font-size: 14px;
	font-family:
		'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji',
		'Twemoji Mozilla', sans-serif;
}
.ce-info-row .ce-val {
	margin-left: auto;
	font-weight: 600;
	white-space: nowrap;
	font-family: inherit;
	font-size: 13px;
	color: #555;
}

.ce-markup-section {
	margin-top: 14px;
}
.ce-markup-title {
	font-size: 13px;
	font-weight: 600;
	color: #555;
	margin-bottom: 10px;
}
.ce-markup-options {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.ce-markup-opt {
	display: flex;
}
.ce-markup-opt input[type='radio'] {
	display: none;
}
.ce-markup-opt label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 72px;
	height: 42px;
	padding: 0 16px;
	border: 2px solid #e5e5e5;
	border-radius: 10px;
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	color: #333;
	transition: all 0.2s;
	user-select: none;
	background: #fff;
	font-family: inherit;
}
.ce-markup-opt input:checked + label {
	border-color: var(--color-primary);
	background: var(--grad-purple);
	color: #fff;
	box-shadow: var(--shadow-purple);
}
.ce-custom-pct {
	display: flex;
	align-items: center;
	gap: 4px;
}
.ce-custom-pct input[type='number'] {
	width: 64px;
	height: 42px;
	border: 2px solid #e5e5e5;
	border-radius: 10px;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	outline: none;
	-moz-appearance: textfield;
	transition:
		border-color 0.2s,
		box-shadow 0.2s;
	background: #fff;
	color: #333;
	font-family: inherit;
}
.ce-custom-pct input.blink {
	animation: cePulseBorder 1s ease-in-out infinite;
}
@keyframes cePulseBorder {
	0%,
	100% {
		border-color: hsl(255, 60%, 52%);
		box-shadow: 0 0 0 0 hsla(255, 60%, 52%, 0.35);
	}
	50% {
		border-color: hsl(255, 60%, 52%);
		box-shadow: 0 0 0 6px hsla(255, 60%, 52%, 0);
	}
}
.ce-custom-pct input:focus {
	border-color: var(--color-primary);
}
.ce-custom-pct input::-webkit-inner-spin-button,
.ce-custom-pct input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.ce-custom-pct span {
	font-size: 15px;
	font-weight: 700;
	color: #333;
	font-family: inherit;
}

.ce-revenue-display {
	font-size: 22px;
	font-weight: 800;
	color: #1a1a1a;
	margin-bottom: 4px;
	font-family: inherit;
}
.ce-revenue-sub {
	font-size: 12px;
	color: #888;
}

.ce-deposit-amount {
	font-size: 28px;
	font-weight: 800;
	color: #1a1a1a;
	margin-bottom: 4px;
	font-family: inherit;
}
.ce-deposit-sub {
	font-size: 13px;
	color: #888;
	margin-bottom: 14px;
}
.ce-deposit-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12.5px;
	color: #555;
	background: #f0fdf4;
	border-radius: 8px;
	padding: 10px 12px;
	margin-bottom: 8px;
}
.ce-dn-icon {
	font-size: 16px;
	flex-shrink: 0;
}

.ce-result-row {
	display: flex;
	justify-content: space-between;
	font-size: 14px;
	margin-bottom: 8px;
	color: #1a1a1a;
	font-family: inherit;
}
.ce-result-row > span:first-child {
	color: #1a1a1a;
}
.ce-rr-val {
	font-weight: 600;
	font-family: inherit;
}
.ce-result-row.ce-neg .ce-rr-val {
	color: #ef4444;
}
.ce-result-row.ce-profit {
	border-top: 2px solid #e5e5e5;
	padding-top: 10px;
	margin-top: 10px;
}
.ce-result-row.ce-profit > span:first-child {
	font-weight: 700;
}
.ce-result-row.ce-profit .ce-rr-val {
	font-weight: 800;
	font-size: 18px;
	color: #16a34a;
}
.ce-result-row.ce-profit.ce-loss .ce-rr-val {
	color: #ef4444;
}
.ce-result-row.ce-deposit-return {
	margin-top: 4px;
}
.ce-result-row.ce-deposit-return .ce-rr-val {
	font-weight: 700;
	color: #16a34a;
}

.ce-warn {
	display: none;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #d97706;
	background: #fffbeb;
	border-radius: 8px;
	padding: 8px 12px;
	margin-bottom: 10px;
}
.ce-warn.visible {
	display: flex;
}

.ce-formula-bar {
	background: #fff;
	border: 1px solid #e5e5e5;
	border-radius: 14px;
	padding: 18px 24px;
	margin-bottom: 16px;
	font-size: 14px;
	font-weight: 500;
	color: #555;
	line-height: 2;
	text-align: center;
	font-family: inherit;
}
.ce-formula-bar .fn {
	font-weight: 700;
	color: #1a1a1a;
}
.ce-formula-bar .op {
	color: #888;
	margin: 0 4px;
	font-weight: 600;
}
.ce-formula-bar .green {
	color: #16a34a;
	font-weight: 800;
}
.ce-formula-bar .red {
	color: #ef4444;
	font-weight: 700;
}

.ce-disclaimer {
	text-align: center;
	font-size: 11.5px;
	color: #aaa;
	margin-top: 8px;
	font-family: inherit;
}

/* 2 колонки на планшете (768-900), 1 колонка — только на узком мобиле */
@media (min-width: 768px) and (max-width: 900px) {
	.ce-grid {
		grid-template-columns: 1fr 1fr;
	}
}
@media (max-width: 767px) {
	.ce-grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 480px) {
	.ce-card {
		padding: 16px;
	}
	.ce-formula-bar {
		padding: 12px 14px;
		font-size: 11px;
		line-height: 1.55;
		word-break: break-word;
	}
	.ce-markup-opt label {
		min-width: 64px;
		height: 40px;
		padding: 0 12px;
		font-size: 14px;
	}
	.ce-custom-pct input[type='number'] {
		width: 56px;
		height: 40px;
		font-size: 14px;
	}

	/* Result-rows — остаются в строку, но мельче чтобы значение не переносилось */
	.ce-result-row {
		font-size: 12px;
		gap: 8px;
	}
	.ce-result-row > span:first-child {
		line-height: 1.35;
	}
	.ce-rr-val {
		white-space: nowrap;
		font-size: 13px;
	}
	.ce-result-row.ce-profit .ce-rr-val {
		font-size: 15px;
	}
}

@media (min-height: 800px) {
	.hero-mosaic {
		width: 80%;
	}
	.hero-title {
		font-size: clamp(1.9rem, 4.5vw, 50px);
	}
}

@media (min-width: 1601px) {
	.hero-mosaic {
		width: 92% !important;
		height: 92% !important;
	}
	.hero-title {
		font-size: 47px !important;
	}
}
