/* AnimeOrchestra concert page — ported verbatim from the donor theme (reset.min.css,
   style.min.css, style.css, Customizer additional CSS). Section backgrounds and the
   program logo are set inline by templates/page-brand-concert.php from the brand's
   theme_dir, so no URL in here points at another server. */
a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline;box-sizing:border-box}:focus,a:active,a:hover{outline:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none}input[type=search]{-moz-appearance:none;-webkit-appearance:textfield;box-sizing:border-box}audio,canvas,video{display:inline-block;display:inline;zoom:1;max-width:100%}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:dotted thin}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle}figure,form{margin:0}legend{border:0;padding:0;white-space:normal;margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;vertical-align:middle}button,input{line-height:normal}a{text-decoration:none;outline:0!important}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;height:13px;width:13px}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}button,html,input,select,textarea{color:#222}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}fieldset{border:0;margin:0;padding:0}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}
/*# sourceMappingURL=reset.min.css.map */

/* ===== style.min.css ===== */
.nav__lang,body{position:relative}body{font-family:Montserrat,sans-serif;color:#fff;line-height:1.3}header,section{background-position:center;background-size:cover}section{margin:-2px 0 0}.container{padding:0 100px;margin:0 auto}.nav{display:flex;justify-content:space-between;align-items:center;gap:20px}.nav img{width:100%;max-width:335px;display:block}.nav__lang div{border-radius:10px;border:1px solid #fff;padding:5px 10px;display:flex;justify-content:start;align-items:center;gap:6px;width:90px}.nav__lang a{display:flex;justify-content:start;align-items:center;gap:6px}.nav__lang ul{display:none;position:absolute;top:100%;left:0;grid-template-columns:1fr;gap:10px;border-radius:5px;border:1px solid #fff;padding:10px;width:90px}.nav__lang img{width:26px;display:block}.nav__lang p{font-size:20px;color:#fff;text-transform:uppercase}.nav__lang:hover ul{display:grid}.header{padding:40px 0 0}.header__container{margin:40px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.header__bg{margin:0;display:block;width:100%;-o-object-fit:cover;object-fit:cover;max-width:none}.header__info{max-width:900px}.header__date,.header__text{font-size:18px;font-weight:300;gap:30px;max-width:370px}.header__date span,.header__text span{font-weight:500}.header h1{font-size:60px;font-weight:600;color:#DB319E;margin:30px 0}.header h1 span{color:#fff}.header .map__btn{margin:30px 0 0}.pop{padding:40px 0 100px}.pop h2{font-size:60px;text-align:center;margin:0 0 30px;color:#DB319E}.pop__container{margin:40px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.pop__bg{width:100%}.pop__info img{mix-blend-mode:lighten;display:block;max-width:440px;width:100%;margin:0 auto 30px}.pop__text{font-size:18px;font-weight:300}.pop__har{display:flex;justify-content:center;align-items:center;margin:40px 0 0;gap:20px}.pop__har div{width:120px;height:120px;display:flex;justify-content:center;align-items:center;flex-direction:column;border-radius:100%;border:3px solid #DB319E;gap:5px}.pop__har p{font-size:24px;font-weight:500}.pop__har p+p{font-size:18px;font-weight:300}.gal h2,.program h2{font-size:60px;color:#DB319E;text-align:center}.gal{padding:40px 0}.gal h2{margin:0 0 30px}.gal__wrapper{padding-bottom:40px}.gal__wrapper img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.gal .swiper-pagination span{background:#DB319E;bottom:-40px;top:auto;transform:none;margin:0}.program{padding:100px 0}.program h2{margin:0 0 30px}.program__tab{display:flex;justify-content:start;align-items:center}.program__tab li{cursor:pointer;font-size:20px;padding:20px 30px;background:rgba(255,255,255,.537254902);color:#000;transition:all .3s}.program__tab li.active,.program__tab li:hover{background:#fff}.program__wrapper{padding:20px;border:2px solid #fff;display:none}.program__wrapper.active{display:block}.program__text{font-size:18px}.program__instrumet{display:flex;justify-content:center;align-items:center;gap:20px;margin:30px 0 0;flex-wrap:wrap}.program__instrumet p{font-size:24px;font-weight:500}.guests h2,.map h2{font-size:60px;color:#DB319E}.program__instrumet img{width:130px;height:130px;border-radius:100%;display:block;-o-object-fit:cover;object-fit:cover}.guests__wrapper,.ticket__row{display:grid;grid-template-columns:1fr 1fr}.guests{padding:50px 0}.guests h2{text-align:center}.guests__wrapper{gap:20px;margin:40px auto 0;max-width:960px}.guests__wrapper img,.guests__wrapper video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.map{padding:50px 0;text-align:center}.map h2{text-align:center}.map__place{margin:30px 0 0}.map__place p{font-size:24px;font-weight:500}.map__place p+p{font-size:18px;margin:20px 0 0;font-weight:300}.map__wrapper{max-width:1200px;margin:30px auto 0}.map__wrapper iframe{width:100%;height:500px}.map__date{margin:30px 0 0;font-size:24px;font-weight:500}.map__date span{font-weight:300}.map__btn{margin:30px auto 0;max-width:-moz-max-content;max-width:max-content;padding:15px 70px;font-size:18px;color:#000;background:#DB319E;transition:all .3s;border:none;display:block}.footer__lang p,.ticket__date{font-size:18px;color:#fff}.map__btn:hover{background:rgba(219,49,158,.6705882353)}.footer{padding:50px 0;background:linear-gradient(180deg,#0a0e1f 0,rgba(10,14,31,0) 100%);background-position:center;background-size:cover;margin:-2px 0 0}.footer__logo{max-width:220px;margin:0 auto;display:block}.footer__lang,.footer__soc{margin:30px 0 0;display:flex}.footer__soc{justify-content:center;align-items:center;gap:20px}.footer__soc svg{width:30px;height:30px}.footer__soc svg path{fill:#fff}.footer__lang{justify-content:center;align-items:center;gap:40px}.footer__lang a{display:flex;justify-content:start;align-items:center;gap:6px}.footer__lang img{width:26px;display:block}.footer__lang p{text-transform:uppercase}.ticket{padding:60px 0 0}.ticket__wrapper{display:flex;justify-content:center;align-items:center;gap:30px;flex-wrap:wrap}.ticket__item{max-width:500px;width:100%;padding:20px;display:block;border:1px solid #fff}.ticket__btn,.ticket__item .map__btn{padding:15px;max-width:250px;text-align:center}.ticket__item .map__btn{margin:0;width:100%}.ticket__name{margin:15px 0 0}.ticket__name p{font-size:24px;color:#DB319E;font-weight:600}.ticket__name p+p{font-weight:300;font-size:20px;color:#fff;margin:5px 0 0}.ticket__row{margin:20px 0 0;gap:20px}.ticket__btn{font-size:18px;color:#fff;background:0 0;transition:all .3s;display:block;border:1px solid #DB319E}.ticket__btn:hover{color:#fff;border-color:#fff}.comment{padding:40px 0}.comment__wrapper{max-width:1000px;margin:0 auto;padding:0 0 40px}.comment__wrapper img{width:100%;height:100%}.comment .swiper-pagination span{background:#DB319E;bottom:-40px;top:auto;transform:none;margin:0}.form__wrapper input,.form__wrapper textarea{background:0 0;width:100%;box-sizing:border-box;padding:10px 15px;border:1px solid #DB319E}.form .wpcf7-form-control-wrap{position:static!important}.form h2{font-size:60px;text-align:center;color:#DB319E}.form__wrapper{margin:30px auto 0;display:grid;grid-template-columns:1fr 1fr 1fr;max-width:1200px;gap:30px}.form__wrapper input{color:#fff;font-size:18px}.form__wrapper textarea{grid-column:1/4;color:#fff;font-size:18px;resize:none;height:120px}.form .wpcf7-form-control-wrap:nth-child(5){grid-column:1/4}.form__select{position:relative;grid-column:1/4;z-index:1}.form__select p{border:1px solid #DB319E;padding:10px 15px;font-size:18px}.form__select svg{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:12px;height:12px}.form__select select{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:10}.form__check{grid-column:1/4;display:grid;grid-template-columns:18px 1fr;gap:15px;align-items:center;position:relative}.form__check span.wpcf7-form-control-wrap{position:absolute!important}.form__check b{width:18px;height:18px;display:flex;justify-content:center;border:1px solid #DB319E}.form__check b svg{opacity:0;transition:all .3s}.form__check p{color:#fff;font-size:18px}.form__check a{color:#fff;text-decoration:underline;transform:all .3s}.form__check a:hover{opacity:.7}.form__check input{position:absolute;left:0;opacity:0}.form__check input:checked+b svg,.form__check:has(input:checked) b svg{opacity:1}.form input.map__btn{margin:0;max-width:-moz-max-content;max-width:max-content;padding:15px 70px;font-size:18px;color:#000;background:#DB319E;transition:all .3s;border:none;display:block}.form input.map__btn:hover{background:rgba(255,188,87,.6705882353)}@media (max-width:1500px){.container{padding:0 50px}.header h1{font-size:40px}}@media (max-width:1024px){.header__container,.pop__container{grid-template-columns:1fr;gap:30px}.gal h2,.pop h2,.program h2{font-size:35px}.container{padding:0 20px}.nav img{max-width:320px}.header__bg{margin:0 -20px;width:calc(100% + 40px);order:-1}.gal{padding-bottom:50px}.program{padding:50px 0}.program__tab li{font-size:18px;padding:15px 20px}.program__instrumet p{width:100%;text-align:center}.program__instrumet img{width:90px;height:90px}.form h2,.guests h2,.map h2{font-size:35px}}@media (max-width:800px){.form__wrapper{grid-template-columns:1fr}.form .wpcf7-form-control-wrap:nth-child(5),.form__check,.form__select,.form__wrapper textarea{grid-column:auto}}@media (max-width:600px){.gal__wrapper,.program__tab{grid-template-columns:1fr 1fr}.nav img{max-width:200px}.nav__lang div,.nav__lang ul{padding:5px;width:70px}.nav__lang p{font-size:17px}.gal h2,.guests h2,.header h1,.map h2,.pop h2,.program h2{font-size:28px}.pop{padding-bottom:50px}.pop__info img{max-width:220px}.program__tab{display:grid}.program__tab li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;position:relative}.program__instrumet{-moz-column-gap:10px;column-gap:10px}.program__instrumet img{width:50px;height:50px}.guests__wrapper{margin:28px 0 0}.ticket__row{display:grid;grid-template-columns:1fr}}
/*# sourceMappingURL=style.min.css.map */

/* ===== style.css ===== */
html {
	scroll-behavior: smooth;
}

body {
	min-width: 320px;
}

img {
	max-width: 100%;
	height: auto;
}

iframe {
	max-width: 100%;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Homepage redesign — Anime Orchestra */

/* The brand's palette (Orchestra_Brand_Skin, emitted as --orch-*) drives every
   colour here; the literals are the donor's values and only apply when a page
   carries no brand variables at all. */
:root {
	--ao-pink: var(--orch-accent, #ff4fc4);
	--ao-magenta: var(--orch-accent-alt, #db319e);
	--ao-purple: var(--orch-accent-deep, #7b2cff);
	--ao-gold: #f5c15c;
	--ao-white: #ffffff;
	--ao-muted: var(--orch-brand-muted, rgba(255, 255, 255, 0.72));
	--ao-border: var(--orch-brand-border, rgba(219, 49, 158, 0.85));
	--ao-grad: linear-gradient(90deg, var(--orch-accent, #ff4fc4) 0%, var(--orch-accent-deep, #9b3dff) 100%);
	--ao-ground: var(--orch-ground, #070312);
	--ao-pink-rgb: var(--orch-accent-rgb, 255,79,196);
	--ao-magenta-rgb: var(--orch-accent-alt-rgb, 219,49,158);
	--ao-deep-rgb: var(--orch-accent-deep-rgb, 155,61,255);
	--ao-line: var(--orch-accent-line, #6ecbff);
}

.home-page {
	color: var(--ao-white);
	font-family: "Montserrat", sans-serif;
	background: var(--ao-ground);
	overflow-x: hidden;
}

.home-page a {
	text-decoration: none;
	color: inherit;
}

.home-page .container {
	width: min(1280px, 100%);
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}

.btn-gradient,
.btn-outline {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 12px 36px;
	border-radius: 10px;
	font-size: 16px;
	font-weight: 600;
	transition: transform .2s ease, opacity .2s ease, background .2s ease, border-color .2s ease;
}

.btn-gradient {
	background: var(--ao-grad);
	color: var(--ao-white);
	border: none;
}

.btn-gradient:hover {
	opacity: .92;
	transform: translateY(-1px);
}

.btn-gradient--sm {
	min-height: 46px;
	padding: 10px 22px;
	font-size: 15px;
}

.btn-outline {
	border: 1px solid rgba(255, 255, 255, .85);
	background: transparent;
	color: var(--ao-white);
}

.btn-outline:hover {
	border-color: var(--ao-white);
	background: rgba(255, 255, 255, .06);
}

.section-title {
	margin: 0;
	text-align: center;
	font-size: clamp(32px, 5vw, 56px);
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ao-white);
	text-shadow: 0 0 24px rgba(var(--ao-magenta-rgb), .55);
}

.section-title--lined {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 92%;
	margin-left: auto;
	margin-right: auto;
	padding: 14px 10px;
}

.section-title--lined::before,
.section-title--lined::after {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: min(460px, 92vw);
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--ao-line), transparent);
	box-shadow: 0 0 10px rgba(110, 203, 255, .55);
}

.section-title--lined::before {
	top: 0;
}

.section-title--lined::after {
	bottom: 0;
}

.section-title--program::after {
	content: "";
	display: block;
	width: min(220px, 40%);
	height: 2px;
	margin: 14px auto 0;
	background: linear-gradient(90deg, transparent, var(--ao-pink), transparent);
	box-shadow: 0 0 10px rgba(var(--ao-pink-rgb), .55);
}

/* Hero */
.hero {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 100svh;
	box-sizing: border-box;
	padding: 18px 0 36px;
	background-position: center top;
	background-size: cover;
	overflow: hidden;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 50% 18%, rgba(var(--ao-magenta-rgb), .18), transparent 46%),
		radial-gradient(circle at 12% 55%, rgba(var(--ao-deep-rgb), .2), transparent 38%),
		radial-gradient(circle at 88% 48%, rgba(var(--ao-deep-rgb), .22), transparent 40%),
		linear-gradient(180deg, rgba(7, 3, 18, .08), rgba(7, 3, 18, .28));
	pointer-events: none;
}

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

.hero__nav {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 64px;
	flex: 0 0 auto;
}

.hero__logo {
	position: relative;
	z-index: 2;
}

.hero__logo img {
	display: block;
	width: min(400px, 34vw);
	height: auto;
}

.hero__date {
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
}

.hero__date--desktop {
	position: absolute;
	left: 50%;
	top: 22px;
	transform: translateX(-50%);
	z-index: 1;
}

.hero__date--mobile {
	display: none;
	text-align: center;
	margin: 18px 0 0;
}

.hero__menu-btn {
	display: none;
	position: relative;
	z-index: 2;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.hero__menu-btn span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px auto;
	background: #fff;
}

.hero__menu {
	display: none;
}

.hero__lang {
	position: relative;
}

.hero__lang-current {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 78px;
	padding: 8px 12px;
	border: 1px solid rgba(255, 255, 255, .85);
	border-radius: 10px;
	text-transform: uppercase;
	cursor: pointer;
}

.hero__lang img {
	width: 22px;
	height: 22px;
	display: block;
}

.hero__lang ul {
	display: none;
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	margin: 0;
	padding: 10px;
	list-style: none;
	border: 1px solid rgba(255, 255, 255, .85);
	border-radius: 10px;
	background: rgba(10, 6, 24, .95);
	min-width: 100%;
}

.hero__lang:hover ul,
.hero__lang:focus-within ul,
.hero__menu.is-open .hero__lang ul {
	display: grid;
	gap: 8px;
}

.hero__lang a {
	display: flex;
	align-items: center;
	gap: 8px;
	text-transform: uppercase;
}

.hero__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-top: 8px;
	min-height: 0;
}

.hero__intro {
	text-align: center;
	max-width: 980px;
	margin: 0 auto 28px;
}

.hero__title {
	margin: 0;
	font-size: clamp(34px, 4.8vw, 58px);
	line-height: 1.06;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-shadow:
		0 0 18px rgba(var(--ao-pink-rgb), .95),
		0 0 42px rgba(var(--ao-magenta-rgb), .85),
		0 0 78px rgba(var(--ao-deep-rgb), .55);
}

.hero__title-line {
	display: inline-block;
}

.hero__subtitle {
	margin: 14px 0 0;
	font-size: clamp(14px, 1.55vw, 19px);
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.hero__grid {
	display: grid;
	grid-template-columns: minmax(260px, 0.92fr) minmax(0, 1.2fr);
	gap: clamp(28px, 4.5vw, 64px);
	align-items: center;
	min-height: 0;
}

.hero__text {
	margin: 0;
	max-width: 430px;
	font-size: 16px;
	line-height: 1.55;
	font-weight: 300;
	color: rgba(255, 255, 255, .88);
}

.hero__content .btn-gradient {
	margin-top: 22px;
	min-width: 180px;
	border-radius: 12px;
}

.hero__style {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 16px 0 0;
	color: var(--ao-gold);
	font-size: 14px;
	font-weight: 500;
}

.hero__style-icon {
	flex: 0 0 auto;
	display: block;
}

.hero__media {
	justify-self: end;
	width: 100%;
	max-width: min(100%, 760px);
	border-radius: 22px;
	overflow: hidden;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .1), 0 24px 70px rgba(0, 0, 0, .5);
}

.hero__image,
.hero__video {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 418 / 297;
	object-fit: cover;
	object-position: left center;
	background: #000;
}

/* Tickets */
.tickets {
	padding: 48px 0 64px;
	background-position: center;
	background-size: cover;
}

.tickets__slider {
	position: relative;
	padding: 0 48px 40px;
}

.ticket-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 280px;
	padding: 28px 24px 22px;
	border: 1px solid var(--ao-border);
	border-radius: 14px;
	background: rgba(18, 8, 40, .55);
	box-shadow: 0 0 24px rgba(var(--ao-magenta-rgb), .12);
}

.ticket-card__date {
	margin: 0;
	font-size: 14px;
	color: var(--ao-muted);
}

.ticket-card__category {
	margin: 14px 0 0;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ticket-card__title {
	margin: 10px 0 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.35;
}

.ticket-card__actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-top: 24px;
}

.ticket-card__venue {
	margin: auto 0 0;
	padding-top: 22px;
	font-size: 14px;
	color: var(--ao-muted);
}

.tickets__nav,
.gallery__nav,
.guests__nav {
	position: absolute;
	top: 45%;
	z-index: 2;
	width: 42px;
	height: 42px;
	border: 1px solid var(--ao-border);
	border-radius: 8px;
	background: rgba(10, 6, 24, .85) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M10 3L5 8l5 5' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;
	cursor: pointer;
}

.tickets__nav--next,
.gallery__nav--next,
.guests__nav--next {
	right: 0;
	transform: scaleX(-1);
}

.tickets__nav--prev,
.gallery__nav--prev,
.guests__nav--prev {
	left: 0;
}

.tickets__dots {
	bottom: 0 !important;
}

.tickets__dots .swiper-pagination-bullet {
	background: rgba(255, 255, 255, .35);
	opacity: 1;
}

.tickets__dots .swiper-pagination-bullet-active {
	background: var(--ao-magenta);
}

/* Gallery */
.gallery {
	padding: 24px 0 56px;
	background-position: center;
	background-size: cover;
}

.gallery__slider {
	position: relative;
	padding: 0 56px;
	max-width: 1100px;
	margin: 0 auto;
}

.gallery__slider .swiper-slide {
	display: flex;
	justify-content: center;
}

.gallery__slider img {
	display: block;
	width: 100%;
	max-width: 300px;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: 18px;
	margin: 0 auto;
}

/* Program */
.program {
	padding: 56px 0 72px;
	background-position: center;
	background-size: cover;
}

.program__box {
	margin-top: 28px;
	padding: 18px 20px 24px;
	border: 1px solid var(--ao-border);
	border-radius: 4px;
	background: rgba(8, 4, 20, .35);
	box-shadow: 0 0 28px rgba(var(--ao-magenta-rgb), .14);
}

.program__tabs {
	display: flex;
	justify-content: flex-start;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	flex-wrap: wrap;
}

.program__tabs li {
	padding: 12px 18px;
	border-radius: 8px;
	border: 1px solid var(--ao-border);
	background: transparent;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	transition: background .2s ease, color .2s ease;
}

.program__tabs li.active,
.program__tabs li:hover {
	background: var(--ao-magenta);
	border-color: transparent;
}

.program__panel {
	display: none;
	margin-top: 18px;
}

.program__panel.active {
	display: block;
}

.program__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(240px, 0.85fr);
	gap: 28px 36px;
	align-items: start;
}

.program__text {
	font-size: 16px;
	line-height: 1.55;
	font-weight: 300;
}

.program__aside {
	display: grid;
	gap: 22px;
	justify-items: center;
}

.program__brand {
	display: block;
	width: 100%;
	max-width: 380px;
	height: auto;
	object-fit: contain;
}

.program__instruments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 14px;
	width: 100%;
}

.program__instruments > p {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .04em;
	white-space: nowrap;
}

.program__instruments-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.program__instruments-list img {
	width: 58px;
	height: 58px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid rgba(var(--ao-magenta-rgb), .55);
}

.program__cta {
	display: flex;
	width: fit-content;
	margin: 28px auto 0;
}

/* Guests */
.guests {
	padding: 48px 0 64px;
	background-position: center;
	background-size: cover;
}

.guests__slider {
	position: relative;
	margin-top: 28px;
	padding: 0 48px;
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
}

.guests__slider .swiper-slide {
	display: flex;
	justify-content: center;
}

.guests__card {
	width: 100%;
	max-width: 220px;
	border-radius: 10px;
	overflow: hidden;
	border: 0;
	aspect-ratio: 9 / 16;
	background: #111;
}

.guests__card img,
.guests__card video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.guests__nav {
	width: 34px;
	height: 34px;
	border-radius: 4px;
	border: 1px solid rgba(255, 255, 255, .35);
	background-color: rgba(20, 20, 20, .55);
}

/* Final CTA */
.final-cta {
	padding: 72px 0;
	text-align: center;
	background-position: center;
	background-size: cover;
	position: relative;
}

.final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 3, 18, .55), rgba(7, 3, 18, .78));
}

.final-cta .container {
	position: relative;
	z-index: 1;
}

.final-cta__city,
.final-cta__place,
.final-cta__datetime {
	margin: 14px 0 0;
	font-size: 18px;
	font-weight: 300;
}

.final-cta__datetime {
	margin-top: 10px;
	font-size: 22px;
}

.final-cta__datetime strong {
	font-weight: 700;
}

.final-cta__datetime span {
	margin: 0 8px;
	opacity: .7;
}

.final-cta .btn-gradient {
	margin-top: 28px;
}

/* Footer */
.site-footer {
	position: relative;
	padding: 56px 0 56px;
	background: #050208;
	text-align: center;
	overflow: hidden;
}

.site-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 120px;
	background: radial-gradient(ellipse at center top, rgba(var(--ao-magenta-rgb), .55), transparent 70%);
	pointer-events: none;
}

.site-footer > * {
	position: relative;
	z-index: 1;
}

.site-footer__logo {
	display: block;
	width: min(260px, 64vw);
	margin: 0 auto;
}

.site-footer__soc {
	display: flex;
	justify-content: center;
	gap: 18px;
	margin-top: 22px;
}

.site-footer__soc a {
	color: #fff;
	width: 28px;
	height: 28px;
}

.site-footer__soc svg {
	width: 100%;
	height: 100%;
}

.site-footer__lang {
	display: flex;
	justify-content: center;
	gap: 28px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.site-footer__lang a {
	display: flex;
	align-items: center;
	gap: 8px;
	text-transform: uppercase;
	font-size: 15px;
}

.site-footer__lang img {
	width: 22px;
	height: 22px;
}

@media (max-width: 1024px) {
	.program__layout {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.program__aside {
		display: contents;
	}

	.program__text {
		order: 1;
	}

	.program__instruments {
		order: 2;
	}

	.program__brand {
		order: 3;
		margin: 0 auto;
		max-width: 280px;
	}

	.ticket-card__actions {
		grid-template-columns: 1fr;
	}
}

/* Hero stacks only below tablet — keep desktop composition at ~1024 */
@media (max-width: 900px) {
	.hero {
		min-height: 0;
		padding: 18px 0 48px;
		overflow: visible;
	}

	.hero__logo img {
		width: min(200px, 52vw);
	}

	.hero__nav {
		min-height: 56px;
	}

	.hero__intro {
		margin-bottom: 20px;
	}

	.hero__title {
		font-size: clamp(28px, 9vw, 40px);
		letter-spacing: .05em;
	}

	.hero__title-line .hero__title-word {
		display: block;
	}

	.hero__subtitle {
		margin-top: 14px;
		font-size: 13px;
		letter-spacing: .08em;
	}

	.hero__grid {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.hero__content {
		text-align: center;
		order: 1;
	}

	.hero__media {
		order: 2;
		justify-self: center;
		max-width: min(100%, 560px);
		border-radius: 18px;
	}

	.hero__image,
	.hero__video {
		max-height: none;
		aspect-ratio: 418 / 297;
	}

	.hero__text {
		max-width: 560px;
		margin-left: auto;
		margin-right: auto;
		font-size: 15px;
	}

	.hero__content .btn-gradient {
		width: min(100%, 280px);
	}

	.hero__style {
		justify-content: center;
	}

	.hero__date--desktop {
		display: none;
	}

	.hero__date--mobile {
		display: block;
		margin: 10px 0 14px;
		font-size: 14px;
	}

	.hero__menu-btn {
		display: inline-block;
	}

	.hero__menu {
		display: none;
		position: absolute;
		top: 64px;
		right: 16px;
		padding: 14px;
		border-radius: 12px;
		background: rgba(10, 6, 24, .96);
		border: 1px solid rgba(255, 255, 255, .2);
		z-index: 5;
	}

	.hero__menu.is-open {
		display: block;
	}
}

@media (max-width: 700px) {
	.tickets__slider,
	.gallery__slider {
		padding-left: 0;
		padding-right: 0;
	}

	.guests__slider {
		padding-left: 28px;
		padding-right: 28px;
		max-width: 420px;
	}

	.guests__card {
		max-width: 148px;
		aspect-ratio: 9 / 16;
	}

	.guests__nav {
		width: 28px;
		height: 28px;
		border-radius: 4px;
		background-size: 12px;
	}

	.tickets__nav,
	.gallery__nav {
		display: none;
	}

	.program__tabs li {
		flex: 1 1 calc(50% - 6px);
		text-align: center;
		font-size: 13px;
		padding: 12px 10px;
	}

	.program__instruments-list img {
		width: 68px;
		height: 68px;
	}
}

/* ===== Customizer additional CSS ===== */
/* ============================================================
   Custom fixes (Additional CSS) — safe overrides, reversible.
   Managed by Claude. Screen-by-screen against the Figma mockup.
   ============================================================ */

/* Recommended-style line: the mockup has WHITE text and a bow-tie icon
   whose centre knot is a CIRCLE with small gaps to the triangles.
   The theme renders gold text and a square-knot icon — fix both.
   Hide the theme SVG and draw a clean bow-tie via ::before. */
.hero__style {
  color: rgba(255, 255, 255, 0.6) !important; /* muted grey like the mockup, not gold/white */
}
.hero__style-icon {
  display: none !important;
}
.hero__style::before {
  content: "";
  display: inline-block;
  flex: 0 0 auto;
  width: 30px;
  height: 15px;
}

/* --- Screen 1 / Hero (desktop >=901px) --- */
@media (min-width: 901px) {
  /* Date: directly above the title (as in the mockup), larger. */
  .hero .hero__date--desktop { display: none !important; }
  .hero .hero__body .hero__date--mobile {
    display: block;
    margin: 0 0 14px;
    font-size: 20px;
  }

  /* Title was oversized (~58px) vs the design (~40px). */
  .hero .hero__title {
    font-size: 40px;
  }

  /* Pull the whole hero content up to the top (like the mockup),
     so the date sits right under the logo and the video fits the
     first screen without shrinking it. */
  .hero {
    padding-top: 12px;
  }
  .hero .hero__body {
    justify-content: flex-start !important;
    padding-top: 0 !important;
    margin-top: -85px !important;
  }

  /* Text column + size to match the mockup: ~420px wide, ~22px so the copy
     wraps to 4 lines exactly like the design. */
  .hero .hero__text {
    max-width: 420px;
    font-size: 22px;
    line-height: 1.5;
  }

  /* Match the mockup: fixed text column + gap so the text sits ~120px from
     the video (was ~194px). */
  .hero .hero__grid {
    grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
    gap: clamp(40px, 6vw, 116px);
  }
}

/* ============================================================
   Screen 2 / WORLD HITS ticket carousel
   ============================================================ */

/* Card border is nearly rectangular in the mockup (not rounded/oval). */
.ticket-card {
  border-radius: 3px;
}
/* With a single concert in the schedule the carousel arrows/dots do nothing,
   so hide them; they come back automatically once a second concert is added. */
.tickets__slider:has(.swiper-slide:only-child) .tickets__nav,
.tickets__slider:has(.swiper-slide:only-child) .swiper-pagination {
  display: none !important;
}
/* On wide screens Swiper sizes the slide for 2-up and drops the lone card into
   the left column (looks off-center). Let the single slide fill the row (so
   Swiper can't offset it), then keep the CARD at a normal single-tile width and
   center it - not stretched across the whole screen. */
.tickets__slider:has(.swiper-slide:only-child) .swiper-slide {
  width: 100% !important;
  margin-right: 0 !important;
}
.tickets__slider:has(.swiper-slide:only-child) .ticket-card {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   Screen 3 / Gallery
   ============================================================ */

/* Gallery background: its own mockup band (mk-gallery, source 2794-3534). The
   preceding empty band is now a real .feature-video section (with the concert
   video), so the gallery is a plain full-bleed band again - no content-box hack. */
.gallery {
  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* The slider's horizontal padding breaks Swiper's slide-width math
   (it sizes slides to the full width, so a 4th image peeked in on the
   right). Remove it so exactly 3 images show, like the mockup.
   This CSS loads before Swiper init, so the widths compute correctly. */
@media (min-width: 768px) {
  .gallery__slider {
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: static; /* let arrows anchor to .container, not the clipped slider */
  }
  /* Anchor the nav arrows to the container so they can sit in the outer
     gutters without being clipped by the slider's overflow:hidden. */
  .gallery .container {
    position: relative;
  }
  .gallery__nav--prev {
    left: 12px;
  }
  .gallery__nav--next {
    right: 12px;
  }
}

/* ============================================================
   Screen 5 / Guests carousel (same Swiper padding fix as the gallery)
   ============================================================ */
@media (min-width: 768px) {
  /* Remove the slider padding so Swiper shows exactly 3 (no 4th sliver).
     Arrows stay at the theme default (on the edge cards), as in the mockup.
     Narrow the track so the cards sit closer together (smaller gaps). */
  .guests__slider {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 720px;
  }
}

/* ============================================================
   Screen 4 / PROGRAM
   ============================================================ */

/* The theme's reset flattens <strong>/<em> (computed font-weight 300, font-style
   normal), so the program setlist showed no bold/italic. Restore them: author
   bold, song title italic. Applies to the homepage and the concert landing. */
.program__text strong {
  font-weight: 700 !important;
}
.program__text em {
  font-style: italic !important;
}

/* Section titles are white in the mockup. On the program/guests sections
   the theme redefines --ao-white to magenta, so `color: var(--ao-white)`
   renders the titles pink. Force literal white on all section titles. */
.section-title {
  color: #fff !important;
}

/* Program background: its own mockup band (mk-program, source 3534-4598 - the
   planet horizon + crescent moon). The neon X-logo (program__brand) is a
   separate element and stays. */
.program {
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* The brand image was a raster "screenshot" (baked background + an extra
   idol photo). Replace it with the clean transparent neon logo, larger
   and vertically centered like the mockup. */
.program__brand {
  max-width: 480px;
}
@media (min-width: 901px) {
  .program__layout {
    align-items: center;
  }
}

/* ============================================================
   Screen 7 / Footer
   ============================================================ */

/* The mockup footer fades from dark navy to bright magenta at the bottom;
   the theme uses a flat near-black (#050208). Add the gradient. */
.site-footer {
  /* Bottom-anchored magenta glow to match the mockup: the footer stays dark
     navy (logo + social sit on dark), and a soft, deep magenta glow hugs the
     bottom edge only - no flat hot-pink band. Anchored from the BOTTOM
     (`to top`) so the language switcher making the footer taller can't stretch
     the glow. Peak is the mockup's deep rgb(135,9,116), not rgb(166,3,128).
     Stops verified against sampled mockup pixels (navy fully by ~180px up). */
  background: linear-gradient(to top,
    rgb(135, 9, 116) 0px,
    rgb(96, 6, 86) 44px,
    rgb(55, 8, 58) 88px,
    rgb(28, 11, 42) 132px,
    rgb(12, 13, 32) 180px,
    rgb(10, 13, 31) 100%) !important;
}

/* The theme paints a bright pink radial glow at the TOP of the footer via
   ::before (radial-gradient at 50% 0%, rgba(var(--ao-magenta-rgb), .55)). It was tuned for
   the old flat-magenta footer; against the new navy top it reads as a stray
   pink halo. The mockup has NO top glow (only the bottom) - remove it. */
.site-footer::before {
  display: none !important;
}

/* Optical centering: the logo artwork leans left (its left figure is drawn
   bolder than the right), so nudge it 18px right to sit visually centred. */
.site-footer__logo {
  transform: translateX(18px);
}

/* Footer logo now links to the home page (doc item 5). Block-level full-width
   wrapper so the theme's `margin:0 auto` on the img keeps it centered. */
.site-footer__logo-link {
  display: block;
}

/* ============================================================
   Section backgrounds - exact Figma mockup bands (STEP BY STEP)
   The mockup backdrop is ONE continuous space image, exported as 7 native
   bands (1920px wide, summing to 6248px), one per screen. Consecutive bands
   share their boundary row, so `background-size: 100% 100%` (show the WHOLE
   band edge-to-edge) makes them reconnect at each seam: section N's bottom
   pixel = section N+1's top pixel -> no bright transition strip.
   Applied ONE SCREEN AT A TIME and verified before adding the next. Screens
   not yet reached keep their previous (baseline) background.
   The band-to-band seams are baked into the source art (the mockup itself
   shows them) - 100% 100% reproduces the mockup, it does not smooth them.
   Done: (1) hero, (2) tickets, (3) new empty section, (4) gallery, (5) program,
   (6) guests, (7) final-cta. ALL SCREENS DONE.
   ============================================================ */

/* Screen 1 / hero - full nebula band; its magenta bottom meets tickets' top. */
.hero {
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* Screen 2 / tickets - dark transitional band (source 1101-1733). Its top edge
   meets the hero's magenta bottom; that band edge exists in the mockup too. */
.tickets {
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* Screen 3 / feature-video section (mockup band `2 экран.png`, mk-extra, source
   1733-2794) - was an empty nebula band; now a real section holding the concert
   video. The band is the section's full-bleed background (100% 100%), so its top
   meets tickets' bottom and its bottom meets the gallery band's top - same seam
   reconnection as the other sections. The video player is centered on the band. */
.feature-video {
  min-height: 55.26vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  background-position: center center;
}
.feature-video__player {
  display: block;
  margin: 0 auto; /* center the video block inside .container (the section's flex centers the container, not the video) */
  width: min(900px, 86%);
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  object-fit: contain;
  background: #000;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}

/* Screen 6 / guests - dark band, magenta nebula lower-left (source 4598-5440). */
.guests {
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* Screen 7 / final-cta - candlelit band (source 5440-6248). Give the section the
   band's own aspect ratio (808/1920 = 42.08vw) so 100% 100% shows the candles at
   natural proportion (no squish); center the content in the taller box. */
.final-cta {
  min-height: 42.08vw !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background-size: 100% 100% !important;
  background-position: center center !important;
}

/* The theme darkens the candle band with a heavy scrim (::before,
   rgba(7,3,18,0.55 -> 0.78)) that made the candles far darker than the mockup.
   Remove it - the band's own dark upper area keeps the white title readable. */
.final-cta::before {
  display: none !important;
}

/* ============================================================
   Concert-info block (.final-cta) hidden on the HOMEPAGE only (doc item 4).
   Scoped to .home so the concert landing - which reuses .final-cta for its venue
   block - still shows it.
   ============================================================ */
.home .final-cta {
  display: none !important;
}

/* ============================================================
   Concert landing (template-concert.php) - rebuilt on the homepage components,
   so it inherits the new design automatically (hero, gallery, program, guests,
   .final-cta venue, footer, buttons, titles). Only concert-only tweaks here,
   scoped to .page-template-template-concert.
   ============================================================ */
/* Keep the event date visible in the concert hero (the homepage hides it). */
.page-template-template-concert .hero__date--mobile {
  display: block !important;
}

/* About section - concert-only; dark/white look on a nebula band. */
.page-template-template-concert .concert-about {
  padding: 56px 0;
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
}
.page-template-template-concert .concert-about__inner {
  display: flex;
  gap: 40px;
  align-items: center;
}
.page-template-template-concert .concert-about__text {
  flex: 1 1 auto;
  color: rgba(255, 255, 255, 0.85);
  font-size: 16px;
  line-height: 1.7;
}
.page-template-template-concert .concert-about__media {
  flex: 0 0 42%;
}
.page-template-template-concert .concert-about__media img,
.page-template-template-concert .concert-about__media video {
  width: 100%;
  border-radius: 16px;
  display: block;
}
@media (max-width: 900px) {
  .page-template-template-concert .concert-about__inner {
    flex-direction: column;
  }
  .page-template-template-concert .concert-about__media {
    flex: none;
    width: 100%;
  }
}

/* Video hero (homepage + concert, class .hero--video): full-bleed background
   video with the content centered over it and a scrim for legibility. Shared so
   both pages get the same treatment. */
.hero--video {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
}
.hero--video .hero__bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
.hero--video .hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(180deg, rgba(10, 13, 31, 0.5), rgba(10, 13, 31, 0.3));
}
.hero--video .hero__body {
  position: relative;
  z-index: 1;
}
/* Nav above the hero body so the mobile language dropdown is on top and clickable
   (both are position:relative, and the body comes later in the DOM). */
.hero--video .hero__nav {
  position: relative;
  z-index: 5;
}
/* No right-hand media in the video hero: single centered column. */
.hero--video .hero__grid {
  display: block !important;
}
.hero--video .hero__body {
  flex: 1 1 auto;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  margin-top: 0 !important;
}
.hero--video .hero__intro,
.hero--video .hero__content {
  align-self: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 640px;
}
.hero--video .hero__date,
.hero--video .hero__intro,
.hero--video .hero__title,
.hero--video .hero__subtitle,
.hero--video .hero__content,
.hero--video .hero__text {
  text-align: center !important;
}
.hero--video .hero__text {
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 640px;
}
/* The "Recommended style" line is a flex row; center it too (text-align alone
   leaves it flush-left inside the centered column). */
.hero--video .hero__style {
  justify-content: center !important;
}
/* Mobile: keep the video hero full-height so the footage fills the screen and
   doesn't cut off mid-screen (dvh accounts for the mobile browser UI). */
@media (max-width: 767px) {
  .hero--video {
    min-height: 100vh;
    min-height: 100dvh;
  }
}
/* The homepage's standalone video block is hidden - that footage is now the hero
   background (client request). */
.feature-video {
  display: none !important;
}

/* Language switcher in the header: the theme only exposes it via the mobile
   hamburger (on desktop both the hamburger and the menu are display:none, so the
   switcher vanished). Show the menu inline on desktop, pushed to the right. */
@media (min-width: 901px) {
  .hero__menu {
    display: block !important;
    margin-left: auto;
  }
  /* Same pill for both languages (current + option), with a dark backing so they
     read over the hero video. */
  .hero__lang-current,
  .hero__lang ul li a {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 78px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.85);
    border-radius: 10px;
    text-transform: uppercase;
    background: rgba(10, 6, 24, 0.7);
    color: #fff;
  }
  /* Dropdown sits flush under the current pill (padding, not a margin gap) so the
     mouse never crosses a dead zone on the way down and the menu stays open. */
  .hero__lang ul {
    top: 100%;
    right: 0;
    margin: 0;
    padding: 6px 0 0;
    border: none;
    background: none;
    min-width: 0;
  }
}

/* Mobile language dropdown: the theme nests a bordered pill (current lang) and a
   bordered list inside the bordered dropdown box, so the borders overlap and look
   crooked. Flatten it to a clean stacked list; the dropdown box is the only frame,
   the current language gets a subtle highlight instead of its own border. */
@media (max-width: 900px) {
  .hero__menu .hero__lang {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  .hero__menu .hero__lang ul {
    position: static;
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    min-width: 0;
  }
  .hero__menu .hero__lang-current,
  .hero__menu .hero__lang ul li a {
    display: flex;
    align-items: center;
    gap: 8px;
    border: none;
    border-radius: 8px;
    padding: 8px 10px;
    min-width: 0;
  }
  .hero__menu .hero__lang-current {
    background: rgba(255, 255, 255, 0.08);
  }
}
.page-template-template-concert .concert-about__video {
  width: 100%;
  border-radius: 16px;
  display: block;
}

/* ===== orchestra-tickets additions =====
   The donor header carried only the language switch; the brand's page also
   needs the schedule link and a buy button in the same row, in the same pill
   language as the switcher, and stacked inside the hamburger sheet on phones. */
.hero__nav-link {
	display: flex;
	align-items: center;
	min-height: 40px;
	padding: 8px 14px;
	border: 1px solid rgba(255, 255, 255, 0.85);
	border-radius: 10px;
	background: rgba(10, 6, 24, 0.7);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.hero__nav-link--buy {
	border-color: transparent;
	background: var(--ao-grad);
}
@media (min-width: 901px) {
	.hero__menu {
		display: flex !important;
		align-items: center;
		gap: 10px;
	}
}
@media (max-width: 900px) {
	.hero__menu {
		display: none;
		min-width: 200px;
	}
	.hero__menu.is-open {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}
	.hero__nav-link {
		justify-content: center;
	}
}
/* Two guest videos, not three: keep the pair centred instead of left-hung. */
.guests__slider .swiper-wrapper--centered {
	justify-content: center;
}
/* Program setlists come as plain text from the event builder as well as the
   donor's <br> form; both render through the same formatter. */
.program__text {
	white-space: normal;
}
/* The donor's scrim was tuned for a static starfield; over the concert footage
   (bright candles, a piano lid) white copy needs a darker core behind it. */
.hero--video .hero__scrim {
	background:
		radial-gradient(70% 55% at 50% 55%, rgba(7, 3, 18, 0.66) 0%, rgba(7, 3, 18, 0.42) 60%, rgba(7, 3, 18, 0.22) 100%),
		linear-gradient(180deg, rgba(10, 13, 31, 0.55), rgba(10, 13, 31, 0.4));
}
/* The page is standalone: the ground colour belongs to <body>, not only to
   .home-page, so nothing pale shows past the last section. */
body.brand-concert-page {
	margin: 0;
	background: var(--orch-ground, var(--ao-ground));
}
/* The venue on a map and the feedback form — the first brand's event page and
   homepage have both; the donor page had neither, so these follow the donor's
   section grammar (dark band, lined title) rather than the theme's. */
.venue-map {
	padding: 48px 0 0;
	background: var(--ao-ground);
}
.venue-map iframe {
	display: block;
	width: 100%;
	height: min(420px, 60vw);
	border: 1px solid rgba(var(--ao-magenta-rgb), 0.55);
	border-radius: 16px;
	filter: saturate(0.85);
}
.venue-map__address {
	margin: 14px 0 0;
	text-align: center;
	font-size: 14px;
	color: var(--ao-muted);
}
.feedback {
	padding: 64px 0 72px;
	background: var(--ao-ground);
}
.feedback__form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 20px;
	max-width: 760px;
	margin: 0 auto;
}
.feedback__form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--ao-muted);
}
.feedback__wide { grid-column: 1 / -1; }
.feedback__form input[type="text"],
.feedback__form input[type="tel"],
.feedback__form input[type="email"],
.feedback__form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 10px;
	background: rgba(10, 6, 24, 0.7);
	color: #fff;
	font: inherit;
	font-size: 15px;
}
.feedback__form input:focus,
.feedback__form textarea:focus {
	outline: none;
	border-color: var(--ao-pink);
	box-shadow: 0 0 0 3px rgba(var(--ao-pink-rgb), 0.25);
}
.feedback__trap { display: none !important; }
.feedback__consent {
	flex-direction: row !important;
	align-items: center;
	gap: 10px !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 14px !important;
}
.feedback__consent input { width: 18px; height: 18px; accent-color: var(--ao-pink); }
.feedback__submit { grid-column: 1 / -1; justify-self: center; min-width: 220px; cursor: pointer; }
.feedback__status { grid-column: 1 / -1; margin: 0; min-height: 1.4em; text-align: center; font-size: 14px; color: var(--ao-gold); }
.feedback__status.is-error { color: #ff7a7a; }
@media (max-width: 700px) {
	.feedback__form { grid-template-columns: 1fr; }
}

/* ===== Frosted glass: the header controls and the programme box =====
   Translucent white over the footage, blurred, a hairline highlight on top
   and a soft drop — the same glass the first brand's widgets use, in this
   brand's colours. The buy button keeps a pink glow so it still reads as the
   primary action. */
.hero__nav-link,
.hero__lang-current,
.hero__lang ul li a {
	background: rgba(255, 255, 255, 0.09) !important;
	border: 1px solid rgba(255, 255, 255, 0.28) !important;
	border-radius: 12px;
	-webkit-backdrop-filter: blur(16px) saturate(150%);
	backdrop-filter: blur(16px) saturate(150%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 8px 24px rgba(0, 0, 0, 0.28);
	color: #fff;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.hero__nav-link:hover,
.hero__lang-current:hover,
.hero__lang ul li a:hover {
	background: rgba(255, 255, 255, 0.16) !important;
	border-color: rgba(255, 255, 255, 0.5) !important;
	transform: translateY(-1px);
}
.hero__nav-link--buy {
	background: linear-gradient(135deg, rgba(var(--ao-pink-rgb), 0.42), rgba(var(--ao-deep-rgb), 0.42)) !important;
	border-color: rgba(255, 140, 220, 0.55) !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 8px 28px rgba(var(--ao-pink-rgb), 0.32);
}
.hero__nav-link--buy:hover {
	background: linear-gradient(135deg, rgba(var(--ao-pink-rgb), 0.62), rgba(var(--ao-deep-rgb), 0.62)) !important;
	border-color: rgba(255, 170, 230, 0.8) !important;
}
@media (min-width: 901px) {
	.hero__lang ul {
		padding-top: 6px;
	}
}
@media (max-width: 900px) {
	/* The hamburger sheet itself is glass, its rows keep the pills above. */
	.hero__menu {
		background: rgba(10, 6, 24, 0.55) !important;
		border: 1px solid rgba(255, 255, 255, 0.22) !important;
		-webkit-backdrop-filter: blur(20px) saturate(150%);
		backdrop-filter: blur(20px) saturate(150%);
		box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
	}
}

.program__box {
	padding: 22px 24px 28px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 20px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.10), rgba(255, 255, 255, 0.05));
	-webkit-backdrop-filter: blur(22px) saturate(140%);
	backdrop-filter: blur(22px) saturate(140%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 24px 60px rgba(0, 0, 0, 0.38), 0 0 40px rgba(var(--ao-magenta-rgb), 0.12);
}
.program__tabs li {
	border: 1px solid rgba(255, 255, 255, 0.24);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.07);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}
.program__tabs li.active,
.program__tabs li:hover {
	background: linear-gradient(135deg, rgba(var(--ao-pink-rgb), 0.75), rgba(var(--ao-deep-rgb), 0.75));
	border-color: rgba(255, 170, 230, 0.7);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 8px 24px rgba(var(--ao-pink-rgb), 0.3);
}
.program__instruments-list img {
	border-color: rgba(255, 255, 255, 0.35);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

/* ===== Promo popups (lead form + success card), frosted glass ===== */
.bp { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; font-family: "Montserrat", sans-serif; color: #fff; }
.bp[hidden] { display: none; }
.bp__scrim { position: absolute; inset: 0; background: rgba(4, 2, 12, 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.bp__card { position: relative; width: min(440px, 100%); max-height: calc(100vh - 40px); overflow: auto; padding: 32px 28px 26px; border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.22); background: linear-gradient(180deg, rgba(40, 18, 60, 0.82), rgba(12, 6, 28, 0.9));
  -webkit-backdrop-filter: blur(24px) saturate(150%); backdrop-filter: blur(24px) saturate(150%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 30px 80px rgba(0, 0, 0, 0.6), 0 0 60px rgba(var(--ao-pink-rgb), 0.18);
  text-align: center; animation: bp-in .28s ease-out; }
@keyframes bp-in { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.bp__close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; }
.bp__close:hover { background: rgba(255,255,255,.18); }
.bp__title { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 8px; font-size: 22px; font-weight: 700; letter-spacing: .01em; }
.bp__title svg { width: 24px; height: 24px; color: var(--ao-pink); }
.bp__intro { margin: 0 0 18px; font-size: 13px; color: var(--ao-muted); }
.bp__form { display: grid; gap: 10px; text-align: left; }
.bp__form input[type="text"], .bp__form input[type="email"] { width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 10px; border: 1px solid rgba(255,255,255,.28); background: rgba(10,6,24,.6); color: #fff; font: inherit; font-size: 14px; }
.bp__form input:focus { outline: none; border-color: var(--ao-pink); box-shadow: 0 0 0 3px rgba(var(--ao-pink-rgb), .25); }
.bp__check { display: flex; align-items: flex-start; gap: 9px; font-size: 11.5px; color: rgba(255,255,255,.75); line-height: 1.4; }
.bp__check input { width: 15px; height: 15px; margin-top: 1px; accent-color: var(--ao-pink); flex: 0 0 auto; }
.bp__trap { display: none !important; }
.bp__submit { width: 100%; margin-top: 4px; font-size: 13px; letter-spacing: .04em; cursor: pointer; border: 0; }
.bp__note { margin: 4px 0 0; text-align: center; font-size: 11px; color: rgba(255,255,255,.5); }
.bp__error { margin: 0; min-height: 1.2em; text-align: center; font-size: 12px; color: #ff7a7a; }
.bp__brand { display: flex; align-items: center; justify-content: flex-start; gap: 8px; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 13px; font-weight: 600; }
.bp__brand svg { width: 20px; height: 20px; color: var(--ao-pink); }
.bp__city { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--ao-pink); }
.bp__show { margin: 0 0 16px; font-size: 20px; font-weight: 700; line-height: 1.25; }
.bp__facts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin: 0 0 18px; padding: 0; }
.bp__facts div { margin: 0; }
.bp__facts-wide { grid-column: 1 / -1; }
.bp__facts dt { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.bp__facts dd { margin: 2px 0 0; font-size: 13px; color: #fff; }
.bp__your-code { margin: 0 0 8px; font-size: 13px; font-weight: 600; }
.bp__code { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 12px; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.08); color: #fff; font: inherit; font-size: 18px; font-weight: 800; letter-spacing: .12em; cursor: pointer;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(255,255,255,.3); }
.bp__code svg { width: 18px; height: 18px; color: var(--ao-pink); }
.bp__code.is-copied { border-color: var(--ao-pink); box-shadow: 0 0 0 3px rgba(var(--ao-pink-rgb), .25); }
.bp__click-copy { margin: 6px 0 18px; font-size: 11px; color: rgba(255,255,255,.5); }
.bp__buy { display: flex; flex-direction: column; align-items: center; width: 100%; padding: 12px 20px; line-height: 1.2; }
.bp__buy-main { font-size: 14px; font-weight: 700; letter-spacing: .04em; }
.bp__buy-sub { font-size: 11px; font-weight: 500; opacity: .85; text-transform: none; }
@media (max-width: 480px) { .bp__card { padding: 28px 20px 22px; } .bp__title { font-size: 19px; } }

/* Buy buttons with the live starting price: the label, then a quieter line —
   the same two-line CTA the first brand's event pages use. */
.btn-gradient.has-price, .hero__nav-link--buy.has-price {
	flex-direction: column;
	line-height: 1.18;
	padding-top: 9px;
	padding-bottom: 9px;
	gap: 2px;
}
.ao-price-main { font-size: inherit; font-weight: 700; }
.ao-price-sub { font-size: 11px; font-weight: 500; letter-spacing: .02em; opacity: .88; text-transform: none; white-space: nowrap; }
.hero__nav-link--buy.has-price .ao-price-sub { font-size: 10px; }

/* The language pill holds two letters, not a word: the donor's 78px minimum
   was sized for a flag plus a label, and without the flag it reads as an empty
   box next to the buttons. Size it to its text. */
.hero__lang-current,
.hero__lang ul li a {
	min-width: 0 !important;
	padding: 8px 12px !important;
	justify-content: center;
	gap: 0 !important;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
}
.hero__lang ul { min-width: 100%; }
.bf__lang a { min-width: 0; padding: 6px 12px; }
