
        :root {
            --terracotta: #C07850;
            --sage: #8B9E7E;
            --cream: #FFF8F0;
            --gold: #B8963E;
            --dusty-rose: #C9A9A6;
            --dark: #3D3229;
            --olive: #6B7B4F;
        }

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

        html {
            scroll-behavior: smooth;
            overflow-x: hidden;
        }

        body {
            font-family: 'Josefin Sans', sans-serif;
            background: var(--cream);
            color: var(--dark);
            overflow-x: hidden;
            max-width: 100vw;
        }

        .details-section,
        .rsvp-section,
        .info-section,
        .camping-section,
                footer {
            position: relative;
            z-index: 1;
        }

        /* ── Hero Section ── */
        .hero {
            position: relative;
            height: 100vh;
            min-height: 700px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            overflow: hidden;
        }

        .hero-bg {
            position: absolute;
            inset: 0;
            background:
none;
            filter: brightness(1) saturate(1.3);
            z-index: 0;
        }

        .hero-overlay {
            display: none;
        }


        .hero-content {
            position: relative;
            z-index: 3;
            padding: 2rem;
            max-width: 700px;
        }

        .hero-content .pre-title {
            font-family: 'Roxie Rossa', serif;
            font-weight: 300;
            font-size: 0.85rem;
            letter-spacing: 6px;
            text-transform: uppercase;
            color: var(--dusty-rose);
            margin-bottom: 1rem;
        }

        .hero-content h1 {
            font-family: 'Allison', cursive;
            font-size: clamp(3.5rem, 8vw, 6.5rem);
            font-weight: 400;
            color: #fff;
            line-height: 1.1;
            margin-bottom: 0.5rem;
            text-shadow: 0 2px 20px rgba(0,0,0,0.3);
        }

        .hero-content .ampersand {
            font-family: 'Roxie Rossa', serif;
            font-style: italic;
            font-weight: 300;
            font-size: clamp(2rem, 5vw, 3.5rem);
            color: var(--gold);
            display: inline;
            margin: 0;
        }

        .hero-content .date-line {
            font-family: 'Roxie Rossa', serif;
            font-weight: 300;
            font-size: 1rem;
            letter-spacing: 4px;
            color: rgba(255,255,255,0.85);
            margin-top: 1.5rem;
            text-transform: uppercase;
        }

        .hero-content .divider {
            width: 60px;
            height: 1px;
            background: var(--gold);
            margin: 1.5rem auto;
        }

        .scroll-hint {
            position: absolute;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 3;
            animation: bounce 2s infinite;
            cursor: pointer;
        }
        .scroll-hint svg {
            width: 28px;
            height: 28px;
            stroke: var(--gold);
            stroke-width: 1.5;
            fill: none;
        }

        @keyframes bounce {
            0%, 100% { transform: translateX(-50%) translateY(0); }
            50% { transform: translateX(-50%) translateY(10px); }
        }

        /* ── Section Styling ── */
        section {
            padding: 5rem 2rem;
        }

        .section-title {
            font-family: 'Roxie Rossa', serif;
            font-size: 2.5rem;
            font-weight: 300;
            text-align: center;
            color: #3B5998;
            margin-bottom: 0.5rem;
        }

        .section-subtitle {
            font-family: 'Josefin Sans', sans-serif;
            font-weight: 300;
            font-size: 0.95rem;
            letter-spacing: 4px;
            text-transform: uppercase;
            text-align: center;
            color: #3B5998;
            margin-bottom: 3rem;
        }

        .section-divider {
            width: 40px;
            height: 1px;
            background: var(--gold);
            margin: 0 auto 3rem;
        }

        /* ── Countdown ── */

        /* ── Details ── */
        .details-section {
            background: var(--cream);
            max-width: 100%;
            margin: 0 auto;
            padding-left: 2rem;
            padding-right: 2rem;
        }

        .details-grid {
            display: grid;
            grid-template-columns: 1fr 1fr 1fr 1fr;
            gap: 1.5rem;
            max-width: 960px;
            margin: 0 auto;
        }

        .detail-card {
            text-align: center;
            padding: 2rem 1.5rem;
            border: 1px solid rgba(59, 89, 152, 0.25);
            border-radius: 12px;
            position: relative;
        }

        .detail-card .icon {
            font-size: 1.8rem;
            margin-bottom: 1rem;
            color: #3B5998;
        }

        .detail-card h3 {
            font-family: 'Roxie Rossa', serif;
            font-size: 1.4rem;
            font-weight: 400;
            margin-bottom: 0.75rem;
            color: #3B5998;
        }

        .detail-card p {
            font-weight: 300;
            font-size: 1rem;
            line-height: 1.7;
            color: #3B5998;
        }

        /* ── Photo band ── */
        .photo-band {
            position: relative;
            height: 450px;
            overflow: hidden;
            width: 100%;
        }

        .photo-band img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
            filter: saturate(0.9);
        }

        .photo-band-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(
                0deg,
                rgba(255,248,240,1) 0%,
                rgba(255,248,240,0) 20%,
                rgba(255,248,240,0) 80%,
                rgba(255,248,240,1) 100%
            );
        }

        .photo-band-quote {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-family: 'Cormorant Garamond', serif;
            font-style: italic;
            font-size: 1.6rem;
            font-weight: 300;
            color: var(--dark);
            text-align: center;
            max-width: 500px;
            line-height: 1.6;
        }

        /* ── RSVP ── */
        .rsvp-section {
            background: #f5ece3;
            text-align: center;
        }

        .rsvp-form {
            max-width: 320px;
            margin: 0 auto;
        }

        .rsvp-section .rsvp-choice {
            display: flex !important;
            flex-direction: row !important;
            justify-content: center !important;
            align-items: center !important;
            gap: 1.5rem !important;
            margin-bottom: 2rem !important;
        }

        .rsvp-section button.rsvp-btn {
            border: 2px solid transparent !important;
            border-radius: 12px !important;
            cursor: pointer !important;
            transition: all 0.3s ease !important;
            text-align: center !important;
            -webkit-appearance: none !important;
            appearance: none !important;
            outline: none !important;
            box-shadow: none !important;
            line-height: 1.2 !important;
        }

        .rsvp-section button.rsvp-yes {
            font-family: 'Roxie Rossa', serif !important;
            font-size: 0.85rem !important;
            font-weight: 300 !important;
            color: #fff !important;
            background: #3B5998 !important;
            border-color: #3B5998 !important;
            padding: 0.5rem 1.2rem !important;
            letter-spacing: 2px !important;
            min-width: 120px !important;
        }
        .rsvp-section button.rsvp-yes:hover {
            background: #2D4A7A !important;
            border-color: #2D4A7A !important;
            transform: translateY(-3px) !important;
            box-shadow: 0 6px 20px rgba(74, 132, 171, 0.4) !important;
        }
        .rsvp-section button.rsvp-yes.selected {
            background: #2E7D32 !important;
            border-color: #2E7D32 !important;
            transform: scale(1.03) !important;
        }

        .rsvp-section button.rsvp-no {
            font-family: 'Josefin Sans', sans-serif !important;
            font-size: 0.7rem !important;
            font-weight: 300 !important;
            color: #999 !important;
            background: transparent !important;
            border-color: #d5ccc3 !important;
            padding: 0.8rem 1.5rem !important;
            letter-spacing: 2px !important;
            text-transform: uppercase !important;
        }
        .rsvp-section button.rsvp-no:hover {
            color: #3D3229 !important;
            border-color: #3D3229 !important;
            transform: translateY(-2px) !important;
        }
        .rsvp-section button.rsvp-no.selected {
            color: #FFD600 !important;
            background: #000 !important;
            border-color: #000 !important;
        }

        .rsvp-fields {
            animation: fadeInUp 0.5s ease;
        }

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

        @keyframes heartbeat {
            0%, 100% { transform: scale(1); }
            15% { transform: scale(1.25); }
            30% { transform: scale(1); }
            45% { transform: scale(1.15); }
            60% { transform: scale(1); }
        }

        .form-group {
            margin-bottom: 1.5rem;
            text-align: left;
        }

        .form-group label {
            display: block;
            font-size: 0.85rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: #3B5998;
            margin-bottom: 0.5rem;
            font-weight: 400;
        }

        .form-group input,
        .form-group select,
        .form-group textarea {
            width: 100%;
            padding: 0.85rem 1rem;
            border: 1px solid #d5ccc3;
            background: #fff;
            font-family: Arial, sans-serif;
            font-size: 1rem;
            font-weight: 400;
            color: #3B5998;
            border-radius: 2px;
            transition: border-color 0.3s;
        }

        .form-group input:focus,
        .form-group select:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: #3B5998;
        }

        .form-group select {
            max-width: 160px;
        }

        .form-group textarea {
            resize: vertical;
            min-height: 100px;
        }

        .radio-group {
            display: flex;
            gap: 1.5rem;
            margin-top: 0.5rem;
        }

        .radio-group label {
            display: flex;
            align-items: center;
            gap: 0.5rem;
            font-size: 0.9rem;
            letter-spacing: 0;
            text-transform: none;
            color: var(--dark);
            cursor: pointer;
        }

        .radio-group input[type="radio"] {
            width: auto;
            accent-color: #3B5998;
        }

        .btn-submit {
            display: inline-block;
            padding: 1rem 3rem;
            background: #3B5998;
            color: #fff;
            border: none;
            border-radius: 12px;
            font-family: 'Josefin Sans', sans-serif;
            font-size: 0.8rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            cursor: pointer;
            transition: background 0.3s, transform 0.2s;
            margin-top: 1rem;
        }

        .btn-submit:hover {
            background: #2D4A7A;
            transform: translateY(-1px);
        }

        .form-success {
            display: none;
            padding: 2rem;
            text-align: center;
        }

        .form-success h3 {
            font-family: 'Roxie Rossa', serif;
            font-size: 2rem;
            font-weight: 300;
            color: #3B5998;
            margin-bottom: 0.5rem;
        }

        .form-success p {
            font-weight: 300;
            color: #3B5998;
        }

        /* ── Info section ── */
        .info-section {
            background: #f5ece3;
            text-align: center;
        }

        /* Only show hover tooltips on devices with real hover (desktop/mouse) */
        @media (hover: hover) and (pointer: fine) {
            .dresscode-hover:hover .boho-tooltip {
                display: block !important;
            }
            .shuttle-hover:hover .shuttle-tooltip {
                display: block !important;
            }
        }

        .boho-tooltip img,
        .shuttle-tooltip {
            opacity: 1 !important;
            background: #f5ece3;
        }

        /* ── Camping section ── */
        .camping-section {
            background: #f5ece3;
            text-align: center;
        }

        /* ── Footer ── */
        footer {
            text-align: center;
            padding: 3rem 2rem 4rem;
            background: #f5ece3;
            color: #3B5998;
            font-family: 'Roxie Rossa', serif;
        }

        footer .names {
            font-family: 'Allison', cursive;
            font-size: 2rem;
            color: var(--gold);
            margin-bottom: 0.5rem;
        }

        footer p {
            font-size: 0.75rem;
            letter-spacing: 2px;
            font-weight: 300;
        }

        /* ── Responsive ── */
        @media (max-width: 768px) {
            .details-grid {
                grid-template-columns: 1fr 1fr;
                gap: 1rem;
            }
            .photo-band {
                height: 280px;
            }
            .hero-content h1 {
                font-size: clamp(2.8rem, 10vw, 5rem) !important;
            }
            .hero-content .ampersand {
                font-size: clamp(1.5rem, 5vw, 2.5rem) !important;
            }
            .hero-names {
                gap: 0.3rem !important;
            }
            .footer-names span {
                font-size: 3.2rem !important;
            }
        }

        @media (max-width: 480px) {
            .details-grid {
                grid-template-columns: 1fr;
                gap: 1.5rem;
            }
            section { padding: 3rem 1.2rem; }
            .hero-content {
                padding: 1rem !important;
                max-width: 100% !important;
            }
            .hero-content h1 {
                font-size: clamp(2.2rem, 12vw, 4rem) !important;
            }
            .hero-content .pre-title {
                font-size: 1.1rem !important;
                letter-spacing: 3px !important;
            }
            .hero-content .date-line {
                font-size: 1.1rem !important;
                letter-spacing: 3px !important;
            }
            .photo-band {
                height: 220px;
            }
            .footer-names span {
                font-size: 2.8rem !important;
            }
            .rsvp-choice {
                gap: 0.8rem !important;
            }
            .rsvp-choice button {
                width: 140px !important;
                padding-left: 0.6rem !important;
                padding-right: 0.6rem !important;
                font-size: 0.75rem !important;
            }
        }

        /* ── Language Switcher ── */
        .lang-switcher {
            position: fixed;
            top: 16px;
            right: 16px;
            z-index: 100;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.4s ease;
        }
        .lang-switcher.visible {
            opacity: 1;
            pointer-events: auto;
        }
        .lang-switcher select {
            appearance: none;
            -webkit-appearance: none;
            background: rgba(255,248,240,0.85);
            backdrop-filter: blur(8px);
            border: 1px solid rgba(184, 150, 62, 0.3);
            border-radius: 8px;
            padding: 0.4rem 1.8rem 0.4rem 0.7rem;
            font-family: 'Josefin Sans', sans-serif;
            font-size: 0.7rem;
            font-weight: 400;
            letter-spacing: 1px;
            color: var(--dark);
            cursor: pointer;
            outline: none;
            transition: border-color 0.3s, background 0.3s;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%233D3229'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: right 0.6rem center;
        }
        .lang-switcher select:hover {
            border-color: var(--gold);
            background-color: rgba(255,248,240,0.95);
        }

        /* ── Animations ── */
        .fade-in {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.8s ease, transform 0.8s ease;
        }
        .fade-in.visible {
            opacity: 1;
            transform: translateY(0);
        }
    

        /* Contact Form 7 styling */
        .wpcf7 input[type="text"],
        .wpcf7 input[type="email"],
        .wpcf7 select,
        .wpcf7 textarea {
            width: 100%;
            padding: 0.85rem 1rem;
            border: 1px solid #d5ccc3;
            background: #fff;
            font-family: 'Josefin Sans', sans-serif;
            font-size: 0.9rem;
            font-weight: 300;
            color: #3D3229;
            border-radius: 2px;
            transition: border-color 0.3s;
            margin-bottom: 1rem;
        }
        .wpcf7 input:focus,
        .wpcf7 select:focus {
            outline: none;
            border-color: #3B5998;
        }
        .wpcf7 input[type="submit"] {
            display: inline-block;
            padding: 1rem 3rem;
            background: #3B5998;
            color: #fff;
            border: none;
            border-radius: 12px;
            font-family: 'Josefin Sans', sans-serif;
            font-size: 0.8rem;
            letter-spacing: 3px;
            text-transform: uppercase;
            cursor: pointer;
            transition: background 0.3s, transform 0.2s;
        }
        .wpcf7 input[type="submit"]:hover {
            background: #2D4A7A;
            transform: translateY(-1px);
        }
        .wpcf7 .wpcf7-radio label {
            display: inline-flex;
            align-items: center;
            gap: 0.5rem;
            margin-right: 1.5rem;
            font-size: 0.9rem;
            color: #3D3229;
            cursor: pointer;
        }
        .wpcf7 .wpcf7-response-output {
            border-color: #8B9E7E !important;
            color: #3D3229;
            font-family: 'Josefin Sans', sans-serif;
        }
        .wpcf7 label {
            display: block;
            font-size: 0.85rem;
            letter-spacing: 2px;
            text-transform: uppercase;
            color: #3B5998;
            margin-bottom: 0.5rem;
            font-weight: 400;
            font-family: 'Josefin Sans', sans-serif;
        }
