html {
  margin: 0;
  padding: 0;
}

body {
  font-family: 'Cormorant Garamond', serif;
  background-image: url('p2.jpg'); /* Фон для десктопа */
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: #333;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  transition: opacity 1s ease;
}


/* Фон для мобильных устройств */

@media (max-width: 768px) {
  body {
    background-image: none !important; /* Убираем фон body, используем псевдоэлемент */
    background-attachment: scroll;
    position: relative;
  }
  
  /* Создаем псевдоэлемент для фона с эффектами, как на заставке */
  body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('p2.jpg');
    background-size: cover;
    background-position: center center;
    background-attachment: scroll;
    background-repeat: no-repeat;
    filter: blur(3px) brightness(0.9);
    z-index: -1;
  }
  .card {

background-color: rgba(248, 247, 243, 1);

backdrop-filter: blur(4px);

max-width: 600px;

padding: 60px 40px;

/* margin: 40px 0;

border-radius: 12px; */

box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);

}
  .accent-primary {
    font-size: clamp(26px, 7.5vw, 38px); /* Адаптивный размер для мобильных */
  }
  
  h1.accent-primary,
  h1.accent-primary.accent-ru { /* Применяем к заголовкам с классами accent-primary и accent-ru */
    font-size: 50px !important; /* Фиксированный размер шрифта для мобильных по запросу */
    white-space: nowrap !important; /* Предотвращаем перенос строки */
    letter-spacing: 0.015em !important; /* Немного уменьшили межбуквенное расстояние, чтобы текст оставался в одну строку */
  }
}

.card {
  background-color: rgba(248, 247, 243, 0.85);
  backdrop-filter: blur(4px);
  max-width: 600px;
  width: 90%; /* Ширина, чтобы не прилипало к краям */
  margin-left: auto;
  margin-right: auto; /* Автоматическое центрирование */
  padding: 40px 40px;
  
  /* Верхний/нижний отступы для десктопа */
  margin-top: 0px; 
  margin-bottom: 0px; 
  
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}



h1, h2, h3, p {
  text-align: center;
  margin: 0;
}

h1 {
  font-family: 'Lora', serif;
  font-size: 28px;
  letter-spacing: 1px;
}

#special-heading {
  font-size: 40px;
}

h2 {
  font-size: 24px;
  margin-top: 10px;
  font-weight: normal;
  font-style: italic;
}

h3 {
  font-size: 20px;
  margin-top: 8px;
  margin-bottom: 15px;
  font-weight: bold;
  letter-spacing: 0.5px;
  color: #333;
}

.section {
  margin-top: 20px;
  
}

.image-section img {

width: 100%;

border-radius: 12px;

margin: 10px 0;

}

.text-section {
  text-align: center;
  line-height: 1.4;
  font-size: 18px;
  margin-bottom: 10px;
}

.text-section-second {
  text-align: center;
  line-height: 1.4;
  font-size: 16px;
  margin-top: 40px;
}

/* только этот абзац "Если предложенные варианты вам не подходят..." по ширине на всех экранах */
.accommodation-note {
  text-align: justify;
}

.signature {
  font-family: 'Dancing Script', cursive;
  font-size: 28px;
  letter-spacing: 1px;
  color: #4a4a4a;
  margin-top: 5px;
}

/* Исправленные дефисы — были не-ASCII */
.accent-secondary {
  font-family: 'Dancing Script', cursive;
  font-size: 26px;
  color: #292800;
}

.accent-primary {
  font-family: 'Dancing Script', cursive;
  font-size: 60px; /* Размер для десктопа */
  color: #364023;;
}

/* Медиазапрос для мобильных устройств */



.accent-text {
  font-family: 'Dancing Script', cursive;
  font-size: 22px;
  color: #333333;
}
.accent-big {
  font-family: 'Dancing Script', cursive;
  font-size: 24px;
  color: #364023;
}

/* Русский вариант акцентного шрифта */
.accent-ru {
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.gallery {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  margin-top: 20px;
}

.gallery img {
  width: 32%;
  border-radius: 12px;
}

.divider {
  border: none;
  border-top: 1px solid #d9d9d9;
  margin: 20px 0;
}

/* ===== ЗАСТАВКА (Secret Garden intro) ===== */
.intro-screen {
  position: fixed;
  display: none;
  inset: 0;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  z-index: 9999;
  transition: opacity 1s ease, visibility 1s ease;
}

/* Фон — отдельный слой */
.intro-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: url('p2.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: blur(3px) brightness(0.9); /* лёгкое размытие и затемнение */
  transform: scale(1.05); /* чуть больше, чтобы не было краёв */
  transition: background-size 1s ease, background-position 1s ease, transform 1s ease, filter 1s ease;
}

/* На мобильных устройствах центрируем фон с кнопкой */
@media (max-width: 768px) {
  .intro-bg {
    background-size: cover;
    background-position: center center;
    transform: scale(1);
    /* Убеждаемся, что фон центрирован относительно кнопки */
    background-attachment: scroll;
  }
  
  /* Дополнительная настройка для лучшего центрирования на мобильных */
  .intro-screen {
    background-position: center center;
  }
}

/* Плавное заполнение страницы при клике */
.intro-screen.fade-out .intro-bg {
  background-size: cover !important;
  background-position: center center !important;
  transform: scale(1) !important;
  filter: blur(0px) brightness(1) !important; /* Убираем размытие при переходе */
}

/* На мобильных устройствах сохраняем фон таким же, как на заставке */
@media (max-width: 768px) {
  /* На мобильных не меняем фон заставки при fade-out, чтобы он оставался таким же */
  .intro-screen.fade-out .intro-bg {
    background-size: cover !important;
    background-position: center center !important;
    transform: scale(1) !important;
    /* На мобильных сохраняем исходные параметры фона заставки */
    filter: blur(3px) brightness(0.9) !important;
  }
}

/* Полупрозрачная вуаль сверху для мягкости */
.intro-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.4);
  z-index: 1;
}

/* Контент */
.intro-content {
  position: relative;
  z-index: 2;
  text-align: center;
  color: #3a4a3a;
}

.intro-title {
  font-family: "Playfair Display", serif;
  font-size: 48px;
  margin-bottom: 20px;
  letter-spacing: 2px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: fadeIn 2s ease;
}

.intro-button {
  background-color: #c7dfc1;
  border: none;
  border-radius: 40px;
  padding: 14px 32px;
  font-size: 18px;
  margin-top: 20px;
  color: #3a4a3a;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.intro-button:hover {
  background-color: #b4d0b0;
  transform: scale(1.05);
}

/* Исчезновение заставки */
.intro-screen.fade-out {
  opacity: 0;
  visibility: hidden;
}



.intro-title,
.intro-button {
  position: relative; /* чтобы быть выше слоя-покрытия */
  z-index: 1;
}

.intro-title {
  font-family: "Playfair Display", serif;
  font-size: 48px;
  color: #3a4a3a;
  margin-bottom: 20px;
  letter-spacing: 2px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: fadeIn 2s ease;
}

.intro-button {
  background-color: #c7dfc1;
  border: none;
  border-radius: 40px;
  padding: 14px 32px;
  font-size: 18px;
  color: #3a4a3a;
  cursor: pointer;
  transition: background-color 0.3s ease, transform 0.2s ease;
}

.intro-button:hover {
  background-color: #b4d0b0;
  transform: scale(1.05);
}

/* Плавное исчезновение заставки */
.intro-screen.fade-out {
  opacity: 0;
  visibility: hidden;
}

/* Плавное появление основного контента */
#main-content {
  opacity: 0;
  transition: opacity 1s ease;
  will-change: opacity; /* Оптимизация для мобильных устройств */
}

#main-content.visible {
  opacity: 1;
}

/* Анимация появления */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Скрытый контент до открытия */
.hidden {
  display: none;
  opacity: 0;
  transition: opacity 1s ease;
}
/* --- Стили для Мобильных устройств (по умолчанию) --- */

/* --- Стили для всех экранов (Мобильный по умолчанию) --- */

/* ================================================= */
/* 📱 МОБИЛЬНЫЙ ВИД (По умолчанию): Текст/Картинки в Столбик, Картинки в Ряд */
/* ================================================= */

.dress-code-section {
    display: flex;
    /* Основное направление: Текст Сверху, Картинки Снизу */
    flex-direction: column; 
    width: 100%;
    /* Добавьте отступы (padding) по бокам, если нужно */
}

.dress-code-content {
    width: 100%; /* Текст занимает всю ширину */
    /* Добавьте необходимые отступы */
}

/* Контейнер для картинок */
.dress-code-image {
    width: 100%; 
     /* Отступ от текстового блока */
}


.living-section {
    display: flex;
    text-align: left;
    /* Основное направление: Текст Сверху, Картинки Снизу */
    flex-direction: column; 
    width: 100%;
    /* Добавьте отступы (padding) по бокам, если нужно */
}

.living-content {
    width: 100%; /* Текст занимает всю ширину */
text-align: left !important;
    /* Добавьте необходимые отступы */
}

/* Контейнер для картинок */
.living-image {
    width: 100%; 
    margin-left: 0; /* Отступ от текстового блока */
}

.living-section-second {
    display: flex;
    text-align: left;
    margin-top: 20px; 
    /* Основное направление: Текст Сверху, Картинки Снизу */
    flex-direction: column;
    width: 100%;
    /* Добавьте отступы (padding) по бокам, если нужно */
}

.living-content-second {
    width: 100%; /* Текст занимает всю ширину */
text-align: left !important;
    /* Добавьте необходимые отступы */
}

/* Контейнер для картинок */
.living-image-second {
    width: 100%; 
    margin-left: 0; /* Отступ от текстового блока */
}

/* Внутренний контейнер для управления расположением картинок */
.scroll-wrapper { 
    display: flex;
    margin-top: 30px;
    /* Расположение картинок: В РЯД (горизонтально) */
    flex-direction: row; 
    gap: 10px; /* Небольшой отступ между картинками */
    width: 100%;
}

.scroll-wrapper img {
    /* Каждая картинка занимает 50% ширины контейнера */
    width: calc(50% - 5px);
    height: auto;
    object-fit: cover; /* Заполняет 50% контейнера, возможны небольшие обрезки, чтобы избежать пустого места */
    display: block;
border-radius: 12px;

}

/* ================================================= */
/* 💻 ДЕСКТОПНЫЙ ВИД (min-width: 768px): Текст Слева, Картинки Столбиком Справа */
/* ================================================= */

@media (min-width: 768px) {
    .dress-code-section {
        /* Основное направление: Текст Слева, Картинки Справа */
        flex-direction: row; 
        align-items: flex-start; /* Выравнивание по верхнему краю */
        gap: 20px; /* Отступ между текстовым и графическим блоками */
    }

    .dress-code-content {
        /* Текст занимает левую половину */
        width: 50%;
        /* Уберите лишние отступы, если были на мобильном */
    }

    .dress-code-image {
        /* Блок картинок занимает правую половину */
        width: 50%;
        margin-top: 0; /* Убираем верхний отступ */
    }

    .scroll-wrapper {
        /* Расположение картинок: СТОЛБИКОМ (вертикально) */
        flex-direction: column; 
        
        gap: 15px; /* Отступ между вертикальными картинками */
        width: 100%;
    }
    
    .scroll-wrapper img {
        /* Каждая картинка занимает 100% ширины своего 50% блока */
        width: 100%; 
        border-radius: 12px;
    }
}

@media (min-width: 768px) {
    .living-section {
        /* Основное направление: Текст Слева, Картинки Справа */
        flex-direction: row; 
        align-items: flex-start; /* Выравнивание по верхнему краю */
        gap: 20px; /* Отступ между текстовым и графическим блоками */
    }

    .living-content {
        /* Текст занимает левую половину */
        width: 50%;
        text-align: left;
        /* Уберите лишние отступы, если были на мобильном */
    }

    .living-image {
        /* Блок картинок занимает правую половину */
        width: 50%;
        margin: 0 0 0 10px; /* Убираем верхний отступ */
    }

    .scroll-wrapper {
        /* Расположение картинок: СТОЛБИКОМ (вертикально) */
        flex-direction: column; 
      
        gap: 15px; /* Отступ между вертикальными картинками */
        width: 100%;
    }
    
    .scroll-wrapper img {
        /* Каждая картинка занимает 100% ширины своего 50% блока */
        width: 100%; 
        border-radius: 12px;
    }
}

@media (min-width: 768px) {
    .living-section-second {
        /* Основное направление: Текст Слева, Картинки Справа */
        flex-direction: row-reverse;
        align-items: flex-start; /* Выравнивание по верхнему краю */
        gap: 20px; /* Отступ между текстовым и графическим блоками */
    }

    .living-content-second {
        /* Текст занимает левую половину */
        width: 50%;
        text-align: left;
        /* Уберите лишние отступы, если были на мобильном */
    }

    .living-image-second {
        /* Блок картинок занимает правую половину */
        width: 50%;
        margin: 0 0 0 0px; /* Убираем верхний отступ */
    }

    .scroll-wrapper {
        /* Расположение картинок: СТОЛБИКОМ (вертикально) */
        flex-direction: column; 
        gap: 15px; /* Отступ между вертикальными картинками */
        width: 100%;
    }
    
    .scroll-wrapper img {
        /* Каждая картинка занимает 100% ширины своего 50% блока */
        width: 100%; 
        border-radius: 12px;
    }
}

/* Основной вид ссылки */
.no-style-link {
    color: inherit; /* Наследует цвет от родителя */
     /* Убирает подчеркивание */
    cursor: pointer; /* Сохраняет указатель как руку, чтобы было понятно, что это кликабельно */
}

/* При наведении курсора */
.no-style-link:hover {
    color: inherit; /* Сохраняет цвет при наведении */
    /* Опционально: можно добавить легкое подчеркивание, чтобы указать интерактивность */
    /* text-decoration: underline; */ 
}

/* После посещения */
.no-style-link:visited {
    color: inherit; /* Сохраняет цвет даже после клика */
}
.visual-option {
    display: flex; /* Активируем Flexbox для расположения в ряд */
    align-items: center; /* Выравнивание по вертикали по центру */
    gap: 30px; /* Расстояние между текстом и картинкой */
    margin-bottom: 40px;
}

.option-content,
.option-media {
    flex: 1; /* Обе части занимают равное пространство */
    min-width: 0; /* Для корректной работы Flexbox */
}

/* Для первого блока (текст слева, картинка справа) */
.layout-text-left .option-content {
    order: 1; 
}
.layout-text-left .option-media {
    order: 2;
}

/* Для второго блока (картинка слева, текст справа) */
.layout-image-left .option-media {
    order: 1;
}
.layout-image-left .option-content {
    order: 2;
}

/* Стилизация placeholder для изображения */
[class*="Image of"] {
    display: block;
    width: 100%;
    /* Добавьте высоту, чтобы зарезервировать место */
    min-height: 250px; 
    background-color: #f0f0f0;
    border: 1px solid #ccc;
    text-align: center;
    line-height: 250px;
    font-style: italic;
    color: #888;
}

/* Адаптивность: на маленьких экранах показываем элементы друг под другом */
@media (max-width: 768px) {
    .visual-option {
        flex-direction: column;
    }
    .visual-option .option-content,
    .visual-option .option-media {
        order: unset !important; /* Сбрасываем порядок для мобильных */
    }
}
/* Общие стили для секций с изображениями */
.accommodation-option.visual-option {
    display: flex;
    text-align: left;
    align-items: flex-start; /* Выравнивание элементов по верху */
    margin-top: 80px;
    flex-wrap: wrap; /* Чтобы элементы переносились на новую строку на маленьких экранах */
}

.accommodation-option.option-content {
    flex: 2; /* Контент занимает больше места */
    min-width: 300px; /* Минимальная ширина для контента */
}

.accommodation-option .option-media-group {
    flex: 1; /* Группа изображений занимает оставшееся место */
    display: flex;
    flex-direction: column; /* Изображения внутри группы располагаются друг над другом */
    gap: 20px; /* Расстояние между двумя изображениями */
    min-width: 200px; /* Минимальная ширина для группы изображений */
}

.option-media img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    object-fit: cover; /* Чтобы изображения обрезались, но сохраняли пропорции, заполняя контейнер */
}

/* Условный тег для изображения (placeholder) */
[class*="Image of"] {
    display: block;
    width: 100%;
    min-height: 200px; /* Уменьшим высоту для двух картинок */
    background-color: #f0f0f0;
    border: 1px solid #ccc;
    text-align: center;
    line-height: 200px; /* Центрирование текста */
    font-style: italic;
    color: #888;
    border-radius: 8px;
}


/* Стили для первого блока: текст слева, картинки справа */
.layout-text-right-media {
    flex-direction: row; /* По умолчанию */
}
/* На мобильных устройствах, чтобы картинки были над текстом */
@media (max-width: 768px) {
    .layout-text-right-media .option-media-group {
        order: -1; /* Перемещаем картинки вверх */
    }
}


/* Стили для второго блока: картинки слева, текст справа */
.layout-left-media-text {
    flex-direction: row-reverse; /* Меняем порядок: медиа слева, контент справа */
}
/* На мобильных устройствах, чтобы картинки были над текстом */
@media (max-width: 768px) {
    .layout-left-media-text {
        flex-direction: column; /* Снова меняем на колонку */
    }
    .layout-left-media-text .option-media-group {
        order: -1; /* Перемещаем картинки вверх */
    }
}

/* Общий сброс порядка на мобильных, если Flexbox не используется для конкретного элемента */
@media (max-width: 768px) {
    .accommodation-option.visual-option {
        flex-direction: column;
        margin-top: 80px;
        align-items: stretch; /* Растягиваем элементы на всю ширину */
    }
    .accommodation-option .option-content,
    .accommodation-option .option-media-group {
        flex: auto; /* Сбрасываем Flex Grow */
        min-width: unset; /* Сбрасываем минимальную ширину */
    }
}
/* ================================================= */
/* 💌 Секция RSVP (Подтверждение Присутствия) */
/* ================================================= */

.rsvp-section {
    /* Добавляем немного дополнительного отступа сверху, чтобы отделить от предыдущей секции */
    margin-top: 40px; 
}

/* Стиль для блока-цитаты (Accent Note), который будет использоваться для примечаний */
.accent-note {
    background-color: rgba(230, 230, 220, 0.7); /* Светлый, мягкий фон */
    border-left: 5px solid #292800;
    border-right: 5px solid #292800; /* Тонкая полоса сбоку, в цвет, близкий к вашему стилю */
    padding: 15px 20px;
    margin: 20px auto;
    border-radius: 6px;
    max-width: 90%; /* Ограничение ширины для лучшей читаемости */
    text-align: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.accent-note p {
    font-style: italic;
    font-size: 16px;
    line-height: 1.4;
    color: #4a4a4a;
    margin: 0;
}

/* Адаптивность для мобильных: */
@media (max-width: 768px) {
    .accent-note {
        padding: 15px;
        margin: 20px auto;
    }
}
/* ================================================= */
/* ✨ Визуальный Разделитель (Узкий Блок с Картинкой 50px) */
/* ================================================= */

.visual-divider {
    /* Ограничиваем максимальную высоту контейнера */
    max-height: 190px; 
    /* Добавляем небольшой отступ, чтобы разделить от контента */
    margin: 30px 0; 
    /* Скрываем все, что выходит за границы 50px */
    overflow: hidden; 
    /* Гарантируем, что контейнер занимает всю доступную ширину card */
    width: 100%; 
 
    object-fit: cover;
     object-position: center;
    border-radius: 12px; /* Центрирование изображения, если оно уже контейнера */
}

.visual-divider img {
    /* Изображение будет занимать всю ширину контейнера card */
    width: 100%;
    /* Высота устанавливается автоматически, чтобы сохранить пропорции.
       Если исходное изображение 1200x50px, оно будет идеально вписываться.
       Если исходное изображение выше, оно будет обрезано по высоте 50px контейнера (из-за overflow: hidden). 
    */
    height: auto; 
    display: block;
    /* Убираем округление, если оно не нужно для разделителя */
    border-radius: 12px; 
}

/* Адаптивность: на мобильных устройствах сохраняем тот же вид */
@media (max-width: 768px) {
    .visual-divider {
        margin: 20px 0;
    }
}
/* Стили для секции "Пожелания" (Добавьте в конец style.css) */
.wishes-section {
    /* Используем стандартный отступ секции */
    margin-top: 40px; 
}

/* Сбрасываем наследованный курсив внутри секции пожеланий */
.wishes-section,
.wishes-section p,
.wishes-section .accent-text,
.wishes-section strong {
    font-style: normal;
}

/* Убеждаемся, что отступы между пунктами в списке пожеланий корректны */
.wishes-list {
    margin-top: 10px;
}

.wishes-item {
    /* Добавляет немного вертикального пространства между пунктами */
    margin-bottom: 15px; 
    line-height: 1.5;
    text-align: left; /* Важно: восстанавливаем выравнивание по левому краю */
}

.wishes-item p {
    text-align: left !important; /* Переопределяем центральное выравнивание */
    font-size: 18px; /* Используем основной размер текста */
}

.wishes-item strong {
    font-weight: 700;
}

/* Стили для акцентного текста (который выводится курсивом) */
.wishes-item .accent-text {
    /* Убедимся, что акцентный текст заметен */
    font-weight: bold;
    display: block; /* Выводит акцент как заголовок пункта, отделяя его от основного текста */
}

/* Секция "Программа дня" — все абзацы 18px */
.program-day p {
  font-size: 18px;
}
/* Секция с картинкой на фоне и текстом */
.image-text-overlay-section {
    /* Компенсируем левый и правый padding родительского .card (который равен 40px) */
    margin-left: -40px; 
    margin-right: -40px;
    
    /* Добавляем вертикальные отступы для разделения контента */
    margin-top: 40px; 
    margin-bottom: 40px;
    
    /* Занимаем 100% ширины, плюс 40px*2 = 80px, что компенсируется отрицательными маржинами */
    width: auto; 
    box-sizing: border-box; 
    position: relative; 
}

/* Оболочка для изображения и текста поверх */
.overlay-image-wrapper {
    position: relative;
    width: 100%;
    /* Удаляем border-radius, чтобы не было закруглений на краях картинки */
    overflow: hidden; 
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); 
}

.overlay-background-image {
    width: 100%;
    
    object-fit: cover; 
    display: block; 
    filter: brightness(0.7); 
}

.overlay-text-content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    justify-content: center;
    display: column;
    
    align-items: center;
    text-align: center;
    box-sizing: border-box;
}

.overlay-text {
  font-family: 'Dancing Script', cursive; 
    margin-top: 20px;
    font-size: 40px; 
    color: rgba(248, 247, 243, 0.7); 
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); 
    margin: 0; 
}

/* --- Адаптация для мобильных устройств --- */
@media (max-width: 768px) {
    /* На мобильных .card имеет отступ 25px, а не 40px */
    .card {
        padding: 25px 25px !important; /* Наследование из вашего CSS */
    }
    
    .image-text-overlay-section {
        /* Компенсируем 25px на мобильных */
        margin-left: -25px; 
        margin-right: -25px;
        margin-top: 30px; 
        margin-bottom: 30px;
    }

    .overlay-background-image {
        height: 200px; 
    }
    .overlay-text {
        font-size: 1.8em; 
    }
}
/* ================================================= */
/* 🏃‍♂️ СТИЛИ ДЛЯ БЕГУЩЕЙ СТРОКИ (STANDALONE) */
/* ================================================= */

.marquee-container-standalone {
    /* Фиксированная ширина и высота */
    width: 680px; /* Должна быть равна max-width .card */
    height: 40px; 
    
    /* Центрируем блок */
    margin: 0px auto 0; 
    
    background-color: #7e8c69; /* Цвет фона */
    overflow: hidden; 
    z-index: 10;
    
    /* Копируем закругление углов, если оно было бы у карточки */
    /* border-top-left-radius: 12px;
    border-top-right-radius: 12px; */
    
    /* Добавляем тень, чтобы она выглядела как часть карточки */
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); 
}

.marquee-text-standalone {
    white-space: nowrap; 
    line-height: 40px; 
    font-family: 'Cormorant Garamond', serif;
    font-size: 16px;
    font-weight: 700;
    color: rgba(248, 247, 243, 0.8); 
    
    animation: scroll-text-standalone 20s linear infinite; 
    width: fit-content;
}

/* Определяем ключевые кадры анимации */
@keyframes scroll-text-standalone {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%); 
    }
}
/* =================
   FIX: центрирование .card на мобильных
   Добавь это в самый конец style.css
   ================= */

/* защита от горизонтального скролла */
html, body {
  width: 100%;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  box-sizing: border-box;
}

/* специфично для мобильных (макс. ширина 768px) */
@media (max-width: 768px) {

  /* отменяем flex-центровку у body на мобильных (она дает смещение) */
  body {
    display: block !important;
    padding: 0;
    margin: 0;
    overflow-x: hidden;
    min-width: 0;
  }

  /* главный контейнер страницы: гарантируем, что контент не прилипает и центрируется */
  #main-content {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 12px; /* чтобы не прилипало к краям экрана */
    box-sizing: border-box;
  }

  /* карточка: ширина, паддинг и центрирование */
  .card {
    width: 95% !important;
    max-width: 600px;
    margin: 0 auto !important;
    padding: 25px !important; /* уменьшенный padding для мобильных */
    box-sizing: border-box !important;
    margin-top: 0 !important; /* убираем негативный margin-top на мобильных */
    background-clip: padding-box; /* чтобы фон не вылезал за скругления */
  }

  /* бегущая строка — не фиксируем ширину, делаем адаптивной */
  .marquee-container-standalone {
    width: 95% !important;
    max-width: 600px !important;
    margin: 0 auto;
    box-sizing: border-box;
  }

  /* фиксируем масштабирование картинок внутри сложных блоков */


  /* если где-то используются отрицательные margin'ы под .card — компенсируем */
  .image-text-overlay-section {
    margin-left: -25px !important;
    margin-right: -25px !important;
    box-sizing: border-box;
    overflow: hidden;
  }

  /* на всякий случай сбросим потенциальный перенос порядка у flex-элементов */
  .gallery, .scroll-wrapper, .visual-option, .accommodation-option {
    overflow-x: hidden;
    box-sizing: border-box;
  }
}
/* 1. Стили для десктопа (картинка справа) */
.contact-info-block {
    display: flex; /* Делаем элементы горизонтальными по умолчанию */
    justify-content: space-between;
    align-items: flex-start;
}

.contact-image-right {
    /* Добавьте необходимые стили для картинки на десктопе */
    margin-left: 20px; 
    /* Можете ограничить ширину картинки */
    /* width: 40%; */ 
}

.contact-image-right img {
    max-width: 100%;
    height: auto;
}

/* 2. Медиазапрос для мобильных устройств (картинка снизу) */
@media (max-width: 600px) {
    .contact-info-block {
        /* Меняем направление с ряда (row) на колонку (column) */
        flex-direction: column; 
        /* Центрируем элементы при необходимости */
        align-items: center; 
    }

    .contact-info-block .text-section {
        /* Убираем ограничения по ширине, чтобы текст занимал всю доступную ширину */
        width: 100%;
        text-align: center; /* Центрируем текст, если нужно */
    }

    .contact-image-right {
        /* Убираем отступ слева, который был для десктопа */
        display: none;
        margin-left: 0; 
        /* Добавляем отступ сверху, чтобы отделить от текста */
        margin-top: 15px; 
        /* Убеждаемся, что картинка центрирована */
        width: 100%; 
     
        
    }
}
/* --- ГАРАНТИЯ ПЛАВНОГО ПОЯВЛЕНИЯ --- */
/* Ставим в самом конце файла, чтобы избежать конфликтов. */

#main-content {
  /* Начальное состояние, пока не удален класс .hidden */
  opacity: 0 !important; 
  transition: opacity 1s ease !important;
  will-change: opacity !important; /* Оптимизация для мобильных устройств */
}

#main-content.visible {
  /* Конечное состояние после нажатия кнопки */
  opacity: 1 !important;
}

/* Переопределение всех 16px на 18px для мобильных устройств */
@media (max-width: 768px) {
  .text-section-second {
    font-size: 18px !important;
  }
  
  .accent-note p {
    font-size: 18px !important;
  }
  
  .marquee-text-standalone {
    font-size: 18px !important;
  }
  
  /* Переопределение инлайн-стилей с 16px для мобильных */
  p[style*="font-size: 16px"],
  span[style*="font-size: 16px"],
  em[style*="font-size: 16px"] {
    font-size: 18px !important;
  }

  /* Локация и трансфер: все абзацы 18px только на мобильном */
  #location-transfer p {
    font-size: 18px !important;
  }

  /* Описание Kiketi Farm: выравнивание текста по ширине только на мобильных */
  .kiketi-description {
    text-align: justify !important;
  }

  /* Проживание: все абзацы 18px только на мобильном */
  #accommodation p {
    font-size: 18px !important;
  }
}