/* ═══════════════════════════════════════════════════════════
   Agency — стили, которые нельзя выразить контролами Elementor.
   Всё остальное живёт в настройках виджетов/контейнеров и в Global Styles.
   ═══════════════════════════════════════════════════════════ */

/* ─── Базовое ───
   Переменные кита объявлены на body (.elementor-kit-7), поэтому на <html>
   цвет задаём литералом — как в оригинале. Его же анимирует GSAP. */
html {
	scroll-behavior: smooth;
	background: #0E0D0B;
	transition: background .6s ease;
	overflow-x: clip;
}

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

/* Курсивные акценты <em> внутри заголовков */
.ag-em em,
.ag-poster-title em,
.ag-hero-line em,
.ag-srv-name em,
.elementor .e-con .elementor-widget.ag-cta-big em,
.ag-about-text h3 em {
	font-style: italic;
	font-weight: 300;
	color: var(--e-global-color-secondary);
	padding-right: .08em;
	margin-right: -.04em;
}

.ag-em-accent em {
	color: var(--e-global-color-primary);
}

.elementor .e-con .elementor-widget.ag-cta-big em {
	color: inherit;
}

/* ═══════════════ HEADER / FOOTER ═══════════════ */

.ag-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 150;
	mix-blend-mode: difference;
	color: #fff;
}

.ag-header a,
.ag-header .elementor-heading-title,
.ag-header .elementor-nav-menu a {
	color: #fff !important;
}

.ag-logo .ag-dot {
	color: var(--e-global-color-secondary);
}

.ag-header .elementor-nav-menu a {
	opacity: .85;
	transition: opacity .3s;
	padding: 0 !important;
	background: none !important;
	fill: currentColor;
}

.ag-header .elementor-nav-menu a:hover { opacity: 1; }

@media (max-width: 900px) {
	/* Специфичность выше, чем у правил Elementor для виджета */
	.elementor .e-con .elementor-widget.ag-nav { display: none; }
}

.ag-footer .ag-logo .elementor-heading-title { color: var(--e-global-color-text); }
.ag-footer-privacy .elementor-heading-title { opacity: .7; font-size: 10px; letter-spacing: .15em; }

/* ═══════════════ КНОПКИ ═══════════════ */

.ag-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	position: relative;
	overflow: hidden;
	transition: all .3s;
}

/* Заливка снизу вверх на hover */
.ag-btn-primary .elementor-button::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--e-global-color-bordodark);
	transform: translateY(101%);
	transition: transform .4s cubic-bezier(.7, 0, .3, 1);
	z-index: 0;
}

.ag-btn-primary .elementor-button:hover::before { transform: translateY(0); }
.ag-btn-primary .elementor-button-content-wrapper { position: relative; z-index: 1; }

/* Кружок со стрелкой */
.ag-btn-primary .elementor-button-content-wrapper::after {
	content: '→';
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	color: var(--e-global-color-primary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	margin-left: 14px;
	flex-shrink: 0;
	transition: transform .3s;
}

.ag-btn-primary .elementor-button:hover .elementor-button-content-wrapper::after {
	transform: translateX(4px);
}

.ag-btn-primary .elementor-button-content-wrapper {
	display: inline-flex;
	align-items: center;
}

.ag-cta-btn-light .elementor-button,
.ag-cta-btn-outline .elementor-button,
.elementor .e-con .elementor-widget.ag-pkg-cta .elementor-button { gap: 12px; }

/* ═══════════════ HERO ═══════════════ */

.ag-hero-photo {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: .35;
	filter: saturate(.8) contrast(1.05);
}

.ag-hero-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(14, 13, 11, .85) 0%, rgba(14, 13, 11, .55) 30%, rgba(14, 13, 11, .7) 60%, rgba(14, 13, 11, .95) 100%),
		linear-gradient(90deg, rgba(14, 13, 11, .7) 0%, transparent 30%, transparent 70%, rgba(14, 13, 11, .7) 100%);
}

.ag-hero-decor {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.ag-ring {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border-color: rgba(201, 169, 156, .12) !important;
}

.ag-ring-1 { right: -12vw; width: 55vw; min-height: 55vw; }
.ag-ring-2 { right: -6vw;  width: 42vw; min-height: 42vw; border-color: rgba(168, 50, 60, .1) !important; }
.ag-ring-3 { right: 2vw;   width: 28vw; min-height: 28vw; border-color: rgba(201, 169, 156, .08) !important; }

.ag-hero-dots {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle, rgba(201, 169, 156, .18) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(ellipse 60% 80% at 80% 50%, black 30%, transparent 70%);
	mask-image: radial-gradient(ellipse 60% 80% at 80% 50%, black 30%, transparent 70%);
}

.elementor .e-con .elementor-widget.ag-hero-year {
	position: absolute;
	right: 32px;
	bottom: 36px;
	user-select: none;
}

.elementor .e-con .elementor-widget.ag-hero-year .elementor-heading-title {
	color: transparent;
	-webkit-text-stroke: 1px rgba(201, 169, 156, .1);
	line-height: 1;
	letter-spacing: -.05em;
}

.elementor .e-con .elementor-widget.ag-hero-eyebrow { max-width: 320px; }
.elementor .e-con .elementor-widget.ag-hero-tagline { max-width: 520px; padding-bottom: 40px; }
.elementor .e-con .elementor-widget.ag-hero-tagline strong { color: var(--e-global-color-secondary); font-weight: 600; }

@media (max-width: 900px) {
	.ag-ring { display: none; }
	.ag-hero-photo { opacity: .25; }
	.elementor .e-con .elementor-widget.ag-hero-tagline { max-width: 100%; padding-bottom: 0; }
}

@media (max-width: 480px) {
	.elementor .e-con .elementor-widget.ag-hero-year { right: 16px; bottom: 20px; }
}

/* ═══════════════ SHOWREEL ═══════════════ */

.ag-showreel-wrap {
	position: relative;
	transition: transform .5s;
}

.ag-showreel-wrap:hover { transform: scale(.995); }

.ag-showreel-video .elementor-wrapper { aspect-ratio: 16 / 9; }



@media (max-width: 900px) {
	.ag-showreel-video .elementor-wrapper { aspect-ratio: 4 / 5; }
}

/* ═══════════════ БЕГУЩАЯ СТРОКА ═══════════════ */

.ag-marquee .elementor-widget-container { overflow: hidden; }

.ag-marquee-track {
	display: flex;
	gap: 48px;
	width: max-content;
	animation: ag-marquee 30s linear infinite;
}

.ag-marquee-item {
	font-family: var(--e-global-typography-marquee-font-family), sans-serif;
	font-size: var(--e-global-typography-marquee-font-size);
	font-weight: var(--e-global-typography-marquee-font-weight);
	text-transform: var(--e-global-typography-marquee-text-transform);
	letter-spacing: var(--e-global-typography-marquee-letter-spacing);
	line-height: normal;
	color: var(--e-global-color-text);
	white-space: nowrap;
}

.ag-marquee-item.outline {
	color: transparent;
	-webkit-text-stroke: 1px var(--e-global-color-secondary);
}

@keyframes ag-marquee { to { transform: translateX(-50%); } }

@media (max-width: 900px) {
	.ag-marquee-track { gap: 36px; }
}

/* ═══════════════ ОБО МНЕ ═══════════════ */

.ag-about-photo {
	aspect-ratio: 4 / 5;
	position: relative;
	transform: rotate(-1.5deg);
	transition: transform .5s ease;
}

.ag-about-photo:hover { transform: rotate(0); }

.ag-about-photo::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(14, 13, 11, .55) 100%);
	pointer-events: none;
}

.ag-about-photo > * { position: relative; z-index: 2; }

.elementor .e-con .elementor-widget.ag-about-photo-tag {
	align-self: flex-start;
	background: rgba(14, 13, 11, .7);
	border: 1px solid var(--e-global-color-line);
	padding: 8px 14px;
}

.elementor .e-con .elementor-widget.ag-about-photo-tag .elementor-widget-container::before {
	content: '●';
	color: var(--e-global-color-primary);
	margin-right: 8px;
}

.elementor .e-con .elementor-widget.ag-about-photo-label { transform: rotate(-3deg); }
.elementor .e-con .elementor-widget.ag-about-photo-label p { font-size: 36px; line-height: 1; }

.ag-about-p p { max-width: 540px; }

.elementor .e-con .elementor-widget.ag-tag {
	padding: 10px 18px;
	border: 1px solid var(--e-global-color-line);
	border-radius: 999px;
	width: auto;
}

.elementor .e-con .elementor-widget.ag-tag-filled {
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
}

.elementor .e-con .elementor-widget.ag-tag-khaki {
	background: var(--e-global-color-accent);
	border-color: var(--e-global-color-accent);
}

@media (max-width: 900px) {
	.ag-about-photo { transform: none; }
	.ag-about-tags { gap: 8px; }
	.elementor .e-con .elementor-widget.ag-tag { padding: 8px 14px; }
}

/* ═══════════════ ЦИФРЫ ═══════════════ */

.ag-num-cell:last-child { border-right: none !important; }
.ag-num-val .elementor-counter-number-wrapper { display: block; }
.ag-num-val .elementor-counter-number-suffix {
	color: var(--e-global-color-primary);
	font-weight: 600;
	flex-grow: 0;
}

@media (max-width: 900px) {
	.ag-num-cell { border-bottom: 1px solid var(--e-global-color-line); }
	.ag-num-cell:nth-child(2n) { border-right: none !important; }
	.ag-num-cell:nth-last-child(-n+2) { border-bottom: none; }
}

/* ═══════════════ УСЛУГИ ═══════════════ */

.ag-srv-row { position: relative; cursor: pointer; }

/* Заливка выходит за отступы секции — до краёв экрана.
   Ширину задаём явно: с парой left/right бокс оказывается пере-ограничен
   внутри контейнера Elementor, и правое смещение отбрасывается. */
.ag-srv-row::before {
	content: '';
	position: absolute;
	left: -32px;
	width: calc(100% + 64px);
	top: 0;
	bottom: 0;
	background: var(--e-global-color-primary);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .6s cubic-bezier(.7, 0, .3, 1);
	z-index: 0;
}

.ag-srv-row:hover::before {
	transform-origin: left;
	transform: scaleX(1);
}

.ag-srv-row > * { position: relative; z-index: 1; }

.ag-srv-row:hover .elementor-heading-title,
.ag-srv-row:hover .ag-srv-num,
.ag-srv-row:hover .ag-srv-desc,
.ag-srv-row:hover .ag-srv-arrow-glyph { color: #fff; }

.ag-srv-row:hover .ag-srv-name em { color: #fff; }
.ag-srv-row:hover .ag-srv-arrow { border-color: #fff !important; }

.ag-srv-arrow {
	transition: transform .4s, border-color .4s;
	align-self: center;
	margin-left: auto;
}

.ag-srv-row:hover .ag-srv-arrow { transform: rotate(-45deg); }

.elementor .e-con .elementor-widget.ag-srv-num { flex: 0 0 90px; white-space: nowrap; }

.ag-srv-desc p { max-width: 460px; }

@media (max-width: 900px) {
	.ag-srv-row::before { left: -20px; width: calc(100% + 40px); }
	.ag-srv-arrow { margin-left: 0; align-self: flex-start; }
}

/* ═══════════════ КОНСТРУКТОР ═══════════════ */

.elementor .e-con .elementor-widget.ag-ctor-title {
	margin-bottom: 40px;
	padding-right: .12em;
}

.elementor .e-con .elementor-widget.ag-ctor-sub {
	max-width: 600px;
	margin-bottom: 64px;
}

.ag-ctor-card {
	background: var(--e-global-color-bgdark);
	color: var(--e-global-color-text);
	padding: 56px;
	border-radius: 4px;
	min-height: 520px;
	display: flex;
	flex-direction: column;
}

@media (max-width: 900px) {
	.ag-ctor-card { padding: 28px 20px; }
}

/* ═══════════════ ГАЛЕРЕЯ ═══════════════ */

.ag-mosaic { grid-auto-rows: 260px; }

.ag-tile {
	position: relative;
	cursor: pointer;
	transition: transform .7s cubic-bezier(.22, 1, .36, 1), box-shadow .5s;
}

.ag-tile::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(14, 13, 11, .65) 100%);
	opacity: .85;
	transition: opacity .5s;
	z-index: 1;
	pointer-events: none;
}

.ag-tile:hover::before { opacity: .5; }

.ag-tile:hover {
	transform: scale(1.03);
	z-index: 2;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .4);
}

.ag-tile-num {
	position: relative;
	z-index: 4;
	opacity: .8;
}

@media (max-width: 900px) {
	.ag-mosaic { grid-auto-rows: 160px; }
	.ag-tile { padding: 10px !important; }
}

/* ═══════════════ ПАКЕТЫ ═══════════════ */

.ag-pkg { position: relative; }

.elementor .e-con .elementor-widget.ag-pkg-badge .elementor-widget-container { display: inline-flex; align-items: center; gap: 6px; }

.elementor .e-con .elementor-widget.ag-pkg-badge .elementor-widget-container::before {
	content: '●';
	font-size: 6px;
	animation: ag-blink 2s ease-in-out infinite;
}

@keyframes ag-blink { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

.elementor .e-con .elementor-widget.ag-pkg-badge { margin-bottom: 24px; }
.elementor .e-con .elementor-widget.ag-pkg-num .elementor-heading-title { color: rgba(14, 13, 11, .08); }
.ag-pkg-featured .ag-pkg-num .elementor-heading-title { color: rgba(242, 238, 228, .08); }
.elementor .e-con .elementor-widget.ag-pkg-num { margin-bottom: -12px; }
.elementor .e-con .elementor-widget.ag-pkg-name { margin-bottom: 8px; }
.elementor .e-con .elementor-widget.ag-pkg-sub { margin-bottom: 28px; }
.elementor .e-con .elementor-widget.ag-pkg-price { margin-bottom: 6px; }
.elementor .e-con .elementor-widget.ag-pkg-note { margin-bottom: 28px; }
.elementor .e-con .elementor-widget.ag-pkg-divider { margin-bottom: 24px; }

.elementor .e-con .elementor-widget.ag-pkg-list { flex: 1; margin-bottom: 32px; }
.elementor .e-con .elementor-widget.ag-pkg-list .elementor-icon-list-item { position: relative; padding-left: 28px; }

.elementor .e-con .elementor-widget.ag-pkg-list .elementor-icon-list-item::before {
	content: '→';
	position: absolute;
	left: 0;
	top: 0;
	color: var(--e-global-color-primary);
	font-size: 14px;
}

.ag-pkg-featured .ag-pkg-list .elementor-icon-list-item::before { color: var(--e-global-color-secondary); }

.elementor .e-con .elementor-widget.ag-pkg-cta { margin-top: auto; }
.elementor .e-con .elementor-widget.ag-pkg-cta .elementor-button { width: 100%; }

/* На ≤900 пакеты превращаются в горизонтальную ленту со снапом — как в оригинале.
   scroll-snap контролами Elementor не выражается. */
@media (max-width: 900px) {
	.ag-packages {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.ag-packages::-webkit-scrollbar { display: none; }

	.ag-packages .ag-pkg {
		flex: 0 0 74vw;
		scroll-snap-align: start;
	}
}

/* ═══════════════ ОТЗЫВЫ ═══════════════ */

.ag-review { transition: border-color .4s, transform .4s; }
.ag-review:hover { border-color: var(--e-global-color-secondary) !important; transform: translateY(-4px); }

.elementor .e-con .elementor-widget.ag-review-stars { margin-bottom: 24px; }
.elementor .e-con .elementor-widget.ag-review-text { margin-bottom: 32px; }
.elementor .e-con .elementor-widget.ag-review-event { margin-top: 4px; }

/* ═══════════════ FAQ ═══════════════ */

.ag-faq-acc .elementor-accordion-item { border-left: none !important; border-right: none !important; }
.ag-faq-acc .elementor-accordion-item + .elementor-accordion-item { border-top: none !important; }

.ag-faq-acc .elementor-tab-title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
	cursor: pointer;
	transition: color .3s;
}

.ag-faq-acc .elementor-tab-title:hover { color: var(--e-global-color-secondary); }
.ag-faq-acc .elementor-accordion-icon { display: none; }
.ag-faq-acc .elementor-accordion-title { flex: 1; }

.ag-faq-acc .elementor-tab-title::after {
	content: '';
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	border: 1px solid var(--e-global-color-primary);
	border-radius: 50%;
	background-image:
		linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary)),
		linear-gradient(var(--e-global-color-primary), var(--e-global-color-primary));
	background-size: 12px 1px, 1px 12px;
	background-position: center, center;
	background-repeat: no-repeat;
	transition: background-color .4s, background-size .4s;
}

.ag-faq-acc .elementor-tab-title.elementor-active::after {
	background-color: var(--e-global-color-primary);
	background-image:
		linear-gradient(#fff, #fff),
		linear-gradient(#fff, #fff);
	background-size: 12px 1px, 0 12px;
}

@media (max-width: 900px) {
	.ag-faq-acc .elementor-tab-title { gap: 16px; }
	.ag-faq-acc .elementor-tab-title::after { width: 26px; height: 26px; background-size: 10px 1px, 1px 10px; }
}

/* ═══════════════ ФИНАЛЬНЫЙ CTA ═══════════════ */

.ag-cta::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 60% 60% at 50% 40%, rgba(255, 255, 255, .1), transparent 60%);
	pointer-events: none;
}

.ag-cta > * { position: relative; z-index: 1; }

.elementor .e-con .elementor-widget.ag-cta-hand { transform: rotate(-3deg); opacity: .85; margin-bottom: 24px; }
.elementor .e-con .elementor-widget.ag-cta-big { margin-bottom: 48px; }
.elementor .e-con .elementor-widget.ag-cta-sub { max-width: 560px; margin: 0 auto 56px; opacity: .9; }

.elementor .e-con .elementor-widget.ag-cta-contact-type { opacity: .7; }

.ag-cta-contact-val .elementor-heading-title {
	display: inline-block;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
	padding-bottom: 4px;
	transition: border-color .3s;
}

.ag-cta-contact-val .elementor-heading-title:hover { border-color: #fff; }

@media (max-width: 900px) {
	.elementor .e-con .elementor-widget.ag-cta-big { margin-bottom: 32px; }
	.elementor .e-con .elementor-widget.ag-cta-hand { margin-bottom: 16px; }
	.elementor .e-con .elementor-widget.ag-cta-sub { margin-bottom: 36px; }
}

/* ═══════════════ REVEAL (задел под этап 4) ═══════════════ */

/* Прячем только когда JS анимаций реально загрузился (он ставит .ag-anim на <html>),
   иначе контент остался бы невидимым при отключённом JS. */
html.ag-anim .ag-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity .9s ease, transform .9s ease;
}

html.ag-anim .ag-reveal.ag-visible { opacity: 1; transform: none; }

html.ag-anim .ag-reveal.ag-d1 { transition-delay: .1s; }
html.ag-anim .ag-reveal.ag-d2 { transition-delay: .25s; }
html.ag-anim .ag-reveal.ag-d3 { transition-delay: .4s; }

@media (prefers-reduced-motion: reduce) {
	html.ag-anim .ag-reveal { opacity: 1; transform: none; transition: none; }
	.ag-marquee-track { animation: none; }
}

/* ═══════════════════════════════════════════════════════════
   ЭТАП 4 — интерактив
   ═══════════════════════════════════════════════════════════ */

/* ─── Прелоадер ─── */
.ag-preloader {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: var(--e-global-color-bgdark);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.ag-preloader.hide {
	pointer-events: none;
	animation: ag-preloader-out 1.2s cubic-bezier(.85, 0, .15, 1) forwards;
}

@keyframes ag-preloader-out { to { transform: translateY(-100%); } }

.ag-preloader::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
	opacity: .08;
	mix-blend-mode: overlay;
	pointer-events: none;
}

.ag-preloader-top,
.ag-preloader-bottom {
	position: absolute;
	left: 32px;
	right: 32px;
	display: flex;
	align-items: center;
	font-family: var(--e-global-typography-logo-font-family), sans-serif;
	text-transform: uppercase;
	color: var(--e-global-color-inkdim);
}

.ag-preloader-top {
	top: 32px;
	justify-content: space-between;
	font-size: 10px;
	letter-spacing: .4em;
}

.ag-preloader-top span:first-child::before {
	content: '●';
	color: var(--e-global-color-primary);
	margin-right: 8px;
	animation: ag-blink 1.2s ease-in-out infinite;
}

.ag-preloader-center { text-align: center; position: relative; }

.ag-preloader-name {
	font-family: var(--e-global-typography-herobig-font-family), sans-serif;
	font-weight: 800;
	font-size: clamp(48px, 11vw, 180px);
	line-height: .85;
	letter-spacing: -.04em;
	text-transform: uppercase;
	color: var(--e-global-color-text);
	overflow: hidden;
}

.ag-preloader-name span {
	display: inline-block;
	transform: translateY(110%);
	animation: ag-letter-in .9s cubic-bezier(.22, 1, .36, 1) forwards;
}

.ag-preloader-name .accent {
	color: var(--e-global-color-secondary);
	font-style: italic;
	font-weight: 300;
	font-size: .8em;
	margin-left: .1em;
}

@keyframes ag-letter-in { to { transform: translateY(0); } }

.ag-preloader-tagline {
	margin-top: 16px;
	font-size: 12px;
	letter-spacing: .5em;
	text-transform: uppercase;
	color: var(--e-global-color-inkdim);
	opacity: 0;
	animation: ag-fade-in .8s .6s forwards;
}

@keyframes ag-fade-in { to { opacity: 1; } }

.ag-preloader-bottom {
	bottom: 32px;
	gap: 16px;
	font-size: 10px;
	letter-spacing: .3em;
	opacity: 0;
	animation: ag-fade-in .8s .4s forwards;
}

.ag-preloader-bar {
	flex: 1;
	height: 1px;
	background: var(--e-global-color-line);
	position: relative;
	overflow: hidden;
}

.ag-preloader-bar::after {
	content: '';
	position: absolute;
	inset: 0;
	width: 0;
	background: linear-gradient(90deg, var(--e-global-color-primary), var(--e-global-color-secondary));
	animation: ag-preloader-bar 1.4s .4s cubic-bezier(.65, 0, .35, 1) forwards;
}

@keyframes ag-preloader-bar { to { width: 100%; } }

.ag-preloader-pct {
	min-width: 48px;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--e-global-color-text);
}

.ag-preloader-marquee {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	transform: translateY(calc(-50% + 180px));
	overflow: hidden;
	display: flex;
	opacity: 0;
	animation: ag-fade-in .8s .8s forwards;
	pointer-events: none;
}

.ag-preloader-marquee-track {
	display: flex;
	gap: 56px;
	white-space: nowrap;
	animation: ag-preloader-marquee 18s linear infinite;
	font-family: var(--e-global-typography-marquee-font-family), sans-serif;
	font-weight: 700;
	font-size: clamp(28px, 4vw, 56px);
	text-transform: uppercase;
	letter-spacing: -.02em;
	color: transparent;
	-webkit-text-stroke: 1px var(--e-global-color-secondary);
}

.ag-preloader-marquee-track span { display: inline-flex; align-items: center; gap: 56px; }

.ag-preloader-marquee-track span::after {
	content: '✷';
	color: var(--e-global-color-primary);
	-webkit-text-stroke: 0;
	font-size: .4em;
}

@keyframes ag-preloader-marquee { to { transform: translateX(-50%); } }

body.ag-is-loading { overflow: hidden; }

@media (max-width: 700px) {
	.ag-preloader-top, .ag-preloader-bottom { left: 20px; right: 20px; }
	.ag-preloader-marquee { transform: translateY(calc(-50% + 130px)); }
}

/* ─── Прогресс прокрутки ─── */
.ag-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 200;
	pointer-events: none;
}

.ag-scroll-progress-bar {
	height: 100%;
	width: 0;
	background: var(--e-global-color-primary);
	transition: width .05s linear;
	will-change: width;
}

/* ─── Индикатор «Листай» ─── */
.ag-scroll-indicator {
	position: fixed;
	bottom: 32px;
	left: 32px;
	z-index: 180;
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--e-global-typography-logo-font-family), sans-serif;
	font-weight: 500;
	letter-spacing: .05em;
	font-size: 11px;
	text-transform: uppercase;
	mix-blend-mode: difference;
	color: #fff;
	pointer-events: none;
}

.ag-scroll-pct { font-size: 13px; letter-spacing: 0; min-width: 40px; }

.ag-scroll-indicator .bar {
	width: 60px;
	height: 1px;
	background: rgba(255, 255, 255, .3);
	position: relative;
	overflow: hidden;
}

.ag-scroll-indicator .bar::after {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: var(--pct, 0%);
	background: #fff;
	transition: width .15s linear;
}

@media (max-width: 900px) { .ag-scroll-indicator { display: none; } }

/* ─── Кастомный курсор ─── */
.ag-cursor-dot,
.ag-cursor-ring {
	position: fixed;
	pointer-events: none;
	z-index: 9999;
	top: 0;
	left: 0;
	border-radius: 50%;
	mix-blend-mode: difference;
	will-change: transform;
}

.ag-cursor-dot {
	width: 6px;
	height: 6px;
	background: #fff;
	transition: opacity .3s;
}

.ag-cursor-ring {
	width: 36px;
	height: 36px;
	border: 1px solid #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: width .3s cubic-bezier(.22, 1, .36, 1), height .3s cubic-bezier(.22, 1, .36, 1), border-color .3s, background .3s;
}

.ag-cursor-ring .label {
	font-family: var(--e-global-typography-logo-font-family), sans-serif;
	font-weight: 600;
	font-size: 9px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #fff;
	opacity: 0;
	transform: scale(.5);
	transition: opacity .3s, transform .3s;
	white-space: nowrap;
}

body.ag-cursor-morph .ag-cursor-ring {
	width: 56px;
	height: 56px;
	mix-blend-mode: normal;
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
}

body.ag-cursor-morph .ag-cursor-dot { opacity: 0; }
body.ag-cursor-morph .ag-cursor-ring .label { opacity: 1; transform: scale(1); }

body.ag-cursor-morph-light .ag-cursor-ring {
	background: var(--e-global-color-text);
	border-color: var(--e-global-color-text);
}

body.ag-cursor-morph-light .ag-cursor-ring .label { color: var(--e-global-color-bgdark); }

@media (hover: none), (pointer: coarse) {
	.ag-cursor-dot, .ag-cursor-ring { display: none !important; }
}

/* Прячем системный курсор ТОЛЬКО когда наш скрипт реально загрузился
   (он ставит .ag-anim на <html>). В редакторе Elementor и в админке
   скрипт не подключается — курсор остаётся обычным. Админ-бар исключаем всегда. */
@media (hover: hover) and (pointer: fine) {
	html.ag-anim body,
	html.ag-anim body a,
	html.ag-anim body button { cursor: none; }

	html.ag-anim #wpadminbar,
	html.ag-anim #wpadminbar *,
	html.ag-anim .elementor-editor-active,
	html.ag-anim .elementor-editor-active * { cursor: auto !important; }
}

/* Курсор и «хром» не должны появляться в редакторе Elementor */
body.elementor-editor-active .ag-cursor-dot,
body.elementor-editor-active .ag-cursor-ring,
body.elementor-editor-active .ag-preloader { display: none !important; }

/* ─── Зерно ─── */
.ag-grain {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 150;
	opacity: .06;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ─── Мобильная кнопка Instagram ─── */
.ag-mobile-cta {
	display: none;
	position: fixed;
	bottom: 16px;
	right: 16px;
	z-index: 180;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(45deg, #FCB045 0%, #FD1D1D 50%, #833AB4 100%);
	color: #fff;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 32px rgba(220, 39, 67, .5);
	text-decoration: none;
	animation: ag-pulse 2s infinite;
}

.ag-mobile-cta svg { width: 28px; height: 28px; fill: #fff; }

@keyframes ag-pulse {
	0%   { box-shadow: 0 8px 32px rgba(220, 39, 67, .5), 0 0 0 0 rgba(220, 39, 67, .7); }
	70%  { box-shadow: 0 8px 32px rgba(220, 39, 67, .5), 0 0 0 18px rgba(220, 39, 67, 0); }
	100% { box-shadow: 0 8px 32px rgba(220, 39, 67, .5), 0 0 0 0 rgba(220, 39, 67, 0); }
}

@media (max-width: 900px) { .ag-mobile-cta { display: flex; } }

/* ─── Появление секций ─── */
html.ag-anim .ag-fade {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1s cubic-bezier(.22, 1, .36, 1), transform 1s cubic-bezier(.22, 1, .36, 1);
}

html.ag-anim .ag-fade.is-visible { opacity: 1; transform: translateY(0); }

/* Маска-шторка на крупных заголовках */
.ag-reveal-mask {
	display: inline-block;
	overflow: hidden;
	vertical-align: bottom;
	line-height: inherit;
	padding-right: .12em;
	padding-bottom: .06em;
}

.ag-reveal-mask > span {
	display: inline-block;
	transform: translateY(110%);
	transition: transform 1.1s cubic-bezier(.22, 1, .36, 1);
	line-height: inherit;
	padding-right: .05em;
	animation: ag-reveal-fallback 1.1s 2.5s cubic-bezier(.22, 1, .36, 1) forwards;
}

.ag-reveal-mask.is-revealed > span { transform: translateY(0); }

@keyframes ag-reveal-fallback { to { transform: translateY(0); } }

/* Подчёркивание пунктов меню */
.ag-nav .elementor-item { position: relative; }

.ag-nav .elementor-item::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -4px;
	width: 100%;
	height: 1px;
	background: var(--e-global-color-primary);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .4s cubic-bezier(.22, 1, .36, 1);
}

.ag-nav .elementor-item:hover::after { transform: scaleX(1); transform-origin: left; }

/* ─── Лайтбокс ─── */
.ag-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9000;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(14, 13, 11, .96);
	backdrop-filter: blur(20px);
}

.ag-lightbox.open { display: flex; animation: ag-lb-in .4s ease; }

@keyframes ag-lb-in { from { opacity: 0; } to { opacity: 1; } }

.ag-lightbox-stage {
	position: relative;
	width: min(90vw, 1400px);
	height: min(82vh, 900px);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ag-lightbox-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	box-shadow: 0 20px 80px rgba(0, 0, 0, .5);
	user-select: none;
}

.ag-lightbox-close,
.ag-lightbox-prev,
.ag-lightbox-next {
	position: absolute;
	background: rgba(242, 238, 228, .08);
	border: 1px solid rgba(242, 238, 228, .18);
	color: var(--e-global-color-text);
	border-radius: 50%;
	cursor: pointer;
	font-family: var(--e-global-typography-logo-font-family), sans-serif;
	font-size: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all .3s;
	z-index: 2;
	backdrop-filter: blur(8px);
}

.ag-lightbox-close:hover,
.ag-lightbox-prev:hover,
.ag-lightbox-next:hover {
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
}

.ag-lightbox-close { top: -56px; right: 0; width: 44px; height: 44px; }

.ag-lightbox-prev,
.ag-lightbox-next { top: 50%; transform: translateY(-50%); width: 56px; height: 56px; }

.ag-lightbox-prev { left: -76px; }
.ag-lightbox-next { right: -76px; }

.ag-lightbox-counter {
	position: absolute;
	bottom: -36px;
	left: 0;
	right: 0;
	text-align: center;
	font-family: var(--e-global-typography-logo-font-family), sans-serif;
	font-size: 11px;
	letter-spacing: .3em;
	color: rgba(242, 238, 228, .6);
}

@media (max-width: 900px) {
	.ag-lightbox-stage { width: 100vw; height: 100vh; }
	.ag-lightbox-close { top: 20px; right: 20px; }
	.ag-lightbox-prev,
	.ag-lightbox-next { bottom: 24px; top: auto; transform: none; width: 48px; height: 48px; }
	.ag-lightbox-prev { left: 24px; }
	.ag-lightbox-next { right: 24px; }
	.ag-lightbox-counter { bottom: 90px; }
	.ag-lightbox-img { max-height: 78vh; max-width: 92vw; }
}

/* ─── Cookie ─── */
.ag-cookie {
	position: fixed;
	bottom: 20px;
	left: 20px;
	right: 20px;
	max-width: 560px;
	margin: 0 auto;
	background: var(--e-global-color-bgdark);
	color: var(--e-global-color-text);
	border: 1px solid var(--e-global-color-primary);
	padding: 20px 24px;
	z-index: 8000;
	display: none;
	align-items: center;
	gap: 20px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, .4);
	border-radius: 4px;
}

.ag-cookie.show { display: flex; animation: ag-cookie-in .5s cubic-bezier(.22, 1, .36, 1) both; }
.ag-cookie.is-hiding { animation: ag-cookie-in .4s cubic-bezier(.22, 1, .36, 1) reverse both; }

@keyframes ag-cookie-in {
	from { opacity: 0; transform: translateY(20px); }
	to   { opacity: 1; transform: translateY(0); }
}

.ag-cookie-text {
	flex: 1;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 12px;
	line-height: 1.5;
	color: var(--e-global-color-inkdim);
	margin: 0;
}

.ag-cookie-text a { color: var(--e-global-color-secondary); text-decoration: underline; }

.ag-cookie-accept {
	background: var(--e-global-color-primary);
	color: #fff;
	border: none;
	padding: 12px 22px;
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	border-radius: 999px;
	cursor: pointer;
	white-space: nowrap;
	transition: background .3s;
}

.ag-cookie-accept:hover { background: var(--e-global-color-bordodark); }

@media (max-width: 600px) {
	.ag-cookie {
		flex-direction: column;
		align-items: stretch;
		padding: 16px 18px;
		gap: 12px;
		left: 12px;
		right: 12px;
		bottom: 12px;
	}
	.ag-cookie-text { font-size: 11px; }
	.ag-cookie-accept { padding: 12px 16px; }
}

/* ─── Конструктор вечера ─── */
.ag-ctor-progress { display: flex; gap: 6px; margin-bottom: 40px; }

.ag-ctor-progress .seg {
	flex: 1;
	height: 2px;
	background: var(--e-global-color-line);
	transition: background .4s;
}

.ag-ctor-progress .seg.done { background: var(--e-global-color-secondary); }
.ag-ctor-progress .seg.active { background: var(--e-global-color-primary); }

.ag-ctor-step { flex-direction: column; flex: 1; }

.ag-ctor-step-num {
	font-family: var(--e-global-typography-eyebrow-font-family), sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--e-global-color-inkdim);
	margin-bottom: 20px;
}

.ag-ctor-step-num .accent { color: var(--e-global-color-secondary); }

.ag-ctor-question {
	font-family: var(--e-global-typography-ctorq-font-family), sans-serif;
	font-weight: var(--e-global-typography-ctorq-font-weight);
	font-size: var(--e-global-typography-ctorq-font-size);
	line-height: 1;
	letter-spacing: var(--e-global-typography-ctorq-letter-spacing);
	text-transform: uppercase;
	color: var(--e-global-color-text);
	margin: 0 0 48px;
}

.ag-ctor-question em {
	font-style: italic;
	font-weight: 300;
	color: var(--e-global-color-secondary);
}

.ag-ctor-options {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-bottom: auto;
}

.ag-ctor-opt {
	padding: 22px 24px;
	border: 1px solid var(--e-global-color-line);
	border-radius: 999px;
	background: transparent;
	color: var(--e-global-color-text);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-weight: 500;
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .3s;
	text-align: center;
}

.ag-ctor-opt:hover { border-color: var(--e-global-color-secondary); color: var(--e-global-color-secondary); }

.ag-ctor-opt.selected {
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
	color: #fff;
}

.ag-ctor-slider-wrap { margin-bottom: 32px; }

.ag-ctor-slider-val {
	font-family: var(--e-global-typography-bignum-font-family), sans-serif;
	font-weight: 300;
	font-size: 72px;
	color: var(--e-global-color-secondary);
	line-height: 1;
	letter-spacing: -.03em;
	margin-bottom: 8px;
}

.ag-ctor-slider-val .u {
	font-size: 20px;
	color: var(--e-global-color-inkdim);
	font-weight: 500;
	margin-left: 8px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.ag-ctor-slider {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 2px;
	background: var(--e-global-color-line);
	outline: none;
	cursor: pointer;
}

.ag-ctor-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	background: var(--e-global-color-primary);
	border-radius: 50%;
	cursor: pointer;
	border: 3px solid var(--e-global-color-bgdark);
	box-shadow: 0 0 0 1px var(--e-global-color-primary);
}

.ag-ctor-slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	background: var(--e-global-color-primary);
	border-radius: 50%;
	cursor: pointer;
	border: 3px solid var(--e-global-color-bgdark);
}

.ag-ctor-slider-marks {
	display: flex;
	justify-content: space-between;
	margin-top: 12px;
	font-size: 10px;
	letter-spacing: .2em;
	color: var(--e-global-color-inkdim);
	text-transform: uppercase;
}

.ag-ctor-checks {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

.ag-ctor-check {
	padding: 18px 22px;
	border: 1px solid var(--e-global-color-line);
	cursor: pointer;
	transition: all .3s;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	font-weight: 500;
	color: var(--e-global-color-text);
}

.ag-ctor-check:hover { border-color: var(--e-global-color-secondary); }
.ag-ctor-check.selected { border-color: var(--e-global-color-primary); }

.ag-ctor-check .box {
	width: 18px;
	height: 18px;
	border: 1px solid var(--e-global-color-inkdim);
	flex-shrink: 0;
	position: relative;
	transition: all .3s;
}

.ag-ctor-check.selected .box {
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
}

.ag-ctor-check.selected .box::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 0;
	width: 7px;
	height: 12px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.ag-ctor-next,
.ag-ctor-cta {
	align-self: flex-start;
	margin-top: 24px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-weight: 600;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	padding: 20px 34px;
	border-radius: 999px;
	border: none;
	cursor: pointer;
	transition: background .3s;
}

.ag-ctor-next:hover,
.ag-ctor-cta:hover { background: var(--e-global-color-bordodark); }

.ag-ctor-next .arr,
.ag-ctor-cta .arr {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	color: var(--e-global-color-primary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	transition: transform .3s;
}

.ag-ctor-next:hover .arr,
.ag-ctor-cta:hover .arr { transform: translateX(4px); }

.ag-ctor-controls {
	display: flex;
	justify-content: space-between;
	margin-top: 40px;
	padding-top: 32px;
	border-top: 1px solid var(--e-global-color-line);
	align-items: center;
}

.ag-ctor-back {
	background: none;
	border: none;
	color: var(--e-global-color-inkdim);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .2em;
	text-transform: uppercase;
	cursor: pointer;
	transition: color .3s;
	padding: 0;
}

.ag-ctor-back:hover { color: var(--e-global-color-secondary); }
.ag-ctor-back:disabled { opacity: .3; cursor: not-allowed; }

.ag-ctor-hint {
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--e-global-color-inkdim);
}

.ag-ctor-result-title {
	font-family: var(--e-global-typography-ctorq-font-family), sans-serif;
	font-weight: 700;
	font-size: clamp(32px, 4vw, 56px);
	line-height: 1;
	text-transform: uppercase;
	letter-spacing: -.02em;
	color: var(--e-global-color-text);
	margin: 0 0 16px;
}

.ag-ctor-result-title em { font-style: italic; color: var(--e-global-color-secondary); font-weight: 300; }

.ag-ctor-result-sub {
	color: var(--e-global-color-inkdim);
	font-size: 15px;
	margin: 0 0 40px;
	max-width: 500px;
	line-height: 1.6;
}

.ag-ctor-result-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-bottom: 40px;
}

.ag-ctor-result-summary { font-size: 14px; line-height: 2; }

.ag-ctor-result-summary .k {
	color: var(--e-global-color-inkdim);
	letter-spacing: .1em;
	text-transform: uppercase;
	font-size: 10px;
	display: block;
	margin-top: 12px;
}

.ag-ctor-result-summary .v {
	color: var(--e-global-color-text);
	font-family: var(--e-global-typography-accent-font-family), sans-serif;
	font-weight: 500;
	font-size: 18px;
}

.ag-ctor-price-box {
	background: var(--e-global-color-bgdark2);
	border: 1px solid var(--e-global-color-primary);
	padding: 32px;
}

.ag-ctor-price-pkg {
	font-family: var(--e-global-typography-eyebrow-font-family), sans-serif;
	font-size: 11px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--e-global-color-secondary);
	margin-bottom: 8px;
}

.ag-ctor-price-val {
	font-family: var(--e-global-typography-bignum-font-family), sans-serif;
	font-weight: 300;
	font-size: 56px;
	color: var(--e-global-color-text);
	line-height: 1;
	letter-spacing: -.03em;
	margin-bottom: 8px;
}

.ag-ctor-price-note {
	font-size: 12px;
	color: var(--e-global-color-inkdim);
	line-height: 1.6;
}

@media (max-width: 900px) {
	.ag-ctor-result-grid { grid-template-columns: 1fr; gap: 24px; }
	.ag-ctor-question { margin-bottom: 24px; }
	.ag-ctor-slider-val { font-size: 56px; }
}

/* ─── Попап заявки ─── */
.ag-booking-pkg .elementor-heading-title {
	color: var(--e-global-color-secondary);
}

.ag-booking-form .elementor-field-group > label {
	font-family: var(--e-global-typography-microlbl-font-family), sans-serif;
	font-size: 10px;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--e-global-color-inkdim);
	margin-bottom: 8px;
}

.ag-booking-form .elementor-field-textual {
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--e-global-color-line);
	border-radius: 0;
	color: var(--e-global-color-text);
	padding: 12px 0;
	font-family: var(--e-global-typography-text-font-family), sans-serif;
	font-size: 15px;
	transition: border-color .3s;
}

.ag-booking-form .elementor-field-textual:focus {
	border-bottom-color: var(--e-global-color-primary);
	box-shadow: none;
	outline: none;
}

.ag-booking-form .elementor-field-textual::placeholder { color: var(--e-global-color-inkmuted); }

.ag-booking-form .elementor-button {
	border-radius: 999px;
	transition: background .3s;
}

@media (prefers-reduced-motion: reduce) {
	.ag-preloader-marquee-track,
	.ag-preloader-name span,
	.ag-mobile-cta { animation: none !important; }
	.ag-reveal-mask > span { transform: none; animation: none; }
	html.ag-anim .ag-fade { opacity: 1; transform: none; }
}

/* ═══════════════════════════════════════════════════════════
   МОБИЛЬНОЕ МЕНЮ — бургер + шторка справа
   ═══════════════════════════════════════════════════════════ */

.elementor .e-con .elementor-widget.ag-burger-wrap { display: none; }

@media (max-width: 900px) {
	.elementor .e-con .elementor-widget.ag-burger-wrap { display: block; width: auto; }
}

.ag-burger {
	display: block;
	width: 30px;
	height: 20px;
	padding: 0;
	margin: 0;
	border: none;
	background: none;
	position: relative;
	cursor: pointer;
}

.ag-burger span {
	position: absolute;
	left: 0;
	right: 0;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform .35s cubic-bezier(.22, 1, .36, 1), opacity .2s linear;
}

.ag-burger span:nth-child(1) { top: 0; }
.ag-burger span:nth-child(2) { top: 9px; }
.ag-burger span:nth-child(3) { top: 18px; }

.ag-burger.is-open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.ag-burger.is-open span:nth-child(2) { opacity: 0; }
.ag-burger.is-open span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* Шторка */
.ag-menu-popup .dialog-widget-content {
	border-radius: 0;
	box-shadow: -24px 0 60px rgba(0, 0, 0, .45);
	max-width: 100%;
}

.ag-menu-popup .dialog-close-button {
	top: 22px;
	right: 22px;
	font-size: 22px;
	opacity: .8;
	transition: opacity .3s;
}

.ag-menu-popup .dialog-close-button:hover { opacity: 1; }

.ag-menu-popup .dialog-message > .elementor { height: 100%; }
.ag-menu-popup .ag-menu-inner { min-height: 100%; }

.ag-menu-nav .elementor-nav-menu--main .elementor-item {
	padding-left: 0 !important;
	padding-right: 0 !important;
	background: none !important;
	position: relative;
}

/* Тонкая линия между пунктами — как в остальном сайте */
.ag-menu-nav .elementor-nav-menu > li + li > .elementor-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--e-global-color-line);
	opacity: .7;
}

.ag-menu-nav .elementor-nav-menu > li > .elementor-item {
	transition: color .3s, padding-left .3s cubic-bezier(.22, 1, .36, 1);
}

.ag-menu-nav .elementor-nav-menu > li > .elementor-item:hover { padding-left: 10px !important; }

.elementor .e-con .elementor-widget.ag-menu-contact-val .elementor-heading-title {
	border-bottom: 1px solid var(--e-global-color-line);
	padding-bottom: 4px;
	display: inline-block;
	transition: border-color .3s, color .3s;
}

.elementor .e-con .elementor-widget.ag-menu-contact-val .elementor-heading-title:hover {
	border-color: var(--e-global-color-secondary);
	color: var(--e-global-color-secondary);
}

/* На широких экранах шторка не нужна вовсе */
@media (min-width: 901px) {
	.ag-menu-popup { display: none !important; }
}

/* ═══════════════════════════════════════════════════════════
   СЕКЦИЯ С ДИДЖЕЕМ — эквалайзер и пластинки
   Структура и тайминги перенесены с исходной секции,
   палитра и типографика — наши.
   ═══════════════════════════════════════════════════════════ */

.ag-dj-visual { position: relative; }

.ag-dj-photo {
	aspect-ratio: 628 / 380;
	position: relative;
	overflow: hidden;
}

.ag-dj-photo::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(14, 13, 11, .25) 0%, rgba(14, 13, 11, .7) 100%);
	pointer-events: none;
}

/* ─── Эквалайзер ─── */
.ag-eq {
	display: flex;
	align-items: flex-end;
	gap: 5.5px;
	height: 156px;
}

.ag-eq-bar {
	width: 28px;
	border-radius: 5px;
	flex: 0 0 28px;
	will-change: transform;
}

.ag-eq-1 { height: 104px; background: linear-gradient(180deg, #A8323C 0%, #C9534F 100%); }
.ag-eq-2 { height: 149px; background: linear-gradient(180deg, #C9A99C 0%, #E3CFC5 100%); }
.ag-eq-3 { height:  58px; background: linear-gradient(180deg, #6B6B43 0%, #98996E 100%); }
.ag-eq-4 { height: 156px; background: linear-gradient(180deg, #8B2530 0%, #A8323C 100%); }
.ag-eq-5 { height: 133px; background: linear-gradient(180deg, #B08A7C 0%, #C9A99C 100%); }
.ag-eq-6 { height: 156px; background: linear-gradient(180deg, #6B6B43 0%, #A3A67A 100%); }
.ag-eq-7 { height:  90px; background: linear-gradient(180deg, #A8323C 0%, #D06470 100%); }

/* Столбики оживают только когда секция в кадре */
.ag-eq.is-playing .ag-eq-1 { animation: ag-eq-1 6s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-2 { animation: ag-eq-2 4s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-3 { animation: ag-eq-3 6s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-4 { animation: ag-eq-4 6s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-5 { animation: ag-eq-5 4s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-6 { animation: ag-eq-6 6s cubic-bezier(.34, 1.4, .64, 1) infinite; }
.ag-eq.is-playing .ag-eq-7 { animation: ag-eq-7 6s cubic-bezier(.34, 1.4, .64, 1) infinite; }

@keyframes ag-eq-1 {
	0%   { transform: translateY(0)    scaleY(1); }
	33%  { transform: translateY(15px) scaleY(.7); }
	67%  { transform: translateY(23px) scaleY(.55); }
	100% { transform: translateY(0)    scaleY(1); }
}

@keyframes ag-eq-2 {
	0%   { transform: translateY(0)    scaleY(1); }
	50%  { transform: translateY(19px) scaleY(.75); }
	100% { transform: translateY(0)    scaleY(1); }
}

@keyframes ag-eq-3 {
	0%   { transform: translateY(0)     scaleY(1); }
	33%  { transform: translateY(-11px) scaleY(1.4); }
	67%  { transform: translateY(9px)   scaleY(.7); }
	100% { transform: translateY(0)     scaleY(1); }
}

@keyframes ag-eq-4 {
	0%   { transform: translateY(0)    scaleY(1); }
	33%  { transform: translateY(16px) scaleY(.8); }
	67%  { transform: translateY(36px) scaleY(.55); }
	100% { transform: translateY(0)    scaleY(1); }
}

@keyframes ag-eq-5 {
	0%   { transform: translateY(0)    scaleY(1); }
	50%  { transform: translateY(17px) scaleY(.75); }
	100% { transform: translateY(0)    scaleY(1); }
}

@keyframes ag-eq-6 {
	0%   { transform: translateY(0)    scaleY(1); }
	33%  { transform: translateY(20px) scaleY(.75); }
	67%  { transform: translateY(47px) scaleY(.4); }
	100% { transform: translateY(0)    scaleY(1); }
}

@keyframes ag-eq-7 {
	0%   { transform: translateY(0)     scaleY(1); }
	33%  { transform: translateY(-26px) scaleY(1.6); }
	67%  { transform: translateY(16px)  scaleY(.65); }
	100% { transform: translateY(0)     scaleY(1); }
}

/* ─── Пластинки ─── */
/* Виджет с пластинками лежит поверх фото, а не в потоке под ним */
.elementor .e-con .elementor-widget.ag-dj-discs-wrap {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
}

.elementor .e-con .elementor-widget.ag-dj-discs-wrap > .elementor-widget-container {
	height: 100%;
}

.ag-dj-discs {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.elementor .e-con .elementor-widget.ag-dj-claim { max-width: 620px; }

.ag-dj-disc {
	position: absolute;
	width: 26%;
	aspect-ratio: 1;
	border-radius: 50%;
	top: 26%;
	will-change: transform;
	box-shadow: 0 14px 40px rgba(0, 0, 0, .5);
	background:
		radial-gradient(circle, var(--e-global-color-secondary) 0 7%, transparent 7.5%),
		radial-gradient(circle, var(--e-global-color-primary) 0 13%, transparent 13.5%),
		repeating-radial-gradient(circle, rgba(242, 238, 228, .13) 0 1px, transparent 1px 5px),
		radial-gradient(circle at 34% 30%, rgba(242, 238, 228, .16) 0%, transparent 42%),
		#100F0C;
	border: 1px solid rgba(242, 238, 228, .12);
}

.ag-dj-disc-1 { left: 8%; }
.ag-dj-disc-2 { right: 8%; }

@media (max-width: 900px) {
	.ag-eq { height: 110px; gap: 4px; }
	.ag-eq-bar { width: 20px; flex: 0 0 20px; }
	.ag-eq-1 { height: 73px; }
	.ag-eq-2 { height: 105px; }
	.ag-eq-3 { height: 41px; }
	.ag-eq-4 { height: 110px; }
	.ag-eq-5 { height: 94px; }
	.ag-eq-6 { height: 110px; }
	.ag-eq-7 { height: 63px; }
	.ag-dj-disc { width: 30%; top: 24%; }
}

@media (prefers-reduced-motion: reduce) {
	.ag-eq.is-playing .ag-eq-bar { animation: none !important; }
}
/* ═══════════════ FIX: КУРСОР ПОВЕРХ POPUP ═══════════════ */

.ag-cursor-dot,
.ag-cursor-ring {
	z-index: 2147483647 !important;
	pointer-events: none !important;
}

/* Крестик Elementor всегда кликабельный */
.elementor-popup-modal .dialog-close-button {
	position: relative;
	z-index: 2147483646 !important;
	pointer-events: auto !important;
}
/* ═══════════════ PRELOADER MOBILE — ИСПРАВЛЕНИЕ ═══════════════ */

@media (max-width: 700px) {

	.ag-preloader-center {
		width: 100%;
		box-sizing: border-box;
		padding: 0 18px;
		text-align: center;
	}

	.ag-preloader-name {
		width: 100%;
		font-size: clamp(32px, 9vw, 42px) !important;
		line-height: .92 !important;
		letter-spacing: -.045em !important;
		text-align: center !important;
		white-space: nowrap !important;
		overflow: visible !important;
	}

	/* Буквы ВЛАДИМИР снова идут горизонтально */
	.ag-preloader-name > span {
		display: inline-block !important;
		width: auto !important;
		white-space: normal !important;
		margin: 0 !important;
	}

	/* Фамилия — отдельной второй строкой */
	.ag-preloader-name .accent {
		display: block !important;
		width: 100% !important;
		font-size: .78em !important;
		line-height: 1 !important;
		margin: 10px 0 0 0 !important;
		white-space: nowrap !important;
		text-align: center !important;
	}

	.ag-preloader-tagline {
		margin-top: 24px !important;
		font-size: 9px !important;
		letter-spacing: .26em !important;
		padding: 0 16px;
	}
}


/* Маленькие iPhone */
@media (max-width: 390px) {

	.ag-preloader-name {
		font-size: 32px !important;
	}

	.ag-preloader-name .accent {
		font-size: .76em !important;
	}
}