/*
Theme Name: Go2trip
Theme URI: https://go2trip.ru/
Description: Собственная тема для go2trip.ru — путеводитель по пляжным курортам и пляжам мира. Современный лёгкий дизайн, без конструкторов.
Author: Go2trip
Version: 0.9.0
Text Domain: go2trip
*/

/* ============================================================
   Дизайн-токены
   ============================================================ */
:root {
	--c-primary: #0b72b9;
	--c-primary-dark: #08568c;
	--c-navy: #0e2436;
	--c-text: #17222e;
	--c-muted: #5f707f;
	--c-bg: #f6f9fc;
	--c-card: #ffffff;
	--c-border: #e3eaf1;
	--c-link: #0b72b9;
	--radius: 14px;
	--radius-sm: 8px;
	--shadow: 0 2px 16px rgba(14, 36, 54, .08);
	--shadow-hover: 0 10px 28px rgba(14, 36, 54, .14);
	--font: -apple-system, "Segoe UI", Roboto, "Open Sans", "Helvetica Neue", Arial, sans-serif;
	--container: 1200px;
}

/* ============================================================
   База
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 16px;
	line-height: 1.65;
	color: var(--c-text);
	background: var(--c-bg);
}

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

a { color: var(--c-link); }
a:hover { color: var(--c-primary-dark); }

h1, h2, h3, h4 {
	line-height: 1.25;
	color: var(--c-text);
	margin: 1.4em 0 .6em;
	font-weight: 700;
}

p { margin: 0 0 1.1em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.skip-link {
	position: absolute;
	left: -999px;
	top: 0;
	background: var(--c-primary);
	color: #fff;
	padding: 10px 16px;
	z-index: 1000;
}
.skip-link:focus { left: 0; }

.container {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 20px;
}

.btn {
	display: inline-block;
	background: var(--c-primary);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm);
	padding: 12px 26px;
	font-size: 15px;
	cursor: pointer;
	text-decoration: none;
}
.btn:hover { background: var(--c-primary-dark); color: #fff; }

/* ============================================================
   Шапка
   ============================================================ */
.site-header {
	background: #fff;
	border-bottom: 1px solid var(--c-border);
	position: sticky;
	top: 0;
	z-index: 100;
	transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: var(--shadow); }

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 22px;
	min-height: 74px;
}

.site-brand img { display: block; max-height: 56px; width: auto; }
.site-brand__name {
	font-size: 24px;
	font-weight: 800;
	color: var(--c-text);
	text-decoration: none;
}

.nav-top { margin-left: auto; }
.nav-top__list {
	display: flex;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.nav-top__list a {
	display: block;
	padding: 10px 14px;
	color: var(--c-text);
	text-decoration: none;
	font-size: 15px;
	border-radius: var(--radius-sm);
}
.nav-top__list a:hover { background: var(--c-bg); color: var(--c-primary); }
.nav-top__list .current-menu-item > a {
	color: var(--c-primary);
	font-weight: 600;
}

.search-toggle, .menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	background: transparent;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	cursor: pointer;
	color: var(--c-text);
}
.search-toggle:hover, .menu-toggle:hover { background: var(--c-bg); }

.search-bar {
	border-top: 1px solid var(--c-border);
	background: #fff;
	padding: 14px 0;
}
.search-bar[hidden] { display: none; }
.search-bar form { display: flex; gap: 10px; }
.search-bar__input {
	flex: 1;
	padding: 11px 14px;
	font-size: 15px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
}
.search-bar__btn {
	padding: 11px 22px;
	background: var(--c-primary);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm);
	cursor: pointer;
}

.menu-toggle { display: none; }

/* Тёмная полоса категорий */
.nav-primary {
	background: var(--c-navy);
}
.nav-primary__list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}
.nav-primary__list > li { position: relative; }
.nav-primary__list a {
	display: block;
	padding: 13px 16px;
	color: #eaf2f8;
	text-decoration: none;
	font-size: 15px;
	letter-spacing: .2px;
}
.nav-primary__list > li > a:hover,
.nav-primary__list > li.current-menu-item > a,
.nav-primary__list > li.current-menu-parent > a {
	background: rgba(255, 255, 255, .12);
	color: #fff;
}
.nav-primary__list .sub-menu {
	display: none;
	position: absolute;
	left: 0;
	top: 100%;
	min-width: 220px;
	background: #fff;
	border-radius: 0 0 var(--radius-sm) var(--radius-sm);
	box-shadow: var(--shadow);
	list-style: none;
	margin: 0;
	padding: 8px 0;
	z-index: 110;
}
.nav-primary__list li:hover > .sub-menu { display: block; }
.nav-primary__list .sub-menu a {
	color: var(--c-text);
	padding: 9px 18px;
	font-size: 14px;
}
.nav-primary__list .sub-menu a:hover { background: var(--c-bg); color: var(--c-primary); }

/* ============================================================
   Контент
   ============================================================ */
.site-main { padding: 34px 0 60px; }

.page-title {
	font-size: 34px;
	font-weight: 800;
	margin: 0 0 22px;
	letter-spacing: -.5px;
}

.archive-head {
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--c-border);
}

.g2t-article__container,
.g2t-page__container,
.g2t-country__container { max-width: 860px; }

.g2t-article__meta {
	display: flex;
	gap: 14px;
	align-items: center;
	color: var(--c-muted);
	font-size: 14px;
	margin-bottom: 20px;
}
.g2t-article__cats a { text-decoration: none; }

.g2t-article__thumb { margin: 0 0 26px; }
.g2t-article__thumb img {
	width: 100%;
	border-radius: var(--radius);
	display: block;
}

.g2t-article__body,
.g2t-page__body {
	font-size: 17px;
	line-height: 1.72;
}
.g2t-article__body img,
.g2t-page__body img,
.g2t-country__body img {
	border-radius: var(--radius-sm);
}
.g2t-article__body a { text-decoration-thickness: 1px; text-underline-offset: 2px; }

.g2t-article__tags { margin-top: 26px; }
.g2t-article__tags a {
	display: inline-block;
	background: var(--c-bg);
	border: 1px solid var(--c-border);
	padding: 4px 12px;
	border-radius: 20px;
	font-size: 13px;
	margin: 0 6px 6px 0;
	text-decoration: none;
}

/* Контент стран (перенос WPBakery) */
.g2t-country__body h2, .g2t-country__body h3 { margin: 1.6em 0 .7em; }
.g2t-callout {
	background: #eaf4fd;
	border-left: 4px solid var(--c-primary);
	padding: 16px 20px;
	border-radius: var(--radius-sm);
	margin: 20px 0;
}
.g2t-callout p:last-child { margin-bottom: 0; }

/* ============================================================
   Карточки и сетки
   ============================================================ */
.g2t-cards,
.g2t-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 22px;
	margin: 22px 0 30px;
	padding: 0;
	list-style: none;
}

.g2t-card {
	display: block;
	background: var(--c-card);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--shadow);
	text-decoration: none;
	color: var(--c-text);
	transition: transform .18s ease, box-shadow .18s ease;
}
.g2t-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-hover);
	color: var(--c-text);
}
.g2t-card img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
}
.g2t-card__body { display: block; padding: 14px 16px 16px; }
.g2t-card__date {
	display: block;
	color: var(--c-muted);
	font-size: 13px;
	margin-bottom: 6px;
}
.g2t-card__title {
	display: block;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.4;
}
.g2t-card__excerpt {
	display: block;
	margin-top: 8px;
	color: var(--c-muted);
	font-size: 14px;
	line-height: 1.55;
}

/* ============================================================
   Главная
   ============================================================ */
.g2t-home-body { font-size: 17px; line-height: 1.7; }

.g2t-home-hero { margin: 22px 0 26px; }
.g2t-home-hero img {
	width: 100%;
	border-radius: var(--radius);
	display: block;
	box-shadow: var(--shadow);
}

.g2t-season-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0 0 26px;
}
.g2t-season {
	padding: 18px 20px;
	border-radius: var(--radius);
	background: var(--c-bg);
	border-left: 4px solid var(--c-primary);
}
.g2t-season h3 { margin: 0 0 10px; font-size: 17px; }
.g2t-season p { margin: 0; }
.g2t-season a { display: block; margin: 5px 0; font-size: 15px; }
.g2t-season--orange { background: #fff4e8; border-left-color: #e8890c; }
.g2t-season--sandy  { background: #fbf1e9; border-left-color: #c08457; }
.g2t-season--blue   { background: #e9f4fc; border-left-color: #3aa0e0; }
.g2t-season--vista  { background: #edf7ef; border-left-color: #57a773; }

.g2t-home-split {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	margin: 26px 0 34px;
}
.g2t-home-split .g2t-home-main { flex: 1 1 66%; min-width: 0; }
.g2t-home-split .g2t-home-aside {
	flex: 0 0 300px;
	background: var(--c-card);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 20px 22px;
}
.g2t-home-aside h4 { margin: 0 0 12px; font-size: 17px; }

.g2t-side-menu { list-style: none; margin: 0; padding: 0; }
.g2t-side-menu li { border-bottom: 1px solid var(--c-border); }
.g2t-side-menu li:last-child { border-bottom: 0; }
.g2t-side-menu a {
	display: block;
	padding: 9px 0;
	text-decoration: none;
	color: var(--c-text);
	font-size: 15px;
}
.g2t-side-menu a:hover { color: var(--c-primary); }

.g2t-home-section { margin: 40px 0; }
.g2t-home-section-title {
	position: relative;
	padding-left: 16px;
}
.g2t-home-section-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 4px;
	width: 4px;
	border-radius: 2px;
	background: var(--c-primary);
}

/* ============================================================
   Сайдбар
   ============================================================ */
.g2t-article__container,
.g2t-page__container { max-width: 860px; }

.widget {
	background: var(--c-card);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 18px 20px;
	margin-bottom: 20px;
}
.widget__title { margin: 0 0 12px; font-size: 16px; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { border-bottom: 1px solid var(--c-border); }
.widget li:last-child { border-bottom: 0; }
.widget a { display: block; padding: 7px 0; text-decoration: none; }

/* ============================================================
   Комментарии
   ============================================================ */
.g2t-comments { margin: 40px 0 20px; }
.g2t-comments__title { font-size: 22px; }
.comment-list {
	list-style: none;
	margin: 0 0 30px;
	padding: 0;
}
.comment-list .comment-body {
	background: var(--c-card);
	border-radius: var(--radius);
	padding: 16px 18px;
	margin-bottom: 14px;
	box-shadow: var(--shadow);
}
.comment-list .children { list-style: none; margin-left: 40px; }
.comment-form p { margin: 0 0 14px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	font-size: 15px;
}
.comment-form .submit {
	background: var(--c-primary);
	color: #fff;
	border: 0;
	border-radius: var(--radius-sm);
	padding: 12px 26px;
	font-size: 15px;
	cursor: pointer;
}

/* ============================================================
   Подвал
   ============================================================ */
.site-footer {
	background: var(--c-navy);
	color: #c7d5e0;
	margin-top: 60px;
	padding: 44px 0 30px;
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer__widgets {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	margin-bottom: 34px;
}
.site-footer .widget {
	background: transparent;
	box-shadow: none;
	padding: 0;
	color: #c7d5e0;
}
.site-footer .widget__title {
	color: #fff;
	font-size: 16px;
	margin-bottom: 12px;
}
.site-footer .widget li { border-bottom-color: rgba(255, 255, 255, .12); }
.site-footer .widget a { padding: 6px 0; font-size: 14px; }
.site-footer .widget img { border-radius: var(--radius-sm); }
.site-footer .textwidget { font-size: 14px; line-height: 1.7; }
.site-footer__lower {
	border-top: 1px solid rgba(255, 255, 255, .14);
	padding-top: 20px;
	font-size: 14px;
	color: #9fb2c3;
}
.site-footer__lower a { color: #c7d5e0; }

/* ============================================================
   Адаптив
   ============================================================ */
@media (max-width: 960px) {
	.nav-top { display: none; }
	.menu-toggle { display: inline-flex; }
	.g2t-season-grid { grid-template-columns: 1fr; }
	.g2t-home-split { flex-direction: column; }
	.g2t-home-split .g2t-home-aside { flex: 1 1 auto; max-width: 100%; }
}

@media (max-width: 860px) {
	.nav-primary { display: none; }
	.nav-open .nav-primary {
		display: block;
		position: absolute;
		left: 0; right: 0;
		z-index: 200;
		box-shadow: var(--shadow);
	}
	.nav-primary__list { flex-direction: column; }
	.nav-primary__list .sub-menu {
		display: none;
		position: static;
		box-shadow: none;
		background: rgba(255, 255, 255, .06);
	}
	.nav-primary__list li.is-open > .sub-menu { display: block; }
	.page-title { font-size: 28px; }
}

@media (min-width: 861px) {
	.menu-toggle { display: none; }
}

@media (max-width: 640px) {
	.site-footer__widgets { grid-template-columns: 1fr; }
	.g2t-cards, .g2t-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   Пагинация
   ============================================================ */
.pagination,
.nav-links {
	display: flex;
	gap: 8px;
	margin: 30px 0;
	flex-wrap: wrap;
}
.pagination .page-numbers,
.nav-links .page-numbers {
	display: inline-block;
	padding: 9px 14px;
	border: 1px solid var(--c-border);
	border-radius: var(--radius-sm);
	text-decoration: none;
	color: var(--c-text);
	background: #fff;
}
.pagination .current,
.nav-links .current {
	background: var(--c-primary);
	border-color: var(--c-primary);
	color: #fff;
}
.pagination .page-numbers:hover,
.nav-links .page-numbers:hover { border-color: var(--c-primary); }
