/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme {

    :root,
    :host {
        --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
        --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        --spacing: .25rem;
        --default-font-family: var(--font-sans);
        --default-mono-font-family: var(--font-mono)
    }
}

@layer base {

    *,
    :after,
    :before,
    ::backdrop {
        box-sizing: border-box;
        border: 0 solid;
        margin: 0;
        padding: 0
    }

    ::file-selector-button {
        box-sizing: border-box;
        border: 0 solid;
        margin: 0;
        padding: 0
    }

    html,
    :host {
        -webkit-text-size-adjust: 100%;
        tab-size: 4;
        line-height: 1.5;
        font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
        font-feature-settings: var(--default-font-feature-settings, normal);
        font-variation-settings: var(--default-font-variation-settings, normal);
        -webkit-tap-highlight-color: transparent
    }

    hr {
        height: 0;
        color: inherit;
        border-top-width: 1px
    }

    abbr:where([title]) {
        -webkit-text-decoration: underline dotted;
        text-decoration: underline dotted
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-size: inherit;
        font-weight: inherit
    }

    a {
        color: inherit;
        -webkit-text-decoration: inherit;
        -webkit-text-decoration: inherit;
        -webkit-text-decoration: inherit;
        -webkit-text-decoration: inherit;
        text-decoration: inherit
    }

    b,
    strong {
        font-weight: bolder
    }

    code,
    kbd,
    samp,
    pre {
        font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
        font-feature-settings: var(--default-mono-font-feature-settings, normal);
        font-variation-settings: var(--default-mono-font-variation-settings, normal);
        font-size: 1em
    }

    small {
        font-size: 80%
    }

    sub,
    sup {
        vertical-align: baseline;
        font-size: 75%;
        line-height: 0;
        position: relative
    }

    sub {
        bottom: -.25em
    }

    sup {
        top: -.5em
    }

    table {
        text-indent: 0;
        border-color: inherit;
        border-collapse: collapse
    }

    :-moz-focusring {
        outline: auto
    }

    progress {
        vertical-align: baseline
    }

    summary {
        display: list-item
    }

    ol,
    ul,
    menu {
        list-style: none
    }

    img,
    svg,
    video,
    canvas,
    audio,
    iframe,
    embed,
    object {
        vertical-align: middle;
        display: block
    }

    img,
    video {
        max-width: 100%;
        height: auto
    }

    button,
    input,
    select,
    optgroup,
    textarea {
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        color: inherit;
        opacity: 1;
        background-color: #0000;
        border-radius: 0
    }

    ::file-selector-button {
        font: inherit;
        font-feature-settings: inherit;
        font-variation-settings: inherit;
        letter-spacing: inherit;
        color: inherit;
        opacity: 1;
        background-color: #0000;
        border-radius: 0
    }

    :where(select:is([multiple], [size])) optgroup {
        font-weight: bolder
    }

    :where(select:is([multiple], [size])) optgroup option {
        padding-inline-start: 20px
    }

    ::file-selector-button {
        margin-inline-end: 4px
    }

    ::placeholder {
        opacity: 1
    }

    @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
        ::placeholder {
            color: currentColor
        }

        @supports (color:color-mix(in lab, red, red)) {
            ::placeholder {
                color: color-mix(in oklab, currentcolor 50%, transparent)
            }
        }
    }

    textarea {
        resize: vertical
    }

    ::-webkit-search-decoration {
        -webkit-appearance: none
    }

    ::-webkit-date-and-time-value {
        min-height: 1lh;
        text-align: inherit
    }

    ::-webkit-datetime-edit {
        display: inline-flex
    }

    ::-webkit-datetime-edit-fields-wrapper {
        padding: 0
    }

    ::-webkit-datetime-edit {
        padding-block: 0
    }

    ::-webkit-datetime-edit-year-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-month-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-day-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-hour-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-minute-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-second-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-millisecond-field {
        padding-block: 0
    }

    ::-webkit-datetime-edit-meridiem-field {
        padding-block: 0
    }

    ::-webkit-calendar-picker-indicator {
        line-height: 1
    }

    :-moz-ui-invalid {
        box-shadow: none
    }

    button,
    input:where([type=button], [type=reset], [type=submit]) {
        appearance: button
    }

    ::file-selector-button {
        appearance: button
    }

    ::-webkit-inner-spin-button {
        height: auto
    }

    ::-webkit-outer-spin-button {
        height: auto
    }

    [hidden]:where(:not([hidden=until-found])) {
        display: none !important
    }
}

@layer components;

@layer utilities {
    .visible {
        visibility: visible
    }

    .relative {
        position: relative
    }

    .start {
        inset-inline-start: var(--spacing)
    }

    .container {
        width: 100%
    }

    @media (width>=40rem) {
        .container {
            max-width: 40rem
        }
    }

    @media (width>=48rem) {
        .container {
            max-width: 48rem
        }
    }

    @media (width>=64rem) {
        .container {
            max-width: 64rem
        }
    }

    @media (width>=80rem) {
        .container {
            max-width: 80rem
        }
    }

    @media (width>=96rem) {
        .container {
            max-width: 96rem
        }
    }

    .table {
        display: table
    }

    .resize {
        resize: both
    }
}

:root {
    --teal-950: #064f52;
    --teal-900: #075d60;
    --teal-800: #0c6c6e;
    --teal-700: #117a7b;
    --teal-100: #dfeeee;
    --coral: #ee7667;
    --coral-dark: #d85f52;
    --gold: #daa75b;
    --ivory: #fffaf4;
    --cream: #f9f3eb;
    --ink: #1d2c31;
    --muted: #687477;
    --line: #eadfd2;
    --white: #fff;
    --shadow: 0 18px 45px #31413e1a;
    --serif: Georgia, "Times New Roman", serif;
    --sans: "Trebuchet MS", "Segoe UI", Arial, sans-serif
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 92px
}

body {
    color: var(--ink);
    background: var(--ivory);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
    margin: 0
}

a {
    color: inherit;
    text-decoration: none
}

button,
input {
    font: inherit
}

button,
a {
    -webkit-tap-highlight-color: transparent
}

svg {
    flex: none
}

.container {
    width: min(1180px, 100% - 40px);
    margin-inline: auto
}

.narrow-container {
    width: min(1010px, 100% - 40px);
    
}
/* .narrow-container:has(.pricing-grid) {
    max-width: 650px;
} */

.section-pad {
    padding: 52px 0
}

.skip-link {
    z-index: 999;
    background: var(--white);
    color: var(--teal-950);
    border-radius: 8px;
    padding: 10px 16px;
    font-weight: 800;
    position: fixed;
    top: 10px;
    left: 10px;
    transform: translateY(-160%)
}

.skip-link:focus {
    transform: translateY(0)
}

.announcement {
    color: #fff;
    background: linear-gradient(90deg, #075456, #056d71, #075456);
    place-items: center;
    min-height: 36px;
    padding: 7px 16px;
    font-size: 12px;
    display: grid
}

.announcement p {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin: 0;
    display: flex
}

.announcement svg {
    color: var(--gold)
}

.announcement span {
    color: var(--teal-950);
    background: #fff;
    border-radius: 999px;
    margin-left: 10px;
    padding: 4px 10px;
    font-size: 10px
}

.site-header {
    z-index: 100;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    background: #fffaf4f0;
    border-bottom: 1px solid #dcd1c3bf;
    position: sticky;
    top: 0
}

.header-inner {
    justify-content: space-between;
    align-items: center;
    gap: 26px;
    height: 74px;
    display: flex
}

.brand {
    color: var(--teal-950);
    align-items: center;
    display: inline-flex;
    position: relative
}

.brand-word {
    font: 400 34px/1 var(--serif);
    letter-spacing: -.8px
}

.brand-flourish {
    color: var(--gold);
    font: 400 25px/1 var(--serif);
    position: absolute;
    top: -1px;
    right: -30px;
    transform: rotate(45deg)
}

.brand-light {
    color: #fff
}

.main-nav {
    align-items: center;
    gap: 35px;
    margin-left: auto;
    font-size: 13px;
    font-weight: 600;
    display: flex
}

.main-nav>a,
.nav-dropdown>button {
    padding: 12px 0;
    transition: color .25s;
    position: relative
}

.main-nav>a:after,
.nav-dropdown>button:after {
    content: "";
    background: var(--coral);
    height: 2px;
    transition: right .25s;
    position: absolute;
    bottom: 6px;
    left: 0;
    right: 100%
}

.main-nav>a:hover,
.nav-dropdown>button:hover {
    color: var(--teal-800)
}

.main-nav>a:hover:after,
.nav-dropdown>button:hover:after {
    right: 0
}

.nav-dropdown {
    position: relative
}

.nav-dropdown>button {
    appearance: none;
    color: inherit;
    cursor: pointer;
    font-weight: inherit;
    background: 0 0;
    border: 0;
    align-items: center;
    gap: 4px;
    display: flex
}

.dropdown-panel {
    visibility: hidden;
    opacity: 0;
    border: 1px solid var(--line);
    min-width: 190px;
    box-shadow: var(--shadow);
    background: #fff;
    border-radius: 14px;
    padding: 10px;
    transition: all .22s;
    position: absolute;
    top: 100%;
    left: -22px;
    transform: translateY(8px)
}

.dropdown-panel a {
    border-radius: 8px;
    padding: 10px 12px;
    display: block
}

.dropdown-panel a:hover {
    background: var(--cream);
    color: var(--teal-800)
}

.nav-dropdown:hover .dropdown-panel,
.nav-dropdown:focus-within .dropdown-panel {
    visibility: visible;
    opacity: 1;
    transform: translateY(0)
}

.header-actions {
    align-items: center;
    gap: 25px;
    font-size: 13px;
    font-weight: 700;
    display: flex
}

.menu-button {
    border: 1px solid var(--line);
    width: 42px;
    height: 42px;
    color: var(--teal-950);
    cursor: pointer;
    background: #fff;
    border-radius: 10px;
    place-items: center;
    display: none
}

.button {
    border: 1px solid var(--teal-900);
    color: #fff;
    background: linear-gradient(135deg, var(--teal-900), var(--teal-800));
    border-radius: 8px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 13px 25px;
    font-size: 13px;
    font-weight: 800;
    transition: transform .25s, box-shadow .25s, background .25s;
    display: inline-flex;
    box-shadow: 0 10px 20px #064f5221
}

.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 24px #064f5233
}

.button:focus-visible,
.favorite-button:focus-visible,
.faq-item button:focus-visible,
.menu-button:focus-visible {
    outline-offset: 3px;
    outline: 3px solid #ee766759
}

.button-small {
    border-radius: 10px;
    min-height: 42px;
    padding: 10px 20px;
    font-size: 12px
}

.button-outline {
    color: var(--teal-950);
    box-shadow: none;
    background: 0 0;
    border-color: #d9b997
}

.button-outline:hover {
    border-color: var(--teal-700);
    background: #fff
}

.button-compact {
    min-height: 38px;
    padding: 8px 22px;
    font-size: 12px
}

.hero {
    border-bottom: 1px solid var(--line);
    background: radial-gradient(circle at 85% 15%, #ee766714, #0000 25%), linear-gradient(115deg, #fffdf8, #fff9f2 60%, #f8f1e8);
    position: relative;
    overflow: hidden
}

.hero:before {
    content: "";
    border: 1px solid #daa75b40;
    border-radius: 50%;
    width: 500px;
    height: 500px;
    position: absolute;
    bottom: -360px;
    left: -240px
}

.hero-grid {
    grid-template-columns: .88fr 1.12fr;
    align-items: center;
    gap: 40px;
    min-height: 525px;
    padding: 50px 0 48px;
    display: grid
}

.eyebrow {
    color: var(--coral-dark);
    letter-spacing: .1em;
    text-transform: uppercase;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 12px;
    font-weight: 900;
    display: flex
}

.hero h1 {
    color: var(--teal-950);
    font: 400 clamp(48px, 5.1vw, 72px)/.99 var(--serif);
    letter-spacing: -2.2px;
    margin: 0
}

.hero h1 em {
    color: var(--coral);
    font-style: normal
}

.hero-text {
    color: #4e5c60;
    max-width: 545px;
    margin: 22px 0 0;
    font-size: 15px;
    line-height: 1.65
}

.hero-buttons {
    gap: 14px;
    margin-top: 28px;
    display: flex
}

.trust-points {
    color: #768082;
    align-items: center;
    gap: 27px;
    margin-top: 31px;
    /* font-size: 11px; */
    display: flex
}

.trust-points span {
    white-space: nowrap;
    align-items: center;
    gap: 7px;
    display: inline-flex
}

.trust-points svg {
    color: var(--coral)
}

.hero-visual {
    min-height: 420px;
    position: relative
}

.device {
    z-index: 2;
    position: absolute
}

.laptop {
    width: 470px;
    top: 35px;
    left: 45px
}

.device-screen {
    background: #0d1718;
    position: relative;
    overflow: hidden
}

.laptop .device-screen {
    border: 8px solid #13191a;
    border-bottom-width: 12px;
    border-radius: 16px 16px 5px 5px;
    box-shadow: 0 23px 40px #19262433
}

.laptop-base {
    background: linear-gradient(#e4e3df, #aeadab 65%, #e3e1dc);
    border-radius: 2px 2px 18px 18px;
    height: 15px;
    position: absolute;
    bottom: -12px;
    left: -35px;
    right: -35px;
    box-shadow: 0 8px 12px #00000024
}

.laptop-base:after {
    content: "";
    background: #9e9e9c;
    border-radius: 0 0 5px 5px;
    width: 90px;
    height: 4px;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%)
}

.phone {
    background: #101617;
    border-radius: 29px;
    width: 135px;
    padding: 5px;
    top: 165px;
    right: 10px;
    box-shadow: 0 25px 35px #212b2947
}

.phone .device-screen {
    border-radius: 22px
}

.notch {
    z-index: 4;
    background: #101617;
    border-radius: 20px;
    width: 40px;
    height: 10px;
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translate(-50%);
}

.rating-card {
    z-index: 5;
    text-align: center;
    width: 130px;
    box-shadow: var(--shadow);
    background: #fff;
    border-radius: 14px;
    padding: 14px 12px;
    position: absolute;
    top: 20px;
    right: -10px;
    transform: rotate(1.5deg)
}

.rating-card div {
    color: #ed9c3a;
    letter-spacing: 2px;
    font-size: 14px
}

.rating-card strong {
    color: var(--ink);
    font: 700 20px/1.2 var(--serif);
    margin-top: 4px;
    display: block
}

.rating-card small {
    color: #6f7779;
    font-size: 8px
}

.floating-heart {
    z-index: 5;
    width: 34px;
    height: 34px;
    color: var(--coral);
    background: #fff;
    border-radius: 50%;
    place-items: center;
    animation: 3.8s ease-in-out infinite float;
    display: grid;
    position: absolute;
    top: 132px;
    right: -10px;
    box-shadow: 0 9px 22px #0000001a
}

.sparkle-dot {
    z-index: 1;
    background: var(--gold);
    border-radius: 50%;
    width: 5px;
    height: 5px;
    position: absolute
}

.dot-a {
    top: 75px;
    left: 4px
}

.dot-b {
    top: 65px;
    right: 8px
}

.dot-c {
    bottom: 65px;
    left: 12px
}

.invitation-art {
    text-align: center;
    color: #5c5c55;
    min-height: 285px;
    font-family: var(--serif);
    background: linear-gradient(145deg, #fdfaf3, #f8f4e9);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 35px 24px;
    display: flex;
    position: relative;
    overflow: hidden;
}

.laptop .invitation-art {
    background-image: url("invite-art-bg.jpg");
    background-size: cover;
}

.phone .invitation-art {
    background-image: url("invite-art-bg-mobile.jpg");
    background-size: cover;
    background-position: top center;
}

.dark-laptop .invitation-art {
    background-image: url("invite-art-bg2.jpg");
    background-size: cover;
}

.experience-phone .invitation-art {
    background-image: url("invite-art-bg-mobile2.jpg");
    background-size: cover;
    background-position: top center;
}

.invitation-art:before,
.invitation-art:after {
    content: "";
    border: 1px solid #a3916747;
    border-radius: 50%;
    width: 150px;
    height: 150px;
    position: absolute
}

.invitation-art:before {
    top: -78px;
    left: -82px
}

.invitation-art:after {
    bottom: -85px;
    right: -92px
}

.invite-kicker {
    z-index: 2;
    font-family: var(--sans);
    letter-spacing: .13em;
    text-transform: uppercase;
    margin: 0 0 12px;
    font-size: 7px;
    position: relative
}

.invitation-art strong {
    z-index: 2;
    color: #59544b;
    font: italic 400 34px/1.1 var(--serif);
    position: relative
}

.invite-rule {
    background: var(--gold);
    width: 35px;
    height: 1px;
    margin: 11px 0 9px
}

.invite-date {
    letter-spacing: .15em;
    margin: 0;
    font-size: 9px
}

.invite-place {
    z-index: 2;
    margin: 11px 0 0;
    font-size: 7px;
    line-height: 1.5;
    position: relative
}

.invitation-art button {
    z-index: 2;
    color: #fff;
    background: var(--teal-900);
    border: 0;
    border-radius: 99px;
    margin-top: 13px;
    padding: 6px 19px;
    font-size: 7px;
    position: relative
}

.leaf,
.flower {
    z-index: 1;
    display: block;
    position: absolute
}

.leaf {
    opacity: .7;
    background: #799881;
    border-radius: 100% 0;
    width: 42px;
    height: 14px
}

.leaf-one {
    top: 62px;
    left: -2px;
    transform: rotate(34deg)
}

.leaf-two {
    bottom: 65px;
    right: -7px;
    transform: rotate(210deg)
}

.flower {
    border: 8px dotted #e8d4ae;
    border-radius: 50%;
    width: 31px;
    height: 31px
}

.flower-one {
    top: 11px;
    left: 23px
}

.flower-two {
    bottom: 17px;
    right: 18px
}

.invitation-art.compact {
    min-height: 245px;
    padding: 25px 14px
}

.compact .invite-kicker {
    font-size: 5px
}

.compact strong {
    font-size: 22px
}

.compact .invite-place {
    font-size: 5px
}

.invitation-midnight,
.invitation-corporate {
    color: #e4d3a3;
    background: radial-gradient(circle at 20% 15%, #155e60, #0000 30%), linear-gradient(145deg, #043c43, #062c35 62%, #041e27)
}

.invitation-midnight strong,
.invitation-corporate strong {
    color: #e7c273
}

.invitation-midnight:before,
.invitation-midnight:after,
.invitation-corporate:before,
.invitation-corporate:after {
    border-color: #daa75b80
}

.invitation-midnight .leaf,
.invitation-corporate .leaf {
    background: #b17f4c
}

.invitation-blush {
    background: linear-gradient(145deg, #fff5f3, #f4e2de)
}

.invitation-blush .leaf {
    background: #cfa49d
}

.invitation-blush .flower {
    border-color: #e9b9b0
}

.invitation-classic {
    background: linear-gradient(145deg, #fffdf8, #eee5d4)
}

.invitation-classic .flower {
    border-color: #d2b47a
}

.invitation-eucalyptus {
    background: linear-gradient(145deg, #f2f8f6, #e7efec)
}

.invitation-eucalyptus .leaf {
    background: #6b978d
}

.section-heading {
    text-align: center;
    justify-content: center;
    align-items: center;
    gap: 21px;
    margin-bottom: 26px;
    display: flex
}

.section-heading h2 {
    color: var(--teal-950);
    font: 400 clamp(27px, 3.1vw, 35px)/1.15 var(--serif);
    margin: 0
}

.section-heading>span {
    background: linear-gradient(90deg, transparent, var(--gold));
    width: 60px;
    height: 1px;
    position: relative
}

.section-heading>span:last-child {
    transform: rotate(180deg)
}

.section-heading>span:after {
    content: "";
    background: var(--gold);
    border-radius: 50%;
    width: 5px;
    height: 5px;
    position: absolute;
    top: -2px;
    right: 0
}

.occasion-section {
    background: #ffffff7a;
    padding-bottom: 34px
}

.occasion-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 18px;
    display: grid
}

.occasion-card {
    border: 1px solid var(--line);
    min-height: 128px;
    color: var(--teal-900);
    background: #fffc;
    border-radius: 12px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 17px;
    padding: 18px 10px;
    transition: transform .25s, box-shadow .25s, border-color .25s;
    display: flex;
    box-shadow: 0 8px 25px #2839340f
}

/* .occasion-card:nth-child(4),
.occasion-card:nth-child(5) {
    color: var(--coral)
} */

.occasion-card span {
    color: var(--ink);
    font-size: 13px;
    font-weight: 700
}

.occasion-card:hover {
    border-color: #117a7b59;
    transform: translateY(-6px);
    box-shadow: 0 18px 30px #2839341c
}

.templates-section {
    background: #ffffff7a;
    padding-top: 32px
}

.template-grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 17px;
    display: grid
}

.template-card {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 11px;
    transition: transform .25s, box-shadow .25s;
    overflow: hidden;
    box-shadow: 0 10px 25px #20322d12
}

.template-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 20px 34px #20322d21
}

.template-preview {
    position: relative;
    overflow: hidden
}

.template-preview .invitation-art {
    min-height: 255px;
    transition: transform .5s
}

.template-card:hover .invitation-art {
    transform: scale(1.035)
}

.favorite-button {
    z-index: 5;
    color: #FC2B55;
    cursor: pointer;
    background: #ffffffe6;
    border: 1px solid #1d2c3126;
    border-radius: 50%;
    place-items: center;
    width: 29px;
    height: 29px;
    padding: 0;
    transition: all .2s;
    display: grid;
    position: absolute;
    top: 8px;
    right: 8px
}

.favorite-button:hover,
.favorite-button.is-favorite {
    color: var(--coral);
    transform: scale(1.08)
}

.favorite-button.is-favorite svg {
    fill: currentColor
}

.template-info {
    padding: 11px 12px 13px
}

.template-info h3 {
    font: 400 14px/1.2 var(--serif);
    color: var(--ink);
    margin: 0 0 3px
}

.template-info p {
    color: #81898a;
    margin: 0;
    font-size: 12px
}

.center-action {
    justify-content: center;
    margin-top: 20px;
    display: flex
}

.benefits-section {
    padding-bottom: 25px
}

.benefit-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    display: grid
}

.benefit-card {
    text-align: center;
    border: 1px solid var(--line);
    background: #ffffff73;
    border-radius: 12px;
    min-height: 151px;
    padding: 19px 20px
}

.icon-circle {
    border: 2px solid var(--teal-700);
    width: 49px;
    height: 49px;
    color: var(--teal-800);
    border-radius: 50%;
    place-items: center;
    margin: 0 auto 7px;
    display: grid
}

.benefit-card h3 {
    color: var(--teal-900);
    font: 400 18px/1.2 var(--serif);
    margin: 0 0 4px
}

.benefit-card p {
    color: #697577;
    max-width: 190px;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.5
}

/* .steps-section {
    padding-top: 10px
} */

.steps-grid {
    grid-template-columns: repeat(5, 1fr);
    display: grid;
    position: relative
}

.steps-grid:before {
    content: "";
    background: var(--teal-700);
    height: 1px;
    position: absolute;
    top: 37px;
    left: 10%;
    right: 10%
}

.step {
    z-index: 1;
    text-align: center;
    padding: 0 12px;
    position: relative
}

.step-icon {
    width: 76px;
    height: 76px;
    color: var(--teal-800);
    background: var(--ivory);
    border: 1px solid #e5d8c8;
    border-radius: 50%;
    place-items: center;
    margin: 0 auto 10px;
    display: grid;
    position: relative
}

.step-icon small {
    color: var(--coral);
    font-size: 10px;
    position: absolute;
    top: 9px
}

.step-icon svg {
    margin-top: 14px
}

.step h3 {
    font: 700 13px/1.3 var(--serif);
    margin: 0 0 4px
}

.step p {
    color: #70797a;
    max-width: 165px;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.45
}

.experience-wrap {
    padding: 30px 0 40px
}

.experience {
    color: #fff;
    background: radial-gradient(circle at 80% -20%, #259191cc, #0000 45%), linear-gradient(120deg, #075356, #01676c 75%, #074a50);
    border-radius: 13px;
    grid-template-columns: .72fr 1.28fr;
    min-height: 340px;
    display: grid;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 50px #064f5229
}

.experience:after {
    content: "";
    border: 1px solid #daa75b59;
    border-radius: 50%;
    width: 420px;
    height: 420px;
    position: absolute;
    bottom: -260px;
    right: -270px
}

.experience-copy {
    z-index: 3;
    padding: 54px 20px 44px 70px;
    position: relative
}

.eyebrow-light {
    color: #f5c986
}

.experience-copy h2 {
    font: 400 34px/1.15 var(--serif);
    margin: 0 0 10px
}

.experience-copy>p:not(.eyebrow) {
    color: #ffffffd9;
    max-width: 360px;
    margin: 0;
    font-size: 14px;
    line-height: 1.6
}

.feature-list {
    grid-template-columns: repeat(2, 125px);
    gap: 12px 25px;
    margin-top: 25px;
    display: grid
}

.feature-list span {
    align-items: center;
    gap: 9px;
    font-size: 14px;
    display: flex
}

.feature-list svg {
    color: #f2c477;
    border: 1px solid #ffffff59;
    border-radius: 7px;
    width: 31px;
    height: 31px;
    padding: 6px
}

.experience-visual {
    min-height: 340px;
    position: relative
}

.experience-visual .laptop {
    width: 475px;
    top: 26px;
    left: 15px
}

.experience-visual .phone {
    width: 130px;
    top: 88px;
    right: 110px
}

.experience-visual .invitation-art {
    min-height: 255px
}

.experience-visual .compact {
    min-height: 245px
}

.dark-laptop .device-screen {
    border-color: #071416
}

.decor-vase {
    z-index: 2;
    width: 100px;
    height: 150px;
    position: absolute;
    bottom: 0;
    right: 6px
}

.decor-vase i {
    z-index: 2;
    background: linear-gradient(90deg, #eee8dc, #fff, #d8d1c6);
    border-radius: 45% 45% 18% 18%;
    width: 52px;
    height: 76px;
    position: absolute;
    bottom: 5px;
    left: 23px
}

.decor-vase span,
.decor-vase b {
    transform-origin: 0;
    background: #9ca788;
    width: 60px;
    height: 1px;
    position: absolute;
    top: 70px;
    left: 50px;
    transform: rotate(-55deg)
}

.decor-vase b {
    top: 67px;
    left: 47px;
    transform: rotate(-80deg)
}

.decor-vase span:before,
.decor-vase span:after,
.decor-vase b:before,
.decor-vase b:after {
    content: "";
    background: #9fae91;
    border-radius: 100% 0;
    width: 27px;
    height: 12px;
    position: absolute
}

.decor-vase span:before,
.decor-vase b:before {
    top: -7px;
    left: 14px
}

.decor-vase span:after,
.decor-vase b:after {
    top: 2px;
    left: 35px;
    transform: rotate(180deg)
}

/* .pricing-section {
    padding-top: 12px
} */

.section-intro {
    text-align: center;
    color: #758082;
    max-width: 620px;
    margin: -14px auto 28px;
    font-size: 12px;
    line-height: 1.6
}

.pricing-grid {
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    gap: 18px;
    display: grid
}

.pricing-card {
    border: 1px solid var(--line);
    background: #ffffffa6;
    border-radius: 13px;
    flex-direction: column;
    min-height: 370px;
    padding: 26px 31px 24px;
    display: flex;
    position: relative
}

.pricing-card.popular {
    border-color: var(--coral);
    box-shadow: 0 18px 40px #ee76671a
}

.popular-label {
    color: #fff;
    background: var(--coral);
    border-radius: 12px 12px 0 0;
    justify-content: center;
    align-items: center;
    gap: 6px;
    height: 27px;
    font-size: 12px;
    font-weight: 900;
    display: flex;
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px
}

.pricing-card h3 {
    text-align: center;
    color: var(--teal-900);
    font: 400 20px/1.2 var(--serif);
    margin: 0
}

.popular h3 {
    margin-top: 14px
}

.package-kicker {
    text-align: center;
    color: #6f797b;
    margin: 3px 0 8px;
    font-size: 12px
}

.price {
    text-align: center;
    color: var(--teal-900);
    font: 400 27px/1.15 var(--serif);
    display: block
}
.price > small {
    font-size: 16px;
}

.pricing-card>small {
    text-align: center;
    color: #6f797b;
    font-size: 12px;
    display: block
}

.pricing-card ul {
    gap: 8px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
    display: grid
}

.pricing-card li {
    color: #536164;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    display: flex
}

.pricing-card li svg {
    color: var(--teal-700)
}

.pricing-card .button {
    width: 100%;
    min-height: 38px;
    margin-top: auto;
    padding: 8px 15px
}

/* .testimonials-section {
    padding-top: 3px
} */

.testimonial-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    display: grid
}

.testimonial-card {
    border: 1px solid var(--line);
    background: #ffffff8c;
    border-radius: 11px;
    min-height: 165px;
    margin: 0;
    padding: 19px 22px
}

.stars {
    color: #ef8a37;
    letter-spacing: 2px;
    font-size: 13px
}

.testimonial-card>p {
    color: #596669;
    min-height: 52px;
    font: 400 12px/1.55 var(--serif);
    margin: 8px 0 15px
}

.testimonial-card footer {
    align-items: center;
    gap: 11px;
    display: flex
}

.avatar {
    color: #fff;
    background: linear-gradient(145deg, #b47768, #e0b09a);
    border-radius: 50%;
    place-items: center;
    width: 37px;
    height: 37px;
    font-size: 10px;
    font-weight: 900;
    display: grid
}

.avatar-1 {
    background: linear-gradient(145deg, #57433a, #a37061)
}

.avatar-2 {
    background: linear-gradient(145deg, #305267, #789aab)
}

.testimonial-card footer strong,
.testimonial-card footer small {
    display: block
}

.testimonial-card footer strong {
    font: 700 11px/1.3 var(--serif)
}

.testimonial-card footer small {
    color: #8a9293;
    margin-top: 2px;
    font-size: 12px
}

/* .faq-section {
    padding-top: 0;
    padding-bottom: 45px
} */

.faq-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px 70px;
    display: grid
}

.faq-item {
    border-bottom: 1px solid #dcd4ca
}

.faq-item button {
    color: #445155;
    cursor: pointer;
    text-align: left;
    background: 0 0;
    border: 0;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-height: 40px;
    padding: 8px 3px;
    font-size: 14px;
    font-weight: 700;
    display: flex
}

.faq-item button b {
    color: var(--teal-800);
    font-size: 20px;
    font-weight: 400
}

.faq-answer {
    grid-template-rows: 0fr;
    transition: grid-template-rows .28s;
    display: grid
}

.faq-answer p {
    color: #6b7779;
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    overflow: hidden
}

.faq-item.is-open .faq-answer {
    grid-template-rows: 1fr
}

.faq-item.is-open .faq-answer p {
    padding: 0 3px 13px
}

.final-cta {
    color: #fff;
    background: linear-gradient(100deg, #087175, #076267 50%, #04545a);
    position: relative;
    overflow: hidden;
    padding-block: 52px;
}

.cta-inner {
    text-align: center;
    grid-template-columns: 180px 1fr 180px;
    align-items: center;
    min-height: 135px;
    display: grid
}

.cta-inner h2 {
    font: 400 33px/1.15 var(--serif);
    margin: 0
}

.cta-inner p {
    color: #ffffffd1;
    margin: 4px 0 12px;
    font-size: 14px
}

.cta-buttons {
    justify-content: center;
    gap: 15px;
    display: flex
}

.cta-buttons .button {
    min-height: 37px;
    padding: 8px 25px;
    font-size: 14px
}

.button-coral {
    border-color: var(--coral);
    background: var(--coral)
}

.button-coral:hover {
    background: var(--coral-dark)
}

.button-light-outline {
    color: #fff;
    box-shadow: none;
    background: 0 0;
    border-color: #ffffffb3
}

.envelope-art {
    background: #fff7e9;
    border-radius: 4px;
    width: 110px;
    height: 67px;
    /* margin-left: 25px; */
    position: relative;
    transform: rotate(-10deg);
    box-shadow: 0 10px 20px #0000001f
}

.envelope-art:before,
.envelope-art:after {
    content: "";
    clip-path: polygon(0 0, 50% 65%, 100% 0);
    background: #efe4d4;
    position: absolute;
    inset: 0
}

.envelope-art:after {
    clip-path: polygon(0 100%, 45% 48%, 55% 48%, 100% 100%);
    background: #fff
}

.envelope-art span {
    z-index: 3;
    color: var(--coral);
    position: absolute;
    top: 33px;
    left: 49px
}

.branch-art {
    color: #FC2B55;
    font: 400 120px/1 var(--serif);
    opacity: .8;
    transform: rotate(25deg)
}

.site-footer {
    color: #ffffffd1;
    background: #045158;
    padding: 52px 0 18px
}

.footer-grid {
    grid-template-columns: 1.5fr repeat(4, 1fr);
    gap: 55px;
    display: grid
}

.site-footer .brand-word {
    font-size: 29px
}

.footer-brand p {
    margin: 12px 0 15px;
    font-size: 14px;
    line-height: 1.6
}

.socials {
    gap: 8px;
    display: flex
}

.socials a {
    width: 23px;
    height: 23px;
    color: var(--teal-950);
    background: #fff;
    border-radius: 50%;
    place-items: center;
    font-size: 10px;
    font-weight: 900;
    display: grid
}

.site-footer h3 {
    color: #f4c776;
    font: 400 13px/1 var(--serif);
    margin: 3px 0 14px
}

.site-footer>div>div:not(.footer-brand)>a {
    margin: 0 0 7px;
    font-size: 12px;
    transition: color .2s, transform .2s;
    display: block
}

.site-footer>div>div:not(.footer-brand)>a:hover {
    color: #fff;
    transform: translate(3px)
}

.contact-col p {
    margin: 0 0 9px;
    font-size: 12px
}

.copyright {
    text-align: center;
    border-top: 1px solid #ffffff1f;
    width: min(1010px, 100% - 40px);
    margin: 26px auto 0;
    padding-top: 15px;
    font-size: 12px
}

.reveal {
    opacity: 0;
    transition: opacity .65s ease var(--delay, 0s), transform .65s cubic-bezier(.2, .7, .2, 1) var(--delay, 0s);
    transform: translateY(22px)
}

.reveal.revealed {
    opacity: 1;
    transform: translateY(0)
}

@keyframes float {

    0%,
    to {
        transform: translateY(0)
    }

    50% {
        transform: translateY(-8px)
    }
}

@media (width<=1100px) {
    .main-nav {
        gap: 22px
    }

    .header-actions {
        gap: 14px
    }

    .hero-grid {
        grid-template-columns: .9fr 1.1fr
    }

    .hero-visual {
        transform-origin: 50%;
        transform: scale(.88)
    }

    .template-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .template-preview .invitation-art {
        min-height: 320px
    }

    .experience {
        grid-template-columns: .85fr 1.15fr
    }

    .experience-copy {
        padding-left: 45px
    }

    .experience-visual {
        transform-origin: 0;
        transform: scale(.88)
    }
}

@media (width<=850px) {

    .container,
    .narrow-container {
        width: min(100% - 30px, 680px)
    }

    .header-inner {
        height: 67px
    }

    .brand-word {
        font-size: 30px
    }

    .header-actions .button-small {
        display: none
    }

    .menu-button {
        display: grid
    }

    .main-nav {
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
        opacity: 0;
        visibility: hidden;
        background: #fff;
        border-radius: 16px;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 16px;
        transition: all .22s;
        display: flex;
        position: fixed;
        inset: 103px 15px auto;
        transform: translateY(-10px)
    }

    .main-nav.is-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0)
    }

    .main-nav>a,
    .nav-dropdown>button {
        width: 100%;
        padding: 12px;
        display: flex
    }

    .dropdown-panel {
        box-shadow: none;
        display: none;
        position: static;
        transform: none
    }

    .nav-dropdown:focus-within .dropdown-panel {
        display: block
    }

    .hero-grid {
        grid-template-columns: 1fr;
        gap: 12px;
        min-height: auto;
        padding-top: 55px
    }

    .hero-copy {
        text-align: center
    }

    .eyebrow,
    .hero-buttons,
    .trust-points {
        justify-content: center
    }

    .hero-text {
        margin-inline: auto
    }

    .hero-visual {
        transform-origin: top;
        min-height: 400px;
        transform: scale(.9)
    }

    .hero-visual .laptop {
        left: calc(50% - 260px)
    }

    .rating-card {
        right: calc(50% - 285px)
    }

    .occasion-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    .benefit-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .steps-grid {
        grid-template-columns: repeat(6, 1fr);
        gap: 26px 0
    }

    .steps-grid:before {
        display: none
    }

    .step {
        grid-column: span 2
    }

    .step:nth-child(4) {
        grid-column: 2/span 2
    }

    .step:nth-child(5) {
        grid-column: 4/span 2
    }

    .experience {
        grid-template-columns: 1fr
    }

    .experience-copy {
        padding: 45px 45px 10px
    }

    .experience-visual {
        transform-origin: top;
        min-height: 330px;
        transform: scale(.86)
    }

    .experience-visual .laptop {
        left: calc(50% - 270px)
    }

    .experience-visual .phone {
        right: calc(50% - 245px)
    }

    .pricing-grid,
    .testimonial-grid {
        grid-template-columns: 1fr
    }

    .pricing-card {
        min-height: auto
    }

    .testimonial-card {
        min-height: 0
    }

    .faq-grid {
        grid-template-columns: 1fr;
        gap: 8px
    }

    .cta-inner {
        grid-template-columns: 100px 1fr 80px
    }

    .envelope-art {
        margin-left: -20px;
        transform: rotate(-10deg)scale(.8)
    }

    .branch-art {
        font-size: 80px
    }

    .footer-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .footer-brand {
        grid-column: 1/-1;
        text-align: center;
    }
    .socials {
        justify-content: center;
    }
}

@media (width<=600px) {
    .announcement {
        min-height: 42px;
        font-size: 10px
    }

    .announcement span {
        margin-left: 2px
    }

    .main-nav {
        top: 85px
    }

    .section-pad {
        padding: 40px 0
    }

    .section-heading {
        gap: 12px
    }

    .section-heading>span {
        width: 32px
    }

    .hero-grid {
        padding: 42px 0 15px
    }

    .hero h1 {
        letter-spacing: -1.5px;
        font-size: clamp(43px, 13vw, 58px)
    }

    .hero-text {
        font-size: 13px
    }

    .hero-buttons {
        flex-direction: column;
        align-items: stretch
    }

    .hero-buttons .button {
        width: 100%
    }

    .trust-points {
        flex-wrap: wrap;
        gap: 14px
    }

    .hero-visual {
        min-height: 310px;
        transform: none
    }

    .hero-visual .laptop {
        width: 320px;
        top: 36px;
        left: calc(50% - 180px)
    }

    .phone {
        width: 100px;
        top: 128px;
        right: calc(50% - 180px);
        border-radius: 20px;
        padding: 4px;
    }
    .notch {
        width: 30px;
        height: 8px;
    }
    .phone .device-screen {
        border-radius: 15px;
    }

    .rating-card {
        width: 100px;
        padding: 8px;
        top: 2px;
        right: calc(50% - 185px)
    }

    .rating-card div {
        font-size: 10px
    }

    .rating-card strong {
        font-size: 16px
    }

    .floating-heart {
        top: 104px;
        right: calc(50% - 184px)
    }

    .invitation-art {
        min-height: 210px;
        padding: 24px 12px
    }

    .invitation-art strong {
        font-size: 25px
    }

    .compact {
        min-height: 175px !important
    }

    .compact strong {
        font-size: 17px
    }

    .invite-place {
        display: none
    }

    .occasion-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px
    }

    .occasion-card {
        min-height: 115px
    }

    .template-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 11px
    }

    .template-preview .invitation-art {
        min-height: 235px !important
    }

    .template-info h3 {
        font-size: 12px
    }

    .benefit-grid {
        grid-template-columns: 1fr
    }

    .benefit-card {
        min-height: 140px
    }

    .steps-grid {
        flex-direction: column;
        gap: 22px;
        display: flex
    }

    .step {
        text-align: left;
        grid-template-columns: 70px 1fr;
        align-items: center;
        column-gap: 15px;
        display: grid
    }

    .step-icon {
        grid-row: 1/span 2;
        width: 65px;
        height: 65px;
        margin: 0
    }

    .step h3,
    .step p {
        text-align: left;
        margin-left: 0
    }

    .step p {
        max-width: none
    }

    .experience-copy {
        padding: 38px 25px 0
    }

    .experience-copy h2 {
        font-size: 30px
    }

    .feature-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px
    }

    .experience-visual {
        min-height: 275px;
        transform: none
    }

    .experience-visual .laptop {
        width: 330px;
        top: 33px;
        left: calc(50% - 195px)
    }

    .experience-visual .phone {
        width: 95px;
        top: 85px;
        right: calc(50% - 165px)
    }

    .experience-visual .invitation-art {
        min-height: 190px
    }

    .decor-vase {
        display: none
    }

    .pricing-card {
        padding: 25px
    }

    .popular h3 {
        margin-top: 16px
    }

    .cta-inner {
        grid-template-columns: 1fr;
        min-height: 200px;
        padding: 30px 0
    }

    .cta-inner h2 {
        font-size: 29px
    }

    .envelope-art,
    .branch-art {
        display: none
    }

    .cta-buttons {
        flex-direction: column;
        padding-inline: 25px
    }

    .footer-grid {
        gap: 35px 24px
    }
}

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

    *,
    :before,
    :after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important
    }

    .reveal {
        opacity: 1;
        transform: none
    }
}