/**
 * Invitea public invitation runtime hardening 0.68.45.90.
 */

html {
    scroll-behavior: smooth;
    text-size-adjust: 100%;
}

.invitea-public-invitation-page {
    margin: 0;
    min-width: 320px;
    overflow-wrap: break-word;
    word-break: normal;
    background: #fffaf5;
}

.invitea-public-invitation-page *,
.invitea-public-invitation-page *::before,
.invitea-public-invitation-page *::after {
    box-sizing: border-box;
}

/*
 * F2.21G-C1 / B99 — Template-owned raster geometry must remain template-owned.
 *
 * Do not apply a global width/height normalization to <img> elements here.
 * Full-bleed Opening media and other template-native imagery may intentionally
 * use absolute positioning, block-size:100%, object-fit, overbleed, or other
 * geometry that a Core `height:auto` / `max-width:100%` rule would override.
 * Functional Core image surfaces must declare their own scoped geometry.
 */
.invitea-public-invitation-page video,
.invitea-public-invitation-page canvas,
.invitea-public-invitation-page svg {
    display: block;
    max-width: 100%;
    height: auto;
}

.invitea-public-invitation-page audio,
.invitea-public-invitation-page video,
.invitea-public-invitation-page iframe {
    max-width: 100%;
}

.invitea-public-invitation-page iframe {
    border: 0;
}

.invitea-public-invitation-page button,
.invitea-public-invitation-page input,
.invitea-public-invitation-page select,
.invitea-public-invitation-page textarea {
    max-width: 100%;
    font: inherit;
}

.invitea-public-skip-link {
    position: fixed;
    z-index: 2147483000;
    top: 12px;
    left: 12px;
    padding: 12px 16px;
    border-radius: 12px;
    background: #111827;
    color: #fff;
    font: 700 14px/1.2 system-ui, sans-serif;
    text-decoration: none;
    transform: translateY(-180%);
    transition: transform .16s ease;
}

.invitea-public-skip-link:focus {
    transform: translateY(0);
    outline: 3px solid #f2bd69;
    outline-offset: 3px;
}

.invitea-public-invitation:focus {
    outline: none;
}

.invitea-public-invitation-page :focus-visible {
    outline: 3px solid #b66b12;
    outline-offset: 3px;
}

.invitea-music-player {
    width: min(680px, calc(100% - 32px));
    margin: 24px auto;
    padding: 16px;
    border: 1px solid rgba(107, 74, 42, .2);
    border-radius: 20px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 14px 36px rgba(70, 45, 24, .1);
}

.invitea-music-player figcaption {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    align-items: baseline;
    margin-bottom: 12px;
}

.invitea-music-player figcaption span {
    color: #667085;
}

.invitea-music-player audio {
    width: 100%;
}

@media (max-width: 680px) {
    .invitea-rsvp-public,
    .invitea-guestbook-public {
        padding-inline: 12px;
    }

    .invitea-rsvp-public__inner,
    .invitea-guestbook-public__inner {
        border-radius: 20px;
        padding: 20px 16px;
    }

    .invitea-public-invitation-page button,
    .invitea-public-invitation-page input,
    .invitea-public-invitation-page select {
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .invitea-public-invitation-page *,
    .invitea-public-invitation-page *::before,
    .invitea-public-invitation-page *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
