@media only screen and (max-width: 414px) {
    .nav-header ul.attributes li a {
        padding: 27px 8px;
    }
}

@media (min-width: 1200px) {
    .core-nav .nav-container {
        width: 1140px !important;
        padding-right: 12px;
        padding-left: 12px;
    }
}

@media (min-width: 1400px) {
    .core-nav .nav-container {
        width: 1320px !important;
        padding-right: 12px;
        padding-left: 12px;
    }
}

@media (min-width: 1194px) {
    nav .brand {
        display: block;
        position: relative;
        width: 110px;
        padding: 5px 0px;
    }
}

@media (max-width: 1024px) {
    nav .menu li a {
        display: block;
        padding: 10px 10px !important;
        text-decoration: none;
        color: #3a3a3a;
        line-height: 1.3;
    }
}

@media (max-width: 1194px) {
    nav .menu li a {
        display: block;
        padding: 10px 10px !important;
        text-decoration: none;
        color: #3a3a3a;
        line-height: 1.3;
    }
}

/* Desktop sticky transparent -> dark on scroll */
@media (min-width: 1195px) {
    nav.core-nav.nav-core-sticky {
        position: fixed !important;
        top: 0;
        left: 0;
        width: 100%;
        background: transparent !important;
        transition: background-color 0.35s ease, box-shadow 0.35s ease;
        z-index: 9999;
    }

        nav.core-nav.nav-core-sticky .nav-header,
        nav.core-nav.nav-core-sticky .wrap-core-nav-list {
            background: transparent !important;
            transition: background-color 0.35s ease, box-shadow 0.35s ease;
        }

        nav.core-nav.nav-core-sticky.on-scroll,
        nav.core-nav.nav-core-sticky.on-scroll .nav-header,
        nav.core-nav.nav-core-sticky.on-scroll .wrap-core-nav-list {
            background: #222d38 !important;
        }

            nav.core-nav.nav-core-sticky.on-scroll .menu li a,
            nav.core-nav.nav-core-sticky.on-scroll .attributes li a,
            nav.core-nav.nav-core-sticky.on-scroll .toggle-bar,
            nav.core-nav.nav-core-sticky.on-scroll .brand {
                color: #fff !important;
            }
}

/* Mobile / tablet */
/* Mobile / tablet nav fix */
@media (max-width: 1194px) {
    nav.core-nav.nav-core-sticky {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        background: transparent !important;
        z-index: 9999 !important;
    }

        nav.core-nav.nav-core-sticky .nav-header {
            position: relative !important;
            z-index: 10003 !important;
            background: transparent !important;
            border: 0 !important;
            box-shadow: none !important;
        }

        nav.core-nav.nav-core-sticky .brand,
        nav.core-nav.nav-core-sticky .toggle-bar {
            position: relative !important;
            z-index: 10004 !important;
        }

        nav.core-nav.nav-core-sticky .toggle-bar {
            cursor: pointer !important;
            pointer-events: auto !important;
            background: transparent !important;
        }

        nav.core-nav.nav-core-sticky .wrap-core-nav-list {
            position: relative !important;
            z-index: 10002 !important;
            background: #ffffff !important;
            pointer-events: auto !important;
        }

        nav.core-nav.nav-core-sticky ul.menu {
            position: relative !important;
            z-index: 10002 !important;
            background: #ffffff !important;
            pointer-events: auto !important;
        }

            nav.core-nav.nav-core-sticky ul.menu li {
                position: relative !important;
                z-index: 10002 !important;
                pointer-events: auto !important;
            }

                nav.core-nav.nav-core-sticky ul.menu li a {
                    display: block !important;
                    position: relative !important;
                    z-index: 10003 !important;
                    pointer-events: auto !important;
                    color: #3a3a3a !important;
                    background: #ffffff !important;
                    padding: 14px 18px !important;
                    line-height: 1.4 !important;
                }

                    nav.core-nav.nav-core-sticky ul.menu li a:hover,
                    nav.core-nav.nav-core-sticky ul.menu li a:focus,
                    nav.core-nav.nav-core-sticky ul.menu li.active > a {
                        color: #ff4f74 !important;
                        background: #ffffff !important;
                    }

        nav.core-nav.nav-core-sticky.on-scroll ul.menu li a,
        nav.core-nav.nav-core-sticky.on-scroll .attributes li a {
            color: #3a3a3a !important;
        }

        nav.core-nav.nav-core-sticky .attributes {
            display: none !important;
        }
}

.countdown {
    font-size: 32px;
    font-weight: bold;
}

    .countdown span {
        font-size: 14px;
        display: block;
        margin-top: 5px;
    }


/* Wedding FAQ - isolated from theme conflicts */
#faq #wfaq-list {
    width: 100%;
    max-width: 100%;
}

    #faq #wfaq-list .wfaq-item {
        display: block !important;
        background: #ffffff !important;
        border: 1px solid #ececec !important;
        border-radius: 12px !important;
        margin-bottom: 18px !important;
        overflow: hidden !important;
        box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06) !important;
    }

    #faq #wfaq-list .wfaq-question {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 20px !important;
        width: 100% !important;
        padding: 22px 26px !important;
        background: #ffffff !important;
        color: #222d38 !important;
        cursor: pointer !important;
        font-size: 18px !important;
        font-weight: 600 !important;
        line-height: 1.5 !important;
        text-align: left !important;
        border: 0 !important;
        box-sizing: border-box !important;
    }

        #faq #wfaq-list .wfaq-question:hover {
            background: #faf7f7 !important;
        }

        #faq #wfaq-list .wfaq-question > span:first-child {
            flex: 1 1 auto !important;
            color: var(--mv-blue-soft) !important;
        }

    #faq #wfaq-list .wfaq-icon {
        flex: 0 0 auto !important;
        font-size: 28px !important;
        line-height: 1 !important;
        color: #b08d57 !important;
        transition: transform 0.25s ease !important;
    }

    #faq #wfaq-list .wfaq-item.active .wfaq-question {
        background: #ff4f74 !important;
    }

        #faq #wfaq-list .wfaq-item.active .wfaq-question > span:first-child,
        #faq #wfaq-list .wfaq-item.active .wfaq-icon {
            color: #ffffff !important;
        }

    #faq #wfaq-list .wfaq-item.active .wfaq-icon {
        transform: rotate(45deg) !important;
    }

    #faq #wfaq-list .wfaq-answer {
        display: none !important;
        padding: 20px 26px 22px 26px !important;
        background: #ffffff !important;
    }

    #faq #wfaq-list .wfaq-item.active .wfaq-answer {
        display: block !important;
    }

    #faq #wfaq-list .wfaq-answer p {
        margin: 0 !important;
        color: var(--mv-blue-soft) !important;
        font-size: 16px !important;
        line-height: 1.8 !important;
    }

@media (max-width: 767px) {
    #faq #wfaq-list .wfaq-question {
        padding: 18px !important;
        font-size: 16px !important;
    }

    #faq #wfaq-list .wfaq-answer {
        padding: 0 18px 18px 18px !important;
    }

    #faq #wfaq-list .wfaq-icon {
        font-size: 24px !important;
    }
}

/* =========================
   Mark & Vera homepage update
   ========================= */

body,
section,
.bg-light,
footer,
.content,
article.content {
    background: #f5f0ea !important;
}

/* top RSVP bar */
.wedding-deadline-bar {
    background: #5f7f95;
    color: #ffffff;
    text-align: center;
    font-size: 18px;
    font-weight: 400;
    padding: 22px 15px;
    line-height: 1.4;
    position: relative;
    z-index: 10001;
}

/* navigation shell */
nav.wedding-top-nav.core-nav.nav-core-sticky,
nav.wedding-top-nav.core-nav.nav-core-sticky .nav-header,
nav.wedding-top-nav.core-nav.nav-core-sticky .wrap-core-nav-list {
    background: #f5f0ea !important;
    box-shadow: none !important;
    border: 0 !important;
    position: relative !important;
}

/* title */
.wedding-site-title {
    width: 100%;
    text-align: center;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 62px;
    letter-spacing: 4px;
    color: #5f7f95;
    font-weight: 600;
    text-transform: uppercase;
    padding-top: 38px;
    padding-bottom: 24px;
}

/* menu layout */
.wedding-main-menu {
    width: 100%;
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 34px;
    float: none !important;
    margin: 0 auto 24px auto !important;
    padding: 0 20px !important;
}

/* menu links */
nav .wedding-main-menu li a {
    font-family: Georgia, "Times New Roman", serif !important;
    color: #5f7f95 !important;
    font-size: 30px !important;
    font-weight: 500 !important;
    letter-spacing: 0.5px;
    padding: 8px 0 !important;
    line-height: 1.2 !important;
}

/* active underline */
nav .wedding-main-menu li.active > a {
    position: relative;
}

    nav .wedding-main-menu li.active > a::after {
        content: "";
        display: block;
        width: 80px;
        height: 5px;
        background: #5f7f95;
        margin: 12px auto 0 auto;
    }

/* hero image area */
.wedding-home-hero {
    background: #f5f0ea !important;
    padding-top: 0;
}

.wedding-hero-image-wrap {
    width: 100%;
    overflow: hidden;
    background: #f5f0ea;
}

.wedding-hero-image {
    width: 100%;
    height: 72vh;
    min-height: 520px;
    object-fit: cover;
    object-position: center top;
    display: block;
}

/* heading font style */
.section-heading .heading,
.hero-title,
.hero-date,
h1, h2, h3 {
    font-family: Georgia, "Times New Roman", serif;
}

/* soften white boxes if needed */
.wedding-box,
.section-heading,
#wfaq-list .wfaq-item {
    border-radius: 12px;
}

/* mobile */
@media (max-width: 1194px) {
    nav.wedding-top-nav.core-nav.nav-core-sticky {
        background: #f5f0ea !important;
    }

    .wedding-site-title {
        font-size: 40px;
        letter-spacing: 2px;
        padding: 22px 60px 14px 60px;
    }

    .wedding-main-menu {
        display: block !important;
        margin-bottom: 0 !important;
        background: #f5f0ea !important;
    }

    nav .wedding-main-menu li a {
        font-size: 20px !important;
        padding: 14px 18px !important;
        background: #f5f0ea !important;
    }

    .wedding-deadline-bar {
        font-size: 15px;
        padding: 16px 12px;
    }

    .wedding-hero-image {
        height: 58vh;
        min-height: 360px;
    }
}

/* =========================
   Wedding header / nav refresh
   ========================= */

:root {
    --wedding-blue: #66859a;
    --wedding-beige: #f4f0ea;
    --wedding-text: #4e6472;
    --wedding-header-offset: 170px;
}

html {
    scroll-behavior: smooth;
}

/* Ensure anchor targets stop below sticky header */
#home,
#about,
#photos,
#faq,
#giftregistry,
#wedding {
    scroll-margin-top: var(--wedding-header-offset);
}

body,
section,
.bg-light,
article.content,
.content {
    background: var(--wedding-beige) !important;
}

.wedding-header {
    position: sticky;
    top: 0;
    z-index: 99999;
    background: var(--wedding-beige);
}

.wedding-deadline-bar {
    background: var(--wedding-blue);
    color: #fff;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    padding: 14px 16px;
}

nav.wedding-top-nav.core-nav.nav-core-sticky {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    background: var(--wedding-beige) !important;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04);
    z-index: 99998 !important;
}

    nav.wedding-top-nav.core-nav.nav-core-sticky .nav-header,
    nav.wedding-top-nav.core-nav.nav-core-sticky .wrap-core-nav-list {
        background: var(--wedding-beige) !important;
        box-shadow: none !important;
        border: 0 !important;
    }

/* desktop */
.wedding-site-title {
    width: 100%;
    text-align: center;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 34px;
    letter-spacing: 2px;
    color: var(--wedding-blue);
    font-weight: 600;
    text-transform: uppercase;
    padding: 20px 16px 10px;
    line-height: 1.1;
}

.wedding-main-menu {
    width: 100%;
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 26px;
    margin: 0 auto !important;
    padding: 0 20px 18px !important;
    float: none !important;
}

nav .wedding-main-menu li {
    float: none !important;
    display: inline-flex !important;
    align-items: center;
}

    nav .wedding-main-menu li a {
        font-family: "Segoe UI", Arial, sans-serif !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        letter-spacing: 0.3px;
        text-transform: none !important;
        color: var(--wedding-text) !important;
        padding: 6px 2px !important;
        line-height: 1.2 !important;
        border-bottom: 2px solid transparent;
        transition: color .2s ease, border-color .2s ease, opacity .2s ease;
    }

        nav .wedding-main-menu li.active > a,
        nav .wedding-main-menu li a:hover,
        nav .wedding-main-menu li a:focus {
            color: var(--wedding-blue) !important;
            border-bottom-color: var(--wedding-blue);
        }

/* hero */
.wedding-home-hero {
    background: var(--wedding-beige) !important;
}

.wedding-hero-image-wrap {
    width: 100%;
    overflow: hidden;
    background: var(--wedding-beige);
}

.wedding-hero-image {
    width: 100%;
    height: 68vh;
    min-height: 440px;
    object-fit: cover;
    object-position: center center;
    display: block;
}

/* mobile nav */
@media (max-width: 991px) {
    :root {
        --wedding-header-offset: 150px;
    }

    .wedding-deadline-bar {
        font-size: 13px;
        padding: 12px 14px;
    }

    .wedding-site-title {
        font-size: 22px;
        letter-spacing: 1px;
        padding: 16px 52px 12px;
    }

    nav.wedding-top-nav.core-nav.nav-core-sticky .nav-header {
        min-height: 48px;
        display: flex;
        align-items: center;
        padding: 0 12px;
    }

    nav.wedding-top-nav.core-nav.nav-core-sticky .toggle-bar {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        color: var(--wedding-blue) !important;
        font-size: 22px;
        z-index: 100005 !important;
    }

    nav.wedding-top-nav.core-nav.nav-core-sticky ul.wedding-main-menu {
        display: none !important;
        width: 100%;
        float: none !important;
        margin: 0 !important;
        padding: 0 0 12px !important;
        background: var(--wedding-beige) !important;
        border-top: 1px solid rgba(0,0,0,0.05);
    }

        nav.wedding-top-nav.core-nav.nav-core-sticky ul.wedding-main-menu li {
            display: block !important;
            width: 100%;
        }

            nav.wedding-top-nav.core-nav.nav-core-sticky ul.wedding-main-menu li a {
                display: block !important;
                width: 100%;
                padding: 14px 18px !important;
                font-size: 15px !important;
                border-bottom: 1px solid rgba(0,0,0,0.04);
                text-align: left;
                background: var(--wedding-beige) !important;
            }

        nav.wedding-top-nav.core-nav.nav-core-sticky ul.wedding-main-menu.open {
            display: block !important;
        }

    .wedding-hero-image {
        height: 52vh;
        min-height: 320px;
        object-position: center center;
    }
}