* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root {
    --vh: 1vh; /* Значение по умолчанию для валидатора */
    --vw: 1vw; /* Значение по умолчанию для валидатора */
}
/* Адаптивные шрифты для всех экранов */
/* Адаптивные шрифты для всех экранов */
:root {
    --vh: 1vh;
    --vw: 1vw;
    /* Шрифты теперь зависят от --vh */
    --font-size-0_95: calc(0.95 * var(--vw)* 3.6);
    --font-size-1_05: calc(1.05 * var(--vw)* 3.6);
    --font-size-1_1: calc(1.1 * var(--vw)* 3.6);
    --font-size-1_2: calc(1.2 * var(--vw)* 3.6);
    --font-size-1_3: calc(1.3 * var(--vw)* 3.6);
    --font-size-1_4: calc(1.4 * var(--vw)* 3.6);
    --font-size-1_5: calc(1.5 * var(--vw)* 3.6);
    --font-size-1_6: calc(1.6 * var(--vw)* 3.6);
    --font-size-1_7: calc(1.7 * var(--vw)* 3.6);
    --font-size-1_8: calc(1.8 * var(--vw)* 3.6);
    --font-size-2_: calc(2 * var(--vw)* 3.6);
    --font-size-2_2: calc(2.2 * var(--vw)* 3.6);
    --font-size-2_3: calc(2.3 * var(--vw)* 3.6);
    --font-size-2_8: calc(2.8 * var(--vw)* 3.6);
    --font-size-3_2: calc(3.2 * var(--vw)* 3.6);
    --font-size-3_8: calc(3.8 * var(--vw)* 3.6);
}
img {
    -webkit-touch-callout: none; /* отключает меню на i-OS */
}

@font-face {
    font-family: 'MyWeddingFont';
    src: url('../fonts/ofont.ru_Makan Hati.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Marutya';
    src: url('../fonts/Marutya.ttf') format('truetype'),
            url('../fonts/Marutya.woff') format('woff'),
            url('../fonts/Marutya.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Aboreto';
    src: url('../fonts/Aboreto.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Vibes';
    src: url('../fonts/GreatVibes-Regular.ttf?v=1.0') format('truetype'),
            url('../fonts/GreatVibes-Regular.woff?v=1.0') format('woff'),
            url('../fonts/GreatVibes-Regular.woff2?v=1.0') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: block;
}

body {
    font-family: 'Marutya', Vibes, 'Dancing Script', cursive, sans-serif;
    background-color: rgb(251, 247, 238);
    color: #820000;
    line-height: 1.6;
    overflow-y: auto;
    min-height: 100vh;
    /*height:         lockViewport();
;*/
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    /*min-height: calc( min(var(--vh, 1vh) * 80));*/

    overflow-x: hidden !important;

}

/* Отключаем встроенный плавный скролл */
html {
    overflow-x: auto !important;
    width: 100%;
}
/* Блок для десктопа */
.desktop-only {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(251, 247, 238);
    z-index: 1000;
    font-family: Vibes, sans-serif;
}

.desktop-content {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    padding: 20px;
}

.desktop-message {
    text-align: center;
    max-width: 500px;
    background: rgba(251, 247, 238, 0.95);
    padding: 40px;
    border-radius: 20px;
    box-shadow: 0 5px 40px rgba(0, 0, 0, 0.2);
}

.desktop-message h1 {
    font-size: var(--font-size-3_2);
    color: #820000;
    margin-bottom: 20px;
    font-family: Marutya, serif;
}

.desktop-text {
    font-size: var(--font-size-1_8);
    color: #820000;
    margin-bottom: 30px;
    line-height: 1.6;
}

.qr-container {
    margin: 30px 0;
}

.qr-code {
    width: 350px;
    height: 350px;
    border-radius: 12px;
    /*background: white;*/
    padding: 10px;
    /*box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);*/
}

.qr-hint {
    font-size: var(--font-size-1_5);
    color: #820000;
    margin-top: 15px;
    font-weight: 500;
}

.phone-hint {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    color: #820000;
}

.phone-hint svg {
    width: 48px;
    height: 48px;
    color: #820000;
}

.phone-hint span {
    font-size: var(--font-size-1_5);
    font-weight: 500;
}

/* Показываем блок на десктопе */
@media (min-width: 600px) {
    .desktop-only {
        display: block;
    }

    body > *:not(.desktop-only) {
        display: none !important;
    }
}

/* На мобильных скрываем блок */
@media (max-width: 600px) {
    .desktop-only {
        display: none !important;
    }
}
/* Прогресс загрузки */
.loader-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(251, 247, 238);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.6s ease, visibility 0.6s ease;
    font-family: Marutya, serif;
}

.loader-heart {
    font-size: var(--font-size-3_8);
    position: absolute;
    height: 4%;
    top: 22%;
    color: #820000;
    animation: pulseLoader 1.5s ease-in-out infinite;
    margin-bottom: 20px;
}
.footer-heart {
    font-size: var(--font-size-3_8);
    position: relative;
    height: 4%;
    /*top: 22%;*/
    color: #820000;
    animation: pulseLoader 1.5s ease-in-out infinite;
    margin-bottom: 20px;
}
.loader-heart-img
{
    height: 100%;
}

@keyframes pulseLoader {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.2); }
}

.progress-bar {
    position: relative;
    height: 6px;
    background: rgba(130, 0, 0, 0.2);
    width: 80%;
    max-width: 400px;
    border-radius: 3px;
    overflow: hidden;
    margin: 15px 0;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background: linear-gradient(90deg, #D2691E, #820000);
    border-radius: 3px;
    transition: width 0.4s ease;
    box-shadow: 0 2px 8px rgba(130, 0, 0, 0.3);
}

.count {
    font-weight: 300;
    font-size:  var(--font-size-1_8);
    color: #820000;
    font-family: Vibes, serif;
    letter-spacing: 3px;
    margin-top: 5px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.loader-text {
    font-size: var(--font-size-1_8);
    color: #820000;
    margin-top: 25px;
    text-align: center;
    max-width: 80%;
    line-height: 1.5;
    font-family: Vibes, serif;
    opacity: 0.9;
}

/* Скрытие лоадера после загрузки */
.loader-container.hidden {
    opacity: 0;
    visibility: hidden;
}

section {
    font-family: Vibes, sans-serif;
    min-height: calc(var(--vh, 1vh) * 95);
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    margin-bottom: 20%;
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.container {
    position: relative;
    height: calc(var(--vh, 1vh) * 100);
    max-width: 100%;
    width: 100vw;
    padding: 0 5px;
    box-sizing: border-box;
}
.container2 {
    position: relative;
    height: auto;
    max-width: 100%;
    width: 100vw;
    padding: 0 5px;
    box-sizing: border-box;
}
/* Блок 1-2: Объединенный блок с надписью и фото */
.hero {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 4px 3px 8px;
    position: relative;
    overflow: hidden;
    width: 100vw;
}

/* Контейнер для сердечек - ВНУТРИ .hero */
.hearts-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
    width: 100vw;
    height: calc(var(--vh, 1vh) * 95);
}

.heart-decoration {
    position: absolute;
    opacity: 0.12;
    pointer-events: none;
    animation: float 15s ease-in-out infinite;
}

.heart-decoration.heart-1 {
    width: 45px;
    height: 45px;
    background-image: url('../images/heart1.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.heart-decoration.heart-2 {
    width: 40px;
    height: 40px;
    background-image: url('../images/heart2.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

@keyframes float {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25% { transform: translateY(-25px) rotate(8deg); }
    50% { transform: translateY(-15px) rotate(0deg); }
    75% { transform: translateY(-20px) rotate(-8deg); }
}

/* Анимации сердечек */
.heart-decoration:nth-child(1) { animation-delay: 0s; animation-duration: 18s; }
.heart-decoration:nth-child(2) { animation-delay: 2s; animation-duration: 20s; }
.heart-decoration:nth-child(3) { animation-delay: 4s; animation-duration: 22s; }
.heart-decoration:nth-child(4) { animation-delay: 1s; animation-duration: 16s; }
.heart-decoration:nth-child(5) { animation-delay: 3s; animation-duration: 19s; }
.heart-decoration:nth-child(6) { animation-delay: 5s; animation-duration: 17s; }
.heart-decoration:nth-child(7) { animation-delay: 0s; animation-duration: 21s; }
.heart-decoration:nth-child(8) { animation-delay: 2s; animation-duration: 15s; }
.heart-decoration:nth-child(9) { animation-delay: 4s; animation-duration: 18s; }
.heart-decoration:nth-child(10) { animation-delay: 1s; animation-duration: 20s; }
.heart-decoration:nth-child(11) { animation-delay: 3s; animation-duration: 16s; }
.heart-decoration:nth-child(12) { animation-delay: 5s; animation-duration: 19s; }
.heart-decoration:nth-child(13) { animation-delay: 0s; animation-duration: 17s; }
.heart-decoration:nth-child(14) { animation-delay: 2s; animation-duration: 22s; }
.heart-decoration:nth-child(15) { animation-delay: 4s; animation-duration: 15s; }

.hero-text {
    animation: fadeInUp 1.2s ease-out;
    position: relative;
    z-index: 1;
}
.header-cl{
    font-size: var(--font-size-3_8);
    font-weight: 500;
    color: #820000;
    opacity: 1;
    animation: fadeInUp 1.2s ease-out 0.4s forwards;
    font-family: Marutya, serif;
    margin-top: 5%;
    text-align: center;
}
.hero h1 {
    font-size: var(--font-size-1_5);
    font-weight: 600;
    margin-left: 7%;
    margin-top: 15%;
    letter-spacing: 2px;
    opacity: 1;
    animation: fadeInUp 1.2s ease-out 0.2s forwards;
    font-family: Vibes, serif;
    color: #820000;
}


/* Коллаж из фотографий - ИСПРАВЛЕНО */
.photo-collage {
    position: relative;
    width: 95vw;
    padding: 5px 5px 5px 5px; /* Защитные отступы по краям */
    height: 70%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    object-fit: scale-down;
    z-index: 1;
}

.collage-photo {
    position: absolute;
    border-radius: 10px;
    object-fit: scale-down;
    opacity: 1;
    animation: fadeInPhoto 1s ease-out forwards;
}

/* ФИКСИРОВАННОЕ ПОЗИЦИОНИРОВАНИЕ ВНУТРИ КОНТЕЙНЕРА */
.photo-1 {
    width: 49%;
    height: 69%;
    top: 3%;
    left: 5%;
    animation-delay: 0.2s;
    z-index: 0;
    transform: rotate(0deg);
}

.photo-2 {
    width: 53%;
    height: 79%;
    top: 6%;
    left: 43%;
    animation-delay: 0.3s;
    z-index: 0;
    transform: rotate(3deg);
}

.photo-3 {
    width: 30%;
    height: 45%;
    top: 37%;
    left: 71%;
    animation-delay: 0.4s;
    z-index: 3;
    transform: rotate(15deg);
}

.photo-4 {
    width: 87%;
    height: 55%;
    top: 43%;
    left: 6%;
    animation-delay: 0.5s;
    z-index: 2;
    transform: rotate(-0deg);
}

.photo-5 {
    width: 33%;
    height: 34%;
    top: 49%;
    left: 1%;
    animation-delay: 0.6s;
    z-index: 1;
}

.photo-6 {
    width: 27%;
    height: 36%;
    top: 63%;
    left: -4%;
    animation-delay: 0.7s;
    transform: rotate(-15deg);

    z-index: 4;
}
.photo-9 {
    width: 35%;
    height: 40%;
    top: 60%;
    left: 75%;
    animation-delay: 0.7s;
    transform: rotate(6deg);
    z-index: 1;
}
.photo-10 {
    width: 13%;
    height: 34%;
    top: 40%;
    left: 1%;
    animation-delay: 0.6s;
    transform: rotate(-15deg);
    z-index: 1;
}

.photo-7 {
    width: 58%;
    height: 36%;
    top: 60%;
    left: 10%;
    color: #21268e;
        animation-delay: 0.7s;
        font-size: var(--font-size-2_8);
        font-family: Marutya, serif;
    z-index: 2;
    transform: rotate(-5deg);


}
.photo-7 h3 {
    font-weight: 500;
}

.photo-8 {
    width: 58%;
    height: 36%;
    top: 68%;
    left: 40%;
    color: #e389b2;
    animation-delay: 0.7s;
    font-size:var(--font-size-3_2);
    font-family: Marutya, serif;
    z-index: 2;
    transform: rotate(-5deg);
}
.photo-8 h3 {
    font-weight: 500;
}

/*@keyframes fadeInPhoto {*/
/*    from {*/
/*        opacity: 0;*/
/*        transform: scale(0.8) rotate(0deg);*/
/*    }*/
/*    to {*/
/*        opacity: 1;*/
/*    }*/
/*}*/
/**/
/*@keyframes fadeInUp {*/
/*    from {*/
/*        opacity: 0;*/
/*        transform: translateY(30px);*/
/*    }*/
/*    to {*/
/*        opacity: 1;*/
/*        transform: translateY(0);*/
/*    }*/
/*}*/



/* Скрыть навигационные точки */
.nav-dots {
    display: none !important;
}
/* Блок 2-3: Объединенный блок с приглашением и анимацией конверта */
.invitation-date {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    position: relative;
    overflow: hidden;
    width: 100%;

}

.invitation-text {
    max-width: 100%;
    margin: 0 auto 10px;
    font-size:  var(--font-size-1_4);
    font-weight: 300;
    opacity: 0;
    animation: fadeIn 1.2s ease-out forwards;
    padding-top: 5%;
}
.invitation-text h1
{
    font-weight: 500;
    font-family: Marutya, serif;
    font-size:var(--font-size-3_2);
}

.invitation-text h2
{
     font-size:  var(--font-size-2_);
     font-weight: 500;
     /*margin-left: 7%;*/
     margin-top: 3%;
     letter-spacing: 2px;
     opacity: 1;
     animation: fadeInUp 1.2s ease-out 0.2s forwards;
     font-family: Vibes, serif;
     color: #820000;
    /*font-family: Marutya, serif;*/
}
.invitation-text h3
{
     font-size:var(--font-size-3_2);
     font-weight: 400;
     margin-left: 7%;
     letter-spacing: 4px;
     opacity: 1;
     animation: fadeInUp 1.2s ease-out 0.2s forwards;
     font-family: Vibes, fantasy;
     color: #820000;
    /*font-family: Marutya, serif;*/
}

.invitation-text strong {
    font-size:  var(--font-size-2_);
    font-weight: 700;
    color: #820000;
    display: block;
    margin-top: 10px;
}

/* Анимация разрывающегося конверта */
.envelope-animation {
    position: relative;
    max-width: 100%;
    height: 40%;
    margin: 0 auto;
    overflow: hidden;
}

.envelope-left,
.envelope-right {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    /*transition: transform 1.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);*/
}

.envelope-left {
    left: 2%;
    transform: translateX(0); /* Начальное положение */

}

.envelope-right {
    right: 2%;
    width: 51%;
    margin-bottom: 0.5%;
    transform: translateX(0); /* Начальное положение */

}

.envelope-left img,
.envelope-right img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

/* Блок таймера обратного отсчёта */
.countdown {
    text-align: center;
    position: relative;
    width: 100%;
    padding: 20px 15px 40px;
}

.countdown-title {
    font-size: var(--font-size-1_8);
    font-family: Vibes, serif;
    color: #820000;
    font-weight: 500;
    margin-bottom: 25px;
    letter-spacing: 1px;
}

.countdown-container {
    display: flex;
    padding-top: 5%;
    justify-content: center;
    flex-wrap: nowrap;
}
.colon{

}
.countdown-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 60px;
}

.countdown-number {
    font-size:  var(--font-size-2_);
    font-weight: 300;
    color: #820000;
    font-family: Aboreto, serif;
    line-height: 1;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.countdown-label {
    font-size:  var(--font-size-1_2);
    font-family: Vibes, serif;
    color: #000000;
    font-weight: 500;
    margin-top: 5px;
    text-transform: lowercase;
}

/* Анимация мерцания при обновлении секунд */
@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.countdown-number.pulse {
    animation: pulse 0.4s ease;
}


/* Дата, которая открывается после разрыва */
.date-reveal {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    /*transform: scale(0.8);*/
    z-index: 5;
    padding: 20px; /* Отступы внутри контейнера */
}

/* Стили для изображения с датой */
.date-reveal img {
    max-width: 100%;       /* Максимальная ширина 90% от контейнера */
    max-height: 100%;      /* Максимальная высота 90% от контейнера */
    width: 70%;          /* Сохраняем пропорции */
    height: 70%;         /* Сохраняем пропорции */
    display: block;
    object-fit: contain;  /* Сохраняем весь контент изображения */
}

/* Если нужно точное позиционирование */
/* Вариант 1: Смещение через margin */
.date-reveal img {
    margin-top: 15px;    /* Сдвиг вверх на 10px */
    margin-left: 0px;     /* Сдвиг вправо на 5px */
}
/* Стили для изображения с датой */
.address-location{
    height:  calc(var(--vh, 1vh) * 50);
}
.house {

    position: relative;
    width: 100%;
    max-width: 100%; /* Важно: не выходит за пределы экрана */
    padding: 0px 5px 0px 5px; /* Защитные отступы по краям */
    height:  calc(var(--vh, 1vh) * 50);
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    object-fit: scale-down;
    z-index: 1;
}
.house-photo {

    position: absolute;
    max-width: 100%;       /* Максимальная ширина 90% от контейнера */
    max-height: 100%;      /* Максимальная высота 90% от контейнера */
    width: 90%;          /* Сохраняем пропорции */
    height: 90%;         /* Сохраняем пропорции */
    display: block;
    object-fit: scale-down;  /* Сохраняем весь контент изображения */
}
.house-1 {
    width: 55%;
    height: 60%;
    top: 35%;
    left: 44%;
    animation-delay: 0.2s;
    z-index: 1;
    transform: rotate(4deg) !important;
}
.house-2 {
    width: 55%;
    height: 60%;
    top: 12%;
    left: 0%;
    animation-delay: 0.2s;
    z-index: 0;
    transform: rotate(-3deg) !important;
    border-radius: 4%;
}
/* Вариант 2: Смещение через transform (лучше для анимации) */
/*.date-reveal img {*/
/*    transform: translate(5px, -10px); !* Сдвиг: вправо 5px, вверх 10px *!*/
/*}*/

/*!* Вариант 3: Фиксированный размер *!*/
/*.date-reveal img {*/
/*    width: 320px;         !* Фиксированная ширина *!*/
/*    height: auto;         !* Пропорциональная высота *!*/
/*    max-width: 95%;       !* Но не больше 95% контейнера *!*/
/*}*/

/* Вариант 4: Адаптивный размер под мобильные */
/*@media (max-width: 480px) {*/
/*    .date-reveal img {*/
/*        max-width: 95%;*/
/*        max-height: 85%;*/
/*    }*/
/*}*/

.date-text {
    font-size: var(--font-size-2_2);
    font-weight: 700;
    color: #820000;
    text-align: center;
    padding: 15px;
}

/* Класс для запуска анимации разрыва */
.envelope-animation.active .envelope-left {
    transform: translateX(-70%);
}

.envelope-animation.active .envelope-right {
    transform: translateX(70%);
}

.envelope-animation.active .date-reveal {
    opacity: 1;
    transform: scale(1);
}

/* Блок 4: Адрес */
.address {
    text-align: center;
    height:  calc(var(--vh, 1vh) * 100) !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    /*padding: 4px 3px 8px;*/
    position: relative;
    overflow: hidden;
    width: 100%;
}


.address-content h1 {
    font-size:var(--font-size-3_2);
    font-weight: 300;
    color: #820000;
    opacity: 1;
    animation: fadeInUp 1.2s ease-out 0.4s forwards;
    font-family: Marutya, serif;
    margin-top: 5%;
}

/* Стили для таблицы с адресами */
.address-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1% auto 0;
    max-width: 100%;
    table-layout: fixed; /* Равномерное распределение колонок */
}

.address-content td {
    padding: 10px 8px;
    vertical-align: top;
    width: 50%;
}

.address-content h3 {
    font-size:  var(--font-size-1_7);
    margin-bottom: 15px;
    color: #820000;
    text-align: center;
    font-family: Marutya, serif;
    letter-spacing: 1px;
}
.address-content .location
{
    margin-bottom: 5%;
}
/* Стили для ячеек с адресами */
.address-content .venue {

    font-family: Vibes, sans-serif;
    padding: 8px 5px;
    border-radius: 5px;
    height: 100%;
}

.address-content .venue h4 {
    font-size:  var(--font-size-1_4);
    margin-bottom: 10px;
    color: #820000;
    font-family: Vibes, serif;
}

.address-content .venue h5 {
    font-family: Vibes, serif;
    font-weight: 200;
    font-size:  var(--font-size-2_);
    margin: 4px 0;
    line-height: 1.5;
    white-space: nowrap; /* Заголовок в одну строку */


}

.address-content .venue .addressLink {
    font-size: var(--font-size-1_8);
    margin: 6px 0;
    line-height: 1.5;

}

.address-content .venue a {
    font-size: var(--font-size-1_5);
    margin: 6px 0;
    color: #820000;
    line-height: 1.5;
}

.address-content .venue-time {
    font-weight: 500;
    color: #820000;
    font-size:  var(--font-size-1_3);
    margin: 12px 0 8px;
    display: block;
}

/* Ссылка на карту внутри таблицы */
.address-content .map-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #820000;
    text-decoration: none;
    font-weight: 500;
    font-size: var(--font-size-1_05);
    transition: all 0.2s ease;
    border-bottom: 1px dashed #D2691E;
    padding-bottom: 2px;
    font-family: Vibes, sans-serif;
}

.address-content .map-link:hover {
    color: #820000;
    border-bottom-color: #820000;
}

.address-content .map-link img {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    transition: transform 0.2s ease;
}

.address-content .map-link:hover img {
    transform: scale(1.1);
}

/* Кнопка карты для второго адреса */
.address-content .map-btn {
    display: inline-block;
    width: 100%;
    padding: 10px;
    background-color: transparent;
    color: #820000;
    text-decoration: none;
    border-radius: 8px;
    font-weight: 500;
    font-size: var(--font-size-1_05);
    text-align: center;
    border: 1px solid #820000;
    transition: all 0.2s ease;
    margin-top: 8px;
    font-family: Vibes, sans-serif;
}

.address-content .map-btn:hover {
    background-color: rgba(210, 105, 30, 0.1);
    color: #820000;
    transform: translateY(-1px);
}

/*!* Адаптивность для очень маленьких экранов *!*/
/*@media (max-width: 360px) {*/
/*    .address-content table {*/
/*        margin-top: 20px;*/
/*    }*/

/*    .address-content td {*/
/*        padding: 8px 5px;*/
/*    }*/

/*    .address-content .venue {*/
/*        padding: 15px 12px;*/
/*    }*/

/*    .address-content h3 {*/
/*        font-size:  var(--font-size-1_6);*/
/*    }*/

/*    .address-content .venue h4 {*/
/*        font-size:  var(--font-size-1_3);*/
/*    }*/

/*    .address-content .venue p {*/
/*        font-size: var(--font-size-1_2);*/
/*    }*/

/*    .address-content .venue-time {*/
/*        font-size:  var(--font-size-1_1);*/
/*        margin: 10px 0 6px;*/
/*    }*/

/*    .address-content .map-link {*/
/*        font-size: var(--font-size-1_2);*/
/*    }*/

/*    .address-content .map-link img {*/
/*        width: 22px;*/
/*        height: 22px;*/
/*    }*/

/*    .address-content .map-btn {*/
/*        padding: 9px;*/
/*        font-size: var(--font-size-1_2);*/
/*    }*/
/*}*/

/* Место проведения */
.venue {
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 20px;
    font-family: Vibes, serif;
}

.venue h4 {
    font-size:  var(--font-size-1_4);
    margin-bottom: 8px;
    color: #820000;
}

.venue p {
    font-size: var(--font-size-1_2);
    margin: 6px 0;
    line-height: 1.5;
}



/* Ссылка на карту */
.map-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #820000;
    text-decoration: none;
    font-weight: 500;
    transition: all 0.3s ease;
    border-bottom: 1px dashed #D2691E;
    padding-bottom: 2px;
}

.map-link:hover {
    color: #820000;
    border-bottom-color: #820000;
}

.map-link img {
    transition: transform 0.3s ease;
}

.map-link:hover img {
    transform: scale(1.1);
}

/* Блок 5: Программа */
/* Блок 5: Программа */
.program {
    text-align: center;
    position: relative;
    width: 100%;
    /*padding: 20px 0 5px;*/
}
.program-container
{
    padding: 0 0 !important;
}
.program-content {
    max-width: 100%;
    margin: 0 auto;
    height: 12%;
    padding-bottom: 2%;
    animation: fadeIn 1.2s ease-out forwards;
}

.program-content h3 {
    font-size: var(--font-size-2_8);
    margin-bottom: 25px;
    font-family: Marutya, serif;
    letter-spacing: 1px;
}

/* Изображение с программой */
.program-timeline {
    display: flex;
    justify-content: center;
    align-items: start;
    width: 100%;
    padding-top: 10px;
    height: 88%;
}

.program-timeline img {
    width: 100%;
    max-width: 100%; /* Максимальная ширина для мобильных */
    height: auto;
    display: block;
    object-fit: scale-down;
    border-radius: 12px;
    animation: fadeInUp 1s ease-out 0.3s forwards;
}


/* Блок 6: Дресс-код */
.dresscode {
    text-align: center;
    margin-top: 30%;
    /*padding: 30px 15px;*/
}

.dresscode-content {
    max-width: 100%;
    margin: 0 auto;
    opacity: 0;
    height: 25%;
    object-fit: scale-down;
    animation: fadeIn 1.2s ease-out forwards;
}

.dresscode-content h3 {
    font-size: var(--font-size-2_8);
    margin-bottom: 15px;
}

.dresscode-text {
    font-size: var(--font-size-2_);
    margin-bottom: 20px;
    color: #820000;
    opacity: 0;
    animation: fadeIn 1.2s ease-out 0.2s forwards;
}

/* Заголовок набора */
.set-header {
    text-align: center;
    align-items: start;
    height: 10%;
}

.set-header h4 {
    font-size:  var(--font-size-1_8);
    color: #820000;
    margin-bottom: 10px;
    font-weight: 500;
}

/* Палитра цветов - кружки */
.palette {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    padding: 10px 0;
}

.color-circle {
    width: 5vh;
    height: 5vh;
    border-radius: 50%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: -10px; /* Заход на 30% (15px от 50px) */
    /*box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);*/
    /*border: 1px solid rgb(251, 247, 238);*/
}


.color-circle:last-child {
    margin-right: 0;
}
/* Слайдер с примерами */

.dresscode-set {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin-top: 5%;
    opacity: 0;
    transform: translateX(100%);
    transition: all 0.8s cubic-bezier(0.65, 0, 0.35, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    /*padding: 30px 0;*/
    box-sizing: border-box;
}

.dresscode-set.active {
    opacity: 1;
    transform: translateX(0);
}

/* Сетка изображений 3×2 */
/* Слайдер с примерами */
.dresscode-slider {
    position: relative;
    width: 100%;
    height: 75%;
    overflow: hidden;
}


/* Сетка изображений 3×2 с размерами 147×196 */
.dresscode-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 столбца по 147px */
    grid-template-rows: repeat(2, 1fr); /* 2 строки по 196px */
    gap: 2px; /* Расстояние между фото */
    padding: 2px;
    width: 100%; /* Ширина по содержимому */
    /*height: 78%; !* Высота по содержимому *!*/
    align-content: center;
    justify-content: center;
    margin-top: 10%;
}

.dresscode-item {
    width: 100%; /* Новая ширина */
    /*height: 100%; !* Новая высота *!*/
    /*border-radius: 10px; !* Увеличены скругления *!*/
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    /*transform: scale(0.9);*/
    /*animation: fadeIn 0.9s ease-out forwards;*/
    transition: all 0.3s ease;
    aspect-ratio: 3 / 4;
}


.dresscode-item img {
    width: 100%;
    height: 100%;
    /*object-fit: contain;*/
    display: block;
}



/* Подпись к набору */
.set-caption {
    position: absolute;
    bottom: 20px;
    left: 0;
    right: 0;
    font-size:  var(--font-size-1_4);
    font-weight: 600;
    text-align: center;
    padding: 0 15px;
    box-sizing: border-box;
}

/* Индикаторы слайдера */
.slider-dots {
    display: flex;
    gap: 10px;
    margin-top: 25px;
    justify-content: center;
}

.dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background-color: rgba(139, 69, 19, 0.3);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.dot.active {
    background-color: #8B4513;
    transform: scale(1.3);
}

.dot:hover {
    background-color: #8B4513;
}

/* Адаптивность */

/* Блок 7: Детали */
.details {
    text-align: center;
}

.details-content {
    max-width: 100%;
    margin: 0 auto;
    opacity: 0;
    animation: fadeIn 1.2s ease-out forwards;
}

.details-content h3 {
    font-size: var(--font-size-2_8);
    margin-bottom: 25px;
    color: #D2691E;
}

.details-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3%;
    margin-top: 15px;
}

.detail-item {
    /*padding: 10px;*/
    border-radius: 8px;
    backdrop-filter: blur(10px);
    opacity: 0;
    animation: fadeIn 1s ease-out forwards;
}
.detail-item-middle {
    /*padding: 10px;*/
    height: 3vh;

    border-radius: 8px;
    backdrop-filter: blur(10px);
    opacity: 0;
    animation: fadeIn 1s ease-out forwards;
}
.details-heart
{
    height: calc(var(--vh, 1vh) * 2.7);
    width:  calc(var(--vw, 1vh) * 13.7);
}

.detail-item h4 {
    font-size:  var(--font-size-2_3);
    font-weight: 300;
    margin-bottom: 8px;
}

.detail-item p {
    font-size:  var(--font-size-2_);
    font-weight: 50;
    margin-bottom: 8px;
}

/* Блок 8: Анкета */
.rsvp {
    text-align: center;
    min-height: auto !important;
    height: auto !important;
    margin-bottom: 0%;
    /*padding: 60px 15px !important;*/
    /*max-height: auto;*/
}

.rsvp-form {
    max-width: 100%;
    /*max-height: 300%;*/
    margin: 0 auto;
    background-color: rgba(251, 247, 238, 0.8);
    padding: 30px;
    border-radius: 12px;
    backdrop-filter: blur(10px);
    opacity: 0;
    animation: fadeIn 1.2s ease-out forwards;
    font-family: Montserrat, serif;
    color: #820000;
}
.rsvp-form h3
{
    font-size: var(--font-size-2_8);
    white-space: nowrap; /* Заголовок в одну строку */
}

.form-group {
    margin-bottom: 20px;
    text-align: left;
}

.form-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 300;
    color: #820000;
    font-size: var(--font-size-1_5);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #820000;
    border-radius: 7px;
    font-size: var(--font-size-0_95);
    background-color: rgba(255, 255, 255, 0.9);
}

.form-group textarea {
    resize: vertical;
    min-height: 60px;
}

.radio-group {
    display: flex;
    gap: 1px;
    flex-wrap: nowrap;
    flex-direction: column;
}

.checkbox-group {
    display: flex;
    gap: 1px;
    flex-wrap: nowrap;
    flex-direction: column;
}

.radio-option {
    display: flex;
    align-items: center; /* ВЫРАВНИВАНИЕ ПО ВЕРТИКАЛИ */
    /*align-items: flex-start;*/
    gap: 2px;
    width: 100%;
}
.drinks-option {
    display: flex;
    align-items: center; /* ВЫРАВНИВАНИЕ ПО ВЕРТИКАЛИ */
    /*align-items: flex-start;*/
    gap: 2px;
    width: 100%;
}
.ps{
    display: flex;
    align-items: center; /* ВЫРАВНИВАНИЕ ПО ВЕРТИКАЛИ */
    /*align-items: flex-start;*/
    gap: 2px;
    width: 100%;
    color: #820000;
    font-size: var(--font-size-1_2);
    margin-bottom: 14%;

}

/* From Uiverse.io by catraco */
.heart-container {
    --heart-color: #820000;
    position: relative;
    margin-right: 1%;
    width: 20px;
    height: 20px;
    transition: .3s;
}

.heart-container .checkbox
{
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 20;
    cursor: pointer;
}
.heart-container .radio-input
{
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 20;
    cursor: pointer;
}


.heart-container .svg-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.heart-container .svg-outline,
.heart-container .svg-filled {
    fill: var(--heart-color);
    position: absolute;
}

.heart-container .svg-filled {
    animation: keyframes-svg-filled 1s;
    display: none;
}

.heart-container .svg-celebrate {
    position: absolute;
    animation: keyframes-svg-celebrate .5s;
    animation-fill-mode: forwards;
    display: none;
    stroke: var(--heart-color);
    fill: var(--heart-color);
    stroke-width: 2px;
}

.heart-container .checkbox:checked~.svg-container .svg-filled {
    display: block
}

.heart-container .checkbox:checked~.svg-container .svg-celebrate {
    display: block
}
.heart-container .radio-input:checked~.svg-container .svg-filled {
    display: block
}

.heart-container .radio-input~.svg-container .svg-celebrate {
    display: block
}

@keyframes keyframes-svg-filled {
    0% {
        transform: scale(0);
    }

    25% {
        transform: scale(1.2);
    }

    50% {
        transform: scale(1);
        filter: brightness(1.5);
    }
}

@keyframes keyframes-svg-celebrate {
    0% {
        transform: scale(0);
    }

    50% {
        opacity: 1;
        filter: brightness(1.5);
    }

    100% {
        transform: scale(1.4);
        opacity: 0;
        display: none;
    }
}


.label-input
{
    font-size: var(--font-size-1_2) !important;
    text-align: center;
}

.submit-btn {
    color: #820000;
    padding: 0.7em 1.7em;
    font-size: 18px;
    border-radius: 0.8em;
    background: rgb(251, 247, 238);
    cursor: pointer;
    border: 1px solid #e8e8e8;
    transition: all 0.3s;
    box-shadow: 1px 1px 2px 1px #820000;
}

.submit-btn:active {
    color: #666;
    box-shadow: inset 4px 4px 12px #c5c5c5, inset -4px -4px 12px #ffffff;
}


/* Footer */
.footer {
    height: 15vh;
    display: flex;
    flex-direction: row;
    justify-content: center;
    /*align-items: center;*/
    padding: 20px 15px;
    text-align: center;
    background-color: rgb(251, 247, 238);
    opacity: 0;
    animation: fadeIn 1.2s ease-out forwards;
}
.footer-text {
    font-size: var(--font-size-1_8);
    margin: 8px 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px; /* Отступы между элементами */
    line-height: 1.4;
    font-family: Vibes, serif;
}
.heart-inline {
    display: inline-block;
    height: 1.1em; /* Высота = размер шрифта + небольшой отступ */
    width: auto;
    vertical-align: middle;
    margin: 0 4px; /* Горизонтальные отступы */
    animation: float 15s ease-in-out infinite; /* Лёгкая анимация плавания */
}

.heart-inline img {
    height: 100%;
    width: auto;
    display: block;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(-15px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Скрыть навигационные точки на мобильных */
.nav-dots {
    display: none !important;
}

/* Декоративные сердечки на фоне */
.hearts-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
}

.heart-decoration {
    position: absolute;
    opacity: 1;
    pointer-events: none;
    animation: float 15s ease-in-out infinite;
}

.heart-decoration.heart-1 {
    width: 35px;
    height: 35px;
    background-image: url('../images/heart1.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.heart-decoration.heart-2 {
    width: 35px;
    height: 35px;
    background-image: url('../images/heart2.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

/* Анимация плавающего движения */
@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    25% {
        transform: translateY(-25px) rotate(8deg);
    }
    50% {
        transform: translateY(-15px) rotate(0deg);
    }
    75% {
        transform: translateY(-20px) rotate(-8deg);
    }
}

/* Разные скорости и задержки для каждого сердечка */
.heart-decoration:nth-child(1) { animation-delay: 0s; animation-duration: 18s; }
.heart-decoration:nth-child(2) { animation-delay: 2s; animation-duration: 20s; }
.heart-decoration:nth-child(3) { animation-delay: 4s; animation-duration: 22s; }
.heart-decoration:nth-child(4) { animation-delay: 1s; animation-duration: 16s; }
.heart-decoration:nth-child(5) { animation-delay: 3s; animation-duration: 19s; }
.heart-decoration:nth-child(6) { animation-delay: 5s; animation-duration: 17s; }
.heart-decoration:nth-child(7) { animation-delay: 0s; animation-duration: 21s; }
.heart-decoration:nth-child(8) { animation-delay: 2s; animation-duration: 15s; }
.heart-decoration:nth-child(9) { animation-delay: 4s; animation-duration: 18s; }
.heart-decoration:nth-child(10) { animation-delay: 1s; animation-duration: 20s; }
.heart-decoration:nth-child(11) { animation-delay: 3s; animation-duration: 16s; }
.heart-decoration:nth-child(12) { animation-delay: 5s; animation-duration: 19s; }
.heart-decoration:nth-child(13) { animation-delay: 0s; animation-duration: 17s; }
.heart-decoration:nth-child(14) { animation-delay: 2s; animation-duration: 22s; }
.heart-decoration:nth-child(15) { animation-delay: 4s; animation-duration: 15s; }