/* Внутрішні сторінки R.A.I.V. Academy (майстер-класи, курс, контакти).
   Один набір компонентів на всі чотири шаблони.
   Кольори й шрифти — ті самі, що в налаштуваннях теми Hazel. */

.rv-page {
	--rv-accent: #b8b8b8;
	--rv-dark: #101010;
	--rv-heading: #303030;
	--rv-text: #595959;
	--rv-muted: #999;
	--rv-line: #e7e7e7;
	--rv-bg-soft: #f7f7f7;
	--rv-font: 'Inter', 'Helvetica Neue', Arial, sans-serif;

	font-family: var(--rv-font);
	color: var(--rv-text);
	font-size: 15px;
	line-height: 1.75;
}

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

.rv-page .rv-wrap {
	width: 100%;
	max-width: 1170px;
	margin: 0 auto;
	padding: 0 20px;
}

.rv-page > section {
	padding: 72px 0;
}

.rv-page > section.rv-tight {
	padding: 42px 0;
}

.rv-page .rv-soft {
	background: var(--rv-bg-soft);
}

/* ---------- типографіка ---------- */

.rv-page .rv-h2 {
	margin: 0 0 18px;
	font-family: var(--rv-font);
	font-size: 32px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--rv-heading);
	letter-spacing: .02em;
}

.rv-page .rv-h3 {
	margin: 0 0 12px;
	font-size: 20px;
	line-height: 1.35;
	font-weight: 700;
	color: var(--rv-heading);
}

.rv-page .rv-center {
	text-align: center;
}

.rv-page .rv-kicker {
	margin: 0 0 10px;
	font-size: 12px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--rv-accent);
	font-weight: 600;
}

.rv-page .rv-text {
	margin: 0 0 18px;
	color: var(--rv-text);
}

.rv-page .rv-text:last-child {
	margin-bottom: 0;
}

.rv-page .rv-narrow {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

/* ---------- кнопки ---------- */

.rv-page .rv-btn {
	display: inline-block;
	padding: 14px 34px;
	border: 1px solid var(--rv-dark);
	background: var(--rv-dark);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}

.rv-page .rv-btn:hover,
.rv-page .rv-btn:focus {
	background: transparent;
	color: var(--rv-dark);
	text-decoration: none;
}

.rv-page .rv-btn--light {
	border-color: #fff;
	background: transparent;
	color: #fff;
}

.rv-page .rv-btn--light:hover,
.rv-page .rv-btn--light:focus {
	background: #fff;
	color: var(--rv-dark);
}

/* ---------- повітря над меню ----------
   Шапка тут двоярусна: меню лежить в абсолютному шарі .menu_style2_bearer
   зверху, логотип — нижче з відступом 29px. Меню було приліплене до самого
   краю екрана. Опускаємо обидва ряди на однакову величину, зберігаючи
   проміжок між ними; шапка стає вищою на цю ж величину.
   Стан після прокрутки (компактний) не чіпаємо. */

header.navbar:not(.header_after_scroll) .menu_style2_bearer {
	padding-top: 16px;
}

header.navbar:not(.header_after_scroll) .navbar-header {
	margin-top: 45px;
}

/* ---------- шапка сайту над світлим фоном ----------
   До прокрутки тема лишає пункти меню світло-сірими (#e0e0e0) під темний
   банер. На цих сторінках верх білий, тож робимо текст темним.
   Стан після прокрутки (.header_after_scroll) не чіпаємо — він і так читається. */

body.rv-header-on-light header.navbar:not(.header_after_scroll) a.menu-link,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .main-menu-link {
	color: #303030;
}

/* Активний пункт і :hover тема фарбує правилом
   `.navbar-collapse > ul > li.current-menu-item > a { color:#999999 !important }`.
   На білому це ледь видно, а перебити без !important не вийде. */
/* Селектори тут навмисно через пробіл, а не через «>»: між .navbar-collapse
   і <ul> тема вставляє ще .menu_style2_bearer, тож жорсткий ланцюжок не збігся б. */
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-collapse li a.menu-link:hover,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-collapse li a.menu-link:focus {
	color: #101010 !important;
}

/* Поточну сторінку лишаємо читабельною, а позначаємо підкресленням. */
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-collapse li.current-menu-item > a.menu-link,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-collapse li.current_page_item > a.menu-link,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-collapse li.current-menu-ancestor > a.menu-link {
	color: #303030 !important;
	text-decoration: underline;
	text-decoration-color: #b8b8b8;
	text-decoration-thickness: 2px;
	text-underline-offset: 7px;
}

/* іконки праворуч у шапці та кнопка мобільного меню — того ж кольору */
body.rv-header-on-light header.navbar:not(.header_after_scroll) .hazel_right_header_icons a,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .header_social_icons a,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .dl-trigger,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .navbar-toggle .icon-bar {
	color: #303030;
	background-color: currentColor;
}

body.rv-header-on-light header.navbar:not(.header_after_scroll) .hazel_right_header_icons a,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .header_social_icons a,
body.rv-header-on-light header.navbar:not(.header_after_scroll) .dl-trigger {
	background-color: transparent;
}

/* тонка межа, щоб біла шапка відділялася від білого вмісту */
body.rv-header-on-light header.navbar:not(.header_after_scroll) {
	border-bottom: 1px solid #ececec;
}

/* ---------- шапка сторінки ---------- */

.rv-page .rv-lead-section {
	padding: 130px 0 64px;
	text-align: center;
}

.rv-page .rv-h1 {
	margin: 0 0 22px;
	font-size: 38px;
	line-height: 1.2;
	font-weight: 700;
	color: var(--rv-heading);
	letter-spacing: .02em;
}

/* ---------- картки з іконками ---------- */

.rv-cards {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(3, 1fr);
}

.rv-cards--4 {
	grid-template-columns: repeat(4, 1fr);
}

.rv-cards--5 {
	grid-template-columns: repeat(5, 1fr);
}

.rv-card {
	padding: 30px 24px;
	background: #fff;
	border: 1px solid var(--rv-line);
	text-align: center;
}

.rv-soft .rv-card {
	background: #fff;
}

.rv-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin-bottom: 16px;
	border-radius: 50%;
	background: var(--rv-dark);
	color: #fff;
	font-size: 22px;
}

.rv-page .rv-card__title {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--rv-heading);
}

.rv-card__text {
	margin: 0;
	font-size: 14px;
}

/* ---------- перелік результатів ---------- */

.rv-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rv-checklist li {
	position: relative;
	padding: 0 0 14px 34px;
}

.rv-checklist li::before {
	content: '\f00c';
	font-family: 'Font Awesome 5 Free', 'FontAwesome';
	font-weight: 900;
	position: absolute;
	left: 0;
	top: 2px;
	color: var(--rv-dark);
	font-size: 14px;
}

/* ---------- зображення + текст ---------- */

.rv-media {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	align-items: center;
}

.rv-media--flip .rv-media__figure {
	order: 2;
}

/* для довгих списків праворуч текст ліворуч має починатися згори,
   інакше над ним лишається великий порожній відступ */
.rv-media--top {
	align-items: start;
}

.rv-media__figure {
	margin: 0;
}

.rv-media__figure img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- програма курсу ---------- */

.rv-steps {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rv-steps__item {
	display: flex;
	gap: 18px;
	padding: 16px 0;
	border-bottom: 1px solid var(--rv-line);
}

.rv-steps__item:last-child {
	border-bottom: 0;
}

.rv-steps__icon {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rv-dark);
	color: #fff;
	font-size: 17px;
}

.rv-steps__num {
	display: block;
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--rv-accent);
	font-weight: 600;
}

.rv-steps__text {
	margin: 2px 0 0;
	color: var(--rv-heading);
	font-weight: 600;
}

/* ---------- програма по днях (курс бариста) ---------- */

.rv-days {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rv-days__item {
	display: flex;
	gap: 18px;
	padding: 18px 0;
	border-bottom: 1px solid var(--rv-line);
}

.rv-days__item:last-child {
	border-bottom: 0;
}

.rv-days__icon {
	flex: 0 0 46px;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--rv-dark);
	color: #fff;
	font-size: 18px;
}

.rv-page .rv-days__title {
	margin: 0 0 8px;
	font-size: 18px;
	font-weight: 700;
	color: var(--rv-heading);
}

.rv-days__list {
	margin: 0;
	padding-left: 18px;
	font-size: 14px;
}

.rv-days__list li {
	margin-bottom: 4px;
}

/* ---------- нумеровані причини ---------- */

.rv-reasons {
	margin: 0;
	padding-left: 22px;
}

.rv-page .rv-reasons li {
	margin-bottom: 16px;
}

/* ---------- цитата ---------- */

.rv-page .rv-quote {
	padding: 64px 0;
	text-align: center;
	background: var(--rv-dark);
	color: #fff;
}

.rv-page .rv-quote p {
	margin: 0 auto;
	max-width: 900px;
	font-size: 23px;
	line-height: 1.5;
	font-weight: 600;
	color: #fff;
}

/* ---------- тренер ---------- */

.rv-bio__text p {
	margin: 0 0 14px;
}

/* ---------- бачення / місія ---------- */

.rv-values {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}

/* ---------- підсумковий заклик ---------- */

.rv-page .rv-final {
	text-align: center;
	background: var(--rv-bg-soft);
}

/* ---------- контакти ---------- */

.rv-contacts-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
	text-align: center;
}

.rv-contact__icon {
	display: block;
	margin-bottom: 12px;
	font-size: 28px;
	color: var(--rv-accent);
}

.rv-page .rv-contact__title {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--rv-heading);
}

.rv-contact__text {
	margin: 0;
	color: var(--rv-text);
	word-break: break-word;
}

a.rv-contact__text:hover {
	color: var(--rv-dark);
}

.rv-form-box {
	max-width: 640px;
	margin: 0 auto;
}

/* ---------- шапка сторінки контактів на фото ---------- */

.rv-page .rv-contact-hero {
	position: relative;
	padding: 150px 0 90px;
	background-size: cover;
	background-position: center;
	background-color: #2a2a2a;
	color: #fff;
	text-align: center;
}

.rv-contact-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(16, 16, 16, .6);
}

.rv-contact-hero .rv-wrap {
	position: relative;
	z-index: 1;
}

.rv-contact-hero__sub {
	margin: 0 0 10px;
	font-size: 13px;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .85);
}

.rv-page .rv-contact-hero__title {
	margin: 0 0 50px;
	font-size: 40px;
	line-height: 1.2;
	font-weight: 700;
	color: #fff;
	letter-spacing: .06em;
}

.rv-contacts-grid--on-photo .rv-contact__icon {
	color: #fff;
}

.rv-page .rv-contacts-grid--on-photo .rv-contact__title {
	color: #fff;
}

.rv-contacts-grid--on-photo .rv-contact__text {
	color: rgba(255, 255, 255, .85);
}

.rv-contacts-grid--on-photo a.rv-contact__text:hover {
	color: #fff;
}

/* ---------- модальне вікно з формою ---------- */

.rv-modal[hidden] {
	display: none;
}

.rv-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
}

.rv-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 16, 16, .8);
}

.rv-modal__dialog {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 520px;
	max-height: 90vh;
	overflow-y: auto;
	padding: 40px;
	background: #fff;
}

.rv-modal__title {
	margin: 0 0 22px;
	font-size: 22px;
	line-height: 1.3;
	font-weight: 700;
	color: #303030;
	letter-spacing: normal;
	word-spacing: normal;
	text-transform: none;
}

.rv-modal__close {
	position: absolute;
	top: 10px;
	right: 14px;
	border: 0;
	background: none;
	font-size: 30px;
	line-height: 1;
	color: #999;
	cursor: pointer;
}

/* Форма теми зверстана у дві колонки під широкий блок —
   у вузькій модалці колонки мають іти на всю ширину.
   Правило теми має три класи, тож перебиваємо чотирма. */
.rv-modal__dialog .wpcf7 .hazel-form-simple .f-name,
.rv-modal__dialog .wpcf7 .hazel-form-simple .f-email,
.rv-modal__dialog .wpcf7 .hazel-form-simple .f-phone,
.rv-modal__dialog .wpcf7 .hazel-form-simple .f-subject,
.rv-modal__dialog .wpcf7 .hazel-form-simple .f-message,
.rv-modal__dialog .wpcf7 .hazel-form-simple > div {
	width: 100%;
	float: none;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
}

.rv-modal__dialog .wpcf7 .wpcf7-form-control-wrap {
	display: block;
}

.rv-modal__dialog .wpcf7 input.wpcf7-form-control:not([type='submit']),
.rv-modal__dialog .wpcf7 textarea.wpcf7-form-control,
.rv-modal__dialog .wpcf7 input[type='text'],
.rv-modal__dialog .wpcf7 input[type='email'],
.rv-modal__dialog .wpcf7 input[type='tel'],
.rv-modal__dialog .wpcf7 textarea {
	width: 100%;
	max-width: 100%;
	margin-bottom: 14px;
	padding: 12px 14px;
	border: 1px solid #e7e7e7;
	background: #fff;
	font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
	font-size: 14px;
}

.rv-modal__dialog .wpcf7 p {
	margin: 0;
}

.rv-modal__dialog .wpcf7 input[type='submit'] {
	width: 100%;
	padding: 15px 30px;
	border: 1px solid #101010;
	background: #101010;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s ease, color .2s ease;
}

.rv-modal__dialog .wpcf7 input[type='submit']:hover {
	background: transparent;
	color: #101010;
}

/* Та сама поправка для форми, вставленої просто на сторінку (контакти) */
.rv-form-box .wpcf7 .hazel-form-simple .f-name,
.rv-form-box .wpcf7 .hazel-form-simple .f-email,
.rv-form-box .wpcf7 .hazel-form-simple .f-phone,
.rv-form-box .wpcf7 .hazel-form-simple .f-subject,
.rv-form-box .wpcf7 .hazel-form-simple .f-message {
	width: 100%;
	float: none;
	padding-left: 0;
	padding-right: 0;
}

.rv-form-box .wpcf7 input.wpcf7-form-control:not([type='submit']),
.rv-form-box .wpcf7 textarea.wpcf7-form-control {
	width: 100%;
	margin-bottom: 14px;
	padding: 12px 14px;
	border: 1px solid var(--rv-line);
	font-family: var(--rv-font);
	font-size: 14px;
}

.rv-form-box .wpcf7 input[type='submit'] {
	padding: 15px 40px;
	border: 1px solid var(--rv-dark);
	background: var(--rv-dark);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .16em;
	text-transform: uppercase;
	cursor: pointer;
}

/* ---------- адаптив ---------- */

@media (max-width: 991px) {
	.rv-page > section {
		padding: 56px 0;
	}

	.rv-cards,
	.rv-cards--4,
	.rv-cards--5 {
		grid-template-columns: repeat(2, 1fr);
	}

	.rv-media,
	.rv-values,
	.rv-contacts-grid {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.rv-media--flip .rv-media__figure {
		order: 0;
	}

	.rv-page .rv-h1 {
		font-size: 28px;
	}

	.rv-page .rv-h2 {
		font-size: 25px;
	}

	.rv-page .rv-quote p {
		font-size: 19px;
	}
}

@media (max-width: 600px) {
	.rv-cards,
	.rv-cards--4,
	.rv-cards--5,
	.rv-contacts-grid {
		grid-template-columns: 1fr;
	}

	.rv-page .rv-btn {
		width: 100%;
		text-align: center;
	}

	.rv-modal__dialog {
		padding: 28px 20px;
	}
}
