/* =========================================================================
   style.css — самостоятельная светлая тема для статической версии сайта
   Подключить на КАЖДОЙ странице в <head>:
   <link rel="stylesheet" href="/style.css">
   (путь поправить под то, куда вы положите файл на хостинге)
   ========================================================================= */

/* ---------- 1. Reset / базовые настройки ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; }
body{
	margin: 0;
	font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: #3a4446;
	background-color: #f7f9f8;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: #4f9a63; text-decoration: none; }
a:hover, a:focus{ color: #e08a3e; }
ul, ol{ padding-left: 1.2em; }
h1, h2, h3, h4, h5, h6{
	font-weight: 700;
	line-height: 1.25;
	color: #2c3638;
	margin: 0 0 0.6em;
}
h1{ font-size: 40px; }
h2{ font-size: 32px; }
h3{ font-size: 24px; }
h4{ font-size: 20px; }
h5{ font-size: 17px; }
h6{
	font-size: 14px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #e08a3e;
	margin-bottom: 1.2em;
}
p{ margin: 0 0 1em; }
blockquote{
	margin: 1.5em 0;
	padding: 1em 1.5em;
	border-left: 4px solid #4f9a63;
	background: #ffffff;
	color: #5c6b6e;
	font-style: italic;
}

/* ---------- 2. Универсальный контейнер (аналог .grid-container) ---------- */
.grid-container,
.site,
.inside-header,
.inside-navigation,
.inside-article,
.inside-page-header,
.entry-content,
.site-footer{
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

/* ---------- 3. Шапка сайта / логотип ---------- */
.site-header{
	background-color: #ffffff;
	border-bottom: 1px solid #ececec;
}
.inside-header{
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding-top: 16px;
	padding-bottom: 16px;
}
.site-logo img,
.header-image{
	max-height: 60px;
	width: auto;
}
.site-description{ color: #8a9497; font-size: 14px; }

/* ---------- 4. Меню (десктоп + мобильное сворачивание) ---------- */
.main-navigation{
	background-color: #ffffff;
}
.main-navigation .inside-navigation{
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	padding-top: 8px;
	padding-bottom: 8px;
}

/* список пунктов меню — горизонтально на десктопе */
.main-navigation ul.menu,
.main-navigation .main-nav ul{
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.main-navigation .menu-item{ position: relative; }
.main-navigation .menu-item > a{
	display: block;
	padding: 12px 18px;
	color: #4a5658;
	font-weight: 600;
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: .03em;
	transition: color .15s ease, background-color .15s ease;
}
.main-navigation .menu-item > a:hover,
.main-navigation .menu-item.current-menu-item > a{
	color: #4f9a63;
	background-color: #f2f7f3;
	border-radius: 6px;
}

/* выпадающие подменю (если есть дочерние пункты) */
.main-navigation ul ul{
	list-style: none;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background-color: #ffffff;
	border: 1px solid #ececec;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
	display: none;
	z-index: 50;
}
.main-navigation .menu-item:hover > ul{ display: block; }
.main-navigation ul ul .menu-item > a{ padding: 10px 16px; }

/* кнопка "Contacter le coach" / .gb-button в меню */
.main-navigation .menu-bar-items{ display: flex; align-items: center; gap: 12px; }

/* кнопка-гамбургер */
.menu-toggle{
	display: none;
	align-items: center;
	gap: 8px;
	background: none;
	border: 1px solid #dfe4e2;
	border-radius: 6px;
	padding: 8px 12px;
	color: #3a4446;
	cursor: pointer;
	font-size: 14px;
}
.menu-toggle svg{ width: 20px; height: 20px; fill: currentColor; }
.menu-toggle .mobile-menu-control-wrapper svg:nth-child(2),
.menu-toggle svg + svg{ display: none; } /* иконка "крестик" скрыта пока меню закрыто */
.main-navigation.toggled .menu-toggle svg:first-child{ display: none; }
.main-navigation.toggled .menu-toggle svg:last-child{ display: inline-block; }

/* мобильная адаптация — меню сворачивается в список, JS темы (menu.min.js)
   переключает класс .toggled на <nav class="main-navigation"> */
@media (max-width: 1024px){
	.menu-toggle{ display: inline-flex; }
	.main-navigation .main-nav{
		display: none;
		width: 100%;
		order: 10;
	}
	.main-navigation.toggled .main-nav{ display: block; }
	.main-navigation .main-nav ul.menu{
		flex-direction: column;
		align-items: stretch;
	}
	.main-navigation ul ul{
		position: static;
		box-shadow: none;
		border: none;
		display: block;
		padding-left: 16px;
	}
	.main-navigation .menu-bar-items{
		width: 100%;
		justify-content: flex-start;
		padding: 8px 0;
	}
}

/* ---------- 5. Основной контент / страницы ---------- */
.site-content{
	padding-top: 40px;
	padding-bottom: 40px;
}
.inside-article,
.page-header{
	background-color: #ffffff;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0,0,0,0.04);
	padding: 32px;
}
.entry-title{ font-size: 32px; }
.entry-meta{ color: #9aa7a9; font-size: 14px; margin-bottom: 1em; }

/* ---------- 6. Секции GenerateBlocks (gb-container / gb-grid) ---------- */
/* Отступ даём ТОЛЬКО контейнерам верхнего уровня (прямым потомкам
   entry-content). Вложенные gb-container (а их в разметке много —
   обёртка внутри обёртки) отступов не получают, иначе они складываются
   друг с другом и получаются гигантские пустые промежутки. */
.gb-container{ padding-top: 0; padding-bottom: 0; }
.entry-content > .gb-container{ padding-top: 24px; padding-bottom: 24px; }
.gb-container .gb-container{ padding-top: 0; padding-bottom: 0; }

.gb-inside-container{ max-width: 100%; }

.gb-grid-wrapper{
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 0;
}
.gb-grid-column{
	flex: 1 1 280px;
	padding: 0;
}

.gb-headline{ margin-bottom: 0.5em; }
.gb-headline:last-child{ margin-bottom: 0; }

/* пустые обёртки (частое явление в этой верстке) не должны занимать место */
.gb-inside-container:empty,
.gb-container:empty,
.gb-grid-column:empty{ display: none; }

/* декоративная SVG-волна: в оригинальной теме была position:absolute
   поверх блока (наложение), поэтому не занимала место в потоке.
   Без этого стиля она встаёт как обычный блок и добавляет ~200px
   пустого пространства — самая частая причина "гигантских отступов". */
.gb-shapes{ display: none; }

/* ---------- 7. Кнопки (gb-button, wp-block-button, формы) ---------- */
.gb-button,
.gb-button-wrapper a,
a.gb-button,
.wp-block-button .wp-block-button__link,
button,
input[type="submit"]{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background-color: #4f9a63;
	color: #ffffff !important;
	border: none;
	border-radius: 8px;
	padding: 12px 24px;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: background-color .15s ease, transform .1s ease;
}
.gb-button:hover,
.gb-button-wrapper a:hover,
a.gb-button:hover,
.wp-block-button .wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover{
	background-color: #e08a3e;
	color: #ffffff !important;
}

/* ---------- 8. Формы (Contact Form 7 и т.п.) ---------- */
input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="tel"],
input[type="number"], textarea, select{
	width: 100%;
	background-color: #f7f9f8;
	color: #3a4446;
	border: 1px solid #dfe4e2;
	border-radius: 8px;
	padding: 10px 14px;
	font-size: 15px;
	margin-bottom: 12px;
}
input:focus, textarea:focus, select:focus{
	outline: none;
	border-color: #4f9a63;
	background-color: #ffffff;
}
label{ display: block; margin-bottom: 4px; font-weight: 600; color: #4a5658; }

/* ---------- 9. Изображения / карточки ---------- */
figure{ margin: 0 0 1.2em; }
figure img{ border-radius: 12px; }

/* ---------- 10. Подвал сайта ---------- */
.site-footer,
footer{
	background-color: #ffffff;
	border-top: 1px solid #ececec;
	padding-top: 40px;
	padding-bottom: 40px;
	color: #8a9497;
	font-size: 14px;
	text-align: center;
}
.site-footer a{ color: #4f9a63; }
.footer-map{ margin-top: 24px; }

/* ---------- 11. Утилиты ---------- */
.has-text-align-center{ text-align: center; }
.hide-on-mobile{ display: none; }
@media (min-width: 1025px){
	.hide-on-mobile{ display: inline-flex; }
}

/* ---------- 12. Мелкая мобильная адаптация текста ---------- */
@media (max-width: 768px){
	h1{ font-size: 30px; }
	h2{ font-size: 26px; }
	h3{ font-size: 21px; }
	.inside-article, .page-header{ padding: 20px; }
	.grid-container, .site, .inside-header, .inside-navigation,
	.inside-article, .inside-page-header, .entry-content, .site-footer{
		padding-left: 16px;
		padding-right: 16px;
	}
}
