/* CSS переменные для удобного управления цветами */
:root {
    --primary-color: #D16F06;        /* Основной оранжевый цвет */
    --primary-hover: #E8850A;        /* Оранжевый при наведении */
    --background-color: #f8f8f8;     /* Основной фон сайта */
    --text-color: #333;              /* Основной цвет текста */
    --text-secondary: #666;          /* Вторичный цвет текста */
    --text-light: #999;              /* Светлый цвет текста */
    --white: #ffffff;                /* Белый цвет */
    --shadow-light: rgba(209, 111, 6, 0.1);  /* Легкая тень */
    --shadow-medium: rgba(209, 111, 6, 0.2); /* Средняя тень */
    --shadow-heavy: rgba(209, 111, 6, 0.3);  /* Тяжелая тень */
    --shadow-button: rgba(209, 111, 6, 0.4); /* Тень кнопки */
}

/* Сброс стилей и базовые настройки */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Shantell Sans', cursive;
    background: var(--background-color);
    min-height: 100vh;
    overflow-x: hidden;
}

.container {
    max-width: 100%;
    margin: 0 auto;
}

/* Главная секция приглашения */
.invitation-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem 1rem;
    background: var(--background-color);
    overflow: hidden;
}

/* Декоративные элементы */
.decorative-star {
    position: absolute;
    opacity: 0.8;
    animation: rotate 20s linear infinite, float-around 25s ease-in-out infinite;
}

.star-top {
    top: 7%;
    left: 5%;
    animation: rotate 20s linear infinite, float-star-1 30s ease-in-out infinite;
}

.decorative-circle {
    position: absolute;
    background: linear-gradient(135deg, #D16F06, #E89332);
    border-radius: 50%;
    opacity: 0.9;
}

.circle-top {
    width: 200px;
    height: 200px;
    top: -50px;
    right: -50px;
    animation: float 6s ease-in-out infinite;
}

.circle-bottom {
    width: 300px;
    height: 300px;
    bottom: -100px;
    left: -100px;
    animation: float 8s ease-in-out infinite reverse;
}

/* Контент */
.content {
    text-align: center;
    z-index: 10;
    margin-bottom: 3rem;
}

.groom-name,
.bride-name {
    font-size: 3.5rem;
    font-weight: 500;
    color: #333;
    margin: 0.5rem 0;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
    opacity: 0;
    animation: fadeInUp 1s ease-out forwards;
}

.heart {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 1rem 0;
    opacity: 0;
    animation: heartbeat 1s ease-in-out infinite, fadeInUp 1.1s ease-out forwards;
}



.wedding-date {
    font-size: 2.2rem;
    font-weight: 400;
    color: #D16F06;
    margin-top: 2rem;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
    opacity: 0;
    animation: fadeInUp 1.2s ease-out forwards;
}

/* Секция сообщения */
.message-section {
    background: #D16F06;
    border-radius: 50%;
    padding: 3rem 2rem 6rem;
    text-align: center;
    color: white;
    width: 200vw;
    height: 80vw;
    max-height: 400px;
    margin: 2rem auto 0;
    position: relative;
    left: 50%;
    transform: translateX(-50%) rotate(15deg);
    z-index: 10;
    box-shadow: 0 -20px 40px rgba(209, 111, 6, 0.3);
    opacity: 0;
    animation: slideUp 1.5s ease-out forwards;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}

.greeting {
    font-size: 1.8rem;
    font-weight: 400;
    margin-bottom: 2rem;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.2);
    transform: translateX(-10%) rotate(-15deg);
}

.invitation-text {
    font-size: 1.2rem;
    font-weight: 300;
    line-height: 1.6;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
    transform: rotate(-15deg);
}

/* Анимации */
@keyframes rotate {
    from { transform: rotate(0deg) scale(0.6); }
    to { transform: rotate(360deg) scale(0.6); }
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(100px) rotate(15deg);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0) rotate(15deg);
    }
}

/* Анимации полета звездочек */
@keyframes float-star-1 {
    0%, 100% { 
        transform: translate(0, 0); 
    }
    25% { 
        transform: translate(20px, -15px); 
    }
    50% { 
        transform: translate(-10px, -25px); 
    }
    75% { 
        transform: translate(15px, -10px); 
    }
}

@keyframes float-star-2 {
    0%, 100% { 
        transform: translate(0, 0); 
    }
    20% { 
        transform: translate(-15px, 20px); 
    }
    40% { 
        transform: translate(25px, 10px); 
    }
    60% { 
        transform: translate(-20px, -15px); 
    }
    80% { 
        transform: translate(10px, 25px); 
    }
}

@keyframes float-star-3 {
    0%, 100% { 
        transform: translate(0, 0); 
    }
    30% { 
        transform: translate(18px, -20px); 
    }
    60% { 
        transform: translate(-22px, 15px); 
    }
    90% { 
        transform: translate(12px, -8px); 
    }
}

@keyframes float-around {
    0%, 100% { 
        transform: translate(0, 0); 
    }
    25% { 
        transform: translate(-30px, -20px); 
    }
    50% { 
        transform: translate(30px, -30px); 
    }
    75% { 
        transform: translate(-15px, 20px); 
    }
}

/* Секция деталей свадьбы */
.details-section {
    position: relative;
    padding: 2rem 2rem 0;
    background: #f8f8f8;
    overflow: hidden;
}

/* Декоративные элементы для секции деталей */
.star-details {
    position: absolute;
    top: 8%;
    right: 15%;
    opacity: 0.8;
    animation: rotate 15s linear infinite, float-star-2 35s ease-in-out infinite;
}

.circle-details {
    position: absolute;
    top: -30px;
    right: -30px;
    width: 120px;
    height: 120px;
    opacity: 0.7;
}

.star-globe {
    position: absolute;
    bottom: 10%;
    right: 20%;
    opacity: 0.7;
    animation: rotate 12s linear infinite reverse, float-star-3 28s ease-in-out infinite;
}

/* Заголовки секций */
.section-title {
    font-size: 2.2rem;
    font-weight: 500;
    color: #333;
    text-align: center;
    margin-bottom: 2rem;
    opacity: 0;
    animation: fadeInUp 1s ease-out forwards;
}

/* Секции церемонии и банкета */
.ceremony-section,
.banquet-section {
    margin-bottom: 2rem;
    padding: 2rem 0;
    opacity: 0;
    animation: fadeInUp 1.2s ease-out forwards;
}

.banquet-section {
    animation-delay: 0.3s;
}

/* Карточки локаций */
.location-card {
    background: white;
    border-radius: 25px;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(209, 111, 6, 0.1);
    display: flex;
    align-items: center;
    gap: 2rem;
    max-width: 500px;
    margin: 0 auto;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.location-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(209, 111, 6, 0.2);
}

/* Иконки */
.location-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(209, 111, 6, 0.1);
    border-radius: 50%;
    padding: 3rem;
    transition: transform 0.3s ease;
}

.location-icon:hover {
    transform: scale(1.1);
}

.location-icon img {
    transition: transform 0.3s ease;
}

.location-icon:hover img {
    transform: scale(1.05);
}

.rings-icon {
    width: 110px;
    height: 110px;
}

.dancing-icon {
    width: 110px;
    height: 110px;
}

/* Информация о локациях */
.location-info {
    flex: 1;
}

.location-name {
    font-size: 1.4rem;
    font-weight: 500;
    color: #333;
    margin-bottom: 0.5rem;
    line-height: 1.3;
}

.location-address {
    font-size: 1.1rem;
    font-weight: 300;
    color: #666;
    line-height: 1.4;
}

/* Порядок в банкетной секции убран - теперь оба блока одинаковые */

/* Секция расписания */
.schedule-section {
    position: relative;
    padding: 0 2rem;
    background: #f8f8f8;
    overflow: hidden;
}

.circle-schedule {
    position: absolute;
    bottom: -50px;
    left: -50px;
    width: 150px;
    height: 150px;
    opacity: 0.6;
}

.schedule-container {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
    padding: 2rem 0;
}

.schedule-title {
    font-size: 2.5rem;
    font-weight: 400;
    color: #D16F06;
    text-align: center;
    margin-bottom: 3rem;
    opacity: 0;
    animation: fadeInUp 1s ease-out forwards;
}

/* Временная шкала */
.timeline {
    position: relative;
    padding: 0;
    margin: 0;
    opacity: 0;
    animation: fadeInUp 1.2s ease-out forwards;
}

.timeline-item {
    display: flex;
    align-items: center;
    margin-bottom: 2.5rem;
    position: relative;
}

.timeline-item:last-child {
    margin-bottom: 0;
}

.timeline-time {
    font-size: 2.5rem;
    font-weight: 400;
    color: #333;
    min-width: 120px;
    text-align: right;
    margin-right: 2rem;
    text-shadow: 1px 1px 2px rgba(0,0,0,0.1);
}

.timeline-content {
    display: flex;
    align-items: center;
    flex: 1;
    position: relative;
}

.timeline-dot {
    width: 20px;
    height: 20px;
    background: #D16F06;
    border-radius: 50%;
    margin-right: 1.5rem;
    box-shadow: 0 0 0 4px #FFF4FD, 0 0 0 8px rgba(209, 111, 6, 0.2);
    position: relative;
    z-index: 2;
}

.timeline-text {
    font-size: 1.3rem;
    font-weight: 400;
    color: #333;
    line-height: 1.4;
    text-align: left;
}

/* Линия между точками */
.timeline-item:not(:last-child) .timeline-dot::after {
    content: '';
    position: absolute;
    top: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 60px;
    background: linear-gradient(to bottom, #D16F06, rgba(209, 111, 6, 0.3));
    z-index: 1;
}

/* Общие мобильные стили для всех секций */
@media (max-width: 768px) {
    /* Основные заголовки */
    .groom-name,
    .bride-name {
        font-size: 3rem;
    }
    
    .wedding-date {
        font-size: 2rem;
    }
    
    .greeting {
        font-size: 1.6rem;
    }
    
    .invitation-text {
        font-size: 1.1rem;
    }
    
    /* Заголовки секций */
    .section-title {
        font-size: 1.8rem;
    }
    
    .schedule-title {
        font-size: 2.2rem;
    }
    
    .dresscode-title {
        font-size: 2.2rem;
    }
    
    .survey-title {
        font-size: 1.8rem;
    }
    
    /* Расписание */
    .schedule-container {
        padding: 1.5rem 0;
    }
    
    .timeline-time {
        font-size: 2rem;
    }
    
    .timeline-text {
        font-size: 1.1rem;
    }
    
    /* Локации */
    .ceremony-section,
    .banquet-section {
        padding: 1.5rem 0;
    }
    
    .location-name {
        font-size: 1.2rem;
    }
    
    .location-address {
        font-size: 0.95rem;
    }
    
    /* Дресс-код */
    .dresscode-text {
        font-size: 1.1rem;
    }
    
    .oval-title {
        font-size: 1.6rem;
    }
    
    .oval-text {
        font-size: 1rem;
    }
    
    /* Опрос */
    .survey-description {
        font-size: 1rem;
    }
    
    .person-name {
        font-size: 1.1rem;
    }
    
    .radio-item label {
        font-size: 1rem;
    }
    
    .form-input {
        font-size: 1rem;
    }
    
    .submit-btn {
        font-size: 1.1rem;
    }
}

@media (max-width: 480px) {
    /* Основные заголовки - еще меньше */
    .groom-name,
    .bride-name {
        font-size: 2.5rem;
    }
    
    .wedding-date {
        font-size: 1.8rem;
    }
    
    .greeting {
        font-size: 1.4rem;
    }
    
    .invitation-text {
        font-size: 1rem;
    }
    
    /* Заголовки секций - еще меньше */
    .section-title {
        font-size: 1.6rem;
    }
    
    .schedule-title {
        font-size: 2rem;
    }
    
    .dresscode-title {
        font-size: 2rem;
    }
    
    .survey-title {
        font-size: 1.6rem;
    }
    
    /* Расписание - еще меньше */
    .schedule-container {
        padding: 1.2rem 0;
    }
    
    .timeline-time {
        font-size: 1.8rem;
    }
    
    .timeline-text {
        font-size: 1rem;
    }
    
    /* Локации - еще меньше */
    .ceremony-section,
    .banquet-section {
        padding: 1.2rem 0;
    }
    
    .location-name {
        font-size: 1.1rem;
    }
    
    .location-address {
        font-size: 0.9rem;
    }
    
    /* Дресс-код - еще меньше */
    .dresscode-text {
        font-size: 1rem;
    }
    
    .oval-title {
        font-size: 1.4rem;
    }
    
    .oval-text {
        font-size: 0.9rem;
    }
    
    /* Опрос - еще меньше */
    .survey-description {
        font-size: 0.9rem;
    }
    
    .person-name {
        font-size: 1rem;
    }
    
    .radio-item label {
        font-size: 0.9rem;
    }
    
    .form-input {
        font-size: 0.9rem;
    }
    
    .submit-btn {
        font-size: 1rem;
    }
}

/* Адаптивность для планшетов */
@media (min-width: 768px) {
    .invitation-hero {
        padding: 3rem 2rem;
    }
    
    .groom-name,
    .bride-name {
        font-size: 4.5rem;
    }
    
    .heart img {
        width: 75px;
        height: 75px;
    }
    
    .wedding-date {
        font-size: 2.8rem;
    }
    
    .message-section {
        padding: 4rem 3rem 8rem;
        width: 180vw;
        height: 50vw;
        max-height: 350px;
    }
    
    .greeting {
        font-size: 2.2rem;
    }
    
    .invitation-text {
        font-size: 1.4rem;
    }
    
    .star-top img {
        width: 140px;
        height: 140px;
    }
    
    /* Адаптивность для секции расписания */
    .schedule-section {
        padding: 0 3rem;
    }
    
    .schedule-container {
        padding: 2.5rem 0;
    }
    
    .schedule-title {
        font-size: 2.8rem;
    }
    
    .timeline-time {
        font-size: 2.8rem;
        min-width: 140px;
    }
    
    .timeline-text {
        font-size: 1.4rem;
    }
    
    /* Адаптивность для секции деталей */
    .details-section {
        padding: 2rem 3rem 0;
    }
    
    .ceremony-section,
    .banquet-section {
        padding: 2.5rem 0;
    }
    
    .section-title {
        font-size: 2.5rem;
    }
    
    .location-card {
        padding: 2.5rem;
        max-width: 600px;
        gap: 2.5rem;
    }
    
    .location-name {
        font-size: 1.6rem;
    }
    
    .location-address {
        font-size: 1.2rem;
    }
    
    .rings-icon {
        width: 140px;
        height: 140px;
    }
    
    .dancing-icon {
        width: 140px;
        height: 140px;
    }
    
    .location-icon {
        padding: 3.5rem;
    }
    
    .star-top img {
        width: 180px;
        height: 180px;
    }
    
    /* Адаптивность для секции расписания - большие экраны */
    .schedule-section {
        padding: 0 5rem;
    }
    
    .schedule-container {
        padding: 3rem 0;
    }
    
    .schedule-title {
        font-size: 3.5rem;
    }
    
    .timeline-time {
        font-size: 3.5rem;
        min-width: 180px;
    }
    
    .timeline-text {
        font-size: 1.8rem;
    }
}

/* Адаптивность для десктопа */
@media (min-width: 1024px) {
    .container {
        max-width: 1200px;
    }
    
    .invitation-hero {
        padding: 4rem 3rem;
    }
    
    .groom-name,
    .bride-name {
        font-size: 5.5rem;
    }
    
    .heart img {
        width: 85px;
        height: 85px;
    }
    
    .wedding-date {
        font-size: 3.2rem;
    }
    
    .message-section {
        padding: 5rem 4rem 9rem;
        width: 160vw;
        height: 45vw;
        max-height: 440px;
    }
    
    .greeting {
        font-size: 2.5rem;
    }
    
    .invitation-text {
        font-size: 1.6rem;
    }
    
    .star-top img {
        width: 160px;
        height: 160px;
    }
    
    /* Адаптивность для секции расписания - десктоп */
    .schedule-section {
        padding: 0 4rem;
    }
    
    .schedule-container {
        padding: 2.5rem 0;
    }
    
    .schedule-title {
        font-size: 3.2rem;
    }
    
    .timeline-time {
        font-size: 3.2rem;
        min-width: 160px;
    }
    
    .timeline-text {
        font-size: 1.6rem;
    }
    
    .circle-top {
        width: 250px;
        height: 250px;
    }
    
    .circle-bottom {
        width: 400px;
        height: 400px;
    }
    
    /* Адаптивность для секции деталей - десктоп */
    .details-section {
        padding: 2rem 4rem 0;
    }
    
    .ceremony-section,
    .banquet-section {
        padding: 2.5rem 0;
    }
    
    .section-title {
        font-size: 2.8rem;
    }
    
    .location-card {
        padding: 3rem;
        max-width: 700px;
        gap: 3rem;
    }
    
    .location-name {
        font-size: 1.8rem;
    }
    
    .location-address {
        font-size: 1.3rem;
    }
    
    .rings-icon {
        width: 130px;
        height: 130px;
    }
    
    .dancing-icon {
        width: 130px;
        height: 130px;
    }
    
    .location-icon {
        padding: 3.8rem;
    }
}

/* Адаптивность для больших экранов */
@media (min-width: 1440px) {
    .groom-name,
    .bride-name {
        font-size: 6rem;
    }
    
    .heart img {
        width: 95px;
        height: 95px;
    }
    
    .wedding-date {
        font-size: 3.5rem;
    }
    
    .message-section {
        padding: 6rem 5rem 10rem;
        width: 140vw;
        height: 40vw;
        max-height: 500px;
    }
    
    .greeting {
        font-size: 2.8rem;
    }
    
    .invitation-text {
        font-size: 1.8rem;
    }
    
    /* Адаптивность для секции деталей - большие экраны */
    .details-section {
        padding: 2rem 5rem 0;
    }
    
    .ceremony-section,
    .banquet-section {
        padding: 3rem 0;
    }
    
    .section-title {
        font-size: 3rem;
    }
    
    .location-card {
        padding: 3.5rem;
        max-width: 800px;
        gap: 3.5rem;
    }
    
    .location-name {
        font-size: 2rem;
    }
    
    .location-address {
        font-size: 1.4rem;
    }
    
    .rings-icon {
        width: 120px;
        height: 120px;
    }
    
    .dancing-icon {
        width: 120px;
        height: 120px;
    }
    
    .location-icon {
        padding: 4rem;
    }
}

/* Секция Детали - новый дизайн */
.details-info-section {
    padding: 4rem 0 2rem;
    background: #f8f8f8;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    opacity: 0;
    animation: fadeInUp 1s ease forwards;
    animation-delay: 0s;
    overflow: hidden;
}

/* Основной блоб как фон */
.details-blob {
    background: #D16F06;
    border-radius: 60% 40% 80% 20% / 50% 70% 30% 50%;
    width: 150vw;
    max-width: none;
    padding: 8rem 3rem;
    position: relative;
    /* box-shadow: 0 20px 60px rgba(209, 111, 6, 0.3); */
    opacity: 0;
    animation: fadeInUp 1s ease forwards;
    animation-delay: 0.2s;
    margin-left: -25vw;
    margin-right: -25vw;
}

/* Заголовок */
.details-title {
    font-family: 'Shantell Sans', cursive;
    font-size: 3rem;
    font-weight: 600;
    color: white;
    text-align: center;
    margin: 0 0 3rem 0;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

/* Контейнер для текстов */
.details-content {
    position: relative;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
}

/* Блоки текста */
.details-text-block {
    font-family: 'Shantell Sans', cursive;
    font-size: 1rem;
    font-weight: 400;
    color: white;
    line-height: 1.5;
    margin-bottom: 2rem;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
    position: relative;
}

/* Позиционирование блоков */
.details-text-block:nth-child(1) {
    text-align: left;
}

.details-text-block:nth-child(2) {
    text-align: right;
    margin-left: auto;
    width: 45%;
}

.details-text-block:nth-child(3) {
    text-align: center;
    margin: 0 auto;
    width: 70%;
}

.details-text-block:last-child {
    margin-bottom: 0;
}

/* Иконки цветов */
.details-flowers {
    position: absolute;
    top: 6rem;
    right: 2rem;
    z-index: 3;
}

.details-flowers img {
    width: 100px;
    height: 100px;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
    opacity: 0.9;
}

/* Иконка денег */
.details-money {
    position: absolute;
    bottom: 4rem;
    left: 2rem;
    z-index: 3;
}

.details-money img {
    width: 100px;
    height: 100px;
    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.3));
    opacity: 0.9;
}

/* Медиа-запросы для адаптивности */
@media (max-width: 768px) {
    .details-info-section {
        padding: 3.5rem 0 1.5rem;
    }
    
    .details-blob {
        width: 140vw;
        padding: 6rem 2rem;
        margin-left: -20vw;
        margin-right: -20vw;
    }
    
    .details-title {
        font-size: 2.5rem;
        margin-bottom: 2rem;
    }
    
    .details-text-block {
        font-size: 0.9rem;
        margin-bottom: 1.5rem;
    }
    
    .details-content {
        max-width: 500px;
    }
    
    /* Мобильное позиционирование блоков */
    .details-text-block:nth-child(2) {
        width: 60%;
    }
    
    .details-text-block:nth-child(3) {
        width: 85%;
    }
    
    .details-flowers {
        top: 7rem;
        right: 1rem;
    }
    
    .details-money {
        bottom: 2.5rem;
        left: 1rem;
    }
    
    .details-flowers img {
        width: 80px;
        height: 80px;
    }
    
    .details-money img {
        width: 60px;
        height: 60px;
    }
}

@media (max-width: 480px) {
    .details-info-section {
        padding: 3rem 0 1rem;
    }
    
    .details-blob {
        width: 130vw;
        padding: 5rem 1.5rem;
        margin-left: -15vw;
        margin-right: -15vw;
    }
    
    .details-title {
        font-size: 2rem;
        margin-bottom: 1.5rem;
    }
    
    .details-text-block {
        font-size: 0.8rem;
        margin-bottom: 1.2rem;
    }
    
    .details-content {
        max-width: 350px;
    }
    
    /* Очень мобильное позиционирование блоков */
    .details-text-block:nth-child(2) {
        width: 70%;
    }
    
    .details-text-block:nth-child(3) {
        width: 90%;
    }
    
    .details-flowers {
        top: 5.5rem;
        right: 0.5rem;
    }
    
    .details-money {
        bottom: 1.5rem;
        left: 0.5rem;
    }
    
    .details-flowers img {
        width: 65px;
        height: 65px;
    }
    
    .details-money img {
        width: 50px;
        height: 50px;
    }
}

@media (min-width: 1024px) {
    .details-info-section {
        padding: 4.5rem 0 2.5rem;
    }
    
    .details-blob {
        width: 160vw;
        max-width: none;
        padding: 9rem 4rem;
        margin-left: -30vw;
        margin-right: -30vw;
    }
    
    .details-title {
        font-size: 3.5rem;
        margin-bottom: 3.5rem;
    }
    
    .details-text-block {
        font-size: 1.2rem;
        margin-bottom: 2.5rem;
    }
    
    .details-content {
        max-width: 700px;
    }
    
    .details-flowers {
        top: 7.5rem;
        right: 3rem;
    }
    
    .details-money {
        bottom: 5.5rem;
        left: 3rem;
    }
    
    .details-flowers img {
        width: 120px;
        height: 120px;
    }
    
    .details-money img {
        width: 120px;
        height: 120px;
    }
}

@media (min-width: 1440px) {
    .details-info-section {
        padding: 5rem 0 3rem;
    }
    
    .details-blob {
        width: 170vw;
        max-width: none;
        padding: 10rem 5rem;
        margin-left: -35vw;
        margin-right: -35vw;
    }
    
    .details-title {
        font-size: 4rem;
        margin-bottom: 4rem;
    }
    
    .details-text-block {
        font-size: 1.3rem;
        margin-bottom: 3rem;
    }
    
    .details-content {
        max-width: 800px;
    }
    
    .details-flowers {
        top: 9rem;
        right: 4rem;
    }
    
    .details-money {
        bottom: 7rem;
        left: 4rem;
    }
    
    .details-flowers img {
        width: 130px;
        height: 130px;
    }
    
    .details-money img {
        width: 130px;
        height: 130px;
    }
}







/* Секция дресс-кода */
.dresscode-section {
    background: #f8f8f8;
    padding: 4rem 2rem 6rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.dresscode-container {
    max-width: 800px;
    width: 100%;
    text-align: center;
    position: relative;
    z-index: 2;
}

.dresscode-title {
    font-family: 'Shantell Sans', cursive;
    font-size: 3rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 3rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
    animation: fadeInUp 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 0.5s;
    opacity: 0;
}

.dresscode-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4rem;
}

.dresscode-text {
    font-family: 'Shantell Sans', cursive;
    font-size: 1.4rem;
    font-weight: 400;
    color: #333;
    line-height: 1.6;
    margin: 0;
    animation: fadeInUp 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 1s;
    opacity: 0;
}

.highlight {
    color: #D16F06;
    font-weight: 600;
    font-style: italic;
}

.dresscode-oval {
    background: linear-gradient(135deg, #D16F06 0%, #E8850A 100%);
    border-radius: 60% 40% 70% 30% / 50% 60% 40% 50%;
    padding: 3rem 4rem;
    color: white;
    box-shadow: 0 10px 30px rgba(209, 111, 6, 0.3);
    transform: rotate(-2deg);
    animation: slideInLeft 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 1.5s;
    opacity: 0;
    max-width: 600px;
    width: 100%;
}

.dresscode-oval-content {
    transform: rotate(2deg);
}

.oval-title {
    font-family: 'Shantell Sans', cursive;
    font-size: 2rem;
    font-weight: 600;
    margin: 0 0 1.5rem 0;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

.oval-text {
    font-family: 'Shantell Sans', cursive;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.5;
    margin: 0;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
}

.oval-text strong {
    font-weight: 600;
    text-decoration: underline;
}

/* Адаптивность для дресс-кода */
@media (max-width: 768px) {
    .dresscode-section {
        padding: 3rem 1rem 4rem 1rem;
    }
    
    .dresscode-title {
        font-size: 2.2rem;
        margin-bottom: 2rem;
    }
    
    .dresscode-text {
        font-size: 1.1rem;
    }
    
    .dresscode-oval {
        padding: 2.5rem 2rem;
        transform: rotate(-1deg);
    }
    
    .dresscode-oval-content {
        transform: rotate(1deg);
    }
    
    .oval-title {
        font-size: 1.6rem;
        margin-bottom: 1rem;
    }
    
    .oval-text {
        font-size: 1rem;
        line-height: 1.4;
    }
}

@media (max-width: 480px) {
    .dresscode-section {
        padding: 3rem 1rem 3rem 1rem;
    }
    
    .dresscode-title {
        font-size: 1.8rem;
    }
    
    .dresscode-text {
        font-size: 1rem;
        line-height: 1.4;
    }
    
    .dresscode-oval {
        padding: 2rem 1.5rem;
    }
    
    .oval-title {
        font-size: 1.4rem;
    }
    
    .oval-text {
        font-size: 0.9rem;
    }
}

@media (min-width: 1024px) {
    .dresscode-section {
        padding: 10rem 2rem;
    }
    
    .dresscode-title {
        font-size: 3.5rem;
        margin-bottom: 4rem;
    }
    
    .dresscode-text {
        font-size: 1.6rem;
    }
    
    .dresscode-oval {
        padding: 4rem 5rem;
        transform: rotate(-3deg);
    }
    
    .dresscode-oval-content {
        transform: rotate(3deg);
    }
    
    .oval-title {
        font-size: 2.4rem;
        margin-bottom: 2rem;
    }
    
    .oval-text {
        font-size: 1.4rem;
        line-height: 1.6;
    }
}

@media (min-width: 1440px) {
    .dresscode-title {
        font-size: 4rem;
    }
    
    .dresscode-text {
        font-size: 1.8rem;
    }
    
    .oval-title {
        font-size: 2.8rem;
    }
    
    .oval-text {
        font-size: 1.6rem;
    }
}

/* Секция анкеты */
.survey-section {
    background: #f8f8f8;
    padding: 4rem 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.survey-container {
    max-width: 600px;
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
}

.survey-title {
    font-family: 'Shantell Sans', cursive;
    font-size: 3rem;
    font-weight: 600;
    color: #D16F06;
    margin-bottom: 2rem;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
    animation: fadeInUp 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 0.5s;
    opacity: 0;
    text-align: center;
}

.survey-description {
    font-family: 'Shantell Sans', cursive;
    font-size: 1.4rem;
    font-weight: 400;
    color: #333;
    line-height: 1.6;
    margin: 0 0 3rem 0;
    animation: fadeInUp 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 1s;
    opacity: 0;
    text-align: center;
}

.survey-form {
    animation: fadeInUp 1s ease-out;
    animation-fill-mode: both;
    animation-delay: 1.5s;
    opacity: 0;
}

.family-forms {
    display: flex;
    flex-direction: column;
    gap: 3rem;
    margin-bottom: 3rem;
}

.person-form {
    background: white;
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(209, 111, 6, 0.1);
    border: 2px solid #D16F06;
}

.person-name {
    font-family: 'Shantell Sans', cursive;
    font-size: 1.8rem;
    font-weight: 600;
    color: #D16F06;
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    position: relative;
    display: inline-block;
}

.person-name .underline-svg {
    position: absolute;
    bottom: -5px;
    left: 0;
    height: 12px;
    width: 100%;
    pointer-events: none;
}

.person-name .underline-svg svg {
    width: 100%;
    height: 100%;
    display: block;
}

.attendance-group {
    margin-bottom: 2rem;
}

.radio-group {
    display: flex;
    gap: 2rem;
    justify-content: flex-start;
    margin-bottom: 2rem;
}

.radio-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
}

.radio-item input[type="radio"] {
    width: 20px;
    height: 20px;
    accent-color: #D16F06;
}

.radio-item label {
    font-family: 'Shantell Sans', cursive;
    font-size: 1.2rem;
    font-weight: 400;
    color: #333;
    cursor: pointer;
}

.input-group {
    margin-bottom: 1.5rem;
}

.form-input {
    width: 100%;
    padding: 1rem 1.5rem;
    border: 2px solid #D16F06;
    border-radius: 15px;
    font-family: 'Shantell Sans', cursive;
    font-size: 1rem;
    font-weight: 400;
    background: #f8f8f8;
    color: #333;
    outline: none;
    transition: all 0.3s ease;
}

.form-input:focus {
    border-color: #E8850A;
    box-shadow: 0 0 0 3px rgba(209, 111, 6, 0.1);
    background: white;
}

.form-input::placeholder {
    color: #999;
    font-style: italic;
}

.submit-btn {
    background: linear-gradient(135deg, #D16F06 0%, #E8850A 100%);
    color: white;
    border: none;
    border-radius: 25px;
    padding: 1.2rem 3rem;
    font-family: 'Shantell Sans', cursive;
    font-size: 1.4rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 5px 15px rgba(209, 111, 6, 0.3);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: block;
    margin: 0 auto;
}

.submit-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(209, 111, 6, 0.4);
}

.submit-btn:active {
    transform: translateY(0);
}

.submit-btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

.submit-btn:disabled:hover {
    transform: none;
    box-shadow: 0 5px 15px rgba(209, 111, 6, 0.3);
}

/* Декоративные звездочки для секции анкеты */
.survey-star-1 {
    position: absolute;
    top: 10%;
    right: 15%;
    animation: rotate 20s linear infinite, float-star-1 8s ease-in-out infinite;
    z-index: 1;
}

.survey-star-2 {
    position: absolute;
    bottom: 20%;
    left: 10%;
    animation: rotate 15s linear infinite reverse, float-star-2 6s ease-in-out infinite;
    z-index: 1;
}

.survey-star-3 {
    position: absolute;
    top: 30%;
    left: 5%;
    animation: rotate 25s linear infinite, float-star-3 10s ease-in-out infinite;
    z-index: 1;
}

/* Адаптивность для анкеты */
@media (max-width: 768px) {
    .survey-section {
        padding: 4rem 1rem 2rem;
    }
    
    .survey-title {
        font-size: 2.2rem;
        margin-bottom: 1.5rem;
    }
    
    .survey-description {
        font-size: 1.1rem;
        margin-bottom: 2rem;
    }
    
    .family-forms {
        gap: 2rem;
        margin-bottom: 2rem;
    }
    
    .person-form {
        padding: 1.5rem;
    }
    
    .person-name {
        font-size: 1.5rem;
        margin-bottom: 1rem;
    }
    
    .radio-group {
        flex-direction: column;
        gap: 1rem;
        align-items: flex-start;
    }
    
    .radio-item label {
        font-size: 1.1rem;
    }
    
    .form-input {
        padding: 0.8rem 1.2rem;
        font-size: 0.9rem;
    }
    
    .submit-btn {
        padding: 1rem 2.5rem;
        font-size: 1.2rem;
    }
}

@media (max-width: 480px) {
    .survey-section {
        padding: 3.5rem 1rem 1.5rem;
    }
    
    .survey-title {
        font-size: 1.8rem;
    }
    
    .survey-description {
        font-size: 1rem;
        line-height: 1.4;
    }
    
    .person-form {
        padding: 1rem;
        border-radius: 15px;
    }
    
    .person-name {
        font-size: 1.3rem;
    }
    
    .radio-item label {
        font-size: 1rem;
    }
    
    .form-input {
        padding: 0.7rem 1rem;
        font-size: 0.85rem;
        border-radius: 12px;
    }
    
    .submit-btn {
        padding: 0.8rem 2rem;
        font-size: 1.1rem;
        border-radius: 20px;
    }
}

@media (min-width: 1024px) {
    .survey-section {
        padding: 5rem 2rem 3rem;
    }
    
    .survey-container {
        max-width: 700px;
    }
    
    .survey-title {
        font-size: 3.5rem;
        margin-bottom: 2.5rem;
    }
    
    .survey-description {
        font-size: 1.6rem;
        margin-bottom: 4rem;
    }
    
    .family-forms {
        gap: 3.5rem;
        margin-bottom: 4rem;
    }
    
    .person-form {
        padding: 2.5rem;
    }
    
    .person-name {
        font-size: 2rem;
        margin-bottom: 2rem;
    }
    
    .radio-item label {
        font-size: 1.3rem;
    }
    
    .form-input {
        padding: 1.2rem 1.8rem;
        font-size: 1.1rem;
    }
    
    .submit-btn {
        padding: 1.4rem 3.5rem;
        font-size: 1.5rem;
    }
}

@media (min-width: 1440px) {
    .survey-title {
        font-size: 4rem;
    }
    
    .survey-description {
        font-size: 1.8rem;
    }
    
    .person-name {
        font-size: 2.2rem;
    }
    
    .submit-btn {
        font-size: 1.6rem;
    }
} 