/* ================================================
   First Year ("Prva godina") — Standard Kids Birthday Theme
   A soft first-birthday invitation.
   Palette: blush · warm gold · soft teal · cream
   Fonts:   Fredoka (display / name) + Quicksand (body)
   Style:   Arched baby photo, balloon clusters, "U brojkama" milestone card,
            a year told in three photos.
   ================================================ */

/* Google Fonts' Fredoka lacks some Serbian Latin letters (Č č Ć ć Đ đ), so the browser
   swapped in another font mid-name. 'Fredoka Sr' supplies just those letters, built from
   Fredoka's own glyphs (D/d + crossbar, C/c + its own caron/acute marks), and is stacked
   in front of Fredoka with a matching unicode-range. Inlined so print cards get it too. */
@font-face {
    font-family: 'Fredoka Sr';
    src: url(data:font/woff;base64,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) format('woff');
    font-weight: 400;
    unicode-range: U+0106, U+0107, U+010C, U+010D, U+0110, U+0111;
}
@font-face {
    font-family: 'Fredoka Sr';
    src: url(data:font/woff;base64,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) format('woff');
    font-weight: 500;
    unicode-range: U+0106, U+0107, U+010C, U+010D, U+0110, U+0111;
}
@font-face {
    font-family: 'Fredoka Sr';
    src: url(data:font/woff;base64,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) format('woff');
    font-weight: 600;
    unicode-range: U+0106, U+0107, U+010C, U+010D, U+0110, U+0111;
}
@font-face {
    font-family: 'Fredoka Sr';
    src: url(data:font/woff;base64,d09GRgABAAAAAAcoAAsAAAAACeQAAgBCAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABgAAAAEoAAABgd1yBn2NtYXAAAAIAAAAAPQAAAEgCRgKZZ2FzcAAAByAAAAAIAAAACAAAABBnbHlmAAACYAAAAvMAAAO0vcXAz2hlYWQAAAEIAAAANgAAADYcpEmraGhlYQAAAUAAAAAgAAAAJAZt/3RobXR4AAABzAAAADQAAAA8GNwCw2xvY2EAAAJAAAAAIAAAACAJUwo8bWF4cAAAAWAAAAAdAAAAIAAZAJZuYW1lAAAFVAAAAbUAAAPMWPqJo3Bvc3QAAAcMAAAAEwAAACD/nwAyAAEAAAACAEKTfb/5Xw889QABA+gAAAAA1E3c2AAAAADm4Cgi/9//7QKBA58AAAAGAAIAAAAAAAB4nGNgZGBgPvdfhIGBqf///b8HmfYxAEVQAD8Ap9AG43icY2BkYGDgZ7BjYGYIY2BhAPEQgImBEQAPmQCwAAAAeJxjYGGSZdrDwMrAwNTFFMHAwOANoRnjGIwYdRhQAQsyp7g4JZXhACMboyDzuf8iDAzMzxn+AIUZQXKMX4BmMjAoMLAAAO19C+oAAHicY5JnMGIqZ+Bj6meQYfzOIMmkxcDPwMBQB8SBIHGwGJRmYPh/H6SOgYFRAqQOABkXCbJ4nB2KUQqAMABCn21UH2ts0FG6/8WCzEL0CQosQInPpH5WrnCPsmnToWmnrWoatstzZ/++5AuN/gLCyQffAAAAAAAAFQBsAJwA6AE2AVIBfAGIAZMBnwGqAbcBwgHPAdp4nE2STWsTURSGzz3pTKaZzDSTuTPJTNOk89GZJDXT5msiQu2HtaFYY0tFwQoal65cCC2C1f4DceNO/4DiRqnoStCfILS4qHStGxeiCxvvpG0QBgYOz733Pc85gFADn/zAZxCDOMCmYikTlmLVyIejB2Tt6LWP9/4+aSIPQEDu/cC7+B5mAC7aQazZOB+r13Q9o+sa5eM879ieH6Bjy6jRPNZrYdgKQ0acADKSLf92d61aXe3eKdU7VZ46okgdRcoqcd0rmDOh7YQzhumOJUVTUmxVFB0aDzqqEV7burJy/2rDMEaHpIIp5UZyZlLkJFEtXZiaXiipwylBSObGlLGkkU8O5bKAkOv9xh18AxQKANdtz2sqjTDM1Gt5Fk9Gx48CNhue5zibk15C8IKX7e1uq9V9tNxZq6xUKivBqmCWs8jp5VES3tpuLz/utnYrl4JgpcJsGL2f5Bv5A42+DWQ28H8bjh2p4HmN6nr0Uv1URV9EobSxWqtd2Sh6Z12BOgnRdVNZmlGoTamlymqCyIakuLrG5cZizjnZmr8zP9eds1Iql2T9jyotURappWk2e0uQjZxZ8dOoptkUR1jfSdwDFZwo2/VBtjxmdBn9065PsmXY0CIxUXZNoTz/q7I+73kL62eml4IMIXrQNtVxqo5rLBi1d4vFOOdWgglBmIiX2jdr0zfa5dLSjenqxvLkmwhhrBV9b7MmrjN1Zinz9wv7Rxu0jQJ5hfsgAayzd72w1Yqc8PGPaTMhpdx3aXNYTtso5AvlkhjmC8WyGJ1bQ40c4lfIAMyzneofidvRwjm+5/UrxLgsucW0khrfiUmCIONOIZVKO+NJfGlzgjrhVBOTHDc53LBcyg31esfbHHuBNrsfmDceXPjE6v254ldWj7E6An8IA/r5gOagCJ8H9P6A5ijL2zsgU/CdPIxqsaalWUQiU50Ou6d3cLyVjMc+z9oDQrK4iLP4NOIJ40mW+LjY6bD7o2nO4h7jh/o8M/cPhRKlkgB4nJ1Sy07CUBA9LWjEB1HDRlddEU0UxBgXuFITEhMUFeNawFqq2JK2aPwVv8BvMK5d+BvuXRtXnju9SKmuDCn3zNx5nDlzAczjFRkY2RyAJ34xNlCgFWMTebxonMEG3jTOJmImsIwvjSexaBQ0nkLVKGqcQ8G40HgGRSPSeDaB5wzLeNQ4jy3zWeP5RK8FTJsfGi8hb35iHz76eEAAFw66iGBhk0wr2CY6o8fmWeO9jUvG3qBF+5i2j2v6OpKxiwHPLn0BQtorUili5RBVlPlzWF9FDNBGiVk+buntstoVscc7l7ic6rSOBu9srP5i0KR9So/Dij16ArIukbdivsOuIWNtonS9+s+c5/Qrtq70txL54zmq0yGjevR50nuPkeo/oOUx7p2Ra+KxpdIR/ZHM5v3pG2oTK5PWYKiO0t4VNWv6Vk3tMzbCvUysNhNH9Hh2pFMozC2q4okCAXGkt9jEAee3qGlfsxpVro9VUNOk9amQWUUmHzEb7ztk08IdP1f20hbdLDKO92+JgjW+mBPBEVWwUoqErKneY5++kB1DqVWS1+XwvsH8+r9yRtsf2/E301eV6wAAAHicY2BmAIP/cxiMGLAAACqDAdEAAAEAAf//AA8=) format('woff');
    font-weight: 700;
    unicode-range: U+0106, U+0107, U+010C, U+010D, U+0110, U+0111;
}


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

:root {
    --blush:       #e7a9b0;
    --blush-deep:  #cf7f8c;
    --blush-soft:  #f6e4e6;
    --gold:        #e7b95c;
    --gold-deep:   #cf9d42;
    --teal:        #a8cbc6;
    --teal-deep:   #7fa9a3;
    --ink:         #4a3f42;
    --text:        #6b5f61;
    --muted:       #9b8f91;
    --cream:       #fbf6f0;
    --cream-alt:   #fdf3ef;
    --white:       #ffffff;
    --border:      rgba(74, 63, 66, .12);
    --accent-color: #e7a9b0;
    --radius:      18px;
    --btn-radius:  50px;

    --ff-display: 'Fredoka Sr', 'Fredoka', 'Trebuchet MS', Verdana, sans-serif;
    --ff-body:    'Quicksand', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

    --dot-line: linear-gradient(90deg, transparent, var(--blush) 22%, var(--gold) 78%, transparent);

    --card-shadow: 0 1px 2px rgba(74, 63, 66, .05), 0 10px 26px rgba(74, 63, 66, .08), 0 40px 70px rgba(74, 63, 66, .12);
    --card-shadow-sm: 0 1px 2px rgba(74, 63, 66, .05), 0 12px 28px rgba(74, 63, 66, .09);
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--ff-body);
    color: var(--text);
    background:
        radial-gradient(circle at 1px 1px, rgba(74, 63, 66, .028) 1px, transparent 0) 0 0 / 24px 24px,
        var(--cream);
    line-height: 1.7;
    overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: var(--blush-deep); text-decoration: none; transition: color .2s; }
a:hover { color: var(--blush); }

/* ── Containers ─────────────────────────────── */
.b1-container     { max-width: 1080px; margin: 0 auto; padding: 0 1.25rem; }
.b1-container--sm { max-width: 680px; }

/* Alternating section backgrounds, computed from what actually renders. */
.b1-alt-sections > * { background: var(--white); }
.b1-alt-sections > *:nth-child(even) { background: var(--cream-alt); }

/* Consistent rhythm for shared section components (class hook only from this theme). */
.b1-alt-sections .b1-stats,
.b1-alt-sections .b1-countdown,
.b1-alt-sections .b1-audio,
.b1-alt-sections .b1-story,
.b1-alt-sections .b1-gallery,
.b1-alt-sections .b1-program,
.b1-alt-sections .b1-dress-code,
.b1-alt-sections .b1-good-to-know,
.b1-alt-sections .b1-location,
.b1-alt-sections .b1-accommodation,
.b1-alt-sections .b1-gallery-upload,
.b1-alt-sections .b1-guest-wall,
.b1-alt-sections .b1-album,
.b1-alt-sections .b1-closing,
.b1-alt-sections .b1-rsvp {
    padding: 4.5rem 1rem;
}

/* ── Section helpers ─────────────────────────── */
.b1-section-title {
    position: relative;
    font-family: var(--ff-display);
    font-size: clamp(1.75rem, 4.4vw, 2.5rem);
    font-weight: 600;
    color: var(--ink);
    text-align: center;
    line-height: 1.2;
    padding-bottom: 1.25rem;
    margin-bottom: 1.15rem;
}
.b1-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 58px;
    height: 3px;
    border-radius: 3px;
    background: var(--dot-line);
}
.b1-section-title::before {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 9px;
    height: 9px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: var(--blush);
    z-index: 1;
}

.b1-eyebrow {
    font-family: var(--ff-display);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: var(--blush-deep);
    text-align: center;
    margin-bottom: .6rem;
}

/* ── Floating topbar ─────────────────────────── */
.b1-topbar {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 200;
    padding: .85rem 1.1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    transition: background .3s ease, backdrop-filter .3s ease, box-shadow .3s ease;
}
.b1-topbar__brand {
    font-family: var(--ff-display);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    transition: color .3s ease;
}
@media (min-width: 601px) {
    .b1-topbar.scrolled {
        background: color-mix(in srgb, var(--cream) 92%, transparent);
        backdrop-filter: blur(10px);
        box-shadow: 0 1px 0 var(--border);
    }
}
.b1-topbar__links {
    display: flex;
    gap: 1.5rem;
    margin-left: auto;
}
.b1-topbar__links a {
    position: relative;
    font-family: var(--ff-display);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ink);
    padding-bottom: .2rem;
}
.b1-topbar__links a::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: var(--blush);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .25s ease;
}
.b1-topbar__links a:hover::after { transform: scaleX(1); transform-origin: left; }

.b1-topbar__toggle { display: none; }

@media (max-width: 600px) {
    .b1-topbar__toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 4px;
        width: 2.4rem;
        height: 2.4rem;
        border: 0;
        border-radius: 999px;
        background: color-mix(in srgb, var(--blush) 22%, var(--white));
        cursor: pointer;
        margin-left: auto;
    }
    .b1-topbar__toggle span {
        display: block;
        width: 17px;
        height: 2px;
        margin: 0 auto;
        background: var(--blush-deep);
        border-radius: 2px;
        transition: transform .25s ease, opacity .2s ease;
    }
    .b1-topbar__toggle.is-active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .b1-topbar__toggle.is-active span:nth-child(2) { opacity: 0; }
    .b1-topbar__toggle.is-active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    .b1-topbar__links {
        position: absolute;
        top: calc(100% + .5rem);
        right: 1.1rem;
        left: 1.1rem;
        flex-direction: column;
        gap: 0;
        background: var(--white);
        border-radius: 14px;
        box-shadow: var(--card-shadow-sm);
        padding: .35rem;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-6px);
        transition: opacity .2s ease, transform .2s ease, visibility .2s;
    }
    .b1-topbar__links.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
    .b1-topbar__links a { padding: .7rem .85rem; border-radius: 10px; }
    .b1-topbar__links a:hover { background: var(--cream); }
    .b1-topbar__links a::after { display: none; }
}

/* Demo-only Basic/Standard switch + close + cart — shared look, positioned here. */
.dpb-switch, .dpb-fab { position: fixed; bottom: 1rem; z-index: 9999; }
.dpb-fab { right: 1rem; }
.dpb-close { right: 4rem; }
.dpb-switch {
    left: 1rem;
    display: flex;
    align-items: center;
    height: 2.5rem;
    padding: 0 .25rem;
}
.dpb-switch a {
    display: inline-flex;
    align-items: center;
    height: 2rem;
    padding: 0 .9rem;
    font-size: 12px;
}

/* ── Hero (pattern A: arched photo + text on cream ground) ── */
.b1-hero {
    position: relative;
    padding: 7.5rem 0 5.5rem;
    background:
        radial-gradient(ellipse 70% 50% at 78% 12%, color-mix(in srgb, var(--blush) 22%, transparent), transparent),
        radial-gradient(ellipse 60% 45% at 12% 30%, color-mix(in srgb, var(--teal) 22%, transparent), transparent),
        var(--cream);
    overflow: hidden;
}

.b1-hero__balloons {
    position: absolute;
    top: 3.5rem;
    right: -1.5rem;
    width: min(46vw, 320px);
    pointer-events: none;
    opacity: .5;
}
.b1-hero__balloons svg { width: 100%; height: auto; display: block; }
.b1-hero__balloon--rose { color: var(--blush); }
.b1-hero__balloon--gold { color: var(--gold); }
.b1-hero__balloon--teal { color: var(--teal); }

.b1-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-items: center;
    gap: 2.5rem;
}

.b1-hero__media {
    position: relative;
    justify-self: center;
}
.b1-hero__frame {
    width: min(20rem, 62vw);
    aspect-ratio: 4 / 5;
    border-radius: 999px 999px 24px 24px;
    overflow: hidden;
    background: var(--teal);
    box-shadow:
        0 0 0 8px var(--white),
        0 0 0 9px color-mix(in srgb, var(--blush) 45%, transparent),
        0 26px 55px rgba(74, 63, 66, .2);
}
.b1-hero__img { width: 100%; height: 100%; object-fit: cover; }
.b1-hero__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3.5rem;
    background: linear-gradient(150deg, var(--teal), var(--blush));
}
.b1-hero__seal {
    position: absolute;
    right: -14px;
    bottom: 22px;
    width: 66px;
    height: 66px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--gold) 60%, white), var(--gold) 55%, var(--gold-deep) 100%);
    box-shadow: 0 8px 20px rgba(207, 157, 66, .4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--ff-display);
    font-size: 2rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}
.b1-hero__seal::before {
    content: '';
    position: absolute;
    inset: 5px;
    border: 2px dashed rgba(255, 255, 255, .6);
    border-radius: 50%;
}

.b1-hero__eyebrow {
    font-family: var(--ff-display);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .26em;
    text-transform: uppercase;
    color: var(--blush-deep);
    margin-bottom: .6rem;
}
.b1-hero__name {
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: clamp(2.6rem, 8vw, 4rem);
    line-height: 1.05;
    color: var(--ink);
}
.b1-hero__tagline {
    font-family: var(--ff-display);
    font-size: clamp(1rem, 3vw, 1.35rem);
    color: var(--teal-deep);
    margin: .35rem 0 1.35rem;
}
.b1-hero__date-pill {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 50px;
    padding: .5rem 1.15rem;
    box-shadow: var(--card-shadow-sm);
    margin-bottom: .85rem;
}
.b1-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.35rem;
    font-size: .9rem;
    color: var(--text);
}

@media (max-width: 760px) {
    .b1-hero { padding: 7rem 0 4.5rem; }
    .b1-hero__inner { grid-template-columns: 1fr; text-align: center; gap: 1.75rem; }
    .b1-hero__meta { justify-content: center; }
    .b1-hero__balloons { opacity: .32; width: min(60vw, 240px); }
}

/* ── U brojkama (milestone stats) ──────────── */
.b1-stats { text-align: center; }
.b1-stats__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 1.75rem;
}
.b1-stats__card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 1.6rem 1rem;
    box-shadow: var(--card-shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .2rem;
}
.b1-stats__icon { font-size: 1.5rem; }
.b1-stats__value {
    font-family: var(--ff-display);
    font-weight: 700;
    font-size: 2rem;
    color: var(--blush-deep);
    font-variant-numeric: lining-nums tabular-nums;
    line-height: 1.1;
}
.b1-stats__value--word { font-size: 1.4rem; }
.b1-stats__label {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--muted);
    text-transform: lowercase;
}
@media (max-width: 560px) {
    .b1-stats__grid { grid-template-columns: 1fr; max-width: 18rem; margin-inline: auto; }
}

/* ── Note ──────────────────────────────────── */
.b1-note { background: var(--white); padding: 4.25rem 1rem; }
.b1-note__card {
    position: relative;
    background: var(--cream);
    border-radius: var(--radius);
    padding: 2.5rem 2rem;
    text-align: center;
    box-shadow: var(--card-shadow-sm);
}
.b1-note__card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    border-radius: var(--radius) var(--radius) 0 0;
    background: var(--dot-line);
}
.b1-note__text {
    font-family: var(--ff-display);
    font-size: 1.15rem;
    color: var(--ink);
    line-height: 1.7;
}

/* ── Countdown ─────────────────────────────── */
.b1-countdown { text-align: center; }
.b1-countdown__timer {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.6rem;
}
.b1-countdown__unit {
    min-width: 5rem;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1.1rem .75rem;
    box-shadow: var(--card-shadow-sm);
}
.b1-countdown__number {
    display: block;
    font-family: var(--ff-display);
    font-size: 2rem;
    font-weight: 700;
    color: var(--blush-deep);
    font-variant-numeric: lining-nums tabular-nums;
}
.b1-countdown__label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted);
}

/* ── Godina u tri slike (story) ────────────── */
.b1-story { text-align: center; }
.b1-story__intro { max-width: 34rem; margin: .5rem auto 0; color: var(--text); }
.b1-story__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
    margin-top: 2.25rem;
}
.b1-story__card {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--card-shadow-sm);
    text-align: left;
    display: flex;
    flex-direction: column;
}
.b1-story__media { position: relative; }
.b1-story__img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
}
.b1-story__emoji {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    font-size: 2.5rem;
    background: linear-gradient(150deg, var(--teal), var(--blush));
}
.b1-story__chip {
    position: absolute;
    left: .7rem;
    bottom: .7rem;
    font-family: var(--ff-display);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #fff;
    background: color-mix(in srgb, var(--blush-deep) 90%, black 4%);
    border-radius: 50px;
    padding: .25rem .7rem;
}
.b1-story__title {
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--ink);
    padding: 1rem 1.1rem .35rem;
}
.b1-story__desc {
    font-size: .9rem;
    color: var(--text);
    padding: 0 1.1rem 1.15rem;
}
@media (max-width: 640px) {
    .b1-story__grid { grid-template-columns: 1fr; max-width: 22rem; margin-inline: auto; }
}

/* ── Party plan timeline ───────────────────── */
.b1-program { text-align: center; }
.b1-timeline {
    margin: 1.75rem auto 0;
    max-width: 23rem;
    text-align: left;
    border-left: 2px dashed color-mix(in srgb, var(--accent-color) 55%, transparent);
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
}
.b1-tl-item { position: relative; display: flex; gap: 1rem; }
.b1-tl-item::before {
    content: '';
    position: absolute;
    left: calc(-1.5rem - 6px);
    top: .35rem;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--blush);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent-color) 20%, transparent);
}
.b1-tl-time {
    flex-shrink: 0;
    font-family: var(--ff-display);
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--blush-deep);
    font-variant-numeric: lining-nums tabular-nums;
    min-width: 3.2rem;
}
.b1-tl-label { font-weight: 600; color: var(--ink); }
.b1-tl-loc { font-size: .85rem; color: var(--muted); margin-top: .15rem; }
.b1-tl-loc a { margin-left: .35rem; font-weight: 600; }

/* ── Map ───────────────────────────────────── */
.b1-location { text-align: center; }
.b1-location__address { color: var(--text); margin-bottom: 1.2rem; }
.b1-map {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--card-shadow-sm);
    margin-bottom: 1.5rem;
}
.b1-map iframe { display: block; width: 100%; height: 320px; border: 0; }

/* ── Album / closing ───────────────────────── */
.b1-album { text-align: center; }
.b1-album__sub { color: var(--muted); margin-bottom: 1.5rem; }
.b1-closing { text-align: center; }
.b1-closing__text {
    font-family: var(--ff-display);
    font-size: 1.2rem;
    color: var(--ink);
}

/* ── Buttons ───────────────────────────────── */
.b1-btn {
    display: inline-block;
    background: linear-gradient(135deg, var(--blush), var(--blush-deep));
    color: #fff !important;
    font-family: var(--ff-display);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    padding: .95rem 2.4rem;
    border-radius: var(--btn-radius);
    border: none;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(207, 127, 140, .32);
    transition: background .2s ease, transform .15s ease, box-shadow .2s ease;
}
.b1-btn:hover {
    background: linear-gradient(135deg, var(--gold), var(--gold-deep));
    box-shadow: 0 12px 28px rgba(207, 157, 66, .38);
    transform: translateY(-2px);
    text-decoration: none;
}

/* ── Shape divider ─────────────────────────── */
.b1-shape {
    position: absolute;
    left: 0;
    width: 100%;
    overflow: hidden;
    line-height: 0;
    pointer-events: none;
    z-index: 1;
}
.b1-shape-top { top: -1px; }
.b1-shape-bottom { bottom: -1px; }
/* The authored scallop already fills its bottom edge (flush with the section
   boundary); a plain bottom seam must NOT rotate. Rotate only the mirror cases. */
.b1-shape[data-negative="true"].b1-shape-bottom,
.b1-shape[data-negative="false"].b1-shape-top { transform: rotate(180deg); }
.b1-shape svg {
    display: block;
    width: calc(100% + 1.3px);
    height: 40px;
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

/* ── Footer ────────────────────────────────── */
.b1-footer {
    background: var(--teal-deep);
    color: rgba(255, 255, 255, .9);
    text-align: center;
    padding: 3.75rem 1.25rem 3.25rem;
}
.b1-footer__balloon {
    width: 44px;
    margin: 0 auto 1rem;
    color: rgba(255, 255, 255, .55);
}
.b1-footer__balloon svg { width: 100%; height: auto; display: block; }
.b1-footer__name {
    display: block;
    font-family: var(--ff-display);
    font-size: 1.75rem;
    font-weight: 600;
    color: #fff;
}
.b1-footer__date {
    margin-top: .35rem;
    font-size: .9rem;
    letter-spacing: .04em;
    font-variant-numeric: lining-nums;
}
.b1-footer__venue { font-size: .85rem; color: rgba(255, 255, 255, .75); margin-top: .15rem; }
.b1-footer__cal {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.6rem;
    background: rgba(255, 255, 255, .16) !important;
    box-shadow: none;
}
.b1-footer__cal:hover { background: rgba(255, 255, 255, .26) !important; transform: translateY(-2px); }
.b1-footer__cal-icon { width: 1.05rem; height: 1.05rem; }

/* ── Shared-component tone tweaks ──────────── */
.b1-alt-sections .b1-rsvp .form__group input,
.b1-alt-sections .b1-rsvp .form__group select,
.b1-alt-sections .b1-rsvp .form__group textarea {
    border-radius: 12px;
}
.b1-gallery-upload { text-align: center; }
.b1-gallery-upload .gu-desc {
    text-align: center;
    max-width: 34rem;
    margin-left: auto;
    margin-right: auto;
}

/* ── Responsive ────────────────────────────── */
@media (max-width: 640px) {
    .b1-alt-sections .b1-stats,
    .b1-alt-sections .b1-countdown,
    .b1-alt-sections .b1-audio,
    .b1-alt-sections .b1-story,
    .b1-alt-sections .b1-gallery,
    .b1-alt-sections .b1-program,
    .b1-alt-sections .b1-dress-code,
    .b1-alt-sections .b1-good-to-know,
    .b1-alt-sections .b1-location,
    .b1-alt-sections .b1-accommodation,
    .b1-alt-sections .b1-gallery-upload,
    .b1-alt-sections .b1-guest-wall,
    .b1-alt-sections .b1-album,
    .b1-alt-sections .b1-closing,
    .b1-alt-sections .b1-rsvp {
        padding: 3.5rem 1rem;
    }
}
