/*
Theme Name: Noisy River
Theme URI: https://noisyriver.ru/
Author: Noisy River
Description: Фирменная тема Noisy River для Elementor-контента, афиши и посадочных страниц.
Version: 0.1.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: noisy-river
*/

:root {
	--nr-ink: #1f1f1f;
	--nr-cream: #fff8f3;
	--nr-gold: #cda960;
	--nr-gold-dark: #75542e;
	--nr-muted: #6b625c;
	--nr-content-width: 1320px;
}

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

html {
	text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	color: var(--nr-ink);
	background: var(--nr-cream);
	font-family: Arial, Helvetica, sans-serif;
}

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

a {
	color: var(--nr-gold-dark);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--nr-gold);
	outline-offset: 3px;
}

.nr-site-header {
	position: sticky;
	top: 0;
	z-index: 9998;
	color: var(--nr-cream);
	background: var(--nr-ink);
	box-shadow: 0 4px 20px rgb(0 0 0 / 14%);
}

.admin-bar .nr-site-header {
	top: 32px;
}

.nr-site-header__inner {
	display: flex;
	align-items: center;
	gap: clamp(18px, 2.4vw, 38px);
	width: min(100%, var(--nr-content-width));
	min-height: 76px;
	margin-inline: auto;
	padding: 12px 24px;
}

.nr-site-brand {
	flex: 0 0 auto;
	color: inherit;
	line-height: 1;
	text-decoration: none;
}

.nr-site-brand__name {
	display: block;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 25px;
	letter-spacing: -.035em;
}

.nr-site-brand__city {
	display: block;
	margin-top: 5px;
	color: var(--nr-gold);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}

.custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.custom-logo {
	width: auto;
	max-width: min( 220px, 28vw );
	max-height: 54px;
}

.nr-site-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(14px, 1.7vw, 28px);
	min-width: 0;
	margin-left: auto;
}

.nr-site-nav a,
.nr-site-header__phone {
	color: var(--nr-cream);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
}

.nr-site-nav a:hover,
.nr-site-nav a:focus-visible,
.nr-site-header__phone:hover,
.nr-site-header__phone:focus-visible {
	color: #d7b06a;
}

.nr-site-header__actions {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: 0 0 auto;
}

.nr-site-header__book,
.nr-site-header__mobile-book {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border: 0;
	border-radius: 10px;
	color: var(--nr-ink);
	background: var(--nr-gold);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}

.nr-site-header__book:hover,
.nr-site-header__mobile-book:hover {
	background: #d9bb7d;
}

.nr-site-header__toggle,
.nr-site-header__mobile {
	display: none;
}

.nr-builder-content {
	min-height: 50vh;
}

.nr-utility-page {
	width: min(100% - 40px, 760px);
	margin: clamp(48px, 9vw, 120px) auto;
	padding: clamp(24px, 5vw, 48px);
	border: 1px solid rgb(31 31 31 / 12%);
	border-radius: 20px;
	background: #fff;
}

.nr-utility-page h1 {
	margin: 0 0 16px;
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(32px, 5vw, 48px);
	font-weight: 400;
	line-height: 1.12;
}

.nr-utility-page p {
	color: var(--nr-muted);
	font-size: 16px;
	line-height: 1.65;
}

.nr-utility-page__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 24px;
}

.nr-utility-page__actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 20px;
	border: 1px solid var(--nr-gold);
	border-radius: 10px;
	color: var(--nr-ink);
	background: var(--nr-gold);
	font-weight: 700;
	text-decoration: none;
}

.nr-utility-page__actions a:hover {
	background: #d9bb7d;
}

.nr-site-header__toggle:focus-visible,
.nr-site-header__mobile-close:focus-visible {
	outline-color: var(--nr-gold);
}

@media (max-width: 1120px) {
	.nr-site-header__phone {
		display: none;
	}

	.nr-site-header__inner {
		gap: 20px;
	}
}

@media (max-width: 900px) {
	.nr-site-nav {
		gap: 13px;
	}

	.nr-site-nav a {
		font-size: 13px;
	}

	.nr-site-header__book {
		padding-inline: 14px;
	}
}

@media (max-width: 767px) {
	.admin-bar .nr-site-header {
		top: 46px;
	}

	.nr-site-header__inner {
		justify-content: space-between;
		min-height: 68px;
		padding: calc(12px + env(safe-area-inset-top)) 18px 12px;
	}

	.nr-site-brand__name {
		font-size: 23px;
	}

	.nr-site-nav,
	.nr-site-header__actions {
		display: none;
	}

	.nr-site-header__toggle {
		display: grid;
		place-content: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1.5px solid var(--nr-gold);
		border-radius: 50%;
		color: inherit;
		background: transparent;
		cursor: pointer;
	}

	.nr-site-header__toggle span {
		display: block;
		width: 18px;
		height: 1px;
		background: currentColor;
		transition: transform .25s ease, opacity .2s ease;
	}

	.nr-site-header.is-open .nr-site-header__toggle span:first-child {
		transform: translateY(6px) rotate(45deg);
	}

	.nr-site-header.is-open .nr-site-header__toggle span:nth-child(2) {
		opacity: 0;
	}

	.nr-site-header.is-open .nr-site-header__toggle span:last-child {
		transform: translateY(-6px) rotate(-45deg);
	}

	.nr-site-header__mobile {
		position: fixed;
		inset: 0;
		z-index: 10000;
		display: flex;
		flex-direction: column;
		min-height: 100vh;
		min-height: 100dvh;
		padding: calc(20px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));
		color: var(--nr-ink);
		background: var(--nr-cream);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-12px);
		transition: opacity .28s ease, visibility .28s ease, transform .28s ease;
	}

	.nr-site-header.is-open .nr-site-header__mobile {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.nr-site-header__mobile-top {
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.nr-site-header__mobile-label {
		color: #a57d36;
		font-size: 11px;
		font-weight: 800;
		letter-spacing: .14em;
		text-transform: uppercase;
	}

	.nr-site-header__mobile-close {
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid rgb(31 31 31 / 16%);
		border-radius: 50%;
		color: var(--nr-ink);
		background: transparent;
		font-size: 38px;
		font-weight: 200;
		line-height: 1;
		cursor: pointer;
	}

	.nr-site-header__mobile-nav {
		display: grid;
		gap: 5px;
		margin: auto 0;
	}

	.nr-site-header__mobile-nav a {
		padding: 12px 0;
		color: var(--nr-ink);
		font-family: Georgia, 'Times New Roman', serif;
		font-size: clamp(36px, 11vw, 48px);
		line-height: 1.04;
		letter-spacing: -.045em;
		text-decoration: none;
	}

	.nr-site-header__mobile-footer {
		padding-top: 18px;
		border-top: 1px solid rgb(31 31 31 / 12%);
	}

	.nr-site-header__mobile-book {
		display: flex;
		width: 100%;
		min-height: 54px;
		padding-inline: 18px;
		border-radius: 12px;
		font-size: 15px;
	}

	.nr-site-header__mobile-phone {
		display: inline-block;
		min-height: 44px;
		margin-top: 14px;
		padding-top: 10px;
		color: var(--nr-ink);
		font-size: 16px;
		font-weight: 700;
		text-decoration: none;
	}

	.nr-site-header__address {
		margin: 0;
		color: var(--nr-muted);
		font-size: 13px;
		line-height: 1.4;
	}

	html.nr-mobile-menu-open,
	body.nr-mobile-menu-open {
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}
