/* Collection styling is opt-in. Existing invitations keep their original surfaces. */
body[data-invitation-collection="garden"] {
    --collection-gold: #aa9270;
    --collection-ink: var(--module-contrast-color, #354336);
    font-family: 'Montserrat', sans-serif;
}
body[data-invitation-collection="garden"][data-collection-background="none"] {
    background-image: radial-gradient(ellipse at 0 30%, #ffffff60, transparent 65%),
        repeating-linear-gradient(110deg, #54453403 0 1px, transparent 1px 5px);
}
body[data-invitation-collection="garden"] .smart-module {
    position: relative;
    max-width: 1120px;
    margin-inline: auto;
}
body[data-invitation-collection="garden"] .smart-module > section {
    position: relative;
    padding-block: clamp(52px, 8vw, 100px);
}
body[data-invitation-collection="garden"] .smart-module[data-module-type="separator"] > section {
    padding-block: 0;
}
body[data-invitation-collection="garden"] .invitation-module-heading {
    font-family: var(--invitation-display-font, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(36px, 5vw, 58px);
    font-style: normal;
    font-weight: 400;
    letter-spacing: -.03em;
}
body[data-invitation-collection="garden"] .smart-module .invitation-mini-card {
    border-color: color-mix(in srgb, var(--primary-color) 20%, transparent);
    box-shadow: 0 12px 30px -26px #35433655;
}
body[data-invitation-collection="garden"] .smart-module p {
    font-size: clamp(14px, 1.6vw, 16px);
    line-height: 1.9;
}
body[data-invitation-collection="garden"] .intro-cover--editorial {
    min-height: 840px;
    min-height: max(740px, 100svh);
    padding: clamp(44px, 7vw, 80px) 32px;
}
body[data-invitation-collection="garden"] .intro-cover--editorial .intro-cover-frame {
    inset: 26px;
    border-color: var(--collection-gold);
    opacity: .65;
}
body[data-invitation-collection="garden"] .intro-cover--editorial .intro-cover-frame::before {
    inset: 9px;
    border-color: var(--collection-gold);
    border-radius: 0;
    opacity: .4;
}
body[data-invitation-collection="garden"] .intro-monogram {
    width: 76px;
    height: 76px;
    font-style: italic;
    font-size: 22px;
    border-color: var(--collection-gold);
    box-shadow: 0 0 0 6px var(--intro-paper), 0 0 0 7px #aa927050;
}
body[data-invitation-collection="garden"] .intro-cover--editorial h1 {
    max-width: 13ch;
    font-family: var(--invitation-display-font, 'Cormorant Garamond', Georgia, serif);
    font-size: clamp(60px, 9vw, 124px);
    line-height: 1;
    margin-block: 30px;
}
body[data-invitation-collection="garden"] .intro-cover--editorial .intro-rule {
    background: var(--collection-gold);
    width: 80px;
}
body[data-invitation-collection="garden"] .intro-cover--editorial .intro-date {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid #aa927040;
    display: inline-block;
}
body[data-invitation-collection="garden"] .intro-cover-top,
body[data-invitation-collection="garden"] .intro-cover-copy,
body[data-invitation-collection="garden"] .intro-scroll {
    position: relative;
    z-index: 1;
}
.collection-ornament {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    color: var(--module-icon-color, var(--primary-color));
}
.collection-ornament-leaf {
    position: absolute;
    display: block;
    width: clamp(120px, 22vw, 250px);
    opacity: .32;
    translate: 0 var(--collection-parallax-y, 0px);
}
.collection-botanical-art { display: block; width: 100%; height: auto; }
.collection-ornament-leaf--first { top: -20px; left: -55px; transform: rotate(22deg); }
.collection-ornament-leaf--last { bottom: -26px; right: -60px; transform: rotate(202deg); }
.collection-ornament--branch .collection-ornament-leaf--first {
    top: 50%; left: auto; right: -85px; transform: translateY(-50%) rotate(195deg); opacity: .22;
}
.intro-cover .collection-ornament { color: var(--intro-ink); }
.intro-cover .collection-ornament-leaf { width: clamp(175px, 30vw, 400px); opacity: .45; }
.intro-cover .collection-ornament-leaf--first { top: 14%; left: -40px; transform: rotate(185deg); }
.intro-cover .collection-ornament-leaf--last { bottom: 0; right: -40px; transform: rotate(5deg); }
.intro-cover--media .collection-ornament { color: #fff; }
.intro-cover--media .collection-ornament-leaf { opacity: .28; }

/* These compositions also work in free designs when explicitly selected. */
.smart-module[data-presentation="editorial"] .invitation-text-composition {
    max-width: 920px;
    border-block: 1px solid color-mix(in srgb, var(--primary-color) 22%, transparent);
    padding-block: clamp(32px, 6vw, 64px);
}
.smart-module[data-presentation="editorial"] .invitation-text-rule { height: 1px; width: 52px; }
.smart-module[data-presentation="editorial"] .invitation-text-body { max-width: 50ch; font-size: clamp(17px, 2vw, 20px); }
.smart-module[data-presentation="editorial"] .invitation-story-composition { max-width: 1000px; padding-inline: 0; }
.smart-module[data-presentation="editorial"] .invitation-story-line,
.smart-module[data-presentation="editorial"] .invitation-story-dot { display: none; }
.smart-module[data-module-type][data-presentation="editorial"] .invitation-story-copy {
    background: transparent;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
    padding: clamp(24px, 4vw, 48px);
}
.smart-module[data-presentation="editorial"] .invitation-story-copy::before,
.smart-module[data-presentation="editorial"] .invitation-story-copy::after { display: none; }
.smart-module[data-presentation="editorial"] .invitation-story-copy > span {
    font: 500 11px/1.6 'Montserrat', sans-serif;
    letter-spacing: .2em;
    margin-bottom: 14px;
}
.smart-module[data-presentation="editorial"] .invitation-story-copy h3 {
    font: 400 clamp(28px, 4vw, 42px)/1.15 var(--invitation-display-font, 'Cormorant Garamond', Georgia, serif);
    margin-bottom: 20px;
}
.smart-module[data-presentation="editorial"] .invitation-story-image .invitation-photo {
    max-width: 440px;
    border: 0;
    border-radius: 120px 120px 20px 20px;
    transform: none;
    box-shadow: none;
}
.smart-module[data-presentation="editorial"] .invitation-story-image img { aspect-ratio: 4 / 5; }
.smart-module[data-presentation="editorial"] .invitation-story-item:nth-child(even) .invitation-photo { border-radius: 20px; }
.smart-module[data-presentation="statement"] blockquote {
    font-size: clamp(36px, 6vw, 68px);
    font-family: var(--invitation-display-font, 'Cormorant Garamond', Georgia, serif) !important;
    font-weight: 400;
    line-height: 1.2;
    max-width: 24ch;
    padding-block: 20px;
}
.smart-module:is([data-presentation="mosaic"], [data-presentation="film"]) .invitation-gallery-composition {
    columns: auto;
    display: grid;
    gap: clamp(12px, 2vw, 24px);
}
.smart-module:is([data-presentation="mosaic"], [data-presentation="film"]) .invitation-photo {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 16px;
    box-shadow: none;
    background: transparent;
}
.smart-module:is([data-presentation="mosaic"], [data-presentation="film"]) .invitation-photo:focus-visible {
    outline: 2px solid var(--primary-color); outline-offset: 4px;
}
.smart-module[data-presentation="mosaic"] .invitation-gallery-composition { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.smart-module[data-presentation="mosaic"] .invitation-photo:is(:first-child, :nth-child(4n + 4)) { grid-column: span 2; }
.smart-module[data-presentation="mosaic"] .invitation-photo img { height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.smart-module[data-presentation="mosaic"] .invitation-photo:is(:first-child, :nth-child(4n + 4)) img { aspect-ratio: 8 / 5; }
.smart-module[data-presentation="mosaic"] [data-image-count="1"] { display: block; max-width: 800px; margin-inline: auto; }
.smart-module[data-presentation="film"] .invitation-gallery-composition {
    grid-auto-flow: column;
    grid-auto-columns: min(72vw, 360px);
    overflow-x: auto;
    padding: 8px 6px 24px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: var(--primary-color) transparent;
}
.smart-module[data-presentation="film"] .invitation-photo { scroll-snap-align: center; }
.smart-module[data-presentation="film"] .invitation-photo img { aspect-ratio: 4 / 5; object-fit: cover; }

@media (min-width: 900px) {
    .smart-module[data-presentation="editorial"] .invitation-text-composition:has(h2) {
        display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center;
    }
    .smart-module[data-presentation="editorial"] .invitation-text-composition:has(h2) .invitation-text-rule { display: none; }
    .smart-module[data-presentation="editorial"] .invitation-text-composition h2 { margin-bottom: 0; }
    .smart-module[data-presentation="editorial"] .invitation-text-composition[data-alignment="center"] :is(h2, p) { text-align: left; }
    .smart-module[data-presentation="editorial"] .invitation-story-item { flex-direction: row-reverse; gap: 48px; }
    .smart-module[data-presentation="editorial"] .invitation-story-item:nth-child(even) { flex-direction: row; }
    .smart-module[data-presentation="editorial"] .invitation-story-copy { text-align: left; }
}
@media (max-width: 640px) {
    body[data-invitation-collection="garden"] .intro-cover--editorial { min-height: max(700px, 100svh); padding: 40px 26px; }
    body[data-invitation-collection="garden"] .intro-cover--editorial .intro-cover-frame { inset: 14px; }
    .intro-cover .collection-ornament-leaf { opacity: .3; }
    .intro-cover .collection-ornament-leaf--first { left: -80px; top: 12%; }
    .intro-cover .collection-ornament-leaf--last { right: -70px; }
    .collection-ornament--branch .collection-ornament-leaf--first { right: -82px; opacity: .18; }
    .smart-module[data-presentation="editorial"] .invitation-story-item { gap: 8px; }
    .smart-module[data-presentation="editorial"] .invitation-story-image { order: -1; }
    .smart-module[data-presentation="editorial"] .invitation-story-copy { padding: 24px 4px; text-align: center; }
    .smart-module[data-presentation="mosaic"] .invitation-gallery-composition { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .smart-module[data-presentation="mosaic"] .invitation-photo:is(:first-child, :nth-child(4n + 4)) img { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
    .collection-ornament-leaf { translate: none !important; }
}
