/*Theme Name: Untouristic Theme
Theme URI: http://untouristic.com/
Author: Untouristic
Description: Custom Untouristic theme. AppSheet integration.
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: untouristic
*/

@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap");
:root {
  --main_color: #044f4b;
  --secondary_color: #f8f7f7;
  --accent_color: #e55d45;
  --accent_color_2: #f8f7f7;
  --white_text: #f8f7f7;
  --black_text: #2a2c2b;
  --gray_text: #777777;
  --alter_bg: #e6e6e6;
}

/* Reset and base styles  */
* {
  padding: 0px;
  margin: 0px;
  border: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Links */

a,
a:link,
a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

/* Common */

aside,
nav,
footer,
header,
section,
main {
  display: block;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  font-size: inherit;
  font-weight: inherit;
}

ul,
ul li {
  list-style: none;
}

img {
  vertical-align: top;
}

img,
svg {
  max-width: 100%;
  height: auto;
}

address {
  font-style: normal;
}

/* Form */

input,
textarea,
button,
select {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  background-color: transparent;
}

input::-ms-clear {
  display: none;
}

textarea {
  resize: vertical;
}

button,
input[type="submit"] {
  display: inline-block;
  box-shadow: none;
  background-color: transparent;
  background: none;
  cursor: pointer;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

label {
  cursor: pointer;
}

legend {
  display: block;
}

input[type="file"] {
  max-width: 100%;
}

body {
  font-family: "Nunito", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  background-color: var(--alter_bg);
}

#mobile {
  display: none;
}

/* mobile */
.burger {
  display: none;
  width: 30px;
  height: 20px;
  position: fixed;
  right: 20px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 11;
}

.cookie-banner a,
a:link,
a:visited {
  color: var(--white_text);
  text-decoration: underline;
}

.cookie-banner a:hover {
  color: var(--white_text);
  font-weight: 600;
}

.burger span,
.burger::before,
.burger::after {
  content: "";
  height: 2px;
  width: 100%;
  background: var(--main_color);
  position: absolute;
  left: 0;
  transition: 0.3s;
}

.burger::before {
  top: 0;
}
.burger span {
  top: 9px;
}
.burger::after {
  bottom: 0;
}

/* Анимация крестика при активации */
.burger.active span {
  opacity: 0;
}
.burger.active::before {
  transform: rotate(45deg);
  top: 9px;
}
.burger.active::after {
  transform: rotate(-45deg);
  bottom: 9px;
}

/*End mobile*/

.main-nav {
  width: 100%;
  background-color: var(--white_text);
  padding: 20px 0;
  position: fixed;
  z-index: 1000;
}

.wrapper {
  width: 1200px;
  margin: 0 auto;
}

h2 {
  font-size: 36px;
  font-weight: 700;
}

p {
  font-size: 18px;
  line-height: 1.6;
}

.main-nav > .wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hero {
  width: 100%;
  height: 100vh;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  position: relative;
  display: flex;
}

.hero__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to bottom,
      var(--white_text) 0%,
      var(--white_text) 20%,
      transparent 50%
    ),
    linear-gradient(to top, #044f4b 0%, #044f4b 5%, transparent 20%);
  z-index: 2;
}

.hero img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}

.hero > .wrapper {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

.hero__slogan,
.hero-tour__slogan {
  padding-top: 200px;
  margin: 0, auto;
  width: 100%;
  text-align: center;
  color: var(--main_color);
  z-index: 3;
}

.hero__slogan h1 {
  font-size: 100px;
  font-weight: 700;
  text-transform: uppercase;
  padding-bottom: 90px;
}

.hero-tour__slogan h1 {
  font-size: 60px;
  font-weight: 700;
  text-transform: uppercase;
  padding-bottom: 90px;
}

.lang-switch {
  display: none;
}

.nav-links ul {
  display: flex;
  gap: 30px;
}

.nav-links ul li a {
  color: var(--main_color);
  font-size: 24px;
  font-weight: 500;
}

.nav-links ul li a:hover {
  text-decoration: underline;
}

.main-nav__cta a {
  display: inline-block;
  padding: 10px 40px;
  background-color: var(--accent_color);
  color: var(--white_text);
  font-size: 18px;
  font-weight: 500;
  border-radius: 5px;
}

.main-nav__cta a:hover {
  box-shadow: 0px 4px 10px rgba(229, 93, 69, 0.5);
}

.story {
  width: 100%;
  padding: 50px 0;
  background-color: var(--main_color);
  color: var(--white_text);
  font-size: 18px;
  line-height: 1.6;
}

.story > .wrapper {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 50px;
}

.story__image {
  display: flex;
  justify-content: center;
  align-items: center;
}

.story__image img {
  display: block;
  border-radius: 10px;
  width: 400px;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.story__text h2 {
  margin-bottom: 20px;
  text-transform: uppercase;
}

.story__text p {
  margin-bottom: 20px;
}

.story__text p:last-child {
  margin-bottom: 0;
}

.story__text ul {
  padding-left: 20px;
}
.story__text ul li {
  margin-bottom: 10px;
  list-style: disc;
  color: var(--white_text);
}

.description {
  padding-top: 50px;
  padding-bottom: 50px;
  background-color: var(--main_color);
  color: var(--white_text);
}

.description > .wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
}

.description h3 {
  font-size: 40px;
  font-weight: 700;
}

.photo-line {
  width: 100%;
  padding: 50px 0;
}

.photo-line > .wrapper {
  display: grid;
  /* Автоматические колонки: минимум 150px, максимум — делят место поровну */
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.photo-line > .wrapper img {
  width: 100%; /* Растягиваем на всю ширину ячейки грида */
  height: 200px; /* Фиксируем высоту для ровной линии */
  object-fit: cover; /* Чтобы фото не сплющивалось */
  display: block;
}

.tour-contents {
  width: 100%;
  padding: 50px 0;
  background-color: var(--alter_bg);
}

.tour-contents p,
ul {
  padding: 15px;
  color: var(--gray_text);
  font-size: 18px;
}
.tour-content__2 {
  padding: 15px;
}

.tour-content__6 p {
  color: var(--white_text);
  font-size: 40px;
}

.tour-contents h3 {
  color: var(--gray_text);
  font-size: 22px;
  font-weight: 800;
  padding-left: 15px;
  padding-top: 15px;
}

.tour-content__2 h3 {
  padding: 0px;
  margin-bottom: 10px;
}

.tour-content__6 h3 {
  color: var(--white_text);
}

h3.tour-title {
    color:var(--black_text);
}

/* Контейнер списка */
.details-list {
  list-style: none;
  padding: 0;
  margin: 0 0 30px 0;
}

/* Строка элемента */
.details-item {
  display: flex;
  align-items: center; /* Центрирует иконку по вертикали относительно текста */
  gap: 15px; /* Расстояние между иконкой и текстом */
  margin-bottom: 12px;
}

/* Зона иконки */
.details-item__icon {
  flex-shrink: 0; /* Запрещает иконке сжиматься */
  width: 40px; /* Фиксированная ширина зоны иконки */
  display: flex;
  justify-content: center;
}

.details-item__icon img {
  width: 32px; /* Размер самой иконки */
  height: auto;
  display: block;
}

/* Зона текста */
.details-item__text {
  flex-grow: 1;
  line-height: 1.4; /* Комфортное межстрочное расстояние */
  font-size: 16px;
}

.details-item::last-child .itinerary {
  padding-top: 50px;
  padding-bottom: 50px;
  background-color: var(--alter_bg);
  color: var(--black_text);
}

.tour-days {
  position: relative;
  display: flex;
  gap: 10px;
  border-bottom: 2px solid #044f4b;

  /* Резервируем место под контент снизу (высота самого длинного блока) */
  padding-bottom: 400px;
}

/* Стилизуем заголовок (кнопку вкладки) */
.tour-days summary {
  list-style: none; /* Убираем стандартную стрелочку */
  padding: 10px 25px;
  background: #f0f0f0;
  cursor: pointer;
  border-radius: 8px 8px 0 0;
  font-weight: bold;
  transition: 0.3s;
}

/* Убираем стрелочку в Safari */
.tour-days summary::-webkit-details-marker {
  display: none;
}

/* Стиль активной вкладки */
details[open] summary {
  background: #044f4b;
  color: white;
}

/* Позиционируем контент под всеми вкладками */
.day-content {
  position: absolute;
  left: 0;
  right: 0;
  top: 45px; /* Высота строки с summary */
  display: grid;
  grid-template-columns: 1fr 2fr; /* Фото слева, текст справа */
  gap: 30px;
  padding: 20px 0;
}

.day-content img {
  width: 350px;
  height: 350px;
  border-radius: 10px;
  object-fit: cover;
}

.day-info p,
ul,
li {
  color: var(--black_text);
}

.day-info li {
  list-style: disc;
}

.day-info h3 {
  color: var(--main_color);
  font-size: 20px;
}

.tour-contents > .wrapper {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(10, minmax(50px, auto));
  gap: 15px;
  width: 1200px;
}

.tour-contents__foto {
  grid-column: span 3;
  grid-row: span 10;
  background-color: var(--white_text);
  border-radius: 10px;
}

.tour-content__2 {
  grid-column: span 3;
  grid-row: span 10;
  background-color: var(--white_text);
  border-radius: 10px;
}

.tour-content__3 {
  grid-column: span 2;
  grid-row: span 2;
  background-color: var(--white_text);
  border-radius: 10px;
}

.tour-content__4 {
  grid-column: span 2;
  grid-row: span 3;
  background-color: var(--white_text);
  border-radius: 10px;
}

.tour-content__5 {
  grid-column: span 2;
  grid-row: span 2;
  background-color: var(--white_text);
  border-radius: 10px;
}

.tour-content__6 {
  grid-column: span 2;
  grid-row: span 3;
  background-color: var(--main_color);
  border-radius: 10px;
}

.tour-contents__foto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 10px;
}

.our-tours {
  width: 100%;
  padding: 50px 0;
}

.our-tours h2 {
  text-align: center;
  color: var(--main_color);
  text-transform: uppercase;
}

.our-tours__cards {
  margin-top: 50px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 50px;
}

.tour-card {
  background-color: var(--white_text);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  color: var(--black_text);
  position: relative;
}

.tour-image {
  width: 100%;
  height: 350px;
  object-fit: cover;
  object-position: center;
}

.tour-card h3 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 20px;
  font-size: 20px;
  font-weight: 700;
}

.tour-card h3::after {
  content: "";

  width: 24px;
  height: 24px;

  background-image: url("assets/arrow.svg");
  background-size: contain;
  background-repeat: no-repeat;

  vertical-align: middle;
  transform: rotate(45deg);
}

ul.tour-dates {
  font-size: 13px;
  padding: 0 20px 20px;
}

.tour-price {
  position: absolute;
  bottom: 20px;
  right: 20px;
  text-align: right;

  color: var(--gray_text);

  font-size: 15px;
  font-weight: 600;
}

.contacts {
  width: 100%;
  min-height: 500px;
  padding: 50px 0;
  background-image:
    linear-gradient(to top, #044f4b 0%, #044f4b 5%, transparent 20%),
    linear-gradient(
      to bottom,
      var(--white_text) 0%,
      var(--white_text) 5%,
      transparent 20%
    ),
    url("assets/bg-footer.png");
  background-size: cover;
  background-position: bottom;
}
.contacts h2 {
  color: var(--main_color);
  text-transform: uppercase;
}

.contacts > .wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
}

/* Убираем влияние служебных оболочек CF7 на верстку */
.contacts__form .wpcf7-form-control-wrap {
  display: block; /* Или inline-block, если поля идут в ряд */
  width: 100%;
}

/* Стили для статусных сообщений (успех/ошибка), чтобы они не ломали футер */
.wpcf7-response-output {
  margin: 10px 0 0 !important;
  padding: 10px !important;
  font-size: 14px;
  border-radius: 4px;
  border: 1px solid transparent !important;
}

.wpcf7-mail-sent-ok {
  border-color: #398f14 !important;
  color: #398f14;
}
.wpcf7-validation-errors {
  border-color: #ff0000 !important;
  color: #ff0000;
}

/* Применяем грид к самой форме, которую генерирует плагин */
.contacts__form .wpcf7-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  padding: 50px;
  background-color: var(--white_text);
  height: 100%;
  margin-bottom: 50px;
}

/* Растягиваем обертки (теперь они — элементы грида) */
/* nth-child(5) — скидка, (6) — опыт, (7) — спорт, (8) — комментарий, (10) — кнопка */
/* Индексы могут чуть сдвинуться из-за скрытых полей, поэтому используем более надежный подход: */

.contacts__form .wpcf7-form-control-wrap {
  display: block;
}

/* Поля, которые должны быть на всю ширину */
.contacts__form .wpcf7-form-control-wrap:nth-of-type(n + 6),
.contacts__form button {
  grid-column: span 2;
}

/* Стили для самих полей ввода внутри оберток */
.contacts__form input,
.contacts__form textarea {
  width: 100%; /* Обязательно, чтобы инпут заполнил свою колонку грида */
  padding: 10px;
  border: 1px solid var(--gray_text);
  border-radius: 5px;
  box-sizing: border-box; /* Чтобы паддинги не раздували ширину */
}

/* Кнопка */
.contacts__form button {
  background-color: var(--accent_color);
  color: var(--white_text);
  font-size: 18px;
  font-weight: 500;
  border-radius: 5px;
  padding: 15px 40px;
  cursor: pointer;
  border: none;
  transition: all 0.3s ease;
}

.contacts__form button:hover {
  box-shadow: 0px 4px 10px rgba(229, 93, 69, 0.5);
}

/* Скрываем пустые контейнеры, которые WP иногда вставляет */
.wpcf7-form-control-wrap:empty {
  display: none;
}

.footer {
  width: 100%;
  padding: 20px 0;
  background-color: var(--main_color);
  color: var(--white_text);
  text-align: center;
}
.footer > .wrapper {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
}

.footer > .wrapper p {
  font-size: 16px;
  padding-bottom: 10px;
}

.footer__logos {
  display: grid;
  grid-template-columns: 1fr, 1fr;
}

.footer__logos img.footer-logo {
  grid-column: span 2;
  width: 250px;
}

img.secondary-logo {
  width: 120px;
  height: 120px;
  object-fit: contain;
}

@media (max-width: 1280px) {
  .wrapper {
    width: 90%;
    margin: 0 auto;
  }

  .hero__slogan h1 {
    font-size: 70px;
    padding-bottom: 40px;
  }

  .story > .wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px;
  }

  .our-tours__cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px;
  }

  .contacts > .wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .contacts__form form {
    padding: 20px;
  }
  .contacts__form form input {
    padding: 5px;
  }
  .footer__logos img.footer-logo {
    width: 150px;
  }
}

@media (max-width: 768px) {
  .wrapper {
    max-width: 90%;
  }

  .main-nav {
    padding-bottom: 0;
  }

  .burger {
    display: block;
    z-index: 10000;
  }

  #desktop {
    display: none;
  }

  #mobile {
    position: fixed;
    top: 0;
    right: -100%; /* Спрятано за экраном справа */
    width: 250px;
    height: 100vh;
    background: var(--white_text); /* Или твой цвет фона */
    padding: 80px 40px;
    transition: 0.4s;
    margin: 0; /* Сбрасываем твои десктопные маржины */
    display: flex;
    flex-direction: column;
    gap: 30px;
    z-index: 10;
  }

  #mobile.active {
    right: 0; /* Выезжает */
  }

  .nav-links > ul {
    flex-direction: column; /* Пункты в столбик */
    gap: 20px;
    padding: 0;
  }

  .nav-links > ul > li {
    margin-right: 0; /* Сброс десктопного отступа */
    padding-top: 0;
  }

  .main-nav__cta a {
    padding: 10px 20px;
    font-size: 16px;
    margin-right: 50px;
  }

  .hero__slogan,
  .hero-tour__slogan {
    padding-top: 100px;
  }

  .hero__slogan h1 {
    font-size: 50px;
    padding-bottom: 40px;
  }

  .hero-tour__slogan h1 {
    font-size: 30px;
    padding-bottom: 40px;
  }

  .description > .wrapper {
    display: flex;
    flex-direction: column;
  }

  .story > .wrapper {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .story__image {
    order: -1; /* Перемещаем изображение вверх */
    margin-bottom: 20px; /* Добавляем отступ между изображением и текстом */
  }

  .our-tours__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .tour-contents > .wrapper {
    display: flex;
    flex-direction: column;
  }

  .tour-contents__foto {
    display: none;
  }

  .tour-days {
    display: block;
    border-bottom: none;
    padding-bottom: 0; /* Убираем резерв высоты */
  }

  /* Растягиваем заголовки на всю ширину и добавляем отступы */
  .tour-days summary {
    display: block;
    width: 100%;
    border-radius: 4px; /* Закругляем со всех сторон */
    margin-bottom: 5px;
    box-sizing: border-box;
  }

  /* Сбрасываем абсолютное позиционирование контента */
  .day-content {
    position: static; /* Теперь контент "расталкивает" блоки вниз */
    display: flex; /* На мобильных лучше колонкой, чем гридом */
    flex-direction: column;
    gap: 15px;
    padding: 15px 10px 30px;
  }

  .day-content img {
    width: 100%; /* Картинка на всю ширину */
    height: 250px; /* Уменьшаем высоту для экономии места */
  }

  /* Дополнительно: можно вернуть стрелочку, чтобы было понятно, что это аккордеон */
  .tour-days summary::after {
    content: "+";
    float: right;
    font-weight: normal;
  }

  details[open] summary::after {
    content: "−";
  }

  .contacts__form .wpcf7-form {
    grid-template-columns: 1fr;
  }

  .contacts__form .wpcf7-form-control-wrap:nth-of-type(n + 6),
  .contacts__form button {
    grid-column: span 1;
  }

  .footer > .wrapper {
    flex-direction: column;
    gap: 20px;
  }
}
