/* Clear separation and calm motion for every invitation theme. */
.design-preview[class*='invite-card-'] {
    border: 1px solid rgba(77, 62, 47, 0.18);
    box-shadow: 0 18px 45px rgba(54, 43, 33, 0.12);
    isolation: isolate;
    transition: box-shadow 0.45s ease, transform 0.45s ease;
}

.design-preview[class*='invite-card-'] img {
    transform: scale(1.01);
    transition: filter 0.6s ease, transform 1.1s cubic-bezier(0.2, 0.75, 0.25, 1);
}

.design-preview[class*='invite-card-'] strong {
    padding: 7px 15px 10px;
    border: 1px solid rgba(78, 63, 48, 0.15);
    border-radius: 999px;
    background: rgba(255, 252, 244, 0.78);
    box-shadow: 0 7px 24px rgba(58, 45, 32, 0.1);
    backdrop-filter: blur(7px);
    font-size: clamp(25px, 2.1vw, 34px);
}

.design-preview[class*='invite-card-'] .mini-kicker,
.design-preview[class*='invite-card-'] .mini-date,
.design-preview[class*='invite-card-'] .preview-pill {
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.95);
}

.design-preview[class*='invite-card-'] .preview-pill {
    bottom: 20px;
    min-width: 150px;
    min-height: 44px;
    padding: 11px 17px;
    border: 0;
    border-radius: 999px;
    background: var(--ink);
    box-shadow: 0 8px 24px rgba(36, 60, 50, 0.22);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-shadow: none;
}

.payment-recipient {
    display: flex;
    width: fit-content;
    align-items: center;
    gap: 10px;
    margin: 8px 0 18px;
    padding: 9px 13px;
    border: 1px solid var(--border);
    border-radius: 4px;
    background: var(--sage);
}

.payment-recipient span {
    color: var(--muted);
    font-size: 12px;
}

.design-preview[class*='invite-card-'] .card-ring {
    animation: catalog-ring 9s linear infinite;
}

@media (hover: hover) {
    .design-preview[class*='invite-card-']:hover {
        box-shadow: 0 25px 60px rgba(54, 43, 33, 0.2);
        transform: translateY(-7px);
    }

    .design-preview[class*='invite-card-']:hover img {
        transform: scale(1.075);
    }
}

.invite-mobile {
    border: 1px solid color-mix(in srgb, var(--iv-accent) 35%, white);
    isolation: isolate;
    animation: invitation-arrive 0.8s cubic-bezier(0.2, 0.75, 0.25, 1) both;
}

.invite-cover-image {
    transform-origin: 50% 35%;
    animation: cover-breathe 16s ease-in-out infinite alternate;
}

.invite-theme-royal .invite-cover-image,
.invite-theme-nomad .invite-cover-image,
.invite-theme-qyz .invite-cover-image {
    animation-direction: alternate-reverse;
}

.invite-cover-copy {
    isolation: isolate;
    text-shadow: none;
}

.invite-cover-copy::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 46px 18px 28px;
    border: 1px solid color-mix(in srgb, var(--iv-accent) 38%, white);
    border-radius: 150px 150px 26px 26px;
    background: rgba(255, 252, 244, 0.82);
    box-shadow: 0 18px 55px rgba(57, 44, 31, 0.16);
    backdrop-filter: blur(9px);
}

/* The photo-story cover keeps the photograph visible behind its light lettering. */
.invite-template-mahabbat-hikayasy .invite-cover-copy::before {
    content: none;
}

/* Each collection keeps the photo as its main visual and adds its own frame. */
.invite-theme-pearl .invite-cover-copy::before {
    border-radius: 180px 180px 30px 30px;
    background: rgba(250, 253, 253, 0.84);
    box-shadow: 0 18px 55px rgba(91, 124, 132, 0.17);
}

.invite-theme-royal .invite-cover-copy::before {
    border: 2px double #b78d50;
    border-radius: 8px;
    background: rgba(255, 248, 232, 0.86);
    clip-path: polygon(8% 0, 92% 0, 100% 8%, 100% 92%, 92% 100%, 8% 100%, 0 92%, 0 8%);
}

.invite-theme-botanical .invite-cover-copy::before {
    inset: 42px 8px 24px;
    border-color: rgba(102, 125, 91, 0.4);
    border-radius: 48% 52% 46% 54% / 54% 42% 58% 46%;
    background: rgba(252, 255, 246, 0.82);
}

.invite-theme-silk .invite-cover-copy::before {
    border-radius: 34px 150px 34px 150px;
    border-color: rgba(117, 154, 168, 0.46);
    background: rgba(255, 253, 248, 0.86);
}

.invite-theme-nomad .invite-cover-copy::before {
    border: 2px solid rgba(173, 134, 81, 0.52);
    border-radius: 4px;
    background: rgba(255, 250, 238, 0.87);
    clip-path: polygon(50% 0, 96% 12%, 100% 88%, 50% 100%, 0 88%, 4% 12%);
}

.invite-theme-jubilee .invite-cover-copy::before {
    inset: 58px 20px 26px;
    border: 2px double rgba(174, 135, 80, 0.58);
    border-radius: 50%;
    background: rgba(250, 255, 252, 0.86);
}

.invite-theme-qyz .invite-cover-copy::before {
    inset: 44px 16px 25px;
    border: 2px solid rgba(175, 137, 82, 0.46);
    border-radius: 190px 190px 28px 28px;
    background: rgba(255, 250, 247, 0.86);
    box-shadow: inset 0 0 0 7px rgba(255, 255, 255, 0.42), 0 18px 55px rgba(98, 67, 60, 0.15);
}

.invite-section,
.invite-finale {
    border-top: 1px solid color-mix(in srgb, var(--iv-accent) 22%, white);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.invite-section::after {
    content: '';
    position: absolute;
    z-index: -1;
    width: 170px;
    height: 170px;
    right: -110px;
    bottom: -80px;
    border: 1px solid color-mix(in srgb, var(--iv-accent) 16%, transparent);
    border-radius: 50%;
    pointer-events: none;
}

.invite-cover-copy.is-visible h1 {
    animation: title-open 1s 0.12s cubic-bezier(0.2, 0.75, 0.25, 1) both;
}

.invite-cover-copy.is-visible .invite-cover-date,
.invite-cover-copy.is-visible .invite-overline {
    animation: detail-open 0.75s 0.25s ease both;
}

.invite-cover-copy.is-visible .invite-monogram,
.invite-cover-copy.is-visible .jubilee-number {
    animation: soft-float 4.8s 0.5s ease-in-out infinite;
}

.orbit-mark i:first-child,
.date-orb::before,
.joined-rings i:first-child {
    animation: ring-turn 15s linear infinite;
}

.orbit-mark i:last-child,
.date-orb::after,
.joined-rings i:last-child {
    animation: ring-turn-reverse 18s linear infinite;
}

.venue-rings {
    animation: rings-breathe 4.2s ease-in-out infinite;
}

.program-section.is-visible .program-item,
.countdown-section.is-visible .countdown-grid > div {
    animation: item-rise 0.65s both;
}

.program-section.is-visible .program-item:nth-child(2),
.countdown-section.is-visible .countdown-grid > div:nth-child(2) { animation-delay: 0.1s; }
.program-section.is-visible .program-item:nth-child(3),
.countdown-section.is-visible .countdown-grid > div:nth-child(3) { animation-delay: 0.2s; }
.countdown-section.is-visible .countdown-grid > div:nth-child(4) { animation-delay: 0.3s; }

.invite-theme-botanical .invite-cover::before,
.invite-theme-botanical .invite-cover::after {
    animation: leaf-sway 5s ease-in-out infinite alternate;
}

.invite-theme-nomad .invite-section::before {
    animation: ornament-glow 3.8s ease-in-out infinite;
}

.invite-theme-qyz .date-orb::before {
    animation-duration: 21s;
}

.language-choice {
    margin-top: 3px;
}

.field-label {
    font-weight: 600;
}

.language-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.language-options.single-language {
    grid-template-columns: 1fr;
}

.language-option {
    position: relative;
    cursor: pointer;
}

.language-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.language-option > span {
    display: flex;
    min-height: 78px;
    flex-direction: column;
    justify-content: center;
    padding: 13px 15px;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.language-option strong {
    font-size: 16px;
}

.language-option small {
    margin-top: 2px;
}

.language-option input:checked + span {
    border-color: var(--ink);
    background: var(--sage);
    box-shadow: inset 0 0 0 1px var(--ink), 0 7px 18px rgba(36, 60, 50, 0.1);
    transform: translateY(-2px);
}

.language-option input:focus-visible + span {
    outline: 3px solid var(--accent);
    outline-offset: 3px;
}

@keyframes catalog-ring {
    50% { transform: rotate(180deg) scale(1.08); }
    100% { transform: rotate(360deg); }
}

@keyframes invitation-arrive {
    from { opacity: 0; transform: translateY(18px); }
}

@keyframes cover-breathe {
    from { transform: scale(1.01) translate3d(0, 0, 0); }
    to { transform: scale(1.075) translate3d(0, -0.8%, 0); }
}

@keyframes title-open {
    from { opacity: 0; transform: translateY(22px) scale(0.96); filter: blur(5px); }
}

@keyframes detail-open {
    from { opacity: 0; letter-spacing: 0.5em; }
}

@keyframes soft-float {
    50% { transform: translateY(-7px) rotate(2deg); }
}

@keyframes ring-turn {
    to { transform: rotate(360deg); }
}

@keyframes ring-turn-reverse {
    to { transform: rotate(-360deg); }
}

@keyframes rings-breathe {
    50% { transform: scale(1.08); opacity: 0.7; }
}

@keyframes item-rise {
    from { opacity: 0; transform: translateY(18px); }
}

@keyframes leaf-sway {
    to { transform: rotate(48deg) translateY(-6px); }
}

@keyframes ornament-glow {
    50% { opacity: 0.55; letter-spacing: 12px; }
}

@media (max-width: 600px) {
    .invite-mobile {
        border-width: 0;
    }

    .invite-cover-copy::before {
        right: 12px;
        left: 12px;
    }

    .language-options {
        grid-template-columns: 1fr;
    }
}

.invite-theme-birthday {
    --iv-bg: #edf8ff;
    --iv-paper: #fffdf8;
    --iv-ink: #31526a;
    --iv-accent: #d59043;
    --iv-soft: #bfddea;
}

.invite-theme-birthday .date-section {
    background: linear-gradient(160deg, #f8fcff, #e6f5fb);
}

.invite-theme-birthday .invite-cover-shade {
    background: linear-gradient(180deg, rgba(255,255,255,.02) 30%, rgba(250,253,248,.94) 100%);
}

.invite-theme-birthday .invite-cover-copy::before {
    inset: 54px 16px 24px;
    border: 2px solid rgba(213, 144, 67, 0.45);
    border-radius: 50% 50% 22px 22px;
    background: rgba(248, 253, 255, 0.86);
    box-shadow: 0 18px 55px rgba(48, 93, 122, 0.15);
}

@media (prefers-reduced-motion: reduce) {
    .design-preview[class*='invite-card-'],
    .design-preview[class*='invite-card-'] *,
    .invite-mobile,
    .invite-mobile *,
    .invite-mobile *::before,
    .invite-mobile *::after {
        animation: none !important;
        transition: none !important;
    }
}

/* A wrapped collection with a genuinely different composition for every design. */
.catalog-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    padding: 8px 3px 30px;
}

.catalog-grid .design-card {
    min-width: 0;
    display: grid;
    grid-template-rows: 390px 138px 50px;
    align-content: start;
    text-align: center;
}

.catalog-grid .design-preview {
    width: 100%;
    height: 390px;
    min-height: 390px;
    max-height: 390px;
    margin-top: 0;
    aspect-ratio: auto;
}

.card-design-name,
.design-card-title {
    width: 100%;
    text-align: center;
}

.card-design-name span,
.design-card-title span {
    display: block;
}

.card-design-name span {
    white-space: nowrap;
}

.design-info {
    display: flex;
    min-height: 138px;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 20px 0 14px;
    text-align: center;
}

.catalog-grid .design-info > div {
    display: grid;
    grid-template-rows: 18px 58px;
    align-content: start;
    width: 100%;
}

.catalog-grid .design-info .eyebrow {
    margin: 0;
}

.catalog-grid .design-card-title {
    display: flex;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    line-height: 1.08;
}

.catalog-grid .design-price {
    line-height: 24px;
}

.catalog-grid .design-card > .button {
    height: 50px;
    align-self: end;
}

.card-theme-mark {
    position: absolute !important;
    z-index: 2;
    inset: 0;
    pointer-events: none;
}

.card-theme-mark i,
.card-theme-mark b {
    position: absolute;
    display: block;
}

.invite-card-pearl {
    border-radius: 150px 150px 24px 24px;
}

.invite-card-pearl .card-theme-mark i {
    top: 54px;
    left: 50%;
    width: 92px;
    height: 92px;
    border: 1px solid rgba(106, 153, 158, 0.65);
    border-radius: 50%;
    transform: translateX(-50%);
}

.invite-card-pearl .card-theme-mark i + i {
    top: 61px;
    width: 78px;
    height: 78px;
    border-style: dashed;
}

.invite-card-pearl .card-theme-mark b::before {
    content: '✦';
    position: absolute;
    top: 87px;
    left: calc(50% - 5px);
    color: #6d999d;
}

.invite-card-royal {
    border-radius: 8px;
    clip-path: polygon(8% 0, 92% 0, 100% 8%, 100% 92%, 92% 100%, 8% 100%, 0 92%, 0 8%);
}

.invite-card-royal::before {
    inset: 12px;
    border: 3px double #b88b49;
    border-radius: 0;
}

.invite-card-royal .card-ring {
    width: 84px;
    height: 84px;
    border: 2px double #b88b49;
    border-radius: 4px;
    transform: rotate(45deg);
}

.invite-card-royal .card-design-name {
    border-radius: 4px !important;
}

.invite-card-botanical {
    border-radius: 48% 52% 44% 56% / 42% 46% 54% 58%;
}

.invite-card-botanical::before {
    inset: 12px;
    border-radius: 48% 52% 44% 56% / 42% 46% 54% 58%;
}

.invite-card-botanical .card-theme-mark::before,
.invite-card-botanical .card-theme-mark::after {
    content: '❧';
    position: absolute;
    color: #617858;
    font: 52px/1 Georgia, serif;
    opacity: 0.58;
}

.invite-card-botanical .card-theme-mark::before {
    top: 34px;
    left: 20px;
    transform: rotate(42deg);
}

.invite-card-botanical .card-theme-mark::after {
    right: 20px;
    bottom: 52px;
    transform: rotate(220deg);
}

.invite-card-silk {
    border-radius: 112px 10px 112px 10px;
}

.invite-card-silk::before {
    border-radius: 100px 7px 100px 7px;
}

.invite-card-silk .card-ring {
    width: 112px;
    height: 58px;
    border-color: #7696a4;
    border-radius: 50%;
    transform: rotate(-18deg);
}

.invite-card-silk .card-theme-mark i {
    top: 30px;
    right: -24px;
    width: 105px;
    height: 105px;
    border: 1px solid rgba(112, 148, 162, 0.55);
    border-radius: 50%;
}

.invite-card-nomad {
    border-radius: 4px;
    clip-path: polygon(50% 0, 96% 10%, 100% 88%, 50% 100%, 0 88%, 4% 10%);
}

.invite-card-nomad::before {
    inset: 13px 16px;
    border: 2px solid #ad7b3f;
    border-radius: 0;
    clip-path: polygon(50% 0, 96% 10%, 100% 88%, 50% 100%, 0 88%, 4% 10%);
}

.invite-card-nomad .card-theme-mark::before,
.invite-card-nomad .card-theme-mark::after {
    content: '⌁ ◇ ⌁';
    position: absolute;
    right: 0;
    left: 0;
    color: #9a682f;
    font-size: 14px;
    letter-spacing: 8px;
}

.invite-card-nomad .card-theme-mark::before { top: 36px; }
.invite-card-nomad .card-theme-mark::after { bottom: 48px; transform: rotate(180deg); }

.invite-card-jubilee {
    min-height: 390px !important;
    margin-top: 0;
    border-radius: 50%;
    aspect-ratio: auto;
}

.invite-card-jubilee::before {
    inset: 12px;
    border: 3px double #aa8150;
    border-radius: 50%;
}

.invite-card-jubilee .card-ring {
    width: 104px;
    height: 104px;
    border: 1px dashed #aa8150;
}

.invite-card-qyz {
    border-radius: 150px 150px 42px 42px;
}

.invite-card-qyz::before {
    border: 2px solid rgba(180, 129, 91, 0.58);
    border-radius: 140px 140px 34px 34px;
    box-shadow: inset 0 0 0 6px rgba(255, 255, 255, 0.32);
}

.invite-card-qyz .card-theme-mark::before,
.invite-card-qyz .card-theme-mark::after {
    content: '❀';
    position: absolute;
    top: 66px;
    color: #b47f68;
    font-size: 28px;
}

.invite-card-qyz .card-theme-mark::before { left: 28px; }
.invite-card-qyz .card-theme-mark::after { right: 28px; }

.invite-card-birthday {
    border-radius: 34px 118px 34px 118px;
}

.invite-card-birthday::before {
    border: 2px dotted #d69342;
    border-radius: 28px 106px 28px 106px;
}

.invite-card-birthday .card-ring {
    width: 94px;
    height: 94px;
    border: 2px dotted #d69342;
}

.invite-card-birthday .card-theme-mark::before,
.invite-card-birthday .card-theme-mark::after {
    content: '✷';
    position: absolute;
    color: #d69342;
    font-size: 30px;
}

.invite-card-birthday .card-theme-mark::before { top: 32px; right: 28px; }
.invite-card-birthday .card-theme-mark::after { bottom: 44px; left: 28px; }

/* Theme-specific invitation geometry, typography and location cards. */
.invite-theme-pearl .invite-name { letter-spacing: -1px; }
.invite-theme-royal .invite-name { font-style: normal; letter-spacing: 1px; text-transform: uppercase; }
.invite-theme-royal .date-orb { border: 3px double var(--iv-accent); border-radius: 18px; }
.invite-theme-royal .venue-location { border-radius: 5px; border-style: double; border-width: 3px; }
.invite-theme-botanical .invite-name { font-size: 60px; }
.invite-theme-botanical .date-orb { border-radius: 46% 54% 44% 56% / 52% 42% 58% 48%; }
.invite-theme-botanical .venue-location { border-radius: 34px 10px 34px 10px; }
.invite-theme-silk .invite-name { font-weight: 400; letter-spacing: 0; }
.invite-theme-silk .date-orb { width: 245px; border-radius: 28px 110px 28px 110px; }
.invite-theme-silk .venue-location { border-radius: 30px 8px 30px 8px; }
.invite-theme-nomad .invite-name { font-style: normal; font-weight: 600; letter-spacing: 1px; }
.invite-theme-nomad .date-orb { border-radius: 0; clip-path: polygon(50% 0, 92% 14%, 100% 86%, 50% 100%, 0 86%, 8% 14%); }
.invite-theme-nomad .venue-location { border-radius: 3px; clip-path: polygon(4% 0, 96% 0, 100% 18%, 100% 82%, 96% 100%, 4% 100%, 0 82%, 0 18%); }
.invite-theme-jubilee .invite-name { font-size: 50px; }
.invite-theme-jubilee .date-orb { border: 3px double var(--iv-accent); }
.invite-theme-jubilee .venue-location { border-radius: 999px; }
.invite-theme-qyz .invite-name { font-size: 62px; line-height: 0.88; }
.invite-theme-qyz .invite-name-preview span:last-child { font-size: 0.76em; }
.invite-theme-qyz .date-orb { border-radius: 50% 50% 32px 32px; }
.invite-theme-qyz .venue-location { border-radius: 28px 28px 8px 8px; }
.invite-theme-birthday .invite-name { font-style: normal; font-weight: 650; }
.invite-theme-birthday .date-orb { border: 2px dotted var(--iv-accent); border-radius: 34px 96px 34px 96px; }
.invite-theme-birthday .venue-location { border-radius: 10px 30px 10px 30px; }

@media (max-width: 1100px) {
    .catalog-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .catalog-grid {
        gap: 16px;
    }

    .catalog-grid .design-card {
        grid-template-rows: 360px 132px 48px;
    }

    .catalog-grid .design-preview {
        height: 360px;
        min-height: 360px;
        max-height: 360px;
        padding: 28px 20px;
        gap: 20px;
    }

    .catalog-grid .invite-card-jubilee {
        min-height: 360px !important;
    }

    .catalog-grid .design-info {
        min-height: 132px;
        padding-top: 18px;
        padding-bottom: 12px;
    }

    .catalog-grid .design-card > .button {
        height: 48px;
    }

    .catalog-grid .design-preview strong {
        font-size: 30px;
    }
}

@media (max-width: 480px) {
    .catalog-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Individual compositions for the renewed collection. */
.invite-card-sage-modern {
    border-radius: 160px 160px 18px 18px;
}
.invite-card-sage-modern::before {
    inset: 13px;
    border: 1px solid #78927d;
    border-radius: 148px 148px 12px 12px;
    box-shadow: inset 0 0 0 5px rgba(255,255,255,.42);
}
.invite-card-sage-modern .card-ring {
    width: 82px;
    height: 82px;
    border: 1px solid #66836d;
    box-shadow: 15px 0 0 -1px rgba(255,255,255,.18), 15px 0 0 0 #9d855d;
}
.invite-card-sage-modern .card-theme-mark::before,
.invite-card-sage-modern .card-theme-mark::after {
    content: '❧';
    position: absolute;
    bottom: 52px;
    color: #55745d;
    font: 42px/1 Georgia, serif;
}
.invite-card-sage-modern .card-theme-mark::before { left: 24px; transform: rotate(18deg); }
.invite-card-sage-modern .card-theme-mark::after { right: 24px; transform: scaleX(-1) rotate(18deg); }

.invite-card-rose-modern {
    border-radius: 46% 54% 20px 20px / 35% 35% 20px 20px;
}
.invite-card-rose-modern::before {
    inset: 12px;
    border: 2px solid rgba(177,105,110,.58);
    border-radius: 48% 52% 16px 16px / 36% 36% 16px 16px;
}
.invite-card-rose-modern .card-ring {
    width: 112px;
    height: 62px;
    border: 1px solid #a66b71;
    border-radius: 50%;
    transform: rotate(-12deg);
}
.invite-card-rose-modern .card-design-name { border-radius: 26px 6px 26px 6px !important; }
.invite-card-rose-modern .card-theme-mark::before,
.invite-card-rose-modern .card-theme-mark::after {
    content: '✿';
    position: absolute;
    top: 38px;
    color: #a96470;
    font-size: 26px;
}
.invite-card-rose-modern .card-theme-mark::before { left: 28px; }
.invite-card-rose-modern .card-theme-mark::after { right: 28px; }

.invite-card-evening-modern {
    border-radius: 12px;
    clip-path: polygon(7% 0, 93% 0, 100% 7%, 100% 93%, 93% 100%, 7% 100%, 0 93%, 0 7%);
}
.invite-card-evening-modern::before {
    inset: 12px;
    border: 3px double #a76d24;
    border-radius: 2px;
    clip-path: polygon(7% 0, 93% 0, 100% 7%, 100% 93%, 93% 100%, 7% 100%, 0 93%, 0 7%);
}
.invite-card-evening-modern .card-design-name {
    border: 1px solid #b47a2e !important;
    border-radius: 4px !important;
    background: rgba(255,248,224,.85) !important;
}
.invite-card-evening-modern .card-ring {
    width: 74px;
    height: 74px;
    border: 3px double #a76d24;
    border-radius: 8px;
    transform: rotate(45deg);
}
.invite-card-evening-modern .card-theme-mark::before,
.invite-card-evening-modern .card-theme-mark::after {
    content: '◆  ◇  ◆';
    position: absolute;
    right: 0;
    left: 0;
    color: #a76d24;
    font-size: 11px;
    letter-spacing: 7px;
}
.invite-card-evening-modern .card-theme-mark::before { top: 28px; }
.invite-card-evening-modern .card-theme-mark::after { bottom: 34px; }

.invite-card-heritage-modern {
    border-radius: 122px 122px 8px 8px;
}
.invite-card-heritage-modern::before {
    inset: 11px 15px;
    border: 2px solid #a1643e;
    border-radius: 108px 108px 5px 5px;
}
.invite-card-heritage-modern .card-ring {
    width: 98px;
    height: 98px;
    border: 2px dotted #9e6039;
    box-shadow: inset 0 0 0 8px rgba(255,248,231,.4);
}
.invite-card-heritage-modern .card-design-name { border-radius: 5px !important; }
.invite-card-heritage-modern .card-theme-mark::before,
.invite-card-heritage-modern .card-theme-mark::after {
    content: '⌁ ◈ ⌁';
    position: absolute;
    top: 112px;
    color: #9e6039;
    font-size: 12px;
    letter-spacing: 4px;
}
.invite-card-heritage-modern .card-theme-mark::before { left: 15px; transform: rotate(-90deg); }
.invite-card-heritage-modern .card-theme-mark::after { right: 15px; transform: rotate(90deg); }

.invite-card-golden-jubilee {
    border-radius: 50% 50% 24px 24px;
}
.invite-card-golden-jubilee::before {
    inset: 11px;
    border: 3px double #ad7830;
    border-radius: 50% 50% 17px 17px;
}
.invite-card-golden-jubilee .card-ring {
    width: 116px;
    height: 116px;
    border: 1px dashed #ad7830;
    box-shadow: inset 0 0 0 9px rgba(255,248,229,.35);
}
.invite-card-golden-jubilee .card-design-name {
    border-radius: 50% !important;
    padding: 17px 22px !important;
}
.invite-card-golden-jubilee .card-theme-mark::before {
    content: '50';
    position: absolute;
    top: 70px;
    right: 0;
    left: 0;
    color: #8e5e22;
    font: italic 52px/1 'Cormorant Garamond', Georgia, serif;
    opacity: .42;
}

.invite-card-sky-birthday {
    border-radius: 28px 128px 28px 92px;
}
.invite-card-sky-birthday::before {
    inset: 11px;
    border: 2px dotted #16799f;
    border-radius: 22px 116px 22px 80px;
}
.invite-card-sky-birthday .card-ring {
    width: 88px;
    height: 104px;
    border: 2px dotted #e89d32;
    border-radius: 52% 48% 50% 50%;
}
.catalog-grid .invite-card-sky-birthday .card-design-name {
    width: calc(100% - 20px);
    max-width: 252px;
    padding: 10px 9px 12px;
    border-radius: 24px 74px 24px 74px !important;
    font-size: clamp(26px, 1.7vw, 30px);
    line-height: 1.02;
}
.invite-card-sky-birthday .card-theme-mark::before,
.invite-card-sky-birthday .card-theme-mark::after {
    content: '✦';
    position: absolute;
    color: #e49629;
    font-size: 28px;
}
.invite-card-sky-birthday .card-theme-mark::before { top: 31px; right: 27px; }
.invite-card-sky-birthday .card-theme-mark::after { bottom: 49px; left: 28px; font-size: 19px; }

.invite-card-qyz-modern {
    border-radius: 170px 170px 48px 48px;
}
.invite-card-qyz-modern::before {
    inset: 12px;
    border: 2px solid rgba(183,101,76,.62);
    border-radius: 158px 158px 38px 38px;
    box-shadow: inset 0 0 0 6px rgba(255,255,255,.38);
}
.invite-card-qyz-modern .card-ring {
    width: 78px;
    height: 102px;
    border: 2px solid #ae674e;
    border-radius: 50% 50% 18px 18px;
}
.invite-card-qyz-modern .card-design-name { border-radius: 72px 72px 18px 18px !important; }
.invite-card-qyz-modern .card-theme-mark::before,
.invite-card-qyz-modern .card-theme-mark::after {
    content: '❀';
    position: absolute;
    top: 58px;
    color: #b56953;
    font-size: 27px;
}
.invite-card-qyz-modern .card-theme-mark::before { left: 23px; }
.invite-card-qyz-modern .card-theme-mark::after { right: 23px; }

.invite-card-sage-modern .card-shade { background: linear-gradient(180deg,rgba(240,248,238,.02) 18%,rgba(239,246,235,.92) 100%); }
.invite-card-rose-modern .card-shade { background: linear-gradient(180deg,rgba(255,241,241,.03) 20%,rgba(255,239,238,.91) 100%); }
.invite-card-evening-modern .card-shade { background: linear-gradient(180deg,rgba(255,240,202,.01) 18%,rgba(255,239,202,.91) 100%); }
.invite-card-heritage-modern .card-shade { background: linear-gradient(180deg,rgba(255,245,227,.02) 18%,rgba(249,233,209,.92) 100%); }
.invite-card-golden-jubilee .card-shade { background: linear-gradient(180deg,rgba(255,246,219,.02) 18%,rgba(255,241,207,.91) 100%); }
.invite-card-sky-birthday .card-shade { background: linear-gradient(180deg,rgba(230,249,255,.01) 20%,rgba(235,249,255,.9) 100%); }
.invite-card-qyz-modern .card-shade { background: linear-gradient(180deg,rgba(255,241,235,.02) 20%,rgba(255,239,234,.92) 100%); }

/* The full invitation keeps the same content blocks but changes their geometry and rhythm per design. */
.invite-theme-sage-modern { --iv-bg:#e9f0e5;--iv-paper:#fffdf7;--iv-ink:#2f4b3a;--iv-accent:#77906e;--iv-soft:#c7d7bd; }
.invite-theme-sage-modern .invite-cover-copy::before { border-radius:190px 190px 22px 22px;background:rgba(248,253,245,.86); }
.invite-theme-sage-modern .date-section { background:radial-gradient(circle at 50% 42%,#fffdf8 0 25%,#e2eddd 70%); }
.invite-theme-sage-modern .date-orb { border-radius:50% 50% 18px 18px; }
.invite-theme-sage-modern .venue-location { border-radius:26px; }

.invite-theme-rose-modern { --iv-bg:#f9e7e6;--iv-paper:#fffaf6;--iv-ink:#683e43;--iv-accent:#bd7478;--iv-soft:#edc7c4; }
.invite-theme-rose-modern .invite-cover-copy::before { inset:44px 10px 25px;border-radius:48% 52% 38px 38px / 42% 42% 25px 25px;background:rgba(255,247,246,.86); }
.invite-theme-rose-modern .invite-intro { background:linear-gradient(150deg,#fffaf6,#f9e3e4); }
.invite-theme-rose-modern .date-orb { width:244px;border-radius:46% 54% 42% 58% / 54% 44% 56% 46%; }
.invite-theme-rose-modern .venue-location { border-radius:28px 8px 28px 8px; }

.invite-theme-evening-modern { --iv-bg:#f5ddb0;--iv-paper:#fffbef;--iv-ink:#563a22;--iv-accent:#b07024;--iv-soft:#e3bd7d; }
.invite-theme-evening-modern .invite-cover-copy::before { border:3px double #b07024;border-radius:7px;background:rgba(255,247,222,.88);clip-path:polygon(8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%,0 8%); }
.invite-theme-evening-modern .invite-name { font-style:normal;letter-spacing:.03em; }
.invite-theme-evening-modern .date-orb { border:3px double var(--iv-accent);border-radius:12px;transform:rotate(2deg); }
.invite-theme-evening-modern .program-section { background:linear-gradient(180deg,#fffaf0,#f3d8a7); }
.invite-theme-evening-modern .venue-location { border:3px double var(--iv-accent);border-radius:6px; }

.invite-theme-heritage-modern { --iv-bg:#ead8bd;--iv-paper:#fff9ed;--iv-ink:#553a2b;--iv-accent:#a65f38;--iv-soft:#d8ae86; }
.invite-theme-heritage-modern .invite-cover-copy::before { inset:50px 18px 24px;border:2px solid #a65f38;border-radius:150px 150px 6px 6px;background:rgba(255,248,231,.87);box-shadow:inset 0 0 0 7px rgba(255,255,255,.38),0 18px 55px rgba(98,57,35,.18); }
.invite-theme-heritage-modern .invite-section::before { content:'⌁  ◈  ⌁';display:block;margin-bottom:30px;color:var(--iv-accent);font-size:11px;letter-spacing:8px; }
.invite-theme-heritage-modern .date-orb { border-radius:10px;clip-path:polygon(50% 0,94% 12%,100% 88%,50% 100%,0 88%,6% 12%); }
.invite-theme-heritage-modern .venue-location { border-radius:4px; }

.invite-theme-golden-jubilee { --iv-bg:#f5dfad;--iv-paper:#fffaf0;--iv-ink:#5d3f21;--iv-accent:#b67b2f;--iv-soft:#e4c589; }
.invite-theme-golden-jubilee .invite-cover-copy::before { inset:62px 22px 24px;border:3px double #b67b2f;border-radius:50%;background:rgba(255,248,223,.87); }
.invite-theme-golden-jubilee .jubilee-number { color:#9b6220;opacity:.7; }
.invite-theme-golden-jubilee .invite-name { font-size:49px; }
.invite-theme-golden-jubilee .date-orb { border:3px double var(--iv-accent);box-shadow:inset 0 0 0 10px rgba(182,123,47,.08); }
.invite-theme-golden-jubilee .countdown-section { background:linear-gradient(145deg,#b87929,#e0b25e);color:#fffdf7; }
.invite-theme-golden-jubilee .venue-location { border-radius:999px; }

.invite-theme-sky-birthday { --iv-bg:#e6f5fb;--iv-paper:#fffdf8;--iv-ink:#24516a;--iv-accent:#e09631;--iv-soft:#acd7e8; }
.invite-theme-sky-birthday .invite-cover-copy::before { inset:49px 15px 25px;border:2px dotted #e09631;border-radius:32px 155px 32px 112px;background:rgba(242,252,255,.87); }
.invite-theme-sky-birthday .invite-name { font-style:normal;font-weight:650; }
.invite-theme-sky-birthday .invite-intro { background:linear-gradient(155deg,#fffdf8,#e6f7fc); }
.invite-theme-sky-birthday .date-orb { border:2px dotted var(--iv-accent);border-radius:38px 105px 38px 105px; }
.invite-theme-sky-birthday .countdown-grid>div { border-radius:18px 42px 18px 42px; }
.invite-theme-sky-birthday .venue-location { border-radius:16px 38px 16px 38px; }

.invite-theme-qyz-modern { --iv-bg:#f8e8e1;--iv-paper:#fffaf4;--iv-ink:#643f3a;--iv-accent:#b86f55;--iv-soft:#e9c4b7; }
.invite-theme-qyz-modern .invite-cover-copy::before { inset:44px 14px 25px;border:2px solid #b86f55;border-radius:195px 195px 35px 35px;background:rgba(255,247,242,.87);box-shadow:inset 0 0 0 7px rgba(255,255,255,.45),0 18px 55px rgba(111,65,55,.16); }
.invite-theme-qyz-modern .invite-name { font-size:60px;line-height:.9; }
.invite-theme-qyz-modern .date-orb { border-radius:50% 50% 30px 30px; }
.invite-theme-qyz-modern .date-orb::before { transform:translate(13px,-9px) rotate(12deg);border-style:dashed; }
.invite-theme-qyz-modern .venue-location { border-radius:30px 30px 8px 8px; }

@media (max-width: 600px) {
    .invite-theme-golden-jubilee .invite-cover-copy::before { inset:56px 15px 22px; }
    .invite-theme-qyz-modern .invite-name { font-size:54px; }
}

/* Cover copy is the actual text panel. The old pseudo-panel painted a pale shape
   over dark text panels and made several catalog covers unreadable. */
.invite-mobile .invite-cover-copy::before{content:none!important;display:none!important}

/* Wedding marks are two separate rings in every scene. */
.invite-mobile .invite-wedding-rings--section{width:84px;height:54px;margin:0 auto 34px;color:var(--iv-accent)}
.invite-mobile .invite-wedding-rings i{box-sizing:border-box;width:46px;height:46px;top:4px;border-width:3px;animation:none}
.invite-mobile .invite-wedding-rings i:first-child{left:2px;right:auto}
.invite-mobile .invite-wedding-rings i:last-child{left:auto;right:2px}
.invite-mobile .invite-wedding-rings--section::after{display:none}
.invite-mobile .invite-cover-copy.is-visible .invite-wedding-rings i:first-child{animation:wedding-ring-left 1.05s cubic-bezier(.2,.8,.2,1) both}
.invite-mobile .invite-cover-copy.is-visible .invite-wedding-rings i:last-child{animation:wedding-ring-right 1.05s .12s cubic-bezier(.2,.8,.2,1) both}
@keyframes wedding-ring-left{from{opacity:0;transform:translateX(-18px) rotate(-15deg)}to{opacity:1;transform:translateX(0) rotate(0)}}
@keyframes wedding-ring-right{from{opacity:0;transform:translateX(18px) rotate(15deg)}to{opacity:1;transform:translateX(0) rotate(0)}}

/* Altyn saltanat: an airy champagne invitation with deep berry ink. */
.invite-mobile.invite-template-royal-kesh{--iv-bg:#f7efe6;--iv-paper:#fffaf3;--iv-ink:#512b38;--iv-accent:#a77443;--iv-soft:#d7b98f;background:#f7efe6}
.invite-template-royal-kesh .invite-cover{background:#e1c4a2}
.invite-template-royal-kesh .invite-cover-image{filter:saturate(.86) brightness(1.04)}
.invite-mobile.invite-template-royal-kesh .invite-cover-shade{background:linear-gradient(180deg,rgba(255,250,243,.04) 25%,rgba(65,31,42,.16) 100%)!important}
.invite-mobile.invite-template-royal-kesh .invite-cover-copy{width:calc(100% - 38px);margin:0 19px 26px;padding:42px 23px 38px;border:1px solid #b88c55;border-radius:155px 155px 14px 14px;background:rgba(255,249,239,.97)!important;color:#512b38!important;text-shadow:none;box-shadow:0 22px 55px rgba(65,31,42,.18);backdrop-filter:blur(8px)}
.invite-mobile.invite-template-royal-kesh .invite-cover-copy :is(.invite-overline,.invite-cover-date,h1,.invite-monogram){color:#512b38!important;text-shadow:none}
.invite-template-royal-kesh .invite-cover-copy .invite-overline{letter-spacing:.25em}
.invite-template-royal-kesh .invite-cover-copy .invite-cover-date{font-weight:700}
.invite-template-royal-kesh .invite-cover h1{font-family:'Noto Serif Display',Georgia,serif;font-weight:500;letter-spacing:-.035em}
.invite-template-royal-kesh .invite-cover-copy .invite-monogram{border-color:#aa7a4b;background:#fffaf2}
.invite-template-royal-kesh .invite-cover-copy .invite-wedding-rings{color:#aa7a4b}
.invite-template-royal-kesh .invite-chapter:is(.invite-chapter--royal,.invite-chapter--medal,.invite-chapter--evening){background:linear-gradient(155deg,#fffaf3 5%,#f4e4d5 100%);color:#512b38}
.invite-template-royal-kesh .invite-chapter:is(.invite-chapter--royal,.invite-chapter--medal,.invite-chapter--evening) .invite-section{background:transparent!important;color:#512b38!important}
.invite-template-royal-kesh .invite-chapter:is(.invite-chapter--royal,.invite-chapter--medal,.invite-chapter--evening) .invite-chapter-index{color:#8b573d}
.invite-template-royal-kesh .invite-chapter:is(.invite-chapter--royal,.invite-chapter--medal,.invite-chapter--evening)::before{border-color:rgba(167,116,67,.34)}
.invite-template-royal-kesh .invite-message{max-width:340px;font-size:clamp(24px,7vw,29px);line-height:1.43}
.invite-template-royal-kesh .invite-chapter .invite-small-title,.invite-template-royal-kesh .invite-chapter .invite-overline{color:#80523f}
.invite-template-royal-kesh .invite-chapter--medal .date-orb{background:#fffaf3;color:#512b38;border-color:#a77443;box-shadow:0 14px 32px rgba(81,43,56,.09)}
.invite-template-royal-kesh .invite-chapter--evening .countdown-grid>div{border-color:rgba(81,43,56,.34);color:#512b38;background:rgba(255,250,243,.78)}
.invite-template-royal-kesh .invite-chapter--royal .venue-location{background:#fffaf3;color:#512b38;border-color:#d5b68d}

/* Butterflies belong only to the higher-priced wedding templates. */
.invite-butterfly{position:absolute;z-index:3;width:52px;height:44px;perspective:140px;opacity:.48;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(55,36,28,.12));animation:butterfly-drift 8s ease-in-out infinite}
.invite-butterfly--one{top:15%;left:7%}
.invite-butterfly--two{top:34%;right:8%;width:40px;height:34px;opacity:.4;animation-delay:-3.4s;animation-duration:9.5s}
.invite-butterfly-wing{position:absolute;top:0;width:50%;height:100%;background-image:url('/invitation-assets/butterfly.svg');background-repeat:no-repeat;background-size:200% 100%;backface-visibility:visible;will-change:transform}
.invite-butterfly-wing--left{left:0;background-position:left center;transform-origin:right center;animation:butterfly-left-wing 1.05s ease-in-out infinite alternate}
.invite-butterfly-wing--right{right:0;background-position:right center;transform-origin:left center;animation:butterfly-right-wing 1.05s ease-in-out infinite alternate}
.invite-butterfly--two .invite-butterfly-wing{animation-delay:-.55s;animation-duration:1.2s}
.invite-butterfly-body{position:absolute;z-index:2;top:36%;left:calc(50% - 1px);width:2px;height:43%;border-radius:2px;background:#9b6a59}
@keyframes butterfly-left-wing{from{transform:rotateY(-12deg)}to{transform:rotateY(-68deg)}}
@keyframes butterfly-right-wing{from{transform:rotateY(12deg)}to{transform:rotateY(68deg)}}
@keyframes butterfly-drift{0%,100%{transform:translate3d(0,0,0) rotate(-8deg)}50%{transform:translate3d(14px,-22px,0) rotate(10deg)}}
@media(prefers-reduced-motion:reduce){.invite-butterfly,.invite-butterfly-wing,.invite-mobile .invite-cover-copy.is-visible .invite-wedding-rings i{animation:none!important}}

/* Modern invitation covers: photography flows into type, without stacked arches,
   stamped initials, decorative outlines or an extra card inside the cover. */
.invite-mobile .invite-cover::before,.invite-mobile .invite-cover::after{content:none!important}
.invite-mobile .story-cover-frame{display:none!important}
.invite-mobile .invite-cover-shade{background:linear-gradient(180deg,rgba(255,251,245,0) 20%,rgba(255,251,245,.28) 42%,rgba(255,251,245,.9) 68%,#fffbf5 88%)!important}
.invite-mobile[class*="invite-template-"] .invite-cover-copy{box-sizing:border-box;width:100%!important;margin:0!important;padding:75px 30px 55px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;color:var(--iv-ink)!important;text-shadow:none!important}
.invite-mobile .invite-cover-copy :is(.invite-overline,.invite-cover-date,.invite-name,.invite-name span,.invite-monogram,.jubilee-number){color:var(--iv-ink)!important;text-shadow:none!important}
.invite-mobile .invite-cover-copy .invite-overline{font-size:10px;letter-spacing:.22em;line-height:1.6}
.invite-mobile .invite-cover-copy .invite-cover-date{font-size:12px;font-weight:700;letter-spacing:.18em}
.invite-mobile .invite-cover-copy .invite-monogram{display:none!important}
.invite-mobile .invite-cover-copy .invite-name{max-width:100%;margin:15px auto 0;font-size:clamp(42px,12vw,60px);line-height:1.03;text-wrap:balance}
.invite-mobile .invite-cover-copy .invite-wedding-rings{color:var(--iv-accent)}
.invite-mobile .invite-cover-copy .jubilee-number{font-size:33px}
.invite-template-dala-shattygy .invite-cover-copy,.invite-template-happy-birthday .invite-cover-copy,.invite-template-aru-qyz-uzatu .invite-cover-copy{text-align:left}
.invite-template-dala-shattygy .invite-cover-copy .invite-name,.invite-template-happy-birthday .invite-cover-copy .invite-name,.invite-template-aru-qyz-uzatu .invite-cover-copy .invite-name{margin-left:0}
.invite-template-mahabbat-hikayasy .invite-cover-copy{text-align:left}
.invite-template-mahabbat-hikayasy .invite-cover-copy .invite-name{margin-left:0}

/* Date is a typographic moment, rather than another outlined shape. */
.invite-mobile .date-orb{box-sizing:border-box;width:auto!important;min-width:0;height:auto!important;min-height:0;margin:0 auto;padding:22px 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;clip-path:none!important;transform:none!important;color:inherit!important}
.invite-mobile .date-orb::before,.invite-mobile .date-orb::after{content:none!important;display:none!important}
.invite-mobile .date-orb strong{font-size:clamp(68px,20vw,94px);line-height:1;color:inherit!important}
.invite-mobile .date-orb span{color:inherit!important}
.invite-mobile .invite-chapter:is(.invite-chapter--royal,.invite-chapter--medal,.invite-chapter--evening,.invite-chapter--ribbon,.invite-chapter--banner)::before{content:none!important}
.invite-mobile .invite-chapter:is(.invite-chapter--pearl,.invite-chapter--silk,.invite-chapter--calendar){box-shadow:none!important}
.invite-mobile .invite-chapter--ticket{border:0!important}
.invite-mobile .invite-chapter--farewell{border:0!important}

/* Catalog covers use one clear editorial hierarchy. Keep the individual artwork
   and palette, but remove the nested shapes that crowd long Kazakh titles. */
.catalog-grid .design-preview[class*='invite-card-']{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:9px;box-sizing:border-box;width:100%;padding:25px 20px 22px;border:0;border-radius:18px!important;clip-path:none!important;text-align:center}
.catalog-grid .design-preview[class*='invite-card-']::before,.catalog-grid .design-preview[class*='invite-card-']::after{content:none!important;display:none!important}
.catalog-grid .design-preview[class*='invite-card-'] .card-theme-mark,.catalog-grid .design-preview[class*='invite-card-'] .card-ring{display:none!important}
.catalog-grid .design-preview[class*='invite-card-'] .card-shade{display:block;background:linear-gradient(180deg,color-mix(in srgb,var(--card-surface) 96%,white) 0%,color-mix(in srgb,var(--card-surface) 93%,transparent) 29%,rgba(255,251,246,.05) 58%,color-mix(in srgb,var(--card-surface) 88%,transparent) 82%,var(--card-surface) 100%)!important}
.catalog-grid .design-preview[class*='invite-card-'] .mini-kicker{position:relative;top:auto;right:auto;left:auto;display:block;width:100%;margin:0;color:var(--card-ink);font-size:9px;font-weight:700;line-height:1.4;letter-spacing:.17em;text-shadow:none}
.catalog-grid .design-preview[class*='invite-card-'] .card-design-name{position:relative!important;top:auto!important;left:auto!important;display:flex;width:100%;max-width:100%;min-height:76px;align-items:center;justify-content:center;flex-direction:column;margin:0;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;color:var(--card-ink)!important;font:500 clamp(26px,2.15vw,33px)/1.06 'Noto Serif Display',Georgia,serif!important;letter-spacing:-.035em;text-shadow:none!important;text-wrap:balance;transform:none!important;overflow-wrap:anywhere}
.catalog-grid .design-preview[class*='invite-card-'] .card-design-name span{display:block;width:100%;white-space:normal;overflow-wrap:anywhere}
.catalog-grid .design-preview[class*='invite-card-'] .mini-date{position:relative!important;top:auto!important;left:auto!important;display:block;margin:auto 0 0;color:var(--card-ink);font-size:10px;font-weight:700;line-height:1.4;letter-spacing:.15em;text-shadow:none;transform:none!important}
.catalog-grid .design-preview[class*='invite-card-'] .preview-pill{position:relative!important;top:auto!important;bottom:auto!important;left:auto!important;display:inline-flex;min-width:150px;min-height:42px;align-items:center;justify-content:center;margin:4px auto 0;padding:10px 16px;background:#202c2a;color:#fff!important;text-shadow:none;transform:none!important}
.catalog-grid .design-card{display:flex;min-width:0;flex-direction:column;grid-template-rows:none}
.catalog-grid .design-info{min-height:115px}
.catalog-grid .design-card>.button{margin-top:auto}
@media(max-width:700px){.catalog-grid .design-preview[class*='invite-card-']{padding:22px 18px 19px}.catalog-grid .design-preview[class*='invite-card-'] .card-design-name{min-height:72px;font-size:clamp(26px,8vw,31px)!important}.catalog-grid .design-info{min-height:108px}}

/* Names lead each invitation. The upper light veil guarantees contrast even
   when a theme has an older dark cover rule or its primary photo fails. */
.invite-mobile .invite-cover{align-items:flex-start;background-color:#f5ede4;background-position:center;background-size:cover;background-repeat:no-repeat}
.invite-mobile.invite-event-wedding .invite-cover{background-image:url('/invitation-assets/wedding-hands.webp')}
.invite-mobile.invite-template-gold-wedding .invite-cover{background-image:url('/invitation-assets/royal-wedding.webp')}
.invite-mobile.invite-event-anniversary .invite-cover{background-image:url('/invitation-assets/anniversary.webp')}
.invite-mobile.invite-event-birthday .invite-cover{background-image:url('/invitation-assets/birthday-ethno.webp')}
.invite-mobile.invite-event-qyz_uzatu .invite-cover{background-image:url('/invitation-assets/qyz-uzatu.webp')}
.invite-mobile[class*='invite-template-'] .invite-cover .invite-cover-shade{background:linear-gradient(180deg,rgba(255,251,245,.98) 0%,rgba(255,251,245,.94) 30%,rgba(255,251,245,.18) 58%,rgba(255,251,245,.92) 100%)!important}
.invite-mobile[class*='invite-template-'] .invite-cover-copy :is(.invite-overline,.invite-cover-date,.invite-name,.invite-name span,.jubilee-number,.story-chapter-label){color:var(--iv-ink,#263b38)!important;text-shadow:none!important}
.invite-mobile[class*='invite-template-'] .invite-cover-copy .story-chapter-label{color:#79513b!important}
.invite-mobile[class*='invite-template-'] .invite-cover-copy{padding:93px 29px 34px!important}
.invite-mobile .invite-cover-copy .invite-name{margin:0 auto 0!important;font-size:clamp(40px,11vw,56px);line-height:1.08}
.invite-mobile .invite-cover-copy .invite-name span{display:block;overflow-wrap:anywhere}
.invite-mobile .invite-cover-copy .jubilee-number{margin:9px 0 0}
.invite-mobile .invite-cover-copy .invite-wedding-rings{margin:22px auto 14px}
.invite-mobile .invite-cover-copy .invite-overline{margin:15px 0 0}
.invite-mobile .invite-cover-copy .invite-cover-date{margin:10px 0 0}
.invite-mobile .invite-kazakh-mark{top:auto!important;right:22px!important;bottom:22px!important;left:auto!important}
.invite-mobile .invite-butterfly--one{top:58%;left:8%}
.invite-mobile .invite-butterfly--two{top:73%;right:8%}
@media(max-width:430px){.invite-mobile[class*='invite-template-'] .invite-cover-copy{padding:76px 25px 30px!important}}

/* Align the captions of every invitation cover and keep the names near the bottom. */
.invite-mobile .invite-cover{align-items:flex-end!important}
.invite-mobile[class*='invite-template-'] .invite-cover .invite-cover-shade{background:linear-gradient(180deg,rgba(255,251,245,0) 0%,rgba(255,251,245,0) 39%,rgba(255,251,245,.18) 54%,rgba(255,251,245,.88) 77%,#fffbf5 100%)!important}
.invite-mobile[class*='invite-template-'] .invite-cover-copy{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:0;width:100%!important;margin:0!important;padding:28px 30px 142px!important;text-align:center!important}
.invite-mobile .invite-cover-copy .story-chapter-label{order:1;margin:0 0 8px!important;text-align:center}
.invite-mobile .invite-cover-copy .invite-overline{order:2;margin:0 0 5px!important;text-align:center}
.invite-mobile .invite-cover-copy .invite-cover-date{order:3;margin:0 0 18px!important;text-align:center}
.invite-mobile .invite-cover-copy .invite-wedding-rings{order:4;margin:0 auto 18px!important}
.invite-mobile .invite-cover-copy .invite-name{order:5;width:100%;margin:0 auto!important;text-align:center!important}
.invite-mobile .invite-cover-copy .invite-name span{width:100%;text-align:center}
.invite-mobile .invite-cover-copy .jubilee-number{order:6;margin:12px auto 0!important;text-align:center}
.invite-mobile .invite-cover-copy .invite-monogram{order:7}

/* Preserve the photo in the wedding album and use a dark readable caption area. */
.invite-mobile.invite-template-mahabbat-hikayasy .invite-cover .invite-cover-shade{background:linear-gradient(180deg,rgba(8,27,28,.04) 0%,rgba(8,27,28,.12) 40%,rgba(8,27,28,.58) 55%,rgba(8,27,28,.88) 72%,rgba(8,27,28,.96) 100%)!important}
.invite-mobile.invite-template-mahabbat-hikayasy .invite-cover-copy :is(.invite-name,.invite-name span,.invite-overline,.invite-cover-date){color:#fffaf1!important}
.invite-mobile.invite-template-mahabbat-hikayasy .invite-cover .invite-cover-copy .story-chapter-label{align-self:center;margin:0 auto 10px!important;padding:6px 10px;background:rgba(10,32,32,.82);color:#fff9ee!important;font:700 11px/1.45 'Noto Sans',Manrope,Arial,sans-serif;letter-spacing:.14em;text-align:center;text-shadow:none!important}
@media(max-width:430px){.invite-mobile[class*='invite-template-'] .invite-cover-copy{padding:24px 24px 130px!important}}
.invite-mobile .invite-kazakh-mark{top:22px!important;right:22px!important;bottom:auto!important;left:auto!important}
.invite-mobile.invite-event-wedding .invite-name-preview{font-size:clamp(31px,8vw,42px)!important;line-height:1.15}

/* Calm event caption leaves the names as the main focus. */
.invite-mobile[class*='invite-template-'] .invite-cover-copy p.invite-overline{display:inline-block;max-width:100%;min-height:0;align-self:center;margin:0 auto 13px!important;padding:5px 10px;border:0;border-radius:4px;background:rgba(255,251,245,.84);box-shadow:none;color:var(--iv-ink,#263b38)!important;font:600 11px/1.4 'Noto Sans',Manrope,Arial,sans-serif!important;letter-spacing:.12em!important;text-align:center;text-shadow:none!important;text-transform:uppercase;text-wrap:balance}
.invite-mobile.invite-template-mahabbat-hikayasy .invite-cover-copy p.invite-overline{background:rgba(255,250,241,.9);color:#173a39!important}
/* Sample couple names fit on one line without touching the photo edge. */
.invite-mobile.invite-event-wedding .invite-name-preview{font-size:clamp(25px,6.8vw,34px)!important;line-height:1.16!important;letter-spacing:-.035em!important}
.invite-mobile.invite-event-wedding .invite-name-preview span{white-space:nowrap;overflow-wrap:normal}
/* Jubilee age follows the host name with the same display typography. */
.invite-mobile.invite-event-anniversary .invite-cover-copy .jubilee-number{display:block;margin:12px auto 0!important;color:var(--iv-ink,#263b38)!important;font:italic 500 clamp(40px,11vw,56px)/1.08 'Cormorant Garamond',Georgia,serif!important;opacity:1!important;text-align:center}
.invite-mobile.invite-event-anniversary .invite-cover-copy .jubilee-number small{font:inherit}
/* Keep long farewell text inside its panel, including on narrow phones. */
.invite-mobile .invite-finale .finale-circle{width:min(310px,100%);height:auto;min-height:250px;padding:27px 24px}
.invite-mobile .invite-finale .finale-circle p{max-width:100%;margin:0;font-size:clamp(21px,6vw,28px);line-height:1.18;overflow-wrap:anywhere;text-wrap:balance}
/* Numbers stay legible on the light countdown tiles of every theme. */
.invite-mobile .countdown-grid>div{background:var(--iv-paper);color:var(--iv-ink)}

.invite-mobile.invite-template-classic-anniversary .invite-cover-copy .jubilee-number,.invite-mobile.invite-template-mereyli-shenber .invite-cover-copy .jubilee-number{font-style:normal!important}
/* Center the fixed player against the 430px invitation, with room for its ornament. */
@media(min-width:601px){.invitation-shell .music-orb:not(.jubilee-music){right:max(28px,calc(50% - 187px))}}
@media(max-width:600px){.invitation-shell .music-orb:not(.jubilee-music){right:max(16px,calc(50% - 187px));bottom:max(12px,env(safe-area-inset-bottom));width:54px;height:54px}.invitation-shell .music-orb:not(.jubilee-music) .music-kazakh-ornament{width:54px;height:54px}.invitation-shell .music-orb:not(.jubilee-music) .music-control-icon{width:22px;height:22px}}

/* Keep the date below the names while the event caption stays quiet. */
.invite-mobile[class*='invite-template-'] .invite-cover-copy p.invite-cover-date{order:7;display:block;align-self:center;margin:16px auto 0!important;padding:6px 12px;border-radius:4px;background:rgba(255,251,245,.88);color:var(--iv-ink,#263b38)!important;font:700 13px/1.35 'Noto Sans',Manrope,Arial,sans-serif!important;letter-spacing:.14em!important;text-align:center;text-shadow:none!important}
.invite-mobile.invite-template-mahabbat-hikayasy .invite-cover-copy p.invite-cover-date{background:rgba(255,250,241,.93);color:#173a39!important}
/* A chapter may inherit pale text, but light countdown tiles always need dark numbers. */
.invite-mobile .invite-chapter .countdown-section .countdown-grid>div{background:var(--iv-paper)!important;color:var(--iv-ink)!important;border-color:color-mix(in srgb,var(--iv-ink) 35%,transparent)!important}
.invite-mobile .invite-chapter .countdown-section .countdown-grid>div :is(strong,span){color:var(--iv-ink)!important;opacity:1!important;text-shadow:none!important}
