/* Invitation theme phase 2 — only active together with html.theme-invitation. */

/* More stationery-like page rhythm. */
html.theme-invitation .container.mt-4 {
    position: relative;
}

html.theme-invitation .container.mt-4 > .row:first-child h1,
html.theme-invitation .container.mt-4 > .row:first-child h2 {
    position: relative;
}

html.theme-invitation .container.mt-4 > .row:first-child h1::after,
html.theme-invitation .container.mt-4 > .row:first-child h2::after {
    content: "♥";
    display: block;
    margin: .55rem auto 0;
    font-family: Georgia, serif;
    font-size: .82rem;
    color: var(--invite-terracotta);
    opacity: .68;
}

/* Homepage: closer to the printed invitation, without changing page content. */
html.theme-invitation.theme-page-home .container.mt-4 > .row:first-child {
    isolation: isolate;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:first-child::before {
    content: "♥";
    font-family: Georgia, serif;
}

/* Keep only the subtle gradient <hr> from the invitation design. The base
   invitation theme also draws a second pseudo-element line below the hero. */
html.theme-invitation.theme-page-home .container.mt-4 > .row:first-child::after {
    display: none !important;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:first-child h1 {
    text-wrap: balance;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:first-child hr {
    width: 170px;
    margin-left: auto;
    margin-right: auto;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(2) .card {
    border-radius: 28px !important;
    overflow: hidden;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(2) img {
    border: 8px solid rgba(251, 246, 239, .9);
    box-shadow: 0 16px 40px rgba(84,58,45,.12) !important;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(2) h3 {
    font-family: 'Dancing Script', cursive !important;
    font-size: clamp(2.3rem, 4vw, 3.4rem);
    color: var(--invite-terracotta) !important;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(3) .card {
    border-top: 3px solid rgba(163,79,50,.42) !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(3) .card:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 48px rgba(84,58,45,.14) !important;
}

html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(3) .card-title {
    font-family: Georgia, serif;
    color: var(--invite-terracotta) !important;
}

/* RSVP: make the form read like a personal response card. */
html.theme-invitation.theme-page-rsvp .container.mt-4 {
    max-width: 940px;
}

html.theme-invitation.theme-page-rsvp .container.mt-4 > .row:first-child,
html.theme-invitation.theme-page-rsvp .container.mt-4 > h1:first-child,
html.theme-invitation.theme-page-rsvp .container.mt-4 > h2:first-child {
    text-align: center;
}

html.theme-invitation.theme-page-rsvp form {
    position: relative;
}

html.theme-invitation.theme-page-rsvp form::before {
    content: "Jullie antwoord";
    display: block;
    margin: 0 auto 1.4rem;
    text-align: center;
    color: var(--invite-terracotta);
    font-family: 'Dancing Script', cursive;
    font-size: 2rem;
    line-height: 1;
}

html.theme-invitation.theme-page-rsvp form .card,
html.theme-invitation.theme-page-rsvp .card form {
    background: rgba(251,246,239,.95) !important;
}

html.theme-invitation.theme-page-rsvp .form-check {
    padding-top: .25rem;
    padding-bottom: .25rem;
}

html.theme-invitation.theme-page-rsvp .form-check-input:checked {
    background-color: var(--invite-terracotta);
    border-color: var(--invite-terracotta);
}

html.theme-invitation.theme-page-rsvp button[type="submit"],
html.theme-invitation.theme-page-rsvp input[type="submit"] {
    min-height: 50px;
    font-weight: 700;
    letter-spacing: .02em;
}

/* Info / personal planning: clearer hierarchy and elegant event cards. */
html.theme-invitation.theme-page-info .container.mt-4 > .row:first-child {
    margin-bottom: 2.8rem !important;
}

html.theme-invitation.theme-page-info .container.mt-4 > .row:first-child .lead {
    max-width: 620px;
    margin-left: auto;
    margin-right: auto;
}

html.theme-invitation.theme-page-info .timeline-content {
    position: relative;
    padding: 14px 17px !important;
}

html.theme-invitation.theme-page-info .timeline-content::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(163,79,50,.28), transparent);
}

html.theme-invitation.theme-page-info .timeline-title {
    margin-bottom: .45rem;
}

html.theme-invitation.theme-page-info .private-event-location {
    border-left: 2px solid var(--invite-terracotta) !important;
    padding-left: .85rem;
}

html.theme-invitation.theme-page-info .card-title {
    text-wrap: balance;
}

/* Navigation gets a subtle print-style active/hover treatment. */
html.theme-invitation .navbar .nav-link:not(.btn) {
    position: relative;
}

html.theme-invitation .navbar .nav-link:not(.btn)::after {
    content: "";
    position: absolute;
    left: .55rem;
    right: .55rem;
    bottom: .25rem;
    height: 1px;
    background: var(--invite-terracotta);
    transform: scaleX(0);
    transition: transform .18s ease;
    opacity: .55;
}

html.theme-invitation .navbar .nav-link:not(.btn):hover::after,
html.theme-invitation .navbar .nav-link:not(.btn):focus::after {
    transform: scaleX(1);
}

@media (max-width: 767.98px) {
    /* Fix the large gap reported between fixed navigation and page title. */
    html.theme-invitation body {
        padding-top: 58px !important;
    }

    html.theme-invitation .container.mt-4 {
        margin-top: .45rem !important;
    }

    html.theme-invitation .container.mt-4 > .row:first-child {
        margin-top: 0 !important;
    }

    html.theme-invitation.theme-page-home body:not(.admin-shell) .row.justify-content-center.text-center.mb-5:first-child {
        margin-top: 0 !important;
        padding-top: .7rem !important;
        padding-bottom: 1.8rem !important;
    }

    html.theme-invitation.theme-page-info .container.mt-4 > .row:first-child,
    html.theme-invitation.theme-page-rsvp .container.mt-4 > .row:first-child {
        margin-bottom: 1.6rem !important;
        padding-top: .35rem !important;
    }

    html.theme-invitation .container.mt-4 > .row:first-child h1,
    html.theme-invitation .container.mt-4 > .row:first-child h2 {
        margin-top: 0 !important;
    }

    html.theme-invitation.theme-page-home .container.mt-4 > .row:nth-of-type(2) .card {
        border-radius: 20px !important;
    }

    html.theme-invitation.theme-page-rsvp form::before {
        font-size: 1.65rem;
        margin-bottom: 1rem;
    }

    html.theme-invitation .navbar-collapse {
        padding-bottom: .65rem;
    }

    html.theme-invitation .navbar .nav-link:not(.btn)::after {
        display: none;
    }
}
