@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap');

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Lora', serif;
    line-height: 1.6;
    color: #333;
}

.hero {
    height: 100vh;
    background: linear-gradient(135deg, #d4a373 0%, #c9959a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: white;
    position: relative;
    overflow: hidden;
}

.hero::before {
    content: '';
    position: absolute;
    top: -30px;
    left: -30px;
    width: 600px;
    height: 600px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='%23fff' opacity='0.45'%3E%3C!-- Main elegant vine --%3E%3Cpath d='M5 5 Q25 15 40 35 Q55 55 65 80 Q72 100 75 125 Q76 145 72 165' stroke='%23fff' stroke-width='3' fill='none' opacity='0.4'/%3E%3C!-- Decorative flower 1 --%3E%3Ccircle cx='42' cy='37' r='12' opacity='0.35'/%3E%3Cpath d='M42 25 Q38 30 42 35 Q46 30 42 25 M30 37 Q35 33 40 37 Q35 41 30 37 M54 37 Q49 33 44 37 Q49 41 54 37 M42 49 Q38 44 42 40 Q46 44 42 49' opacity='0.4'/%3E%3Ccircle cx='42' cy='37' r='4' opacity='0.45'/%3E%3C!-- Leaves along vine --%3E%3Cpath d='M35 50 Q25 55 22 65 Q25 60 35 55 Z' opacity='0.37'/%3E%3Cpath d='M70 85 Q75 75 82 72 Q77 78 70 82 Z' opacity='0.37'/%3E%3Cpath d='M50 95 Q42 100 38 108 Q43 102 50 98 Z' opacity='0.37'/%3E%3C!-- Decorative flower 2 --%3E%3Ccircle cx='67' cy='82' r='14' opacity='0.35'/%3E%3Cpath d='M67 68 Q62 73 67 78 Q72 73 67 68 M53 82 Q58 77 63 82 Q58 87 53 82 M81 82 Q76 77 71 82 Q76 87 81 82 M67 96 Q62 91 67 86 Q72 91 67 96' opacity='0.4'/%3E%3Ccircle cx='67' cy='82' r='5' opacity='0.45'/%3E%3C!-- Small buds --%3E%3Ccircle cx='60' cy='105' r='6' opacity='0.4'/%3E%3Cpath d='M60 99 Q57 102 60 105 Q63 102 60 99 M54 105 Q57 102 60 105 Q57 108 54 105' opacity='0.43'/%3E%3Ccircle cx='75' cy='130' r='7' opacity='0.4'/%3E%3Cpath d='M75 123 Q72 126 75 130 Q78 126 75 123 M68 130 Q71 127 75 130 Q71 133 68 130' opacity='0.43'/%3E%3C!-- Delicate tendrils --%3E%3Cpath d='M40 35 Q35 30 32 28 Q30 30 28 35' stroke='%23fff' stroke-width='1.5' fill='none' opacity='0.35'/%3E%3Cpath d='M65 80 Q70 75 75 70 Q73 72 70 77' stroke='%23fff' stroke-width='1.5' fill='none' opacity='0.35'/%3E%3Cpath d='M75 125 Q80 120 88 115 Q85 120 82 125' stroke='%23fff' stroke-width='1.5' fill='none' opacity='0.35'/%3E%3C!-- Secondary flowing vine --%3E%3Cpath d='M42 37 Q55 45 70 50 Q85 52 100 50 Q112 47 120 40' stroke='%23fff' stroke-width='2.5' fill='none' opacity='0.37'/%3E%3C!-- Small flowers on secondary vine --%3E%3Ccircle cx='85' cy='51' r='8' opacity='0.38'/%3E%3Cpath d='M85 43 Q82 46 85 49 Q88 46 85 43 M77 51 Q80 48 83 51 Q80 54 77 51' opacity='0.4'/%3E%3Ccircle cx='105' cy='49' r='7' opacity='0.38'/%3E%3Cpath d='M105 42 Q102 45 105 48 Q108 45 105 42 M98 49 Q101 46 104 49 Q101 52 98 49' opacity='0.4'/%3E%3C!-- Accent leaves --%3E%3Cpath d='M90 58 Q88 65 90 72 Q92 65 90 58' opacity='0.35'/%3E%3Cpath d='M110 55 Q112 62 115 68 Q113 62 110 55' opacity='0.35'/%3E%3C!-- Dotted accents --%3E%3Ccircle cx='48' cy='65' r='2' opacity='0.4'/%3E%3Ccircle cx='78' cy='95' r='2' opacity='0.4'/%3E%3Ccircle cx='82' cy='140' r='2' opacity='0.4'/%3E%3Ccircle cx='95' cy='60' r='1.5' opacity='0.37'/%3E%3Ccircle cx='118' cy='45' r='1.5' opacity='0.37'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    opacity: 1;
    pointer-events: none;
    animation: floralFloat 6s ease-in-out infinite;
}

.hero::after {
    content: '';
    position: absolute;
    bottom: -30px;
    right: -30px;
    width: 650px;
    height: 650px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='%23fff' opacity='0.45'%3E%3C!-- Main elegant vine --%3E%3Cpath d='M395 395 Q375 385 360 365 Q345 345 335 320 Q328 300 325 275 Q324 255 328 235' stroke='%23fff' stroke-width='3.2' fill='none' opacity='0.4'/%3E%3C!-- Large decorative flower --%3E%3Ccircle cx='358' cy='363' r='16' opacity='0.35'/%3E%3Cpath d='M358 347 Q353 352 358 358 Q363 352 358 347 M342 363 Q347 358 352 363 Q347 368 342 363 M374 363 Q369 358 364 363 Q369 368 374 363 M358 379 Q353 374 358 369 Q363 374 358 379' opacity='0.4'/%3E%3Ccircle cx='358' cy='363' r='6' opacity='0.45'/%3E%3Cpath d='M358 342 Q352 347 358 353 Q364 347 358 342' opacity='0.42'/%3E%3Cpath d='M337 363 Q342 357 348 363 Q342 369 337 363' opacity='0.42'/%3E%3C!-- Leaves along main vine --%3E%3Cpath d='M365 350 Q375 345 378 335 Q375 340 365 345 Z' opacity='0.37'/%3E%3Cpath d='M330 315 Q325 325 318 328 Q323 322 330 318 Z' opacity='0.37'/%3E%3Cpath d='M350 305 Q358 300 362 292 Q357 298 350 302 Z' opacity='0.37'/%3E%3C!-- Second beautiful flower --%3E%3Ccircle cx='333' cy='318' r='15' opacity='0.35'/%3E%3Cpath d='M333 303 Q328 308 333 313 Q338 308 333 303 M318 318 Q323 313 328 318 Q323 323 318 318 M348 318 Q343 313 338 318 Q343 323 348 318 M333 333 Q328 328 333 323 Q338 328 333 333' opacity='0.4'/%3E%3Ccircle cx='333' cy='318' r='5' opacity='0.45'/%3E%3Cpath d='M333 298 Q327 303 333 309 Q339 303 333 298' opacity='0.42'/%3E%3C!-- Flower buds --%3E%3Ccircle cx='340' cy='295' r='7' opacity='0.4'/%3E%3Cpath d='M340 288 Q337 291 340 294 Q343 291 340 288 M333 295 Q336 292 339 295 Q336 298 333 295' opacity='0.43'/%3E%3Ccircle cx='325' cy='270' r='8' opacity='0.4'/%3E%3Cpath d='M325 262 Q322 265 325 269 Q328 265 325 262 M317 270 Q320 267 324 270 Q320 273 317 270' opacity='0.43'/%3E%3C!-- Delicate curling tendrils --%3E%3Cpath d='M360 365 Q365 370 368 372 Q370 370 372 365' stroke='%23fff' stroke-width='1.6' fill='none' opacity='0.35'/%3E%3Cpath d='M335 320 Q330 325 325 330 Q327 328 330 323' stroke='%23fff' stroke-width='1.6' fill='none' opacity='0.35'/%3E%3Cpath d='M325 275 Q320 280 312 285 Q315 280 318 275' stroke='%23fff' stroke-width='1.6' fill='none' opacity='0.35'/%3E%3C!-- Secondary flowing vine --%3E%3Cpath d='M358 363 Q345 355 330 350 Q315 348 300 350 Q288 353 280 360' stroke='%23fff' stroke-width='2.7' fill='none' opacity='0.37'/%3E%3C!-- Flowers on secondary vine --%3E%3Ccircle cx='315' cy='349' r='9' opacity='0.38'/%3E%3Cpath d='M315 340 Q312 343 315 346 Q318 343 315 340 M306 349 Q309 346 312 349 Q309 352 306 349' opacity='0.4'/%3E%3Ccircle cx='295' cy='351' r='8' opacity='0.38'/%3E%3Cpath d='M295 343 Q292 346 295 349 Q298 346 295 343 M287 351 Q290 348 293 351 Q290 354 287 351' opacity='0.4'/%3E%3Ccircle cx='278' cy='358' r='7' opacity='0.38'/%3E%3Cpath d='M278 351 Q275 354 278 357 Q281 354 278 351' opacity='0.4'/%3E%3C!-- Accent leaves on secondary vine --%3E%3Cpath d='M310 342 Q308 335 306 328 Q308 335 310 342' opacity='0.35'/%3E%3Cpath d='M290 345 Q288 338 285 332 Q287 338 290 345' opacity='0.35'/%3E%3Cpath d='M270 365 Q268 358 265 352 Q267 358 270 365' opacity='0.35'/%3E%3C!-- Small accent dots --%3E%3Ccircle cx='352' cy='335' r='2' opacity='0.4'/%3E%3Ccircle cx='322' cy='305' r='2' opacity='0.4'/%3E%3Ccircle cx='318' cy='260' r='2' opacity='0.4'/%3E%3Ccircle cx='305' cy='340' r='1.8' opacity='0.37'/%3E%3Ccircle cx='282' cy='355' r='1.8' opacity='0.37'/%3E%3Ccircle cx='345' cy='380' r='1.8' opacity='0.37'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom right;
    opacity: 1;
    pointer-events: none;
    animation: floralFloat 8s ease-in-out infinite;
}

@keyframes floralFloat {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-10px) scale(1.02);
    }
}

.hero-content {
    animation: fadeIn 1.5s ease-in;
}

.names {
    font-family: 'Great Vibes', cursive;
    font-size: 7rem;
    margin-bottom: 1rem;
    font-weight: 400;
    letter-spacing: 2px;
}

.date {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.location {
    font-size: 1.2rem;
    opacity: 0.9;
}

.section {
    padding: 4rem 2rem;
    position: relative;
    overflow: hidden;
}

.section:nth-child(even) {
    background-color: #f8f9fa;
}

/* Minimal floral decoration for About section */
.about::before {
    content: '';
    position: absolute;
    top: 20px;
    right: 20px;
    width: 250px;
    height: 250px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='%23c9959a' opacity='0.35'%3E%3Cpath d='M20 20 Q30 25 35 35 Q40 45 42 60' stroke='%23c9959a' stroke-width='2.5' fill='none' opacity='0.4'/%3E%3Ccircle cx='37' cy='37' r='10' opacity='0.38'/%3E%3Cpath d='M37 27 Q34 30 37 34 Q40 30 37 27 M30 37 Q33 34 36 37 Q33 40 30 37' opacity='0.4'/%3E%3Ccircle cx='37' cy='37' r='3' opacity='0.42'/%3E%3Cpath d='M32 50 Q27 55 25 62' stroke='%23c9959a' stroke-width='2' fill='none' opacity='0.35'/%3E%3Ccircle cx='43' cy='62' r='8' opacity='0.38'/%3E%3Cpath d='M43 54 Q40 57 43 61 Q46 57 43 54' opacity='0.4'/%3E%3Cpath d='M28 48 Q22 50 18 55' stroke='%23c9959a' stroke-width='1.5' fill='none' opacity='0.32'/%3E%3Ccircle cx='35' cy='75' r='6' opacity='0.35'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
}

.about .container {
    position: relative;
    z-index: 1;
}

/* Minimal floral decoration for Details section */
.details::after {
    content: '';
    position: absolute;
    bottom: 30px;
    left: 30px;
    width: 220px;
    height: 220px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cg fill='%23d4a373' opacity='0.32'%3E%3Cpath d='M160 160 Q150 155 145 145 Q140 135 138 120' stroke='%23d4a373' stroke-width='2.5' fill='none' opacity='0.38'/%3E%3Ccircle cx='143' cy='143' r='12' opacity='0.36'/%3E%3Cpath d='M143 131 Q139 135 143 140 Q147 135 143 131 M131 143 Q135 139 139 143 Q135 147 131 143' opacity='0.39'/%3E%3Ccircle cx='143' cy='143' r='4' opacity='0.4'/%3E%3Ccircle cx='136' cy='122' r='7' opacity='0.37'/%3E%3Cpath d='M136 115 Q133 118 136 122 Q139 118 136 115' opacity='0.39'/%3E%3Cpath d='M150 150 Q155 155 160 162' stroke='%23d4a373' stroke-width='2' fill='none' opacity='0.33'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
}

.details .container {
    position: relative;
    z-index: 1;
}

/* Minimal floral decoration for Timeline section */
.timeline::before {
    content: '';
    position: absolute;
    top: 40px;
    left: 40px;
    width: 200px;
    height: 200px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cg fill='%23c9959a' opacity='0.33'%3E%3Cpath d='M15 15 Q20 20 25 30 Q28 40 30 52' stroke='%23c9959a' stroke-width='2.3' fill='none' opacity='0.39'/%3E%3Ccircle cx='26' cy='32' r='10' opacity='0.37'/%3E%3Cpath d='M26 22 Q23 26 26 30 Q29 26 26 22 M18 32 Q21 29 24 32 Q21 35 18 32' opacity='0.4'/%3E%3Ccircle cx='26' cy='32' r='3' opacity='0.41'/%3E%3Cpath d='M35 25 Q40 22 45 20' stroke='%23c9959a' stroke-width='2' fill='none' opacity='0.36'/%3E%3Ccircle cx='31' cy='54' r='7' opacity='0.38'/%3E%3Cpath d='M31 47 Q28 50 31 53 Q34 50 31 47' opacity='0.4'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
}

.timeline::after {
    content: '';
    position: absolute;
    bottom: 30px;
    right: 30px;
    width: 190px;
    height: 190px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 150'%3E%3Cg fill='%23c9959a' opacity='0.33'%3E%3Cpath d='M135 135 Q130 130 125 120 Q122 110 120 98' stroke='%23c9959a' stroke-width='2.3' fill='none' opacity='0.39'/%3E%3Ccircle cx='124' cy='118' r='9' opacity='0.37'/%3E%3Cpath d='M124 109 Q121 112 124 116 Q127 112 124 109 M116 118 Q119 115 122 118 Q119 121 116 118' opacity='0.4'/%3E%3Ccircle cx='124' cy='118' r='3' opacity='0.41'/%3E%3Ccircle cx='119' cy='96' r='6' opacity='0.38'/%3E%3Cpath d='M119 90 Q116 93 119 96 Q122 93 119 90' opacity='0.4'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
}

.timeline .container {
    position: relative;
    z-index: 1;
}

/* Minimal floral decoration for Location section */
.section.location::before {
    content: '';
    position: absolute;
    top: 30px;
    right: 50px;
    width: 210px;
    height: 210px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 170'%3E%3Cg fill='%23d4a373' opacity='0.34'%3E%3Cpath d='M155 10 Q145 15 138 25 Q133 35 130 48' stroke='%23d4a373' stroke-width='2.5' fill='none' opacity='0.4'/%3E%3Ccircle cx='136' cy='27' r='11' opacity='0.38'/%3E%3Cpath d='M136 16 Q132 20 136 25 Q140 20 136 16 M125 27 Q129 23 133 27 Q129 31 125 27' opacity='0.41'/%3E%3Ccircle cx='136' cy='27' r='4' opacity='0.43'/%3E%3Cpath d='M145 35 Q150 30 155 25' stroke='%23d4a373' stroke-width='2' fill='none' opacity='0.37'/%3E%3Ccircle cx='129' cy='50' r='8' opacity='0.39'/%3E%3Cpath d='M129 42 Q126 45 129 49 Q132 45 129 42' opacity='0.41'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
}

.section.location .container {
    position: relative;
    z-index: 1;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

h2 {
    font-family: 'Great Vibes', cursive;
    font-size: 3.5rem;
    margin-bottom: 2rem;
    color: #c9959a;
    font-weight: 400;
}

.about-row {
    display: flex;
    align-items: center;
    gap: 3rem;
    max-width: 1000px;
    margin: 0 auto 3rem;
}

.about-row-reverse {
    flex-direction: row-reverse;
}

.about-text {
    flex: 1;
}

.about-text p {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    color: #555;
    text-align: left;
}

.about-image {
    flex: 1;
    max-width: 350px;
}

.about-image-small {
    max-width: 300px;
}

.about-image img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.detail-card {
    background: white;
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.detail-card:hover {
    transform: translateY(-5px);
}

.detail-card h3 {
    font-family: 'Lora', serif;
    color: #d4a373;
    margin-bottom: 1rem;
    font-size: 1.8rem;
    font-weight: 400;
}

.detail-card p {
    font-size: 1.1rem;
    color: #666;
}

.detail-card p:first-of-type {
    font-size: 2rem;
    font-weight: bold;
    color: #c9959a;
    margin: 0.5rem 0;
}

.card-description {
    font-size: 0.95rem;
    font-style: italic;
    color: #888;
    margin-top: 1rem;
    line-height: 1.5;
}

.location-info {
    font-family: 'Lora', serif;
}

.location-desc {
    font-size: 1.15rem;
    font-weight: 600;
    margin-top: 1.5rem;
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

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

.map-container {
    position: relative;
    width: 100%;
    max-width: 600px;
    padding-bottom: 450px;
    height: 0;
    overflow: hidden;
}

.map-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.rsvp {
    background: linear-gradient(135deg, #d4a373 0%, #c9959a 100%);
    color: white;
}

.rsvp h2 {
    color: white;
}

.btn {
    display: inline-block;
    margin-top: 1.5rem;
    padding: 1rem 3rem;
    background: white;
    color: #c9959a;
    text-decoration: none;
    border-radius: 50px;
    font-size: 1.1rem;
    font-weight: bold;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.btn:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

footer {
    background: #333;
    color: white;
    text-align: center;
    padding: 2rem;
}

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

.form-container {
    position: relative;
    width: 100%;
    max-width: 640px;
    margin: 2rem auto 0;
    overflow: hidden;
}

.form-container iframe {
    width: 100%;
    min-height: 800px;
    border: none;
}

.form-link {
    margin-top: 1.5rem;
    font-size: 1rem;
}

.form-link a {
    color: white;
    text-decoration: underline;
    font-weight: bold;
}

.form-link a:hover {
    opacity: 0.8;
}

@media (max-width: 768px) {
    .names {
        font-size: 2.5rem;
    }

    .date {
        font-size: 1.2rem;
    }

    h2 {
        font-size: 2.8rem;
    }

    .details-grid {
        grid-template-columns: 1fr;
    }

    .form-container iframe {
        min-height: 1000px;
    }

    .about-row,
    .about-row-reverse {
        flex-direction: column-reverse;
    }

    .about-text p {
        text-align: center;
    }

    .about-image {
        max-width: 100%;
    }

    .map-container {
        max-width: 100%;
        padding-bottom: 75%;
    }
}
