/*
 * PictureYour.Events Guestbook
 * Public-facing design
 */


/* ---------------------------------------------------------
   Page
   --------------------------------------------------------- */

body.pye-guestbook-page {
    background: #f6f3ef;
    color: #262626;
}

.pye-guestbook-page header.wp-block-template-part,
.pye-guestbook-page footer.wp-block-template-part,
.pye-guestbook-page .wp-site-blocks > header,
.pye-guestbook-page .wp-site-blocks > footer {
    display: none !important;
}

.pye-guestbook-page main {
    margin: 0 !important;
    padding: 0 !important;
}

.pye-guestbook-page .entry-content,
.pye-guestbook-page .wp-block-post-content {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hide the normal WordPress page title. */
.pye-guestbook-page .wp-block-post-title,
.pye-guestbook-page .entry-title {
    display: none !important;
}


/* ---------------------------------------------------------
   Main Guestbook
   --------------------------------------------------------- */

.pye-gb-shell {
    width: min(800px, calc(100% - 28px));
    margin: 0 auto;
    padding: 48px 0 38px;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-hero {
    text-align: center;
    padding: 20px 12px 36px;
}

.pye-gb-heart {
    font-size: 48px;
    line-height: 1;
    margin-bottom: 14px;
}

.pye-gb-brand {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.20em;
    margin-bottom: 18px;
}

.pye-gb-hero h1 {
    font-size: clamp(34px, 7vw, 56px);
    line-height: 1.08;
    margin: 0 0 16px;
    font-weight: 500;
}

.pye-gb-subtitle {
    max-width: 570px;
    margin: 0 auto;
    color: #666;
    font-size: 18px;
    line-height: 1.6;
}


/* ---------------------------------------------------------
   Main White Container
   --------------------------------------------------------- */

.pye-gb-card {
    background: #fff;
    border: 1px solid #e7e1da;
    border-radius: 22px;
    padding: clamp(22px, 5vw, 42px);
    box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.055);
}

.pye-gb-card .gwolle-gb {
    width: 100%;
}


/* ---------------------------------------------------------
   Entry Form
   --------------------------------------------------------- */

.pye-gb-card .gwolle-gb form {
    display: block;
}

.pye-gb-card .gwolle-gb label {
    display: block;
    margin-bottom: 7px;
    font-size: 15px;
    font-weight: 600;
}

.pye-gb-card .gwolle-gb input[type="text"],
.pye-gb-card .gwolle-gb input[type="email"],
.pye-gb-card .gwolle-gb input[type="url"],
.pye-gb-card .gwolle-gb textarea,
.pye-gb-card .gwolle-gb select {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 14px;
    border: 1px solid #d7d0c8;
    border-radius: 11px;
    background: #fff;
    color: #262626;
    font-size: 16px;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.pye-gb-card .gwolle-gb textarea {
    min-height: 150px;
    resize: vertical;
}

.pye-gb-card .gwolle-gb input:focus,
.pye-gb-card .gwolle-gb textarea:focus,
.pye-gb-card .gwolle-gb select:focus {
    outline: none;
    border-color: #6d675f;
    box-shadow: 0 0 0 3px rgba(38, 38, 38, 0.08);
}


/* ---------------------------------------------------------
   Buttons
   --------------------------------------------------------- */

.pye-gb-card .gwolle-gb input[type="submit"],
.pye-gb-card .gwolle-gb input[type="button"],
.pye-gb-card .gwolle-gb button {
    border: 0;
    border-radius: 999px;
    padding: 13px 25px;
    background: #262626;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition:
        transform 0.12s ease,
        opacity 0.12s ease;
}

.pye-gb-card .gwolle-gb input[type="submit"]:hover,
.pye-gb-card .gwolle-gb input[type="button"]:hover,
.pye-gb-card .gwolle-gb button:hover {
    opacity: 0.9;
}

.pye-gb-card .gwolle-gb input[type="submit"]:active,
.pye-gb-card .gwolle-gb input[type="button"]:active,
.pye-gb-card .gwolle-gb button:active {
    transform: translateY(1px);
}


/* ---------------------------------------------------------
   Published Guestbook Entries
   --------------------------------------------------------- */

/*
 * Gwolle versions use slightly different entry class names.
 * These selectors intentionally cover both.
 */
.pye-gb-card .gwolle-gb .entry,
.pye-gb-card .gwolle-gb .gb-entry {
    position: relative;
    overflow: hidden;
    box-sizing: border-box;

    margin: 14px 0;
    padding: 24px;

    background: #fcfaf7;
    border: 1px solid #e8e1da;
    border-radius: 18px;

    box-shadow:
        0 4px 16px rgba(0, 0, 0, 0.035);
}


/*
 * Give each published message a very subtle accent.
 */
.pye-gb-card .gwolle-gb .entry::before,
.pye-gb-card .gwolle-gb .gb-entry::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: #d8cfc4;
}


/* ---------------------------------------------------------
   Guest Name / Author Information
   --------------------------------------------------------- */

.pye-gb-card .gwolle-gb .gb-entry-author,
.pye-gb-card .gwolle-gb .gb-author-name,
.pye-gb-card .gwolle-gb .author-name {
    color: #262626;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.3;
}


/*
 * Secondary author/date information should stay quiet.
 */
.pye-gb-card .gwolle-gb .gb-entry-author-info,
.pye-gb-card .gwolle-gb .gb-entry-meta,
.pye-gb-card .gwolle-gb .gb-date,
.pye-gb-card .gwolle-gb .entry-date {
    color: #8a857f;
    font-size: 12px;
}


/* ---------------------------------------------------------
   Message
   --------------------------------------------------------- */

.pye-gb-card .gwolle-gb .gb-entry-content {
    margin-top: 11px;
    color: #35312d;
    font-size: 16px;
    line-height: 1.65;
}

.pye-gb-card .gwolle-gb .gb-entry-content p:first-child {
    margin-top: 0;
}

.pye-gb-card .gwolle-gb .gb-entry-content p:last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------
   Guest Photo
   --------------------------------------------------------- */

.pye-gb-entry-photo-wrap {
    margin-top: 18px;
}

.pye-gb-entry-photo {
    display: block;

    width: 100%;
    max-width: 620px;
    max-height: 620px;

    margin: 0 auto;

    object-fit: contain;

    border-radius: 14px;

    box-shadow:
        0 5px 18px rgba(0, 0, 0, 0.08);
}


/* ---------------------------------------------------------
   Confirmation / System Messages
   --------------------------------------------------------- */

.pye-gb-card .gb-entry-saved {
    padding: 13px 16px;
    margin: 0 0 20px;

    background: #f3f7f1;
    border: 1px solid #d6e4d1;
    border-radius: 10px;

    font-weight: 600;
    line-height: 1.45;
}


/* ---------------------------------------------------------
   Remove Gwolle UI We Don't Use
   --------------------------------------------------------- */

.pye-guestbook-page .gwolle_gb_preview,
.pye-guestbook-page .gwolle-gb-preview {
    display: none !important;
}


/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */

.pye-gb-footer {
    padding: 27px 10px 0;
    text-align: center;
    color: #888;
    font-size: 12px;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 600px) {

    .pye-gb-shell {
        width: min(100% - 18px, 800px);
        padding-top: 18px;
    }

    .pye-gb-hero {
        padding-bottom: 27px;
    }

    .pye-gb-heart {
        font-size: 42px;
    }

    .pye-gb-subtitle {
        font-size: 16px;
    }

    .pye-gb-card {
        padding: 18px;
        border-radius: 16px;
    }

    .pye-gb-card .gwolle-gb .entry,
    .pye-gb-card .gwolle-gb .gb-entry {
        margin: 15px 0;
        padding: 18px 17px 18px 20px;
        border-radius: 14px;
    }

    .pye-gb-card .gwolle-gb .gb-entry-content {
        font-size: 15px;
        line-height: 1.6;
    }

    .pye-gb-entry-photo-wrap {
        margin-top: 14px;
    }

    .pye-gb-entry-photo {
        max-height: 480px;
        border-radius: 11px;
    }

    .pye-gb-card .gwolle-gb input[type="submit"],
    .pye-gb-card .gwolle-gb button {
        width: 100%;
    }
}


/* =========================================================
   View Guestbook - Uniform Photo Presentation
   ========================================================= */

.pye-gb-view-shell .pye-gb-entry-photo-wrap {
    width: 100%;
    max-width: 520px;
    aspect-ratio: 4 / 3;
    margin: 18px auto 4px;
    overflow: hidden;
    border-radius: 16px;
}

.pye-gb-view-shell .pye-gb-entry-photo {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

@media (max-width: 600px) {
    .pye-gb-view-shell .pye-gb-entry-photo-wrap {
        max-width: 100%;
        border-radius: 12px;
    }
}


/* =========================================================
   PYE Guestbook - Classic Read-Only View
   ========================================================= */

.pye-gb-view-shell {
    width: min(92vw, 860px);
    margin: 0 auto;
}

.pye-gb-view-shell .pye-gb-view-hero {
    text-align: center;
    margin-bottom: 42px;
}

.pye-gb-view-shell .pye-gb-eyebrow {
    margin-bottom: 8px;
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.65;
}

.pye-gb-view-shell .pye-gb-title {
    max-width: 760px;
    margin: 0 auto 12px;
    font-size: clamp(34px, 5vw, 56px);
    line-height: 1.05;
}

.pye-gb-view-shell .pye-gb-subtitle {
    max-width: 620px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.6;
    opacity: 0.7;
}


/* Give the actual entries room to breathe. */
.pye-gb-view-shell .gwolle-gb {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
}


/* Each approved entry becomes its own guestbook page/card. */
.pye-gb-view-shell .gb-entry {
    box-sizing: border-box;
    margin: 0 0 26px !important;
    padding: 30px 32px !important;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,0.96),
            rgba(253,250,244,0.96)
        );

    border: 1px solid rgba(70, 55, 38, 0.10) !important;
    border-radius: 18px;

    box-shadow:
        0 10px 35px rgba(44, 35, 24, 0.06);

    overflow: hidden;
}


/* Remove the old comment-feed separator look. */
.pye-gb-view-shell .gb-entry + .gb-entry {
    border-top: 1px solid rgba(70, 55, 38, 0.10) !important;
}


/* Guest name - slightly handwritten feeling without sacrificing readability. */
.pye-gb-view-shell .gb-author-name,
.pye-gb-view-shell .gb-author-name a {
    font-family:
        "Segoe Print",
        "Bradley Hand",
        "Comic Sans MS",
        cursive;

    font-size: 25px !important;
    font-weight: 500 !important;
    line-height: 1.2;
    text-decoration: none !important;
}


/* Date becomes supporting information instead of competing with the message. */
.pye-gb-view-shell .gb-entry-date,
.pye-gb-view-shell .gb-date,
.pye-gb-view-shell time {
    font-size: 13px !important;
    opacity: 0.55;
}


/* Message body */
.pye-gb-view-shell .gb-entry-content {
    margin-top: 18px !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
}


/* Keep photos elegant and uniform. */
.pye-gb-view-shell .pye-gb-entry-photo-wrap {
    width: 100%;
    max-width: 640px;
    aspect-ratio: 4 / 3;
    margin: 24px auto 2px;
    overflow: hidden;
    border-radius: 14px;

    box-shadow:
        0 8px 24px rgba(38, 30, 20, 0.10);
}

.pye-gb-view-shell .pye-gb-entry-photo {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center;
}


/* Public viewers do not need Gwolle's small action controls. */
.pye-gb-view-shell .gb-entry-admin,
.pye-gb-view-shell .gb-admin,
.pye-gb-view-shell .gb-entry .gb-edit,
.pye-gb-view-shell .gb-entry .gb-delete {
    display: none !important;
}


/* Mobile */
@media (max-width: 640px) {

    .pye-gb-view-shell {
        width: min(94vw, 860px);
    }

    .pye-gb-view-shell .gb-entry {
        padding: 22px 20px !important;
        border-radius: 14px;
    }

    .pye-gb-view-shell .gb-author-name,
    .pye-gb-view-shell .gb-author-name a {
        font-size: 22px !important;
    }

    .pye-gb-view-shell .gb-entry-content {
        font-size: 16px !important;
    }

    .pye-gb-view-shell .pye-gb-entry-photo-wrap {
        border-radius: 11px;
    }
}


/* =========================================================
   Classic View - Layout Corrections
   ========================================================= */

.pye-gb-view-shell {
    padding-top: 48px;
}

.pye-gb-view-shell .gwolle-gb,
.pye-gb-view-shell .gwolle-gb-read,
.pye-gb-view-shell .gwolle-gb-entries-list {
    width: 100% !important;
    max-width: 760px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.pye-gb-view-shell .gb-entry,
.pye-gb-view-shell .gb-entry article {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    box-sizing: border-box;
}

/* Remove Gwolle permalink/plugin controls from public display. */
.pye-gb-view-shell .gb-metabox-handle,
.pye-gb-view-shell .gb-metabox {
    display: none !important;
}


/* =========================================================
   Classic View - Polish Pass 1
   ========================================================= */

.pye-gb-view-shell {
    padding-top: 78px !important;
    padding-bottom: 60px;
}

.pye-gb-view-shell .pye-gb-view-hero {
    margin-bottom: 28px !important;
}

.pye-gb-view-shell .pye-gb-eyebrow {
    display: block;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    opacity: 0.55;
}

.pye-gb-view-shell .pye-gb-title {
    margin-bottom: 10px;
}

.pye-gb-view-shell .pye-gb-subtitle {
    margin-bottom: 0;
}

/* Hide Gwolle's plugin-style entry count. */
.pye-gb-view-shell .gwolle-gb-total {
    display: none !important;
}

/* More intentional spacing between cards. */
.pye-gb-view-shell .gb-entry {
    margin-bottom: 24px !important;
}

/* Quiet supporting date/time information. */
.pye-gb-view-shell .gb-datetime,
.pye-gb-view-shell .gb-date,
.pye-gb-view-shell .gb-time {
    color: #918a82 !important;
    font-size: 12px !important;
}

/* Let the actual message carry more visual weight. */
.pye-gb-view-shell .gb-entry-content {
    margin-top: 16px !important;
    color: #342f2a;
    font-size: 17px !important;
    line-height: 1.7 !important;
}


/* =========================================================
   Classic View - PictureYour.Events Branding
   ========================================================= */

.pye-gb-view-shell {
    color: #444;
}

.pye-gb-view-shell .pye-gb-eyebrow {
    color: #1677b8;
    opacity: 1;
}

.pye-gb-view-shell .pye-gb-title {
    color: #444;
    font-weight: 600;
}

.pye-gb-view-shell .pye-gb-subtitle {
    color: #777;
}


/* Branded guestbook cards */
.pye-gb-view-shell .gb-entry {
    background: #fff !important;
    border: 1px solid #d9d9d9 !important;

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.055);
}


/* Guest name */
.pye-gb-view-shell .gb-author-name,
.pye-gb-view-shell .gb-author-name a,
.pye-gb-view-shell .gb-author-name i {
    color: #1677b8 !important;

    font-family:
        "URW Chancery L",
        "Apple Chancery",
        "Segoe Print",
        cursive;

    font-size: 27px !important;
    font-weight: 500 !important;
    line-height: 1.15 !important;
}


/* Supporting metadata */
.pye-gb-view-shell .gb-datetime,
.pye-gb-view-shell .gb-date,
.pye-gb-view-shell .gb-time {
    color: #888 !important;
}


/* Main message */
.pye-gb-view-shell .gb-entry-content {
    color: #444 !important;
}


/* Photo treatment */
.pye-gb-view-shell .pye-gb-entry-photo-wrap {
    border: 1px solid #ddd;

    box-shadow:
        0 8px 22px rgba(0, 0, 0, 0.07);
}


/* Small blue accent on each guestbook card */
.pye-gb-view-shell .gb-entry::before {
    content: "";
    position: absolute;
    top: 28px;
    bottom: 28px;
    left: 0;
    width: 4px;
    border-radius: 0 4px 4px 0;
    background: #1677b8;
    opacity: 0.75;
}


/* =========================================================
   PYE Guestbook - Elegant View
   ========================================================= */

.pye-gb-style-elegant {
    width: min(94vw, 920px);
    padding: 72px 54px 70px !important;
    box-sizing: border-box;

    color: #47413a;

    background:
        radial-gradient(
            circle at 12% 5%,
            rgba(22, 119, 184, 0.035),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #faf7f1 0%,
            #f5f0e7 100%
        );

    border: 1px solid rgba(117, 101, 79, 0.10);
    border-radius: 28px;

    box-shadow:
        0 20px 60px rgba(65, 51, 34, 0.07);
}


/* ---------------------------------------------------------
   Elegant Header
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-view-hero {
    position: relative;
    margin-bottom: 42px !important;
    padding: 0 20px 34px;
}

.pye-gb-style-elegant .pye-gb-eyebrow {
    color: #1677b8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.pye-gb-style-elegant .pye-gb-eyebrow::after {
    content: "♡";
    display: block;

    margin: 12px auto 0;

    color: #1677b8;
    font-size: 17px;
    letter-spacing: 0;
}

.pye-gb-style-elegant .pye-gb-title {
    margin-top: 8px;
    margin-bottom: 12px;

    color: #403a34;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: clamp(38px, 5vw, 58px);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

.pye-gb-style-elegant .pye-gb-subtitle {
    max-width: 600px;

    color: #7d746b;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 16px;
    font-style: italic;
    line-height: 1.65;
}


/* Small decorative divider */
.pye-gb-style-elegant .pye-gb-view-hero::after {
    content: "";
    display: block;

    width: 82px;
    height: 1px;

    margin: 26px auto 0;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(22,119,184,0.45),
            transparent
        );
}


/* ---------------------------------------------------------
   Elegant Guestbook Pages
   --------------------------------------------------------- */

.pye-gb-style-elegant .gwolle-gb,
.pye-gb-style-elegant .gwolle-gb-read,
.pye-gb-style-elegant .gwolle-gb-entries-list {
    max-width: 780px !important;
}


.pye-gb-style-elegant .gb-entry {
    position: relative;

    margin: 0 0 32px !important;
    padding: 36px 38px 36px 52px !important;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #fffefa 0%,
            #fcf8ef 100%
        ) !important;

    border: 1px solid #e4dbcd !important;
    border-radius: 19px;

    box-shadow:
        0 12px 28px rgba(66, 51, 31, 0.075),
        0 2px 5px rgba(66, 51, 31, 0.035);
}


/* Replace the old blue stripe with a subtle book-spine line. */
.pye-gb-style-elegant .gb-entry::before {
    content: "";

    position: absolute;
    top: 22px;
    bottom: 22px;
    left: 19px;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            transparent,
            rgba(170, 145, 110, 0.42) 15%,
            rgba(170, 145, 110, 0.42) 85%,
            transparent
        );

    opacity: 1;
}


/* Small folded-page detail */
.pye-gb-style-elegant .gb-entry::after {
    content: "";

    position: absolute;
    top: 0;
    right: 0;

    width: 38px;
    height: 38px;

    background:
        linear-gradient(
            225deg,
            #f5eee1 0%,
            #f5eee1 48%,
            transparent 49%
        );

    border-top-right-radius: 18px;

    opacity: 0.75;
}


.pye-gb-style-elegant .gb-entry article {
    position: relative;
}


/* Tiny keepsake heart beside each entry */
.pye-gb-style-elegant .gb-entry article::before {
    content: "♡";

    position: absolute;
    top: 2px;
    left: -38px;

    color: #b7a58c;

    font-size: 17px;
}


/* ---------------------------------------------------------
   Remove the forum/comment look
   --------------------------------------------------------- */

.pye-gb-style-elegant .gb-author-avatar {
    display: none !important;
}


.pye-gb-style-elegant .gb-author-name,
.pye-gb-style-elegant .gb-author-name a,
.pye-gb-style-elegant .gb-author-name i {
    display: inline-block;

    padding-left: 0 !important;

    color: #765b46 !important;

    font-family:
        "URW Chancery L",
        "Apple Chancery",
        "Segoe Script",
        "Brush Script MT",
        cursive;

    font-size: 30px !important;
    font-weight: 500 !important;
    font-style: normal !important;
    line-height: 1.15 !important;

    text-decoration: none !important;
}


.pye-gb-style-elegant .gb-datetime {
    display: block;

    margin-top: 7px;

    color: #9a9085 !important;

    font-size: 10px !important;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.4;

    text-transform: uppercase;
}


.pye-gb-style-elegant .gb-date,
.pye-gb-style-elegant .gb-time {
    color: inherit !important;
    font-size: inherit !important;
}


/* ---------------------------------------------------------
   Message
   --------------------------------------------------------- */

.pye-gb-style-elegant .gb-entry-content {
    margin-top: 22px !important;
    padding-left: 0 !important;

    color: #4b443d !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 17px !important;
    line-height: 1.75 !important;
}


/* ---------------------------------------------------------
   Photos
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-entry-photo-wrap {
    max-width: 650px;

    margin-top: 28px;

    padding: 7px;

    background: #fff;

    border: 1px solid #ded5c8;
    border-radius: 14px;

    box-shadow:
        0 9px 24px rgba(57, 43, 25, 0.11);
}


.pye-gb-style-elegant .pye-gb-entry-photo {
    border-radius: 9px !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 640px) {

    .pye-gb-style-elegant {
        width: calc(100% - 16px);

        padding:
            44px
            12px
            42px !important;

        border-radius: 18px;
    }

    .pye-gb-style-elegant .pye-gb-view-hero {
        padding-left: 8px;
        padding-right: 8px;
    }

    .pye-gb-style-elegant .gb-entry {
        padding:
            26px
            20px
            26px
            38px !important;

        border-radius: 15px;
    }

    .pye-gb-style-elegant .gb-entry::before {
        left: 14px;
    }

    .pye-gb-style-elegant .gb-entry article::before {
        left: -27px;
    }

    .pye-gb-style-elegant .gb-author-name,
    .pye-gb-style-elegant .gb-author-name a,
    .pye-gb-style-elegant .gb-author-name i {
        font-size: 26px !important;
    }

    .pye-gb-style-elegant .gb-entry-content {
        font-size: 16px !important;
    }
}


/* =========================================================
   Elegant View - Brand Header + Keepsake Footer
   ========================================================= */


/* These elements belong to Elegant only. */
.pye-gb-view-brand,
.pye-gb-view-footer {
    display: none;
}


/* ---------------------------------------------------------
   PictureYour.Events Brand
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-view-brand {
    display: block;
    margin: 0 auto 34px;
    text-align: center;
}

.pye-gb-style-elegant .pye-gb-brand-mark {
    width: 38px;
    height: 38px;

    margin: 0 auto 8px;

    display: flex;
    align-items: center;
    justify-content: center;

    box-sizing: border-box;

    border: 2px solid #1677b8;
    border-radius: 10px;

    color: #1677b8;

    font-size: 24px;
    line-height: 1;
}

.pye-gb-style-elegant .pye-gb-brand-name {
    color: #1677b8;
    line-height: 1;
    white-space: nowrap;
}

.pye-gb-style-elegant .pye-gb-brand-picture {
    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 20px;
    font-weight: 500;
}

.pye-gb-style-elegant .pye-gb-brand-events {
    font-family:
        "URW Chancery L",
        "Apple Chancery",
        "Segoe Script",
        "Brush Script MT",
        cursive;

    font-size: 23px;
    font-style: italic;
}


/* ---------------------------------------------------------
   VIEW THE GUESTBOOK Divider
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-eyebrow {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 15px;

    margin-bottom: 17px;

    color: #837362;

    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.22em;
}

.pye-gb-style-elegant .pye-gb-eyebrow::before,
.pye-gb-style-elegant .pye-gb-eyebrow::after {
    content: "";

    display: block;

    width: 58px;
    height: 1px;

    margin: 0;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(151, 129, 100, 0.55)
        );
}

.pye-gb-style-elegant .pye-gb-eyebrow::after {
    transform: scaleX(-1);
}


/* ---------------------------------------------------------
   Keepsake Footer
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-view-footer {
    display: block;

    padding: 12px 20px 4px;
    margin-top: 38px;

    text-align: center;
}

.pye-gb-style-elegant .pye-gb-view-footer-heart {
    margin-bottom: 8px;

    color: #1677b8;

    font-size: 17px;
    line-height: 1;
}

.pye-gb-style-elegant .pye-gb-view-footer-text {
    color: #857869;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 15px;
    font-style: italic;
    line-height: 1.5;
}

.pye-gb-style-elegant .pye-gb-view-footer-flourish {
    width: 82px;
    height: 1px;

    margin: 14px auto 0;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(151,129,100,0.55),
            transparent
        );
}


/* ---------------------------------------------------------
   Elegant Header Spacing
   --------------------------------------------------------- */

.pye-gb-style-elegant .pye-gb-view-hero {
    padding-top: 0;
    margin-top: 0;
}

.pye-gb-style-elegant .pye-gb-title {
    margin-top: 0;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 640px) {

    .pye-gb-style-elegant .pye-gb-view-brand {
        margin-bottom: 28px;
    }

    .pye-gb-style-elegant .pye-gb-brand-mark {
        width: 34px;
        height: 34px;
        font-size: 21px;
    }

    .pye-gb-style-elegant .pye-gb-brand-picture {
        font-size: 18px;
    }

    .pye-gb-style-elegant .pye-gb-brand-events {
        font-size: 21px;
    }

    .pye-gb-style-elegant .pye-gb-eyebrow {
        gap: 10px;
        font-size: 9px;
        letter-spacing: 0.16em;
    }

    .pye-gb-style-elegant .pye-gb-eyebrow::before,
    .pye-gb-style-elegant .pye-gb-eyebrow::after {
        width: 32px;
    }
}


/* =========================================================
   Elegant View - Botanical / Paper Details
   ========================================================= */

/* Very subtle stationery texture */
.pye-gb-style-elegant {
    position: relative;
    overflow: hidden;
}

.pye-gb-style-elegant::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;

    background-image:
        radial-gradient(
            circle at 20% 15%,
            rgba(150,125,92,0.035) 0 1px,
            transparent 1.5px
        ),
        radial-gradient(
            circle at 75% 45%,
            rgba(150,125,92,0.025) 0 1px,
            transparent 1.5px
        );

    background-size:
        23px 23px,
        31px 31px;

    opacity: 0.55;
}


/* Keep real content above the texture */
.pye-gb-style-elegant > * {
    position: relative;
    z-index: 1;
}


/* Delicate botanical sprig on each entry */
.pye-gb-style-elegant .gb-entry article::after {
    content: "";

    position: absolute;
    top: -6px;
    right: -5px;

    width: 92px;
    height: 76px;

    pointer-events: none;

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 100'%3E%3Cg fill='none' stroke='%23c5b59d' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M105 8 C83 27 70 49 52 82'/%3E%3Cpath d='M91 23 C82 20 76 15 73 9 C82 8 89 13 91 23Z'/%3E%3Cpath d='M81 36 C91 32 99 32 106 36 C99 43 90 44 81 36Z'/%3E%3Cpath d='M71 49 C61 47 54 42 50 35 C60 34 68 39 71 49Z'/%3E%3Cpath d='M63 61 C73 58 81 59 87 64 C79 70 70 69 63 61Z'/%3E%3Cpath d='M55 75 C45 74 38 69 34 62 C44 61 52 66 55 75Z'/%3E%3C/g%3E%3C/svg%3E");

    opacity: 0.6;
}


/* Layered paper beneath each guestbook entry */
.pye-gb-style-elegant .gb-entry {
    isolation: isolate;
}

.pye-gb-style-elegant .gb-entry {
    box-shadow:
        5px 6px 0 -1px #f2eadf,
        9px 11px 0 -3px #ebe1d3,
        0 14px 28px rgba(66,51,31,0.08);
}


/* Gentle ornamental line beneath event title */
.pye-gb-style-elegant .pye-gb-title::after {
    content: "⌁";

    display: block;

    margin: 10px auto 0;

    color: #b6a389;

    font-family: Georgia, serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}


/* Slightly warmer keepsake heart */
.pye-gb-style-elegant .gb-entry article::before {
    color: #bca98d;
    font-size: 19px;
}


/* Mobile: keep decorations restrained */
@media (max-width: 640px) {

    .pye-gb-style-elegant .gb-entry article::after {
        width: 68px;
        height: 56px;
        opacity: 0.45;
    }

    .pye-gb-style-elegant .gb-entry {
        box-shadow:
            3px 4px 0 -1px #f2eadf,
            6px 7px 0 -3px #ebe1d3,
            0 10px 22px rgba(66,51,31,0.07);
    }
}


/* =========================================================
   PYE Guestbook - Gallery View v1
   ========================================================= */

.pye-gb-style-gallery {
    width: min(94vw, 1180px);
    margin: 0 auto;

    padding: 70px 38px 64px !important;
    box-sizing: border-box;

    color: #444;

    background:
        linear-gradient(
            180deg,
            #fafafa 0%,
            #f4f5f6 100%
        );

    border-radius: 24px;
}


/* ---------------------------------------------------------
   Gallery Header
   --------------------------------------------------------- */

.pye-gb-style-gallery .pye-gb-view-brand {
    display: block;
    margin: 0 auto 28px;
    text-align: center;
}

.pye-gb-style-gallery .pye-gb-brand-mark {
    width: 38px;
    height: 38px;

    margin: 0 auto 8px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 2px solid #1677b8;
    border-radius: 10px;

    color: #1677b8;
    font-size: 23px;
}

.pye-gb-style-gallery .pye-gb-brand-name {
    color: #1677b8;
}

.pye-gb-style-gallery .pye-gb-brand-picture {
    font-size: 19px;
    font-weight: 500;
}

.pye-gb-style-gallery .pye-gb-brand-events {
    font-family:
        "URW Chancery L",
        "Apple Chancery",
        "Segoe Script",
        cursive;

    font-size: 22px;
}

.pye-gb-style-gallery .pye-gb-view-hero {
    margin-bottom: 42px !important;
    text-align: center;
}

.pye-gb-style-gallery .pye-gb-eyebrow {
    color: #1677b8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.pye-gb-style-gallery .pye-gb-title {
    max-width: 850px;
    margin: 10px auto 12px;

    color: #333;

    font-size: clamp(38px, 5vw, 58px);
    font-weight: 600;
    line-height: 1.08;
}

.pye-gb-style-gallery .pye-gb-subtitle {
    max-width: 620px;
    margin: 0 auto;

    color: #777;

    font-size: 16px;
    line-height: 1.6;
}


/* ---------------------------------------------------------
   Gallery Grid
   --------------------------------------------------------- */

.pye-gb-style-gallery .gwolle-gb,
.pye-gb-style-gallery .gwolle-gb-read,
.pye-gb-style-gallery .gwolle-gb-entries-list {
    width: 100% !important;
    max-width: none !important;
}

.pye-gb-style-gallery .gwolle-gb-entries-list {
    display: grid !important;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 26px;

    align-items: start;
}


/* ---------------------------------------------------------
   Gallery Entry
   --------------------------------------------------------- */

.pye-gb-style-gallery .gb-entry {
    position: relative;

    width: 100% !important;
    margin: 0 !important;
    padding: 18px !important;

    box-sizing: border-box;

    background: #fff !important;

    border: 1px solid #e3e5e7 !important;
    border-radius: 18px;

    box-shadow:
        0 10px 28px rgba(0, 0, 0, 0.065);

    overflow: hidden;
}

.pye-gb-style-gallery .gb-entry::before,
.pye-gb-style-gallery .gb-entry::after {
    display: none !important;
}

.pye-gb-style-gallery .gb-entry article::before,
.pye-gb-style-gallery .gb-entry article::after {
    display: none !important;
}


/* No forum/avatar appearance */
.pye-gb-style-gallery .gb-author-avatar {
    display: none !important;
}


/* ---------------------------------------------------------
   Guest Details
   --------------------------------------------------------- */

.pye-gb-style-gallery .gb-author-name,
.pye-gb-style-gallery .gb-author-name a,
.pye-gb-style-gallery .gb-author-name i {
    padding-left: 0 !important;

    color: #1677b8 !important;

    font-family:
        "URW Chancery L",
        "Apple Chancery",
        "Segoe Script",
        cursive;

    font-size: 27px !important;
    font-weight: 500 !important;
    font-style: normal !important;

    text-decoration: none !important;
}

.pye-gb-style-gallery .gb-datetime {
    display: block;

    margin-top: 5px;

    color: #999 !important;

    font-size: 10px !important;
    letter-spacing: 0.07em;

    text-transform: uppercase;
}

.pye-gb-style-gallery .gb-date,
.pye-gb-style-gallery .gb-time {
    color: inherit !important;
    font-size: inherit !important;
}


/* ---------------------------------------------------------
   Message
   --------------------------------------------------------- */

.pye-gb-style-gallery .gb-entry-content {
    margin-top: 13px !important;
    padding-left: 0 !important;

    color: #444 !important;

    font-size: 15px !important;
    line-height: 1.6 !important;
}


/* ---------------------------------------------------------
   Photo
   --------------------------------------------------------- */

.pye-gb-style-gallery .pye-gb-entry-photo-wrap {
    width: 100%;
    max-width: none;

    aspect-ratio: 4 / 3;

    margin: 18px 0 0;

    padding: 0;

    overflow: hidden;

    background: #eee;

    border: 0;
    border-radius: 13px;

    box-shadow: none;
}

.pye-gb-style-gallery .pye-gb-entry-photo {
    width: 100% !important;
    height: 100% !important;

    object-fit: cover;

    border-radius: 13px !important;
}


/* ---------------------------------------------------------
   Hide plugin controls
   --------------------------------------------------------- */

.pye-gb-style-gallery .gwolle-gb-total,
.pye-gb-style-gallery .gb-metabox-handle,
.pye-gb-style-gallery .gb-metabox {
    display: none !important;
}


/* ---------------------------------------------------------
   Gallery Footer
   --------------------------------------------------------- */

.pye-gb-style-gallery .pye-gb-view-footer {
    display: block;

    margin-top: 46px;
    padding-top: 10px;

    text-align: center;
}

.pye-gb-style-gallery .pye-gb-view-footer-heart {
    color: #1677b8;
}

.pye-gb-style-gallery .pye-gb-view-footer-text {
    color: #777;
    font-size: 14px;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery {
        width: calc(100% - 14px);

        padding:
            44px
            14px
            42px !important;

        border-radius: 17px;
    }

    .pye-gb-style-gallery .gwolle-gb-entries-list {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .pye-gb-style-gallery .gb-entry {
        padding: 15px !important;
        border-radius: 15px;
    }
}

/* =========================================================
   PYE Gallery View v2
   ========================================================= */

/* Responsive gallery grid */
.pye-gb-style-gallery .gwolle-gb-entries-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
    align-items: start;
}


/* Protect cards from long names/messages */
.pye-gb-style-gallery .gb-entry,
.pye-gb-style-gallery .gb-entry * {
    min-width: 0;
}

.pye-gb-style-gallery .gb-author-name,
.pye-gb-style-gallery .gb-entry-content {
    overflow-wrap: anywhere;
    word-break: normal;
}


/* ---------------------------------------------------------
   PHOTO MEMORIES
   --------------------------------------------------------- */

.pye-gb-style-gallery .gb-entry:has(.pye-gb-entry-photo-wrap) {
    padding: 14px !important;
}

.pye-gb-style-gallery
.gb-entry:has(.pye-gb-entry-photo-wrap)
.pye-gb-entry-photo-wrap {
    margin-top: 15px;
    aspect-ratio: 4 / 3;
}

.pye-gb-style-gallery
.gb-entry:has(.pye-gb-entry-photo-wrap)
.pye-gb-entry-photo {
    transition: transform .25s ease;
}

@media (hover: hover) {
    .pye-gb-style-gallery
    .gb-entry:has(.pye-gb-entry-photo-wrap):hover
    .pye-gb-entry-photo {
        transform: scale(1.018);
    }
}


/* ---------------------------------------------------------
   TEXT-ONLY MEMORIES
   --------------------------------------------------------- */

.pye-gb-style-gallery
.gb-entry:not(:has(.pye-gb-entry-photo-wrap)) {
    min-height: 215px;
    padding: 26px !important;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #f7fafd 100%
        ) !important;
}

.pye-gb-style-gallery
.gb-entry:not(:has(.pye-gb-entry-photo-wrap))
.gb-entry-content {
    margin-top: 24px !important;

    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.pye-gb-style-gallery
.gb-entry:not(:has(.pye-gb-entry-photo-wrap))
.gb-entry-content::before {
    content: "“";
    display: block;

    height: 28px;

    color: rgba(22,119,184,.22);

    font-family: Georgia, serif;
    font-size: 48px;
    line-height: .8;
}


/* ---------------------------------------------------------
   INFINITE SCROLL MESSAGES
   --------------------------------------------------------- */

.pye-gb-style-gallery .page-navigation {
    display: none !important;
}

.pye-gb-style-gallery .gwolle-gb-load-message,
.pye-gb-style-gallery .gwolle-gb-end-message {
    grid-column: 1 / -1;

    min-height: 0 !important;
    margin: 0 !important;
    padding: 18px !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;

    color: #8a8f94 !important;

    font-size: 13px !important;
    text-align: center;
}


/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 1050px) {
    .pye-gb-style-gallery .gwolle-gb-entries-list {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 650px) {
    .pye-gb-style-gallery .gwolle-gb-entries-list {
        grid-template-columns: 1fr !important;
    }

    .pye-gb-style-gallery
    .gb-entry:not(:has(.pye-gb-entry-photo-wrap)) {
        min-height: 0;
    }
}

/* =========================================================
   Gallery v2.1 - Full-width presentation
   ========================================================= */

.pye-gb-view-shell.pye-gb-style-gallery {
    width: min(94vw, 1180px) !important;
    max-width: 1180px !important;
}

.pye-gb-style-gallery .pye-gb-view-inner,
.pye-gb-style-gallery .pye-gb-view-content {
    width: 100% !important;
    max-width: none !important;
}

.pye-gb-style-gallery .gwolle-gb,
.pye-gb-style-gallery .gwolle-gb-read,
.pye-gb-style-gallery .gwolle-gb-entries-list {
    width: 100% !important;
    max-width: none !important;
}


/* Larger, more useful photo area on desktop */
.pye-gb-style-gallery .pye-gb-entry-photo-wrap {
    width: 100% !important;
    max-width: none !important;
}


/* Keep the gallery comfortably away from screen edges */
@media (min-width: 1051px) {

    .pye-gb-view-shell.pye-gb-style-gallery {
        padding-left: 42px !important;
        padding-right: 42px !important;
    }
}

/* =========================================================
   Gallery Masonry Layout
   ========================================================= */

.pye-gb-style-gallery .gwolle-gb-entries-list {
    grid-auto-rows: 8px !important;
    grid-auto-flow: dense;
    column-gap: 24px !important;
    row-gap: 16px !important;
}

.pye-gb-style-gallery .gwolle-gb-entries-list > .gb-entry {
    align-self: start;
}

.pye-gb-style-gallery .gwolle-gb-load-message,
.pye-gb-style-gallery .gwolle-gb-end-message {
    grid-column: 1 / -1 !important;
    grid-row-end: auto !important;
}

/* =========================================================
   Public View - Date / Time visibility
   ========================================================= */

.pye-gb-hide-datetime .gb-datetime {
    display: none !important;
}


/* =========================================================
   Gallery v3 - Card Polish
   ========================================================= */

/* Smooth, premium card movement */
.pye-gb-style-gallery .gb-entry {
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

@media (hover: hover) {
    .pye-gb-style-gallery .gb-entry:hover {
        transform: translateY(-2px);
        box-shadow:
            0 14px 34px rgba(0,0,0,.09) !important;
    }
}


/* Text-only memories no longer need artificial height */
.pye-gb-style-gallery
.gb-entry:not(:has(.pye-gb-entry-photo-wrap)) {
    min-height: 0 !important;
    padding: 23px 24px 25px !important;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #f7fafd 100%
        ) !important;
}


/* Refine quotation mark */
.pye-gb-style-gallery
.gb-entry:not(:has(.pye-gb-entry-photo-wrap))
.gb-entry-content::before {
    height: 21px;
    margin-bottom: 5px;

    color: rgba(22,119,184,.20);
    font-size: 39px;
}


/* Photo memory cards */
.pye-gb-style-gallery
.gb-entry:has(.pye-gb-entry-photo-wrap) {
    padding: 13px !important;
}


/* Slight breathing room around photo-card text */
.pye-gb-style-gallery
.gb-entry:has(.pye-gb-entry-photo-wrap)
.gb-author-name,
.pye-gb-style-gallery
.gb-entry:has(.pye-gb-entry-photo-wrap)
.gb-entry-content {
    margin-left: 3px !important;
    margin-right: 3px !important;
}


/* Make photographs feel integrated into the card */
.pye-gb-style-gallery
.pye-gb-entry-photo-wrap {
    margin-top: 14px !important;
    border-radius: 15px !important;

    box-shadow:
        0 3px 12px rgba(0,0,0,.07);
}


/* Mobile */
@media (max-width: 650px) {

    .pye-gb-style-gallery .gb-entry {
        border-radius: 16px;
    }

    .pye-gb-style-gallery
    .gb-entry:not(:has(.pye-gb-entry-photo-wrap)) {
        padding: 21px !important;
    }
}


/* =========================================================
   Gallery Botanical / Wedding Accent v1
   ========================================================= */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    position: relative;
    padding-top: 42px !important;
    padding-bottom: 38px !important;
}


/* Floral corner decorations */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    content: "";
    position: absolute;
    top: 6px;

    width: 165px;
    height: 135px;

    opacity: .38;

    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;

    pointer-events: none;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 150'%3E%3Cg fill='none' stroke='%237b9980' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 135 C45 108 68 78 86 28'/%3E%3Cpath d='M48 101 C62 94 75 80 83 64'/%3E%3Cpath d='M66 75 C56 59 51 45 51 30'/%3E%3Cpath d='M79 54 C94 45 109 42 126 44'/%3E%3Cpath d='M57 91 C43 82 32 70 25 57'/%3E%3C/g%3E%3Cg fill='%23b8c8b8'%3E%3Cellipse cx='52' cy='90' rx='9' ry='4' transform='rotate(32 52 90)'/%3E%3Cellipse cx='70' cy='70' rx='9' ry='4' transform='rotate(-40 70 70)'/%3E%3Cellipse cx='80' cy='48' rx='8' ry='4' transform='rotate(38 80 48)'/%3E%3Cellipse cx='101' cy='44' rx='9' ry='4' transform='rotate(-8 101 44)'/%3E%3Cellipse cx='39' cy='72' rx='8' ry='4' transform='rotate(44 39 72)'/%3E%3C/g%3E%3Ccircle cx='89' cy='25' r='6' fill='%23d8c6c7'/%3E%3Ccircle cx='95' cy='23' r='5' fill='%23e4d8d0'/%3E%3Ccircle cx='84' cy='20' r='5' fill='%23e7d9dd'/%3E%3C/svg%3E");
}

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before {
    left: 18px;
}

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    right: 18px;
    transform: scaleX(-1);
}


/* Decorative flourish below the subtitle */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero-inner::after {
    content: "❦";

    display: block;
    margin-top: 16px;

    color: #819888;

    font-family: Georgia, serif;
    font-size: 27px;

    opacity: .75;
}


/* Slightly warmer wedding stationery background */
.pye-gb-style-gallery.pye-gb-decor-botanical {
    background:
        radial-gradient(
            circle at 12% 12%,
            rgba(211, 223, 211, .28),
            transparent 27%
        ),
        radial-gradient(
            circle at 88% 88%,
            rgba(232, 218, 213, .22),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            #fcfcfa 0%,
            #f7f8f6 100%
        ) !important;
}


/* Footer ornament */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-footer-flourish::before {
    content: "—  ❦  —";

    color: #819888;
    font-family: Georgia, serif;
    font-size: 16px;

    opacity: .70;
}


@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::before,
    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::after {
        width: 95px;
        height: 80px;
        opacity: .24;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::before {
        left: 0;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::after {
        right: 0;
    }
}


/* =========================================================
   Gallery Botanical / Wedding Accent v2
   Fuller wedding treatment
   ========================================================= */


/* Give the wedding header more breathing room */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    padding-top: 48px !important;
    padding-bottom: 46px !important;
}


/* ---------------------------------------------------------
   Fuller floral arrangements
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    top: -8px;

    width: 225px;
    height: 180px;

    opacity: .52;

    transform: none;

    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}


/* LEFT - leafy branch with blush flowers */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before {
    left: -4px;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 190'%3E%3Cg fill='none' stroke='%237b9880' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 174 C58 145 87 108 110 48'/%3E%3Cpath d='M44 151 C58 125 75 104 96 87'/%3E%3Cpath d='M71 124 C56 105 48 85 47 65'/%3E%3Cpath d='M93 91 C119 74 143 67 171 67'/%3E%3Cpath d='M108 58 C132 43 157 37 187 41'/%3E%3Cpath d='M57 138 C38 125 27 109 21 91'/%3E%3C/g%3E%3Cg fill='%23b8c9b9'%3E%3Cellipse cx='47' cy='132' rx='12' ry='5' transform='rotate(34 47 132)'/%3E%3Cellipse cx='66' cy='111' rx='12' ry='5' transform='rotate(-38 66 111)'/%3E%3Cellipse cx='84' cy='91' rx='11' ry='5' transform='rotate(32 84 91)'/%3E%3Cellipse cx='120' cy='77' rx='12' ry='5' transform='rotate(-18 120 77)'/%3E%3Cellipse cx='150' cy='68' rx='11' ry='5' transform='rotate(12 150 68)'/%3E%3Cellipse cx='136' cy='49' rx='11' ry='5' transform='rotate(-28 136 49)'/%3E%3Cellipse cx='164' cy='42' rx='10' ry='5' transform='rotate(18 164 42)'/%3E%3C/g%3E%3Cg fill='%23ead9dc'%3E%3Ccircle cx='111' cy='43' r='10'/%3E%3Ccircle cx='101' cy='48' r='8'/%3E%3Ccircle cx='120' cy='51' r='8'/%3E%3C/g%3E%3Cg fill='%23e5c7cc'%3E%3Ccircle cx='174' cy='67' r='8'/%3E%3Ccircle cx='183' cy='72' r='6'/%3E%3Ccircle cx='170' cy='77' r='6'/%3E%3C/g%3E%3Ccircle cx='110' cy='49' r='4' fill='%23d8b5a3'/%3E%3Ccircle cx='176' cy='72' r='3' fill='%23d8b5a3'/%3E%3C/svg%3E");
}


/* RIGHT - different arrangement so it does not look mirrored */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    right: -6px;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 190'%3E%3Cg fill='none' stroke='%237b9880' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M228 175 C184 146 157 112 137 55'/%3E%3Cpath d='M198 151 C181 126 165 107 146 91'/%3E%3Cpath d='M170 126 C187 108 196 88 198 67'/%3E%3Cpath d='M148 95 C123 78 98 70 70 72'/%3E%3Cpath d='M134 62 C112 49 89 43 62 46'/%3E%3Cpath d='M184 138 C201 124 213 108 218 91'/%3E%3C/g%3E%3Cg fill='%23b8c9b9'%3E%3Cellipse cx='194' cy='132' rx='12' ry='5' transform='rotate(-34 194 132)'/%3E%3Cellipse cx='174' cy='112' rx='12' ry='5' transform='rotate(38 174 112)'/%3E%3Cellipse cx='154' cy='94' rx='11' ry='5' transform='rotate(-30 154 94)'/%3E%3Cellipse cx='122' cy='79' rx='12' ry='5' transform='rotate(18 122 79)'/%3E%3Cellipse cx='91' cy='72' rx='11' ry='5' transform='rotate(-10 91 72)'/%3E%3Cellipse cx='105' cy='52' rx='11' ry='5' transform='rotate(26 105 52)'/%3E%3Cellipse cx='77' cy='47' rx='10' ry='5' transform='rotate(-16 77 47)'/%3E%3C/g%3E%3Cg fill='%23ead9dc'%3E%3Ccircle cx='137' cy='51' r='10'/%3E%3Ccircle cx='128' cy='57' r='8'/%3E%3Ccircle cx='146' cy='59' r='8'/%3E%3C/g%3E%3Cg fill='%23e5c7cc'%3E%3Ccircle cx='66' cy='72' r='8'/%3E%3Ccircle cx='57' cy='77' r='6'/%3E%3Ccircle cx='70' cy='82' r='6'/%3E%3C/g%3E%3Ccircle cx='137' cy='57' r='4' fill='%23d8b5a3'/%3E%3Ccircle cx='65' cy='77' r='3' fill='%23d8b5a3'/%3E%3C/svg%3E");
}


/* ---------------------------------------------------------
   More polished central ornament
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero-inner::after {
    content: "";

    display: block;

    width: 150px;
    height: 18px;

    margin: 18px auto 0;

    opacity: .58;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 22'%3E%3Cg fill='none' stroke='%23849b89' stroke-width='1.5'%3E%3Cpath d='M8 11 H68 C77 11 82 7 90 3 C98 7 103 11 112 11 H172'/%3E%3Cpath d='M90 3 C86 10 86 14 90 19 C94 14 94 10 90 3'/%3E%3C/g%3E%3Ccircle cx='90' cy='11' r='2.5' fill='%23dfc7c9'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}


/* ---------------------------------------------------------
   Slightly richer stationery feel
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical {
    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(196, 214, 198, .30),
            transparent 24%
        ),
        radial-gradient(
            circle at 91% 88%,
            rgba(232, 210, 211, .23),
            transparent 26%
        ),
        linear-gradient(
            180deg,
            #fffefa 0%,
            #f8f8f4 100%
        ) !important;
}


/* ---------------------------------------------------------
   Mobile - decorative but not crowded
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero {
        padding-top: 40px !important;
        padding-bottom: 34px !important;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::before,
    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::after {
        width: 110px;
        height: 90px;

        top: 0;

        opacity: .32;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::before {
        left: -16px;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero::after {
        right: -16px;
    }
}


/* =========================================================
   Gallery - Clean infinite-scroll ending
   ========================================================= */

.pye-gb-style-gallery .gwolle-gb-load-message,
.pye-gb-style-gallery .gwolle-gb-end-message {
    grid-column: 1 / -1 !important;

    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;

    margin: 16px 0 4px !important;
    padding: 12px 0 !important;

    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;

    color: #9a9a9a !important;

    text-align: center;
    font-size: 13px !important;

    transform: none !important;
}

.pye-gb-style-gallery .gwolle-gb-load-message::before,
.pye-gb-style-gallery .gwolle-gb-load-message::after,
.pye-gb-style-gallery .gwolle-gb-end-message::before,
.pye-gb-style-gallery .gwolle-gb-end-message::after {
    display: none !important;
    content: none !important;
}


/* =========================================================
   Botanical Wedding - Bouquet Backdrop
   ========================================================= */

.pye-gb-view-shell {
    position: relative;
}


/* Only exists visually when Botanical / Wedding is selected */
.pye-gb-style-gallery.pye-gb-decor-botanical {
    position: relative;
    overflow: hidden;
    isolation: isolate;

    background:
        linear-gradient(
            180deg,
            #fffdf9 0%,
            #faf8f3 100%
        ) !important;
}


/* Dedicated wedding artwork layer */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop {
    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 560px;

    z-index: 0;

    pointer-events: none;

    background-image:
        url("botanical-wedding-bg.svg");

    background-repeat: no-repeat;
    background-position: top center;
    background-size: 100% auto;

    opacity: .88;

    /*
     * Let the bouquet visually dissolve into the page
     * instead of ending at a hard horizontal edge.
     */
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            #000 0%,
            #000 58%,
            rgba(0,0,0,.70) 74%,
            transparent 100%
        );

    mask-image:
        linear-gradient(
            to bottom,
            #000 0%,
            #000 58%,
            rgba(0,0,0,.70) 74%,
            transparent 100%
        );
}


/* Keep all real content above the decorative backdrop */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-brand,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-entries,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-footer {
    position: relative;
    z-index: 1;
}


/* ---------------------------------------------------------
   Retire the old little side sprigs.
   The bouquet backdrop replaces them.
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    content: none !important;
    display: none !important;
}


/* Give the title area room to sit inside the floral scene */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    padding-top: 52px !important;
    padding-bottom: 58px !important;
}


/* Slightly warmer typography for the wedding treatment */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-title {
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-weight: 400;
    letter-spacing: -.02em;
}


/* Keep the small center ornament from Botanical v2 */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero-inner::after {
    position: relative;
    z-index: 2;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-botanical-backdrop {
        height: 410px;

        background-size: auto 410px;
        background-position: top center;

        opacity: .62;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-hero {
        padding-top: 42px !important;
        padding-bottom: 42px !important;
    }
}


/* =========================================================
   Botanical Wedding - Real Flower Artwork v1
   ========================================================= */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop {
    height: 540px;
    background: none !important;
    opacity: 1 !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    overflow: hidden;
}


/* Large bouquet drifting in from upper-left */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::before {
    content: "";
    position: absolute;

    top: -105px;
    left: -155px;

    width: 720px;
    height: 520px;

    background:
        url("pye-wedding-flowers.jpg")
        center / contain
        no-repeat;

    opacity: .84;
    mix-blend-mode: multiply;

    -webkit-mask-image:
        radial-gradient(
            ellipse at 35% 35%,
            #000 0%,
            #000 52%,
            rgba(0,0,0,.65) 68%,
            transparent 87%
        );

    mask-image:
        radial-gradient(
            ellipse at 35% 35%,
            #000 0%,
            #000 52%,
            rgba(0,0,0,.65) 68%,
            transparent 87%
        );
}


/* Smaller floral echo on upper-right */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::after {
    content: "";
    position: absolute;

    top: -85px;
    right: -145px;

    width: 470px;
    height: 350px;

    background:
        url("pye-wedding-flowers.jpg")
        center / contain
        no-repeat;

    opacity: .48;
    mix-blend-mode: multiply;

    transform: scaleX(-1);

    -webkit-mask-image:
        radial-gradient(
            ellipse at 45% 35%,
            #000 0%,
            #000 48%,
            rgba(0,0,0,.55) 65%,
            transparent 86%
        );

    mask-image:
        radial-gradient(
            ellipse at 45% 35%,
            #000 0%,
            #000 48%,
            rgba(0,0,0,.55) 65%,
            transparent 86%
        );
}


/* Retire all older botanical hero artwork */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::before,
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero::after {
    display: none !important;
    content: none !important;
}


/* Leave room for the flowers around the couple's name */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    padding-top: 58px !important;
    padding-bottom: 60px !important;
}


/* =========================================================
   Botanical Wedding - Real Flowers v2
   Drift / Fade refinement
   ========================================================= */


/* Main bouquet: larger, farther off-canvas, softer fade */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::before {
    top: -145px !important;
    left: -235px !important;

    width: 840px !important;
    height: 620px !important;

    opacity: .80 !important;

    -webkit-mask-image:
        radial-gradient(
            ellipse at 28% 28%,
            #000 0%,
            #000 50%,
            rgba(0,0,0,.78) 62%,
            rgba(0,0,0,.38) 73%,
            transparent 88%
        ) !important;

    mask-image:
        radial-gradient(
            ellipse at 28% 28%,
            #000 0%,
            #000 50%,
            rgba(0,0,0,.78) 62%,
            rgba(0,0,0,.38) 73%,
            transparent 88%
        ) !important;
}


/* Right bouquet: intentionally quieter and airier */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::after {
    top: -105px !important;
    right: -175px !important;

    width: 455px !important;
    height: 335px !important;

    opacity: .36 !important;

    -webkit-mask-image:
        radial-gradient(
            ellipse at 45% 30%,
            #000 0%,
            #000 43%,
            rgba(0,0,0,.48) 61%,
            transparent 84%
        ) !important;

    mask-image:
        radial-gradient(
            ellipse at 45% 30%,
            #000 0%,
            #000 43%,
            rgba(0,0,0,.48) 61%,
            transparent 84%
        ) !important;
}


/* Slightly more romantic space around the heading */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    padding-top: 66px !important;
    padding-bottom: 66px !important;
}


/* =========================================================
   Botanical Wedding - Soft Atmosphere v1
   ========================================================= */

/* Warm stationery + very soft fabric-like sweeps */
.pye-gb-style-gallery.pye-gb-decor-botanical {
    background:
        radial-gradient(
            ellipse at 18% 8%,
            rgba(255,255,255,.92) 0%,
            rgba(255,250,244,.62) 32%,
            transparent 58%
        ),
        radial-gradient(
            ellipse at 92% 22%,
            rgba(255,244,239,.42) 0%,
            transparent 45%
        ),
        linear-gradient(
            135deg,
            rgba(255,255,255,.38) 0%,
            rgba(250,242,233,.20) 24%,
            rgba(255,255,255,.10) 48%,
            rgba(246,238,229,.22) 73%,
            rgba(255,255,255,.30) 100%
        ),
        #fffaf4 !important;
}


/* Gentle veil / chiffon impression behind the hero */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-hero {
    background:
        linear-gradient(
            118deg,
            transparent 0%,
            rgba(255,255,255,.16) 26%,
            rgba(255,255,255,.42) 43%,
            rgba(255,255,255,.12) 61%,
            transparent 100%
        );

    border-radius: 28px;
}


/* Tiny romantic highlights around the title area */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-brand-name {
    text-shadow:
        0 1px 0 rgba(255,255,255,.80);
}


/* Make the couple name feel slightly more keepsake-like */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-title {
    color: #3e3935 !important;

    text-shadow:
        0 1px 0 rgba(255,255,255,.85);
}


/* Softer subtitle for the wedding treatment */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-subtitle {
    color: #9a8f87 !important;
}


/* Warm the cards very slightly without changing Gallery structure */
.pye-gb-style-gallery.pye-gb-decor-botanical
.gb-entry {
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98) 0%,
            rgba(255,252,248,.98) 100%
        ) !important;
}


/* =========================================================
   Botanical Wedding - Finishing Details
   ========================================================= */


/* ---------------------------------------------------------
   Small botanical detail on text-only memory cards
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical
.gb-entry:not(:has(.pye-gb-entry-photo-wrap)) {
    position: relative;
    overflow: hidden;
}

.pye-gb-style-gallery.pye-gb-decor-botanical
.gb-entry:not(:has(.pye-gb-entry-photo-wrap))::after {
    content: "";

    display: block !important;
    position: absolute;

    right: 12px;
    bottom: 8px;

    width: 62px;
    height: 52px;

    opacity: .20;

    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 65'%3E%3Cg fill='none' stroke='%23879a82' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M8 58 C27 43 39 27 49 8'/%3E%3Cpath d='M26 43 C17 37 14 29 14 22'/%3E%3Cpath d='M35 33 C45 28 54 27 63 29'/%3E%3Cpath d='M43 20 C52 16 60 16 69 19'/%3E%3C/g%3E%3Cg fill='%23bcc8b8'%3E%3Cellipse cx='20' cy='37' rx='7' ry='3' transform='rotate(35 20 37)'/%3E%3Cellipse cx='43' cy='29' rx='7' ry='3' transform='rotate(-20 43 29)'/%3E%3Cellipse cx='53' cy='17' rx='7' ry='3' transform='rotate(-12 53 17)'/%3E%3C/g%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;

    pointer-events: none;
}


/* ---------------------------------------------------------
   A few soft floating wedding details
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-entries {
    position: relative;
}

.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-entries::before {
    content: "";

    position: absolute;

    top: -58px;
    right: 8%;

    width: 110px;
    height: 75px;

    opacity: .30;

    pointer-events: none;

    background:
        radial-gradient(
            circle at 18% 25%,
            rgba(229,207,198,.75) 0 5px,
            transparent 6px
        ),
        radial-gradient(
            circle at 58% 55%,
            rgba(225,216,200,.80) 0 4px,
            transparent 5px
        ),
        radial-gradient(
            circle at 86% 20%,
            rgba(238,220,215,.70) 0 7px,
            transparent 8px
        );
}


/* Pearl-like highlights near the lower gallery edge */
.pye-gb-style-gallery.pye-gb-decor-botanical
.pye-gb-view-entries::after {
    content: "";

    position: absolute;

    right: 4%;
    bottom: 10px;

    width: 90px;
    height: 55px;

    opacity: .24;

    pointer-events: none;

    background:
        radial-gradient(
            circle at 20% 50%,
            #d8cfc2 0 4px,
            transparent 5px
        ),
        radial-gradient(
            circle at 64% 18%,
            #e6ddd0 0 3px,
            transparent 4px
        ),
        radial-gradient(
            circle at 88% 70%,
            #d9d0c4 0 5px,
            transparent 6px
        );
}


/* Keep decorations restrained on phones */
@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .gb-entry:not(:has(.pye-gb-entry-photo-wrap))::after {
        width: 48px;
        height: 40px;
        opacity: .15;
    }

    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-entries::before,
    .pye-gb-style-gallery.pye-gb-decor-botanical
    .pye-gb-view-entries::after {
        opacity: .16;
    }
}


/* =========================================================
   Botanical Wedding - Floral Theme Image Mapping
   ========================================================= */

/* Blush & Ivory */
.pye-gb-decor-botanical.pye-gb-floral-blush-ivory
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-blush-ivory
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-blush-ivory.jpg") !important;
}


/* White & Ivory */
.pye-gb-decor-botanical.pye-gb-floral-white-ivory
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-white-ivory
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-white-ivory.jpg") !important;
}


/* White + Greenery */
.pye-gb-decor-botanical.pye-gb-floral-greenery-white
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-greenery-white
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-greenery-white.jpg") !important;
}


/* Dusty Blue */
.pye-gb-decor-botanical.pye-gb-floral-dusty-blue
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-dusty-blue
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-blue.jpg") !important;
}


/* Soft Pink */
.pye-gb-decor-botanical.pye-gb-floral-soft-pink
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-soft-pink
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-pink.jpg") !important;
}


/* Classic Red */
.pye-gb-decor-botanical.pye-gb-floral-classic-red
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-classic-red
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-red.jpg") !important;
}


/* White Only */
.pye-gb-decor-botanical.pye-gb-floral-white-only
.pye-gb-botanical-backdrop::before,
.pye-gb-decor-botanical.pye-gb-floral-white-only
.pye-gb-botanical-backdrop::after {
    background-image:
        url("flower-white.jpg") !important;
}


/* =========================================================
   Floral Themes - Per-theme placement tuning
   ========================================================= */

/*
 * Shared variable-driven placement.
 * Each flower image can have its own crop/scale without
 * changing the Gallery layout.
 */

.pye-gb-decor-botanical {
    --pye-floral-left-top: -145px;
    --pye-floral-left-left: -235px;
    --pye-floral-left-width: 840px;
    --pye-floral-left-height: 620px;
    --pye-floral-left-opacity: .80;

    --pye-floral-right-top: -105px;
    --pye-floral-right-right: -175px;
    --pye-floral-right-width: 455px;
    --pye-floral-right-height: 335px;
    --pye-floral-right-opacity: .36;
}

.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::before {
    top: var(--pye-floral-left-top) !important;
    left: var(--pye-floral-left-left) !important;
    width: var(--pye-floral-left-width) !important;
    height: var(--pye-floral-left-height) !important;
    opacity: var(--pye-floral-left-opacity) !important;
}

.pye-gb-decor-botanical
.pye-gb-botanical-backdrop::after {
    top: var(--pye-floral-right-top) !important;
    right: var(--pye-floral-right-right) !important;
    width: var(--pye-floral-right-width) !important;
    height: var(--pye-floral-right-height) !important;
    opacity: var(--pye-floral-right-opacity) !important;
}


/* Blush & Ivory */
.pye-gb-floral-blush-ivory {
    --pye-floral-left-top: -145px;
    --pye-floral-left-left: -235px;
    --pye-floral-left-width: 840px;
    --pye-floral-left-height: 620px;
}


/* White & Ivory */
.pye-gb-floral-white-ivory {
    --pye-floral-left-top: -160px;
    --pye-floral-left-left: -255px;
    --pye-floral-left-width: 800px;
    --pye-floral-left-height: 590px;
}


/* White + Greenery - larger foliage needs more room */
.pye-gb-floral-greenery-white {
    --pye-floral-left-top: -190px;
    --pye-floral-left-left: -300px;
    --pye-floral-left-width: 760px;
    --pye-floral-left-height: 560px;

    --pye-floral-right-top: -125px;
    --pye-floral-right-right: -190px;
    --pye-floral-right-width: 410px;
    --pye-floral-right-height: 305px;
}


/* Dusty Blue */
.pye-gb-floral-dusty-blue {
    --pye-floral-left-top: -185px;
    --pye-floral-left-left: -275px;
    --pye-floral-left-width: 780px;
    --pye-floral-left-height: 575px;

    --pye-floral-right-top: -120px;
    --pye-floral-right-width: 420px;
    --pye-floral-right-height: 310px;
}


/* Soft Pink */
.pye-gb-floral-soft-pink {
    --pye-floral-left-top: -165px;
    --pye-floral-left-left: -255px;
    --pye-floral-left-width: 810px;
    --pye-floral-left-height: 600px;
}


/* Classic Red - deliberately quieter because red is strong */
.pye-gb-floral-classic-red {
    --pye-floral-left-top: -170px;
    --pye-floral-left-left: -270px;
    --pye-floral-left-width: 790px;
    --pye-floral-left-height: 585px;
    --pye-floral-left-opacity: .70;

    --pye-floral-right-opacity: .27;
}


/* White Only */
.pye-gb-floral-white-only {
    --pye-floral-left-top: -165px;
    --pye-floral-left-left: -260px;
    --pye-floral-left-width: 810px;
    --pye-floral-left-height: 595px;
    --pye-floral-left-opacity: .78;
}


/* =========================================================
   PYE Gallery Photo Lightbox
   ========================================================= */

.pye-gb-style-gallery
.pye-gb-entry-photo {
    cursor: zoom-in;
}


/* Prevent background scrolling */
body.pye-gb-lightbox-open {
    overflow: hidden;
}


.pye-gb-lightbox {
    position: fixed;
    inset: 0;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 42px 86px;

    box-sizing: border-box;

    background:
        rgba(18, 20, 22, .92);

    backdrop-filter: blur(5px);

    z-index: 999999;
}


.pye-gb-lightbox.is-open {
    display: flex;
}


.pye-gb-lightbox-stage {
    position: relative;

    max-width: min(1200px, 88vw);
    max-height: 88vh;

    display: flex;
    flex-direction: column;
    align-items: center;
}


.pye-gb-lightbox-image {
    display: block;

    max-width: 100%;
    max-height: 80vh;

    width: auto;
    height: auto;

    object-fit: contain;

    border-radius: 12px;

    box-shadow:
        0 24px 70px
        rgba(0,0,0,.40);
}


.pye-gb-lightbox-caption {
    min-height: 22px;

    margin-top: 14px;

    color: rgba(255,255,255,.88);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 18px;

    text-align: center;
}


.pye-gb-lightbox-close,
.pye-gb-lightbox-prev,
.pye-gb-lightbox-next {
    position: absolute;

    border: 0;

    color: #fff;

    background:
        rgba(255,255,255,.10);

    cursor: pointer;

    transition:
        background .18s ease,
        transform .18s ease;

    z-index: 2;
}


.pye-gb-lightbox-close:hover,
.pye-gb-lightbox-prev:hover,
.pye-gb-lightbox-next:hover {
    background:
        rgba(255,255,255,.20);
}


.pye-gb-lightbox-close {
    top: 22px;
    right: 26px;

    width: 48px;
    height: 48px;

    border-radius: 50%;

    font-size: 35px;
    line-height: 44px;
}


.pye-gb-lightbox-prev,
.pye-gb-lightbox-next {
    top: 50%;

    width: 54px;
    height: 70px;

    margin-top: -35px;

    border-radius: 14px;

    font-family:
        Georgia,
        serif;

    font-size: 52px;
    line-height: 60px;
}


.pye-gb-lightbox-prev {
    left: 22px;
}


.pye-gb-lightbox-next {
    right: 22px;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-lightbox {
        padding:
            64px
            12px
            32px;
    }

    .pye-gb-lightbox-stage {
        max-width: 100%;
    }

    .pye-gb-lightbox-image {
        max-height: 72vh;

        border-radius: 9px;
    }

    .pye-gb-lightbox-prev,
    .pye-gb-lightbox-next {
        width: 44px;
        height: 58px;

        margin-top: -29px;

        font-size: 42px;

        background:
            rgba(0,0,0,.38);
    }

    .pye-gb-lightbox-prev {
        left: 8px;
    }

    .pye-gb-lightbox-next {
        right: 8px;
    }

    .pye-gb-lightbox-close {
        top: 12px;
        right: 12px;
    }
}


/* =========================================================
   PYE Gallery - Clean End of Guestbook
   Gwolle inserts an end-of-infinite-scroll entry.
   Our own guestbook footer serves as the visual ending.
   ========================================================= */

.pye-gb-style-gallery .gwolle-gb-end-message {
    display: none !important;
}



/* =========================================================
   PYE OCCASION - QUINCEANERA V1

   Scoped exclusively to:
   Gallery + Quinceañera

   Do not place generic Gallery rules in this section.
   ========================================================= */


.pye-gb-style-gallery.pye-gb-occasion-quinceanera {
    --pye-q-gold: #aa7a2b;
    --pye-q-gold-soft: #d8bd79;
    --pye-q-rose: #9b3657;
    --pye-q-pink: #d991aa;
    --pye-q-blush: #f9edf2;
    --pye-q-ivory: #fffaf5;
    --pye-q-ink: #3f3034;

    color: var(--pye-q-ink);

    background:
        radial-gradient(
            circle at 8% 5%,
            rgba(217,145,170,.12),
            transparent 25%
        ),
        radial-gradient(
            circle at 94% 12%,
            rgba(170,122,43,.08),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #fffaf5 0%,
            #fcf4f6 48%,
            #fffaf7 100%
        ) !important;
}


/*
 * The Wedding botanical engine uses large background flowers.
 * Quinceañera supplies its own isolated decorative layer.
 */
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-botanical-backdrop::before,
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-botanical-backdrop::after {
    display: none !important;
    content: none !important;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-hero {
    position: relative;

    overflow: hidden;

    border-top:
        1px solid rgba(170,122,43,.20);

    border-bottom:
        1px solid rgba(170,122,43,.24);

    background:
        url("occasions/quinceanera/flower-large.png")
            left 34px top 36px / 108px auto no-repeat,

        url("occasions/quinceanera/leaves.png")
            left 116px top 92px / 72px auto no-repeat,

        url("occasions/quinceanera/flower-medium.png")
            right 46px bottom 42px / 86px auto no-repeat,

        url("occasions/quinceanera/star-large.png")
            right 120px top 48px / 26px auto no-repeat,

        url("occasions/quinceanera/star-small.png")
            right 92px top 91px / 14px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255,250,245,.98),
            rgba(249,237,242,.94)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(920px, 94%);
    min-height: 380px;

    margin-left: auto;
    margin-right: auto;

    padding:
        78px
        150px
        82px !important;

    box-sizing: border-box;

    background-image:
        url("occasions/quinceanera/gold-frame.png");

    background-repeat: no-repeat;
    background-position: center;
    background-size: min(760px, 94%) auto;
}


/*
 * Crown sits with the editable HTML title.
 */
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-title::before {
    content: "";

    display: block;

    width: 70px;
    height: 52px;

    margin:
        0
        auto
        12px;

    background:
        url("occasions/quinceanera/crown.png")
        center / contain
        no-repeat;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-title {
    position: relative;

    margin-top: 0 !important;
    margin-bottom: 12px !important;

    color: var(--pye-q-rose) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size:
        clamp(38px, 6vw, 70px) !important;

    font-weight: 500 !important;

    line-height: 1.04 !important;

    letter-spacing: -.025em;

    text-align: center;

    text-shadow:
        0 1px 0 rgba(255,255,255,.9);
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-subtitle {
    max-width: 590px;

    margin-left: auto !important;
    margin-right: auto !important;

    color: #755963 !important;

    font-size:
        clamp(16px, 2vw, 20px) !important;

    line-height: 1.55;

    text-align: center;
}


/* ---------------------------------------------------------
   Guestbook entries
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-entries {
    position: relative;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-entry {
    border:
        1px solid rgba(170,122,43,.20) !important;

    background:
        rgba(255,255,255,.95) !important;

    box-shadow:
        0 12px 32px
        rgba(96,54,67,.09) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-entry:hover {
    box-shadow:
        0 16px 38px
        rgba(96,54,67,.14) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-entry-author,
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-entry-author a {
    color:
        var(--pye-q-rose) !important;
}


/* ---------------------------------------------------------
   Branding + footer
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-brand {
    border-bottom:
        1px solid rgba(170,122,43,.16);
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-footer {
    border-top:
        1px solid rgba(170,122,43,.20);

    background:
        linear-gradient(
            180deg,
            rgba(255,250,245,.72),
            rgba(249,237,242,.94)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-footer-heart {
    color:
        var(--pye-q-gold) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-footer-text {
    color:
        #765d65 !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-quinceanera
    .pye-gb-view-hero {
        background:
            url("occasions/quinceanera/flower-large.png")
                left -18px top 18px / 82px auto no-repeat,

            url("occasions/quinceanera/flower-medium.png")
                right -10px bottom 20px / 68px auto no-repeat,

            url("occasions/quinceanera/star-small.png")
                right 48px top 42px / 13px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,250,245,.98),
                rgba(249,237,242,.95)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-quinceanera
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 310px;

        padding:
            66px
            38px
            68px !important;

        background-size:
            520px auto;
    }


    .pye-gb-style-gallery.pye-gb-occasion-quinceanera
    .pye-gb-title::before {
        width: 56px;
        height: 42px;

        margin-bottom: 8px;
    }
}


/* =========================================================
   END PYE OCCASION - QUINCEANERA V1
   ========================================================= */

/* =========================================================
   PYE OCCASION - QUINCEANERA V2
   Small visual refinements only.
   ========================================================= */


/* Guest names use the Quinceañera rose instead of Gallery blue. */
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-author-name a {
    color: var(--pye-q-rose) !important;
}


/*
 * The ornate frame was larger than the hero and its border
 * was being clipped. Keep the original image but fit the
 * complete ornament comfortably around the title area.
 */
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-view-hero-inner {
    background-size:
        min(560px, 78%) auto !important;
}


@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-quinceanera
    .pye-gb-view-hero-inner {
        background-size:
            min(420px, 90%) auto !important;
    }
}


/* =========================================================
   END PYE OCCASION - QUINCEANERA V2
   ========================================================= */

/* =========================================================
   PYE OCCASION - BABY SHOWER PINK V1

   Scoped exclusively to:
   Gallery + Baby Shower + Pink
   ========================================================= */


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink {
    --pye-baby-accent: #c96f91;
    --pye-baby-accent-dark: #98506b;
    --pye-baby-soft: #f9e8ef;
    --pye-baby-soft-2: #fff5f8;
    --pye-baby-cream: #fffaf5;
    --pye-baby-ink: #59464d;

    color: var(--pye-baby-ink);

    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(225,151,178,.15),
            transparent 25%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(255,224,234,.28),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #fffaf7 0%,
            #fff2f6 48%,
            #fff9f8 100%
        ) !important;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-hero {
    position: relative;

    overflow: hidden;

    border-top:
        1px solid rgba(201,111,145,.15);

    border-bottom:
        1px solid rgba(201,111,145,.18);

    background:
        url("occasions/baby-shower/pink-teddy.png")
            left 34px bottom 22px / 118px auto no-repeat,

        url("occasions/baby-shower/pink-bow.png")
            right 56px top 34px / 92px auto no-repeat,

        url("occasions/baby-shower/pink-booties.png")
            right 54px bottom 36px / 74px auto no-repeat,

        url("occasions/baby-shower/onesie.png")
            left 134px top 42px / 92px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255,250,247,.98),
            rgba(249,232,239,.96)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(900px, 94%);
    min-height: 350px;

    margin-left: auto;
    margin-right: auto;

    padding:
        72px
        155px
        76px !important;

    box-sizing: border-box;
}


/* ---------------------------------------------------------
   Title
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-title {
    margin-top: 0 !important;
    margin-bottom: 12px !important;

    color:
        var(--pye-baby-accent-dark) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size:
        clamp(40px, 6vw, 68px) !important;

    font-weight: 500 !important;

    line-height: 1.05 !important;

    letter-spacing: -.025em;

    text-align: center;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-title::before {
    content: "♡";

    display: block;

    margin-bottom: 8px;

    color:
        var(--pye-baby-accent) !important;

    font-size: 34px;

    line-height: 1;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-subtitle {
    max-width: 560px;

    margin-left: auto !important;
    margin-right: auto !important;

    color: #765e68 !important;

    font-size:
        clamp(16px, 2vw, 20px) !important;

    line-height: 1.55;

    text-align: center;
}


/* ---------------------------------------------------------
   Guestbook cards
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.gb-entry {
    border:
        1px solid rgba(201,111,145,.16) !important;

    border-radius:
        18px !important;

    background:
        rgba(255,255,255,.96) !important;

    box-shadow:
        0 12px 30px
        rgba(120,74,91,.08) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.gb-entry:hover {
    box-shadow:
        0 16px 36px
        rgba(120,74,91,.13) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.gb-author-name a {
    color:
        var(--pye-baby-accent-dark) !important;
}


/* ---------------------------------------------------------
   Branding + footer
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-brand {
    border-bottom:
        1px solid rgba(201,111,145,.13);
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-footer {
    border-top:
        1px solid rgba(201,111,145,.17);

    background:
        linear-gradient(
            180deg,
            rgba(255,250,247,.72),
            rgba(249,232,239,.92)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-footer-heart {
    color:
        var(--pye-baby-accent) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
.pye-gb-view-footer-text {
    color:
        #775f68 !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/pink-teddy.png")
                left -18px bottom 18px / 82px auto no-repeat,

            url("occasions/baby-shower/pink-bow.png")
                right -8px top 26px / 64px auto no-repeat,

            url("occasions/baby-shower/pink-booties.png")
                right 12px bottom 20px / 54px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,250,247,.98),
                rgba(249,232,239,.96)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 300px;

        padding:
            66px
            44px
            68px !important;
    }
}


/* =========================================================
   END PYE OCCASION - BABY SHOWER PINK V1
   ========================================================= */

/* =========================================================
   PYE OCCASION - BABY SHOWER BLUE V1

   Scoped exclusively to:
   Gallery + Baby Shower + Blue
   ========================================================= */


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue {
    --pye-baby-accent: #709ebc;
    --pye-baby-accent-dark: #527c99;
    --pye-baby-soft: #eaf4fa;
    --pye-baby-soft-2: #f5fbfe;
    --pye-baby-cream: #fffdf9;
    --pye-baby-ink: #40515d;

    color: var(--pye-baby-ink);

    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(130,181,211,.15),
            transparent 25%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(214,237,249,.30),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #fffdf9 0%,
            #eef7fc 48%,
            #fbfdfe 100%
        ) !important;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-hero {
    position: relative;

    overflow: hidden;

    border-top:
        1px solid rgba(112,158,188,.16);

    border-bottom:
        1px solid rgba(112,158,188,.20);

    background:
        url("occasions/baby-shower/blue-teddy.png")
            left 34px bottom 22px / 118px auto no-repeat,

        url("occasions/baby-shower/blue-bow.png")
            right 56px top 34px / 92px auto no-repeat,

        url("occasions/baby-shower/blue-sock.png")
            right 54px bottom 34px / 76px auto no-repeat,

        url("occasions/baby-shower/blue-bottle.png")
            left 150px top 46px / 54px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255,253,249,.98),
            rgba(234,244,250,.96)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(900px, 94%);
    min-height: 350px;

    margin-left: auto;
    margin-right: auto;

    padding:
        72px
        155px
        76px !important;

    box-sizing: border-box;
}


/* ---------------------------------------------------------
   Title
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-title {
    margin-top: 0 !important;
    margin-bottom: 12px !important;

    color:
        var(--pye-baby-accent-dark) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size:
        clamp(40px, 6vw, 68px) !important;

    font-weight: 500 !important;

    line-height: 1.05 !important;

    letter-spacing: -.025em;

    text-align: center;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-title::before {
    content: "♡";

    display: block;

    margin-bottom: 8px;

    color:
        var(--pye-baby-accent) !important;

    font-size: 34px;

    line-height: 1;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-subtitle {
    max-width: 560px;

    margin-left: auto !important;
    margin-right: auto !important;

    color: #60727e !important;

    font-size:
        clamp(16px, 2vw, 20px) !important;

    line-height: 1.55;

    text-align: center;
}


/* ---------------------------------------------------------
   Guestbook cards
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.gb-entry {
    border:
        1px solid rgba(112,158,188,.18) !important;

    border-radius:
        18px !important;

    background:
        rgba(255,255,255,.96) !important;

    box-shadow:
        0 12px 30px
        rgba(68,103,126,.08) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.gb-entry:hover {
    box-shadow:
        0 16px 36px
        rgba(68,103,126,.13) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.gb-author-name a {
    color:
        var(--pye-baby-accent-dark) !important;
}


/* ---------------------------------------------------------
   Branding + footer
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-brand {
    border-bottom:
        1px solid rgba(112,158,188,.14);
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-footer {
    border-top:
        1px solid rgba(112,158,188,.18);

    background:
        linear-gradient(
            180deg,
            rgba(255,253,249,.74),
            rgba(234,244,250,.94)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-footer-heart {
    color:
        var(--pye-baby-accent) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
.pye-gb-view-footer-text {
    color:
        #60727e !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/blue-teddy.png")
                left -18px bottom 18px / 82px auto no-repeat,

            url("occasions/baby-shower/blue-bow.png")
                right -8px top 26px / 64px auto no-repeat,

            url("occasions/baby-shower/blue-sock.png")
                right 12px bottom 20px / 54px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,249,.98),
                rgba(234,244,250,.96)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 300px;

        padding:
            66px
            44px
            68px !important;
    }
}


/* =========================================================
   END PYE OCCASION - BABY SHOWER BLUE V1
   ========================================================= */

/* =========================================================
   PYE OCCASION - BABY SHOWER NEUTRAL V1

   Scoped exclusively to:
   Gallery + Baby Shower + Neutral / Yellow
   ========================================================= */


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral {
    --pye-baby-accent: #c4a14e;
    --pye-baby-accent-dark: #8a7135;
    --pye-baby-soft: #f8f1d8;
    --pye-baby-soft-2: #fffaf0;
    --pye-baby-cream: #fffdf7;
    --pye-baby-ink: #554f40;

    color: var(--pye-baby-ink);

    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(222,198,117,.16),
            transparent 25%
        ),
        radial-gradient(
            circle at 92% 12%,
            rgba(248,237,193,.32),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #fffdf7 0%,
            #faf4dc 48%,
            #fffdf8 100%
        ) !important;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-hero {
    position: relative;

    overflow: hidden;

    border-top:
        1px solid rgba(196,161,78,.17);

    border-bottom:
        1px solid rgba(196,161,78,.21);

    background:
        url("occasions/baby-shower/yellow-teddy.png")
            left 34px bottom 22px / 118px auto no-repeat,

        url("occasions/baby-shower/yellow-bow.png")
            right 56px top 34px / 92px auto no-repeat,

        url("occasions/baby-shower/yellow-booties.png")
            right 54px bottom 34px / 76px auto no-repeat,

        url("occasions/baby-shower/neutral-bottle.png")
            left 150px top 46px / 54px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255,253,247,.98),
            rgba(248,241,216,.96)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(900px, 94%);
    min-height: 350px;

    margin-left: auto;
    margin-right: auto;

    padding:
        72px
        155px
        76px !important;

    box-sizing: border-box;
}


/* ---------------------------------------------------------
   Title
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-title {
    margin-top: 0 !important;
    margin-bottom: 12px !important;

    color:
        var(--pye-baby-accent-dark) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size:
        clamp(40px, 6vw, 68px) !important;

    font-weight: 500 !important;

    line-height: 1.05 !important;

    letter-spacing: -.025em;

    text-align: center;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-title::before {
    content: "♡";

    display: block;

    margin-bottom: 8px;

    color:
        var(--pye-baby-accent) !important;

    font-size: 34px;

    line-height: 1;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-subtitle {
    max-width: 560px;

    margin-left: auto !important;
    margin-right: auto !important;

    color: #716955 !important;

    font-size:
        clamp(16px, 2vw, 20px) !important;

    line-height: 1.55;

    text-align: center;
}


/* ---------------------------------------------------------
   Guestbook cards
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.gb-entry {
    border:
        1px solid rgba(196,161,78,.19) !important;

    border-radius:
        18px !important;

    background:
        rgba(255,255,255,.96) !important;

    box-shadow:
        0 12px 30px
        rgba(103,88,50,.08) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.gb-entry:hover {
    box-shadow:
        0 16px 36px
        rgba(103,88,50,.13) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.gb-author-name a {
    color:
        var(--pye-baby-accent-dark) !important;
}


/* ---------------------------------------------------------
   Branding + footer
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-brand {
    border-bottom:
        1px solid rgba(196,161,78,.14);
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-footer {
    border-top:
        1px solid rgba(196,161,78,.19);

    background:
        linear-gradient(
            180deg,
            rgba(255,253,247,.74),
            rgba(248,241,216,.94)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-footer-heart {
    color:
        var(--pye-baby-accent) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
.pye-gb-view-footer-text {
    color:
        #716955 !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/yellow-teddy.png")
                left -18px bottom 18px / 82px auto no-repeat,

            url("occasions/baby-shower/yellow-bow.png")
                right -8px top 26px / 64px auto no-repeat,

            url("occasions/baby-shower/yellow-booties.png")
                right 12px bottom 20px / 54px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,247,.98),
                rgba(248,241,216,.96)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 300px;

        padding:
            66px
            44px
            68px !important;
    }
}


/* =========================================================
   END PYE OCCASION - BABY SHOWER NEUTRAL V1
   ========================================================= */

/* =========================================================
   PYE OCCASION - BRIDAL SHOWER V1

   Scoped exclusively to:
   Gallery + Bridal Shower
   ========================================================= */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower {
    --pye-bridal-rose: #b76f79;
    --pye-bridal-rose-dark: #8f505b;
    --pye-bridal-blush: #f8e8e7;
    --pye-bridal-cream: #fffaf6;
    --pye-bridal-gold: #b79562;
    --pye-bridal-ink: #51484a;

    color: var(--pye-bridal-ink);

    background:
        radial-gradient(
            circle at 10% 5%,
            rgba(213, 150, 155, .12),
            transparent 26%
        ),
        radial-gradient(
            circle at 92% 8%,
            rgba(183, 149, 98, .08),
            transparent 24%
        ),
        linear-gradient(
            180deg,
            #fffaf6 0%,
            #f9e9e8 48%,
            #fffaf7 100%
        ) !important;
}


/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-hero {
    position: relative;
    overflow: hidden;

    border-top:
        1px solid rgba(183, 111, 121, .13);

    border-bottom:
        1px solid rgba(183, 111, 121, .20);

    background:
        url("occasions/bridal-shower/layer-flower-bouquet.png")
            left 36px bottom 18px / 170px auto no-repeat,

        url("occasions/bridal-shower/layer-party-banner.png")
            center 26px / 310px auto no-repeat,

        url("occasions/bridal-shower/layer-champagne-flutes.png")
            right 64px bottom 46px / 86px auto no-repeat,

        url("occasions/bridal-shower/layer-pink-envelope.png")
            left 205px top 82px / 72px auto no-repeat,

        url("occasions/bridal-shower/layer-heart-shaped-gift-box.png")
            right 195px top 90px / 74px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255, 250, 246, .98),
            rgba(248, 232, 231, .96)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(940px, 94%);
    min-height: 390px;

    margin-left: auto;
    margin-right: auto;

    padding:
        145px
        175px
        72px !important;

    box-sizing: border-box;
}


/* ---------------------------------------------------------
   Title
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-title {
    margin-top: 0 !important;
    margin-bottom: 12px !important;

    color:
        var(--pye-bridal-rose-dark) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size:
        clamp(42px, 6vw, 70px) !important;

    font-weight: 500 !important;

    line-height: 1.04 !important;

    letter-spacing: -.025em;

    text-align: center;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-title::after {
    content: "♡";

    display: block;

    margin-top: 10px;

    color:
        var(--pye-bridal-gold) !important;

    font-size: 27px;

    line-height: 1;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-subtitle {
    max-width: 590px;

    margin-left: auto !important;
    margin-right: auto !important;

    color: #6e5d60 !important;

    font-size:
        clamp(16px, 2vw, 20px) !important;

    line-height: 1.55;

    text-align: center;
}


/* ---------------------------------------------------------
   Guestbook cards
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.gb-entry {
    border:
        1px solid rgba(183, 111, 121, .16) !important;

    border-radius:
        18px !important;

    background:
        rgba(255, 255, 255, .97) !important;

    box-shadow:
        0 12px 30px
        rgba(101, 72, 76, .08) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.gb-entry:hover {
    box-shadow:
        0 16px 36px
        rgba(101, 72, 76, .13) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.gb-author-name a {
    color:
        var(--pye-bridal-rose-dark) !important;
}


/* ---------------------------------------------------------
   Branding + footer
   --------------------------------------------------------- */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-brand {
    border-bottom:
        1px solid rgba(183, 111, 121, .12);
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-footer {
    border-top:
        1px solid rgba(183, 111, 121, .17);

    background:
        linear-gradient(
            180deg,
            rgba(255, 250, 246, .70),
            rgba(248, 232, 231, .92)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-footer-heart {
    color:
        var(--pye-bridal-rose) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-footer-text {
    color:
        #6e5d60 !important;
}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-view-hero {
        background:
            url("occasions/bridal-shower/layer-flower-bouquet.png")
                left -22px bottom 16px / 105px auto no-repeat,

            url("occasions/bridal-shower/layer-party-banner.png")
                center 24px / 225px auto no-repeat,

            url("occasions/bridal-shower/layer-champagne-flutes.png")
                right -4px bottom 22px / 58px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255, 250, 246, .98),
                rgba(248, 232, 231, .96)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 340px;

        padding:
            122px
            44px
            70px !important;
    }
}


/* =========================================================
   END PYE OCCASION - BRIDAL SHOWER V1
   ========================================================= */

/* =========================================================
   PYE OCCASION - BRIDAL SHOWER V1.1 GEOMETRY FIX
   Correct actual hero-inner class
   ========================================================= */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-hero-inner {
    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: center;

    width: min(940px, 94%);
    min-height: 390px;

    margin-left: auto;
    margin-right: auto;

    padding:
        150px
        175px
        70px !important;

    box-sizing: border-box;
}


@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-hero-inner {
        width: 100%;
        min-height: 340px;

        padding:
            120px
            44px
            68px !important;
    }
}


/* =========================================================
   END PYE OCCASION - BRIDAL SHOWER V1.1 GEOMETRY FIX
   ========================================================= */

/* =========================================================
   PYE OCCASION - BRIDAL SHOWER V1.2 POLISH
   ========================================================= */

.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-view-hero {
    background:
        url("occasions/bridal-shower/layer-flower-bouquet.png")
            left 28px center / 195px auto no-repeat,

        url("occasions/bridal-shower/layer-party-banner.png")
            center 24px / 300px auto no-repeat,

        url("occasions/bridal-shower/layer-champagne-flutes.png")
            right 58px center / 72px auto no-repeat,

        url("occasions/bridal-shower/layer-pink-envelope.png")
            right 170px top 64px / 64px auto no-repeat,

        url("occasions/bridal-shower/layer-heart-shaped-gift-box.png")
            right 155px bottom 52px / 66px auto no-repeat,

        linear-gradient(
            135deg,
            rgba(255,250,246,.98),
            rgba(248,232,231,.96)
        ) !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-hero-inner {
    min-height: 400px;

    padding:
        150px
        190px
        68px !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-title {
    margin-bottom: 10px !important;
}


.pye-gb-style-gallery.pye-gb-occasion-bridal-shower
.pye-gb-title::after {
    margin-top: 8px;
}


/* =========================================================
   END PYE OCCASION - BRIDAL SHOWER V1.2 POLISH
   ========================================================= */

/* =========================================================
   PYE OCCASION - BRIDAL SHOWER MOBILE V1.3
   ========================================================= */

@media (max-width: 720px) {

    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-view-hero {
        background:
            url("occasions/bridal-shower/layer-party-banner.png")
                center 26px / 210px auto no-repeat,

            url("occasions/bridal-shower/layer-flower-bouquet.png")
                left 12px bottom 20px / 92px auto no-repeat,

            url("occasions/bridal-shower/layer-champagne-flutes.png")
                right 14px bottom 24px / 48px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,250,246,.98),
                rgba(248,232,231,.96)
            ) !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-hero-inner {
        width: 100% !important;
        min-height: 360px !important;

        padding:
            120px
            28px
            82px !important;

        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;

        text-align: center !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-title {
        width: 100% !important;
        max-width: none !important;

        margin: 0 auto 10px !important;

        font-size: 36px !important;
        line-height: 1.08 !important;

        text-align: center !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-title::after {
        margin-top: 8px !important;
        font-size: 24px !important;
    }


    .pye-gb-style-gallery.pye-gb-occasion-bridal-shower
    .pye-gb-subtitle {
        width: 100% !important;
        max-width: 270px !important;

        margin-left: auto !important;
        margin-right: auto !important;

        font-size: 15px !important;
        line-height: 1.45 !important;

        text-align: center !important;
    }
}


/* =========================================================
   END PYE OCCASION - BRIDAL SHOWER MOBILE V1.3
   ========================================================= */


/* === PYE QUINCEANERA PHOTO ASPECT FIX V3 START === */

/*
 * Quinceañera attendee portraits are 1024x1536 (2:3).
 * Use their actual photographic ratio instead of Gallery's
 * global 4:3 landscape crop.
 */

.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.gb-entry:has(.pye-gb-entry-photo-wrap)
.pye-gb-entry-photo-wrap,
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-entry-photo-wrap {
    width: 100% !important;
    height: auto !important;

    aspect-ratio: 2 / 3 !important;

    margin-top: 14px !important;
    padding: 0 !important;

    overflow: hidden !important;
    background: transparent !important;
}

/*
 * QG01 is the horizontal Sofía + damas group photograph.
 */
.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-entry-photo-wrap:has(
    img[src*="pye-demo-QG01"]
) {
    aspect-ratio: 3 / 2 !important;
}

.pye-gb-style-gallery.pye-gb-occasion-quinceanera
.pye-gb-entry-photo {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    min-height: 0 !important;
    max-height: none !important;

    object-fit: cover !important;
    object-position: center center !important;

    margin: 0 !important;
}

/* === PYE QUINCEANERA PHOTO ASPECT FIX V3 END === */


/* === PYE CUSTOM CORPORATE COLOR SYSTEM V1 START === */

/*
 * Custom / Corporate colors are supplied as inline CSS variables
 * by public-view.php:
 *
 * --pye-custom-background
 * --pye-custom-accent
 */

.pye-gb-style-gallery.pye-gb-occasion-custom-corporate {
    background:
        var(--pye-custom-background, #f4f7fb) !important;
}


/* Give the hero the selected brand background as well. */
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.pye-gb-view-hero {
    background:
        var(--pye-custom-background, #f4f7fb) !important;
}


/* Event title follows the selected accent. */
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.pye-gb-title {
    color:
        var(--pye-custom-accent, #1f4b73) !important;
}


/* Guest names carry the brand accent. */
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.gb-author-name,
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.gb-author-name a,
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.gb-entry-author,
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.gb-entry-author a {
    color:
        var(--pye-custom-accent, #1f4b73) !important;
}


/* Subtle accent around memory cards. */
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.gb-entry {
    border-color:
        color-mix(
            in srgb,
            var(--pye-custom-accent, #1f4b73) 22%,
            white
        ) !important;
}


/* Corporate footer follows the selected palette. */
.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.pye-gb-view-footer {
    background:
        var(--pye-custom-background, #f4f7fb) !important;
}

.pye-gb-style-gallery.pye-gb-occasion-custom-corporate
.pye-gb-view-footer-heart {
    color:
        var(--pye-custom-accent, #1f4b73) !important;
}

/* === PYE CUSTOM CORPORATE COLOR SYSTEM V1 END === */


/* === PYE WEDDING MOBILE READABILITY V1 START === */

@media (max-width: 720px) {

    /*
     * Wedding only.
     *
     * Preserve the floral artwork while creating a much
     * quieter central reading zone for the couple's names.
     */
    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-view-hero {
        padding-top: 46px !important;
        padding-bottom: 46px !important;
    }


    /*
     * Soft ivory glow rather than a visible rectangular card.
     * This separates the wording from petals and stems.
     */
    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-view-hero-inner {
        position: relative;
        z-index: 3;

        padding: 24px 16px !important;

        background:
            radial-gradient(
                ellipse at center,
                rgba(255, 252, 248, .96) 0%,
                rgba(255, 250, 246, .88) 42%,
                rgba(255, 250, 246, .62) 63%,
                rgba(255, 250, 246, 0) 82%
            ) !important;
    }


    /*
     * Long names should remain elegant rather than dominating
     * the entire phone screen.
     */
    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-title {
        max-width: 310px;
        margin-left: auto !important;
        margin-right: auto !important;

        font-size: 34px !important;
        line-height: 1.08 !important;
        letter-spacing: -.02em;
    }


    /*
     * Increase subtitle contrast slightly on the photograph.
     */
    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-subtitle {
        max-width: 290px;
        margin-left: auto !important;
        margin-right: auto !important;

        color: #756c66 !important;
        font-size: 15px !important;
        line-height: 1.5 !important;
    }


    /*
     * Keep the flowers prominent, but prevent them from
     * overpowering the center on a narrow screen.
     */
    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-botanical-backdrop::before {
        opacity: .56 !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-wedding
    .pye-gb-botanical-backdrop::after {
        opacity: .22 !important;
    }
}

/* === PYE WEDDING MOBILE READABILITY V1 END === */

/* === PYE BABY SHOWER MOBILE READABILITY V1 START === */

@media (max-width: 720px) {

    /*
     * Baby Shower mobile cleanup:
     * - smaller decorations
     * - push decorations farther outward
     * - create a quieter center for the title
     * - desktop remains unchanged
     */

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/pink-teddy.png")
                left -26px bottom 12px / 64px auto no-repeat,

            url("occasions/baby-shower/pink-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/pink-booties.png")
                right 4px bottom 14px / 42px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,250,247,.98),
                rgba(249,232,239,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/blue-teddy.png")
                left -26px bottom 12px / 64px auto no-repeat,

            url("occasions/baby-shower/blue-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/blue-sock.png")
                right 4px bottom 14px / 42px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,249,.98),
                rgba(234,244,250,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/yellow-teddy.png")
                left -26px bottom 12px / 64px auto no-repeat,

            url("occasions/baby-shower/yellow-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/yellow-booties.png")
                right 4px bottom 14px / 42px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,247,.98),
                rgba(248,241,216,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero-inner,
    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero-inner,
    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 280px;
        padding: 62px 56px 64px !important;
    }
}

/* === PYE BABY SHOWER MOBILE READABILITY V1 END === */


/* === PYE BABY SHOWER MOBILE READABILITY V2 START === */

@media (max-width: 720px) {

    /*
     * Baby Shower mobile cleanup V2:
     * - keep all three variants visually identical except color/art
     * - move side decorations lower and farther outward
     * - preserve title/subtitle area as the quiet center
     */

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/pink-teddy.png")
                left -34px bottom 0px / 58px auto no-repeat,

            url("occasions/baby-shower/pink-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/pink-booties.png")
                right -6px bottom 4px / 38px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,250,247,.98),
                rgba(249,232,239,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/blue-teddy.png")
                left -34px bottom 0px / 58px auto no-repeat,

            url("occasions/baby-shower/blue-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/blue-sock.png")
                right -6px bottom 4px / 38px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,249,.98),
                rgba(234,244,250,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero {
        background:
            url("occasions/baby-shower/yellow-teddy.png")
                left -34px bottom 0px / 58px auto no-repeat,

            url("occasions/baby-shower/yellow-bow.png")
                right -16px top 18px / 48px auto no-repeat,

            url("occasions/baby-shower/yellow-booties.png")
                right -6px bottom 4px / 38px auto no-repeat,

            linear-gradient(
                135deg,
                rgba(255,253,247,.98),
                rgba(248,241,216,.96)
            ) !important;
    }

    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-pink
    .pye-gb-view-hero-inner,
    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-blue
    .pye-gb-view-hero-inner,
    .pye-gb-style-gallery.pye-gb-occasion-baby-shower.pye-gb-baby-neutral
    .pye-gb-view-hero-inner {
        width: 100%;
        min-height: 280px;
        padding: 62px 56px 64px !important;
    }
}

/* === PYE BABY SHOWER MOBILE READABILITY V2 END === */
