@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Poppins:wght@600;700;800;900&family=Cormorant+Garamond:wght@500;600;700&display=swap');

/* v2.3.6 public profile: editorial memorial style, Poppins hero */
.public-memorial-page {
    padding: 0 0 78px;
    background:
        radial-gradient(circle at 7% 10%, rgba(124,92,255,.08), transparent 34rem),
        radial-gradient(circle at 92% 16%, rgba(255,211,171,.20), transparent 26rem),
        linear-gradient(180deg,#fcfaf7 0%,#f7f2ed 100%);
    font-family: 'Inter', sans-serif;
    color: #2e263a;
}

.public-memorial-shell {
    width: min(1500px, calc(100% - 48px));
    margin: 0 auto;
}

/* HERO */
.public-profile-card {
    background: #fff;
    border: 1px solid rgba(124,92,255,.08);
    border-radius: 0 0 34px 34px;
    box-shadow: 0 28px 80px rgba(45,36,62,.10);
    overflow: hidden;
    position: relative;
}

.premium-cover {
    min-height: 470px;
    background-size: cover;
    background-position: center;
    position: relative;
}

.public-cover-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.42) 0%, rgba(255,255,255,.24) 42%, rgba(42,27,22,.18) 100%),
        linear-gradient(180deg, rgba(25,20,35,.04) 0%, rgba(25,20,35,.38) 100%);
}

.public-cover-wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: 160px;
    display: block;
    filter: drop-shadow(0 -8px 18px rgba(255,255,255,.24));
}

.public-cover-wave path {
    fill: #fff;
}

.premium-hero-content {
    position: relative;
    z-index: 3;
    margin-top: -205px;
    padding: 0 54px 34px;
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr) auto;
    gap: 34px;
    align-items: end;
}

.public-avatar {
    width: 210px;
    height: 210px;
    border-radius: 999px;
    object-fit: cover;
    border: 7px solid rgba(255,255,255,.96);
    background: #f3edff;
    box-shadow: 0 22px 52px rgba(40,31,53,.24);
}

.premium-title-block {
    padding-bottom: 28px;
    max-width: 720px;
}

.premium-title-block h1 {
    font-family: 'Poppins', sans-serif;
    margin: 0;
    color: #20172d;
    font-size: clamp(48px, 5.2vw, 82px);
    line-height: .94;
    letter-spacing: -0.055em;
    font-weight: 800;
    text-shadow:
        0 0 3px rgba(255,255,255,1),
        0 0 10px rgba(255,255,255,.98),
        0 0 22px rgba(255,255,255,.90),
        0 14px 28px rgba(28,22,39,.16);
}

.plain-meta {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 14px;
    color: #32283e;
    font-weight: 800;
    font-size: 1rem;
}

.plain-meta span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    text-shadow:
        0 0 5px rgba(255,255,255,.98),
        0 0 14px rgba(255,255,255,.88);
}

.meta-icon {
    color: #7057d8;
}

.public-subtitle {
    margin: 14px 0 0;
    color: #2d2438 !important;
    font-size: 1.08rem;
    font-weight: 800;
    font-style: italic;
    text-shadow:
        0 0 5px rgba(255,255,255,.96),
        0 0 14px rgba(255,255,255,.86);
}

.public-subtitle span {
    color: #7c5cff;
}

.premium-hero-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    padding-bottom: 32px;
}

.premium-hero-actions form {
    margin: 0;
}

.btn {
    border-radius: 16px !important;
    font-weight: 900 !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.btn:hover {
    transform: translateY(-1px);
}

.glass-btn {
    background: rgba(255,255,255,.94) !important;
    color: #2b2237 !important;
    border: 1px solid rgba(230,222,242,.95) !important;
    box-shadow: 0 14px 34px rgba(42,32,58,.12) !important;
}

.candle-btn {
    background: linear-gradient(135deg,#7c5cff,#6a43ed) !important;
    color: #fff !important;
    border: 0 !important;
    box-shadow: 0 16px 38px rgba(124,92,255,.26) !important;
}

.premium-tabs {
    display: flex;
    gap: 36px;
    padding: 0 54px 14px;
    background: #fff;
    border-top: 1px solid rgba(124,92,255,.10);
    overflow-x: auto;
}

.premium-tabs a {
    text-decoration: none;
    color: #5f556d;
    font-weight: 800;
    padding: 22px 0 16px;
    border-bottom: 4px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.premium-tabs a:first-child,
.premium-tabs a:hover {
    color: #7c5cff;
    border-color: #7c5cff;
}

/* LAYOUT */
.public-stat-grid {
    display: none;
}

.premium-layout,
.social-layout {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
    margin-top: 34px;
}

.public-sidebar {
    display: grid;
    gap: 24px;
    position: sticky;
    top: 26px;
}

.public-feed,
.premium-feed {
    display: grid;
    gap: 24px;
}

.public-card {
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));
    border: 1px solid rgba(124,92,255,.08);
    border-radius: 28px;
    box-shadow: 0 16px 44px rgba(45,36,62,.085);
    padding: 28px;
    position: relative;
    overflow: hidden;
}

.public-card h2 {
    font-family: 'Poppins', sans-serif;
    margin: 0 0 16px;
    color: #2a2135;
    font-size: 1.48rem;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.public-card p {
    color: #4d4658;
    line-height: 1.72;
}

.card-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    background: #f2edff;
    color: #7c5cff;
    border-radius: 17px;
    margin-bottom: 14px;
    font-size: 23px;
}

.equal-side-card {
    min-height: 310px;
    display: flex;
    flex-direction: column;
}

.about-card::after {
    content: "";
    position: absolute;
    right: -10px;
    bottom: -20px;
    width: 154px;
    height: 170px;
    opacity: .13;
    background:
      radial-gradient(ellipse at 38% 28%, transparent 27%, #7c5cff 29%, transparent 32%),
      radial-gradient(ellipse at 70% 50%, transparent 26%, #7c5cff 28%, transparent 31%),
      linear-gradient(122deg, transparent 48%, #7c5cff 49%, transparent 51%);
    transform: rotate(-18deg);
}

.story-preview {
    max-height: 138px;
    overflow: hidden;
}

.text-link-button,
.text-link {
    border: 0;
    background: transparent;
    color: #7c5cff;
    padding: 0;
    font: inherit;
    font-weight: 900;
    cursor: pointer;
    text-decoration: none;
    margin-top: auto;
    align-self: flex-start;
}

.family-placeholder-row {
    display: flex;
    gap: 10px;
    margin-top: auto;
}

.family-placeholder-row span {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #f2edff;
    color: #7c5cff;
    display: grid;
    place-items: center;
    font-weight: 900;
}

/* COMPOSER */
.composer-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 16px;
    align-items: center;
}

.composer-card img {
    width: 58px;
    height: 58px;
    border-radius: 999px;
    object-fit: cover;
}

.composer-button {
    border: 1px solid rgba(124,92,255,.12);
    background: #fbf9fd;
    color: #7b7189;
    border-radius: 18px;
    padding: 17px 18px;
    text-align: left;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.composer-action-row {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    border-top: 1px solid rgba(124,92,255,.10);
    margin-top: 8px;
    padding-top: 18px;
}

.composer-action-row form {
    margin: 0;
}

.composer-action-pill {
    width: 100%;
    border: 0;
    background: transparent;
    color: #4e445d;
    padding: 16px;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.photo-pill {
    border-right: 1px solid rgba(124,92,255,.10);
    color: #258f4d;
}

.candle-pill {
    color: #d76127;
}

/* SECTIONS */
.section-title-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 20px;
}

.section-title-row h2 {
    margin: 0;
}

.eyebrow {
    color: #7c5cff;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-weight: 900;
    font-size: .73rem;
}

.tribute-list {
    display: grid;
    gap: 18px;
}

.tribute-post {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    padding: 22px;
    border: 1px solid rgba(124,92,255,.10);
    border-radius: 24px;
    background: #fff;
}

.tribute-avatar {
    width: 50px;
    height: 50px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #f2edff;
    color: #7c5cff;
    font-weight: 900;
    font-size: 1.1rem;
}

.tribute-head {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: baseline;
}

.tribute-head strong {
    color: #2a2135;
}

.tribute-head span {
    color: #81768f;
    font-size: .9rem;
    font-weight: 700;
}

.post-actions {
    display: flex;
    gap: 22px;
    border-top: 1px solid rgba(124,92,255,.10);
    padding-top: 14px;
    margin-top: 16px;
    color: #62586f;
    font-weight: 700;
}

.empty-public-state {
    text-align: center;
    padding: 38px 18px;
    border: 1px dashed rgba(124,92,255,.24);
    border-radius: 22px;
    background: #fbf9ff;
}

.empty-public-state span {
    display: inline-grid;
    place-items: center;
    width: 52px;
    height: 52px;
    background: #f2edff;
    color: #7c5cff;
    border-radius: 18px;
    font-size: 28px;
    margin-bottom: 12px;
}

.public-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.public-gallery-grid img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 18px;
    background: #f2edff;
}

/* RIGHT SIDEBAR */
.candle-card {
    text-align: center;
}

.memorial-candle-img {
    width: 100%;
    height: 190px;
    object-fit: cover;
    border-radius: 22px;
    margin: 12px 0 14px;
    background: #2f1d1a;
}

.candle-count {
    display: inline-flex;
    justify-content: center;
    background: #fbf3e8;
    color: #8b5428;
    border: 1px solid #f0d5b7;
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 900;
    margin-top: auto;
}

.respectful-share {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    margin-top: auto;
}

.respectful-share a,
.respectful-share button {
    display: grid;
    gap: 8px;
    justify-items: center;
    align-items: center;
    border: 0;
    background: transparent;
    color: #4d405d;
    text-decoration: none;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.respectful-share i {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(124,92,255,.14);
    border-radius: 999px;
    background: #fff;
    display: grid;
    place-items: center;
    font-style: normal;
    box-shadow: 0 10px 24px rgba(45,36,62,.06);
}

.respectful-share span {
    font-size: .82rem;
}

.full-story-card {
    border: 1px solid rgba(124,92,255,.18);
}

.full-story-content {
    font-size: 1.06rem;
    line-height: 1.9;
    color: #3f364d;
}

.compact-side-card {
    min-height: 0;
}

.side-mini-item {
    padding: 12px 0;
    border-bottom: 1px solid #eee7f3;
}

.side-mini-item strong,
.side-mini-item span {
    display: block;
}

.side-mini-item span {
    color: #81768f;
    font-size: .9rem;
    line-height: 1.45;
    margin-top: 4px;
}

.side-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 9px;
    margin-bottom: 12px;
}

.side-photo-grid img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 12px;
}

.candle-visual {
    display: none !important;
}

@media (max-width: 1180px) {
    .premium-layout,
    .social-layout {
        grid-template-columns: 1fr;
    }

    .public-sidebar {
        position: static;
    }

    .premium-hero-content {
        grid-template-columns: 175px minmax(0, 1fr);
    }

    .premium-hero-actions {
        grid-column: 2;
        padding-bottom: 0;
    }

    .public-avatar {
        width: 175px;
        height: 175px;
    }

    .premium-title-block h1 {
        font-size: clamp(42px, 7vw, 70px);
    }
}

@media (max-width: 820px) {
    .premium-cover {
        min-height: 390px;
    }

    .premium-hero-content {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
        margin-top: -170px;
        padding: 0 24px 32px;
        gap: 16px;
    }

    .premium-title-block {
        padding-bottom: 0;
    }

    .premium-title-block h1 {
        font-size: clamp(42px, 12vw, 64px);
        line-height: .98;
    }

    .public-avatar {
        width: 150px;
        height: 150px;
    }

    .premium-hero-actions {
        grid-column: auto;
        justify-content: center;
        flex-wrap: wrap;
    }

    .premium-tabs {
        padding: 0 22px 12px;
        gap: 22px;
    }

    .composer-action-row,
    .respectful-share {
        grid-template-columns: 1fr;
    }

    .photo-pill {
        border-right: 0;
        border-bottom: 1px solid rgba(124,92,255,.10);
    }
}

@media (max-width: 640px) {
    .public-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* v2.4.0 real tributes & memories feed */
.memory-card {
    transition: transform .18s ease, box-shadow .18s ease;
}
.memory-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 42px rgba(45,36,62,.09);
}
.memory-actions {
    align-items: center;
    flex-wrap: wrap;
}
.memory-actions form {
    margin: 0;
}
.memory-actions button {
    border: 0;
    background: transparent;
    color: #62586f;
    font: inherit;
    font-weight: 800;
    padding: 0;
    cursor: pointer;
}
.memory-actions button:hover {
    color: #7c5cff;
}
.tribute-post p {
    white-space: pre-line;
}


/* v2.5.0 preserve visual baseline: cloud background and fixed one-line Poppins name */
html,
body {
    background:
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(248,244,239,.88)),
        url('../../img/memorial-clouds.webp') center top / cover fixed no-repeat !important;
}

.public-memorial-page {
    background:
        linear-gradient(180deg, rgba(255,255,255,.68), rgba(248,244,239,.86)),
        url('../../img/memorial-clouds.webp') center top / cover fixed no-repeat !important;
}

.public-profile-card,
.public-card {
    background-color: rgba(255,255,255,.94) !important;
}

.premium-title-block {
    max-width: none !important;
    min-width: 0;
}

.premium-title-block h1 {
    white-space: nowrap !important;
    overflow: visible !important;
    max-width: none !important;
    font-size: clamp(40px, 4.3vw, 68px) !important;
    letter-spacing: -0.06em !important;
    line-height: .92 !important;
}

.premium-hero-content {
    grid-template-columns: 190px minmax(0, 1fr) auto !important;
}

.public-avatar {
    width: 190px !important;
    height: 190px !important;
}

.public-gallery-grid {
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
}

.public-gallery-grid img {
    box-shadow: 0 10px 24px rgba(45,36,62,.10);
    transition: transform .18s ease, box-shadow .18s ease;
}

.public-gallery-grid img:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 38px rgba(45,36,62,.14);
}

@media (max-width: 1180px) {
    .premium-title-block h1 {
        font-size: clamp(38px, 5.6vw, 62px) !important;
    }
}

@media (max-width: 820px) {
    html,
    body,
    .public-memorial-page {
        background:
            linear-gradient(180deg, rgba(255,255,255,.86), rgba(248,244,239,.94)),
            url('../../img/memorial-clouds.webp') center top / cover scroll no-repeat !important;
    }

    .premium-title-block h1 {
        white-space: normal !important;
        font-size: clamp(38px, 11vw, 58px) !important;
        line-height: .98 !important;
    }
}

/* v2.6.0 Candle wall */
.candle-open-btn {
    margin: 14px auto 0;
    align-self: center;
}

.candle-wall-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 16px;
}

.candle-memory-card {
    background: linear-gradient(180deg, #fff, #fffaf4);
    border: 1px solid rgba(240, 213, 183, .9);
    border-radius: 22px;
    padding: 18px;
    text-align: center;
    box-shadow: 0 12px 30px rgba(92, 60, 35, .08);
}

.mini-flame {
    width: 46px;
    height: 46px;
    margin: 0 auto 10px;
    border-radius: 999px;
    background: radial-gradient(circle, #fff3b5 0 28%, #ffb84d 45%, rgba(255,184,77,.18) 72%);
    display: grid;
    place-items: center;
}

.mini-flame span {
    width: 13px;
    height: 23px;
    border-radius: 80% 20% 55% 45%;
    background: linear-gradient(180deg, #fff8c9, #ff9f2f);
    transform: rotate(10deg);
}

.candle-memory-card strong {
    display: block;
    color: #2a2135;
    margin-bottom: 8px;
}

.candle-memory-card p {
    margin: 0 0 10px;
    color: #5f536b;
    line-height: 1.5;
}

.candle-memory-card small {
    color: #8d819a;
    font-weight: 700;
}


/* v2.6.1 hero alignment + candle wall/modal refinements */
.premium-hero-content {
    align-items: end !important;
    margin-top: -185px !important;
    padding-bottom: 64px !important;
}

.premium-title-block {
    padding-bottom: 0 !important;
    align-self: end !important;
}

.premium-hero-actions {
    align-self: end !important;
    padding-bottom: 4px !important;
    justify-content: flex-end !important;
}

.public-subtitle {
    font-size: 1.15rem !important;
    margin-top: 16px !important;
}

.candle-wall-section .section-title-row {
    align-items: center !important;
}

.candle-wall-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
}

.candle-memory-card {
    min-height: 168px !important;
    padding: 14px 12px !important;
    border-radius: 18px !important;
}

.candle-wall-section:not(.candle-wall-expanded) .candle-memory-card:nth-child(n+9) {
    display: none !important;
}

.mini-flame {
    width: 36px !important;
    height: 36px !important;
    margin-bottom: 8px !important;
}

.mini-flame span {
    width: 10px !important;
    height: 18px !important;
}

.candle-memory-card strong {
    font-size: .95rem !important;
    margin-bottom: 5px !important;
}

.candle-memory-card p {
    font-size: .88rem !important;
    line-height: 1.35 !important;
    margin-bottom: 7px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


.candle-memory-card small {
    font-size: .78rem !important;
}

.see-more-candles {
    display: inline-flex;
    margin: 18px auto 0;
    border: 0;
    background: #f2edff;
    color: #7c5cff;
    border-radius: 999px;
    padding: 11px 18px;
    font-weight: 900;
    cursor: pointer;
}

#candleModal .ah-modal {
    max-width: 620px !important;
    width: min(620px, calc(100% - 34px)) !important;
    padding: 34px !important;
}

#candleModal form {
    display: grid !important;
    gap: 14px !important;
    margin-top: 18px !important;
}

#candleModal label {
    display: block !important;
    margin: 0 !important;
    font-weight: 900 !important;
    color: #30283d !important;
}

#candleModal input,
#candleModal textarea {
    display: block !important;
    width: 100% !important;
    border: 1px solid #ded4ec !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    min-height: 50px !important;
    color: #30283d !important;
    font: inherit !important;
}

#candleModal textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

#candleModal .modal-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    margin-top: 10px !important;
}

@media (max-width: 1180px) {
    .premium-hero-content {
        margin-top: -170px !important;
        padding-bottom: 44px !important;
    }

    .premium-hero-actions {
        justify-content: flex-start !important;
    }

    .candle-wall-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .candle-wall-grid {
        grid-template-columns: 1fr !important;
    }

    .premium-hero-content {
        margin-top: -155px !important;
        padding-bottom: 34px !important;
    }
}


/* v2.6.2 hero spacing and candle card text cleanup */
.premium-cover {
    min-height: 500px !important;
}

.premium-hero-content {
    margin-top: -225px !important;
    padding: 0 56px 92px !important;
    grid-template-columns: 190px minmax(0, 1fr) auto !important;
    align-items: end !important;
}

.premium-title-block {
    padding-bottom: 20px !important;
}

.premium-title-block h1 {
    margin-bottom: 18px !important;
}

.plain-meta {
    margin-top: 0 !important;
}

.public-subtitle {
    margin-top: 18px !important;
}

.premium-hero-actions {
    padding-bottom: 22px !important;
    align-self: end !important;
}

.premium-tabs {
    margin-top: 0 !important;
}

.candle-memory-card {
    justify-content: center !important;
}

.candle-memory-card p {
    margin-bottom: 0 !important;
}

.candle-memory-card small {
    display: none !important;
}

@media (max-width: 1180px) {
    .premium-hero-content {
        margin-top: -205px !important;
        padding-bottom: 72px !important;
    }

    .premium-hero-actions {
        padding-bottom: 0 !important;
    }
}

@media (max-width: 820px) {
    .premium-cover {
        min-height: 420px !important;
    }

    .premium-hero-content {
        margin-top: -185px !important;
        padding: 0 24px 58px !important;
    }
}


/* v2.6.3 candle modal form fix + date-only cards */
#candleModal .ah-modal-backdrop,
#candleModal {
    align-items: center !important;
}

#candleModal .ah-modal {
    max-width: 620px !important;
    width: min(620px, calc(100vw - 32px)) !important;
    max-height: calc(100vh - 60px) !important;
    overflow-y: auto !important;
    padding: 34px !important;
    border-radius: 28px !important;
}

#candleModal .ah-modal h2 {
    margin: 0 42px 14px 0 !important;
}

#candleModal .ah-modal p {
    margin: 0 0 18px !important;
    color: #4d4658 !important;
}

#candleModal form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    margin-top: 10px !important;
}

#candleModal label {
    display: block !important;
    font-weight: 900 !important;
    color: #30283d !important;
    margin: 8px 0 0 !important;
}

#candleModal input,
#candleModal textarea {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid #ded4ec !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    color: #30283d !important;
    font: inherit !important;
}

#candleModal input {
    min-height: 52px !important;
}

#candleModal textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

#candleModal .modal-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    margin-top: 14px !important;
}

.candle-memory-card small {
    display: block !important;
    color: #8d819a !important;
    font-weight: 800 !important;
    font-size: .78rem !important;
    margin-top: 8px !important;
}


/* v2.6.4 FINAL hero baseline restore + candle modal hard fix */
/* Keep this at the very end so later phase styles do not override it accidentally. */
.premium-cover {
    min-height: 470px !important;
}

.premium-hero-content {
    grid-template-columns: 190px minmax(0, 1fr) auto !important;
    margin-top: -205px !important;
    padding: 0 56px 58px !important;
    align-items: end !important;
}

.public-avatar {
    width: 190px !important;
    height: 190px !important;
}

.premium-title-block {
    max-width: none !important;
    min-width: 0 !important;
    padding-bottom: 12px !important;
}

.premium-title-block h1 {
    white-space: nowrap !important;
    overflow: visible !important;
    max-width: none !important;
    font-size: clamp(40px, 4.3vw, 68px) !important;
    letter-spacing: -0.06em !important;
    line-height: .92 !important;
    margin: 0 0 12px !important;
}

.plain-meta {
    margin-top: 0 !important;
}

.public-subtitle {
    margin-top: 13px !important;
    font-size: 1.08rem !important;
}

.premium-hero-actions {
    align-self: end !important;
    padding-bottom: 15px !important;
    justify-content: flex-end !important;
}

.candle-modal-backdrop {
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
}

.candle-modal-box {
    width: min(620px, calc(100vw - 36px)) !important;
    max-width: 620px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 48px) !important;
    overflow-y: auto !important;
    padding: 34px !important;
    border-radius: 28px !important;
    box-sizing: border-box !important;
}

.candle-modal-box h2 {
    margin: 0 44px 14px 0 !important;
    font-size: 1.85rem !important;
}

.candle-modal-box p {
    margin: 0 0 20px !important;
    color: #4d4658 !important;
    line-height: 1.55 !important;
}

.candle-modal-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
}

.candle-modal-form .form-field {
    display: grid !important;
    gap: 7px !important;
}

.candle-modal-form label {
    display: block !important;
    font-weight: 900 !important;
    color: #30283d !important;
    margin: 0 !important;
}

.candle-modal-form input:not([type="hidden"]),
.candle-modal-form textarea {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
    border: 1px solid #ded4ec !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    color: #30283d !important;
    font: inherit !important;
    appearance: auto !important;
}

.candle-modal-form textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

.candle-modal-form .modal-actions {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 6px !important;
}

.candle-memory-card p {
    margin-bottom: 0 !important;
}

.candle-memory-card small {
    display: block !important;
    color: #8d819a !important;
    font-weight: 800 !important;
    font-size: .78rem !important;
    margin-top: 8px !important;
}

@media (max-width: 1180px) {
    .premium-hero-content {
        grid-template-columns: 170px minmax(0, 1fr) !important;
        margin-top: -190px !important;
        padding-bottom: 46px !important;
    }

    .premium-hero-actions {
        grid-column: 2 / 3 !important;
        justify-content: flex-start !important;
        padding-bottom: 0 !important;
    }

    .public-avatar {
        width: 170px !important;
        height: 170px !important;
    }

    .premium-title-block h1 {
        font-size: clamp(38px, 5.6vw, 62px) !important;
    }
}

@media (max-width: 820px) {
    .premium-cover {
        min-height: 410px !important;
    }

    .premium-hero-content {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        text-align: center !important;
        margin-top: -170px !important;
        padding: 0 24px 42px !important;
    }

    .premium-title-block h1 {
        white-space: normal !important;
        font-size: clamp(38px, 11vw, 58px) !important;
        line-height: .98 !important;
    }

    .premium-hero-actions {
        grid-column: auto !important;
        justify-content: center !important;
    }
}


/* v2.6.5 FORCED NEW CSS FILE: hero and candle modal visible fix */

/* Hero: restore compact one-line Poppins baseline and lower the text/buttons */
.public-profile-card .premium-cover {
    min-height: 470px !important;
}

.public-profile-card .premium-hero-content {
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr) auto !important;
    gap: 34px !important;
    align-items: end !important;
    margin-top: -198px !important;
    padding: 0 56px 66px !important;
}

.public-profile-card .public-avatar {
    width: 190px !important;
    height: 190px !important;
}

.public-profile-card .premium-title-block {
    max-width: none !important;
    min-width: 0 !important;
    padding-bottom: 4px !important;
}

.public-profile-card .premium-title-block h1 {
    white-space: nowrap !important;
    overflow: visible !important;
    max-width: none !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: clamp(40px, 4.3vw, 68px) !important;
    letter-spacing: -0.06em !important;
    line-height: .92 !important;
    margin: 0 0 12px !important;
}

.public-profile-card .plain-meta {
    margin-top: 0 !important;
}

.public-profile-card .public-subtitle {
    margin-top: 13px !important;
    font-size: 1.08rem !important;
}

.public-profile-card .premium-hero-actions {
    align-self: end !important;
    padding-bottom: 8px !important;
    justify-content: flex-end !important;
}

/* Candle modal: do not rely on older generic modal form CSS */
.candle-modal-v265-backdrop {
    align-items: center !important;
    justify-content: center !important;
    padding: 24px !important;
}

.candle-modal-v265-box {
    width: min(620px, calc(100vw - 36px)) !important;
    max-width: 620px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 48px) !important;
    overflow-y: auto !important;
    padding: 34px !important;
    border-radius: 28px !important;
    box-sizing: border-box !important;
}

.candle-modal-v265-head {
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 14px !important;
    align-items: start !important;
    margin-bottom: 20px !important;
}

.candle-modal-v265-head > span {
    width: 48px !important;
    height: 48px !important;
    border-radius: 18px !important;
    background: #fff3df !important;
    display: grid !important;
    place-items: center !important;
    font-size: 24px !important;
}

.candle-modal-v265-box h2 {
    margin: 0 42px 8px 0 !important;
    font-size: 1.85rem !important;
    line-height: 1.15 !important;
}

.candle-modal-v265-box p {
    margin: 0 !important;
    color: #4d4658 !important;
    line-height: 1.55 !important;
}

.candle-modal-v265-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
}

.candle-modal-v265-form label {
    display: block !important;
    font-weight: 900 !important;
    color: #30283d !important;
    margin: 8px 0 0 !important;
}

.candle-modal-v265-form input:not([type="hidden"]),
.candle-modal-v265-form textarea {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
    border: 1px solid #ded4ec !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    color: #30283d !important;
    font: inherit !important;
}

.candle-modal-v265-form textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

.candle-modal-v265-actions {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 12px !important;
    margin-top: 12px !important;
}

.candle-memory-card p {
    margin-bottom: 0 !important;
}

.candle-memory-card small {
    display: block !important;
    color: #8d819a !important;
    font-weight: 800 !important;
    font-size: .78rem !important;
    margin-top: 8px !important;
}

@media (max-width: 1180px) {
    .public-profile-card .premium-hero-content {
        grid-template-columns: 170px minmax(0, 1fr) !important;
        margin-top: -186px !important;
        padding-bottom: 50px !important;
    }

    .public-profile-card .premium-hero-actions {
        grid-column: 2 / 3 !important;
        justify-content: flex-start !important;
        padding-bottom: 0 !important;
    }

    .public-profile-card .public-avatar {
        width: 170px !important;
        height: 170px !important;
    }

    .public-profile-card .premium-title-block h1 {
        font-size: clamp(38px, 5.6vw, 62px) !important;
    }
}

@media (max-width: 820px) {
    .public-profile-card .premium-cover {
        min-height: 410px !important;
    }

    .public-profile-card .premium-hero-content {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        text-align: center !important;
        margin-top: -170px !important;
        padding: 0 24px 42px !important;
    }

    .public-profile-card .premium-title-block h1 {
        white-space: normal !important;
        font-size: clamp(38px, 11vw, 58px) !important;
        line-height: .98 !important;
    }

    .public-profile-card .premium-hero-actions {
        grid-column: auto !important;
        justify-content: center !important;
    }

    .candle-modal-v265-head {
        grid-template-columns: 1fr !important;
    }
}


/* v2.6.7 actual hero layout + working candle modal */
.public-profile-card .premium-cover {
    min-height: 500px !important;
}

.public-profile-card .premium-hero-content {
    display: grid !important;
    grid-template-columns: 190px minmax(0, 1fr) auto !important;
    gap: 34px !important;
    align-items: end !important;
    margin-top: -182px !important;
    padding: 0 56px 72px !important;
}

.public-profile-card .public-avatar {
    width: 190px !important;
    height: 190px !important;
}

.public-profile-card .premium-title-block {
    max-width: none !important;
    min-width: 0 !important;
    padding-bottom: 0 !important;
    transform: translateY(22px) !important;
}

.public-profile-card .premium-title-block h1 {
    font-family: 'Poppins', sans-serif !important;
    white-space: nowrap !important;
    overflow: visible !important;
    max-width: none !important;
    font-size: clamp(40px, 4.3vw, 68px) !important;
    line-height: .92 !important;
    letter-spacing: -.06em !important;
    margin: 0 0 12px !important;
}

.public-profile-card .plain-meta {
    margin-top: 0 !important;
}

.public-profile-card .public-subtitle {
    margin-top: 13px !important;
    font-size: 1.08rem !important;
}

.public-profile-card .premium-hero-actions {
    align-self: end !important;
    justify-content: flex-end !important;
    padding-bottom: 0 !important;
    transform: translateY(18px) !important;
}

#candleModal .candle-modal-fixed {
    width: min(620px, calc(100vw - 36px)) !important;
    max-width: 620px !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100vh - 48px) !important;
    overflow-y: auto !important;
    padding: 34px !important;
    border-radius: 28px !important;
    box-sizing: border-box !important;
}

#candleModal .candle-modal-fixed h2 {
    margin: 0 44px 12px 0 !important;
    font-size: 1.85rem !important;
}

#candleModal .candle-modal-fixed p {
    margin: 0 0 20px !important;
    color: #4d4658 !important;
    line-height: 1.55 !important;
}

#candleModal .candle-form-fixed {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 0 !important;
}

#candleModal .candle-form-fixed label {
    display: block !important;
    font-weight: 900 !important;
    color: #30283d !important;
    margin: 8px 0 0 !important;
}

#candleModal .candle-form-fixed input:not([type="hidden"]),
#candleModal .candle-form-fixed textarea {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    box-sizing: border-box !important;
    border: 1px solid #ded4ec !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 14px 16px !important;
    color: #30283d !important;
    font: inherit !important;
}

#candleModal .candle-form-fixed textarea {
    min-height: 120px !important;
    resize: vertical !important;
}

#candleModal .candle-form-fixed .modal-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    margin-top: 12px !important;
}

.candle-memory-card small {
    display: block !important;
    color: #8d819a !important;
    font-weight: 800 !important;
    font-size: .78rem !important;
    margin-top: 8px !important;
}

@media (max-width: 1180px) {
    .public-profile-card .premium-hero-content {
        grid-template-columns: 170px minmax(0, 1fr) !important;
        margin-top: -170px !important;
        padding-bottom: 56px !important;
    }

    .public-profile-card .premium-hero-actions {
        grid-column: 2 / 3 !important;
        justify-content: flex-start !important;
    }

    .public-profile-card .public-avatar {
        width: 170px !important;
        height: 170px !important;
    }

    .public-profile-card .premium-title-block h1 {
        font-size: clamp(38px, 5.6vw, 62px) !important;
    }
}

@media (max-width: 820px) {
    .public-profile-card .premium-cover {
        min-height: 410px !important;
    }

    .public-profile-card .premium-hero-content {
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        text-align: center !important;
        margin-top: -160px !important;
        padding: 0 24px 44px !important;
    }

    .public-profile-card .premium-title-block {
        transform: none !important;
    }

    .public-profile-card .premium-title-block h1 {
        white-space: normal !important;
        font-size: clamp(38px, 11vw, 58px) !important;
        line-height: .98 !important;
    }

    .public-profile-card .premium-hero-actions {
        grid-column: auto !important;
        justify-content: center !important;
        transform: none !important;
    }
}

/* v2.7.0 public moderation/report polish */
.public-report-form {
    margin-top: 8px;
}

.public-report-form button {
    border: 0;
    background: transparent;
    color: #8a8095;
    font: inherit;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.public-report-form button:hover {
    color: #6d5a83;
}

/* v2.8.0 memorial interactions */
.interaction-status-bar {
    max-width: 1180px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

.interaction-status-bar span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.74);
    border: 1px solid rgba(124,92,255,.12);
    box-shadow: 0 10px 24px rgba(45,36,62,.06);
    color: #62586f;
    font-size: .88rem;
    font-weight: 800;
}

.memory-actions .interaction-button,
.candle-love-form button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(124,92,255,.14);
    background: linear-gradient(180deg, #ffffff, #fbf8ff);
    color: #6d5a83;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: .86rem;
    font-weight: 900;
    box-shadow: 0 8px 20px rgba(45,36,62,.05);
}

.memory-actions .interaction-button:hover,
.candle-love-form button:hover {
    color: #7c5cff;
    border-color: rgba(124,92,255,.28);
    transform: translateY(-1px);
}

.candle-love-form {
    margin: 12px 0 0;
    display: flex;
    justify-content: center;
}

.candle-love-form + .public-report-form {
    margin-top: 8px;
}

.candle-memory-card {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.candle-memory-card:hover {
    transform: translateY(-1px);
    border-color: rgba(255,184,77,.68);
    box-shadow: 0 16px 36px rgba(92, 60, 35, .11);
}

@media (max-width: 640px) {
    .interaction-status-bar {
        justify-content: flex-start;
    }

    .interaction-status-bar span {
        font-size: .82rem;
    }
}

/* v2.8.1 candle interaction card restyle */
.candle-wall-section {
    overflow: hidden;
}

.candle-wall-section .section-title-row {
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 28px;
}

.candle-wall-section .section-title-row h2 {
    margin-top: 8px;
}

.candle-wall-section .section-title-row h2::after {
    content: 'Each candle represents a moment of love, a memory that will always shine.';
    display: block;
    margin-top: 10px;
    color: #766b83;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.5;
}

.candle-wall-section .section-title-row .btn-soft {
    min-height: 48px;
    padding: 13px 21px;
    border: 0;
    background: linear-gradient(135deg, #8f6cff 0%, #6947dd 100%);
    color: #fff;
    box-shadow: 0 14px 26px rgba(124, 92, 255, .24);
}

.candle-wall-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 26px !important;
}

.candle-memory-card.candle-memory-card-v281 {
    position: relative;
    min-height: 0;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(239, 195, 143, .7) !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, #fffaf3 0%, #ffffff 42%, #fffdfb 100%) !important;
    box-shadow: 0 18px 42px rgba(68, 48, 35, .07) !important;
}

.candle-memory-card.candle-memory-card-v281:hover {
    transform: translateY(-3px);
    border-color: rgba(238, 175, 95, .9) !important;
    box-shadow: 0 24px 54px rgba(68, 48, 35, .12) !important;
}

.candle-card-menu {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid rgba(239, 195, 143, .78);
    background: rgba(255,255,255,.88);
    color: #3b3048;
    font-weight: 900;
    letter-spacing: 1px;
    box-shadow: 0 8px 18px rgba(68, 48, 35, .1);
}

.candle-card-image-wrap {
    height: 154px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 24px 18px 0;
    background: radial-gradient(circle at 50% 58%, rgba(255, 207, 125, .2), rgba(255,255,255,0) 62%);
}

.candle-card-image {
    display: block;
    width: 170px;
    max-width: 88%;
    height: 130px;
    object-fit: contain;
    filter: drop-shadow(0 14px 18px rgba(107, 67, 35, .14));
}

.candle-card-body {
    padding: 8px 22px 24px;
    text-align: center;
}

.candle-memory-card.candle-memory-card-v281 strong {
    display: block;
    color: #2f2540;
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1.25;
    margin: 0 0 8px;
}

.candle-memory-card.candle-memory-card-v281 p {
    min-height: 44px;
    margin: 0 0 10px !important;
    color: #6d617c !important;
    font-size: .96rem !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
}

.candle-memory-card.candle-memory-card-v281 small {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0 0 18px !important;
    color: #817492 !important;
    font-size: .9rem !important;
    font-weight: 900 !important;
}

.candle-card-actions {
    display: grid;
    gap: 14px;
    justify-items: center;
}

.candle-memory-card-v281 .candle-love-form {
    width: 100%;
    margin: 0;
}

.candle-memory-card-v281 .candle-love-form button {
    width: 100%;
    justify-content: center;
    min-height: 48px;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid rgba(124,92,255,.16);
    background: linear-gradient(180deg, #ffffff 0%, #fbf8ff 100%);
    color: #654d89;
    border-radius: 999px;
    box-shadow: 0 12px 26px rgba(69, 45, 102, .07);
}

.candle-memory-card-v281 .candle-love-form button .love-icon {
    color: #ff4f7d;
    font-size: 1.15rem;
    line-height: 1;
}

.candle-memory-card-v281 .candle-love-form button em {
    width: 1px;
    height: 20px;
    background: #e8def5;
    display: inline-block;
}

.candle-memory-card-v281 .candle-love-form button strong {
    display: inline;
    margin: 0;
    color: #6f4fe6;
    font-size: .92rem;
    line-height: 1;
}

.candle-memory-card-v281 .candle-report-form {
    margin: 0;
}

.candle-memory-card-v281 .candle-report-form button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #817492;
    font-size: .85rem;
    font-weight: 850;
}

.candle-memory-card-v281 .candle-report-form button:hover {
    color: #6f4fe6;
}

@media (max-width: 1180px) {
    .candle-wall-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 860px) {
    .candle-wall-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    .candle-wall-section .section-title-row {
        align-items: stretch;
    }

    .candle-wall-section .section-title-row .btn-soft {
        width: 100%;
        justify-content: center;
    }

    .candle-wall-grid {
        grid-template-columns: 1fr !important;
    }

    .candle-card-image-wrap {
        height: 142px;
    }
}

/* v2.8.3 candle carousel restyle: 3 visible cards, endless loop, example candle image */
.candle-wall-section {
    overflow: hidden !important;
}

.candle-wall-section .section-title-row {
    margin-bottom: 30px !important;
}

.candle-carousel {
    position: relative;
    overflow: hidden;
    width: 100%;
    padding: 4px 2px 12px;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
}

.candle-carousel-track {
    display: flex;
    gap: 24px;
    align-items: stretch;
    width: 100%;
}

.candle-carousel.is-looping .candle-carousel-track {
    animation: candleCarouselLoop 38s linear infinite;
}

.candle-carousel.is-looping:hover .candle-carousel-track,
.candle-carousel.is-looping:focus-within .candle-carousel-track {
    animation-play-state: paused;
}

.candle-carousel.is-static .candle-carousel-track {
    width: 100%;
}

.candle-carousel .candle-memory-card.candle-memory-card-v281 {
    flex: 0 0 calc((100% - 48px) / 3);
    width: calc((100% - 48px) / 3);
    min-width: 0;
    border-radius: 20px !important;
    border-color: rgba(239, 195, 143, .78) !important;
    background: linear-gradient(180deg, #fffaf4 0%, #ffffff 50%, #fffdfb 100%) !important;
}


.candle-card-menu {
    display: none !important;
}

.candle-card-image-wrap {
    height: 160px !important;
    padding: 24px 20px 0 !important;
    background: radial-gradient(circle at 50% 58%, rgba(255, 214, 147, .28), rgba(255,255,255,0) 64%) !important;
}

.candle-card-image {
    width: 220px !important;
    max-width: 94% !important;
    height: 145px !important;
    object-fit: contain !important;
    filter: drop-shadow(0 16px 20px rgba(107, 67, 35, .16)) !important;
}

.candle-card-body {
    padding: 10px 24px 26px !important;
}

.candle-card-person,
.candle-memory-card.candle-memory-card-v281 strong.candle-card-person {
    font-size: 1.12rem !important;
    letter-spacing: -.02em;
}

.candle-memory-card.candle-memory-card-v281 p {
    min-height: 42px !important;
    margin-bottom: 12px !important;
}

.candle-memory-card.candle-memory-card-v281 small {
    margin-bottom: 18px !important;
}

.candle-card-actions {
    gap: 13px !important;
}

.candle-memory-card-v281 .candle-love-form button {
    min-height: 50px !important;
    padding: 11px 16px !important;
}

@keyframes candleCarouselLoop {
    from { transform: translateX(0); }
    to { transform: translateX(calc(-50% - 12px)); }
}

@media (max-width: 860px) {
    .candle-carousel .candle-memory-card.candle-memory-card-v281,
    .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
        flex-basis: calc((100% - 24px) / 2);
        width: calc((100% - 24px) / 2);
    }
}

@media (max-width: 560px) {
    .candle-carousel {
        -webkit-mask-image: none;
        mask-image: none;
    }

    .candle-carousel .candle-memory-card.candle-memory-card-v281,
    .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
        flex-basis: 100%;
        width: 100%;
    }
}

/* v2.9.0 Family details section */
.family-card {
    overflow: visible;
}

.family-avatar-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 4px;
}

.family-avatar-item {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 999px;
    cursor: default;
    outline: none;
}

.family-avatar-item img,
.family-initial-avatar,
.family-owner-avatar {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    object-fit: cover;
    background: linear-gradient(145deg, #fff7fb, #f1ecff);
    border: 3px solid #fff;
    box-shadow: 0 12px 24px rgba(61, 47, 88, .14);
    color: #7c5cff;
    font-weight: 900;
    text-transform: uppercase;
}

.family-owner-avatar {
    background: linear-gradient(145deg, #7c5cff, #b38cff);
    color: #fff;
}

.family-owner-badge {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #fff4c7;
    color: #7c5cff;
    border: 2px solid #fff;
    font-size: 11px;
    box-shadow: 0 8px 18px rgba(61, 47, 88, .15);
}

.family-hover-card {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 12px);
    transform: translateX(-50%) translateY(8px);
    min-width: 148px;
    max-width: 190px;
    padding: 12px 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(124, 92, 255, .13);
    box-shadow: 0 18px 44px rgba(61, 47, 88, .18);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
    z-index: 30;
    text-align: center;
}

.family-hover-card::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 100%;
    width: 12px;
    height: 12px;
    background: #fff;
    border-right: 1px solid rgba(124, 92, 255, .13);
    border-bottom: 1px solid rgba(124, 92, 255, .13);
    transform: translateX(-50%) rotate(45deg);
}

.family-hover-card strong {
    display: block;
    color: #30283d;
    font-size: .94rem;
    line-height: 1.2;
}

.family-hover-card span {
    display: block;
    color: #766b84;
    font-size: .84rem;
    line-height: 1.3;
    margin-top: 4px;
}

.family-avatar-item:hover .family-hover-card,
.family-avatar-item:focus .family-hover-card,
.family-avatar-item:focus-within .family-hover-card {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* v2.9.1 Family photo controls and top-aligned family card */
.family-card {
    display: flex;
    flex-direction: column;
}

.family-card h2 {
    order: 1;
    margin-bottom: 14px;
}

.family-avatar-row {
    order: 2;
    margin-top: 0 !important;
    padding-top: 0;
    margin-bottom: 10px;
}

.family-cropped-avatar {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(145deg, #fff7fb, #f1ecff);
    border: 3px solid #fff;
    box-shadow: 0 12px 24px rgba(61, 47, 88, .14);
    color: #7c5cff;
    font-weight: 900;
    text-transform: uppercase;
    position: relative;
}

.family-owner-avatar.family-cropped-avatar {
    background: linear-gradient(145deg, #7c5cff, #b38cff);
    color: #fff;
}

.family-cropped-avatar img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: var(--family-photo-x, 50%) var(--family-photo-y, 50%);
    transform: scale(var(--family-photo-zoom, 1));
    transform-origin: var(--family-photo-x, 50%) var(--family-photo-y, 50%);
    display: block;
}

/* v2.9.3 public memorial layout polish */
.composer-card {
    grid-template-columns: auto 1fr !important;
    padding: 22px !important;
}
.composer-card .composer-button {
    min-height: 58px !important;
    border-radius: 18px !important;
}
.composer-action-row,
.composer-action-pill {
    display: none !important;
}
.candle-card {
    gap: 10px !important;
}
.candle-card h2 {
    display: none !important;
}
.memorial-candle-img {
    width: min(210px, 100%) !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    margin: 4px auto 10px !important;
    display: block !important;
}
.candle-count,
.candle-count-text {
    display: block !important;
    background: transparent !important;
    border: 0 !important;
    color: #8b6b4d !important;
    font-size: .92rem !important;
    font-weight: 900 !important;
    line-height: 1.45 !important;
    margin: 2px 0 8px !important;
    padding: 0 !important;
}
.candle-wall-section {
    order: 1;
}
#gallery {
    order: 2;
}
#tributes {
    order: 3;
}
.premium-feed {
    display: flex !important;
    flex-direction: column !important;
}
.candle-carousel {
    overflow: hidden !important;
    padding: 6px 2px 10px !important;
}
.candle-carousel-track {
    align-items: stretch !important;
}
.candle-memory-card-v281 {
    width: calc((100% - 44px) / 3) !important;
    min-width: calc((100% - 44px) / 3) !important;
    max-width: calc((100% - 44px) / 3) !important;
}
.candle-card-image-wrap {
    background: transparent !important;
}
.candle-card-image {
    background: transparent !important;
    object-fit: contain !important;
}
.respectful-share.share-grid-4,
.respectful-share {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.respectful-share a,
.respectful-share button {
    min-width: 0 !important;
}
.respectful-share i {
    width: 42px !important;
    height: 42px !important;
    font-size: 1.05rem !important;
}
.respectful-share span {
    font-size: .72rem !important;
    line-height: 1.15 !important;
}
.create-memorial-card {
    text-align: center !important;
    background: linear-gradient(145deg, #ffffff, #f7f1ff) !important;
    border: 1px solid rgba(124,92,255,.16) !important;
}
.create-card-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    margin: 0 auto 10px;
    border-radius: 18px;
    background: #f2edff;
    color: #7c5cff;
    font-size: 1.35rem;
    font-weight: 900;
}
.create-memorial-card h2 {
    margin-bottom: 8px !important;
}
.create-memorial-card p {
    color: #62586f !important;
    line-height: 1.55 !important;
}
.create-memorial-btn {
    margin-top: 10px !important;
    width: 100% !important;
    justify-content: center !important;
}
.back-to-top-floater {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg,#7c5cff,#6a43ed);
    color: #fff;
    box-shadow: 0 18px 34px rgba(70,49,160,.26);
    font-size: 1.35rem;
    font-weight: 900;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    z-index: 60;
}
.back-to-top-floater.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
@media (max-width: 900px) {
    .candle-memory-card-v281 {
        width: calc((100% - 22px) / 2) !important;
        min-width: calc((100% - 22px) / 2) !important;
        max-width: calc((100% - 22px) / 2) !important;
    }
}
@media (max-width: 640px) {
    .candle-memory-card-v281 {
        width: 82% !important;
        min-width: 82% !important;
        max-width: 82% !important;
    }
    .respectful-share.share-grid-4,
    .respectful-share {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .back-to-top-floater {
        right: 16px;
        bottom: 16px;
    }
}

/* v2.9.4 public memorial refinements */
.public-share-card .respectful-share,
.public-share-card .respectful-share.share-grid-2x2,
.public-share-card .respectful-share.share-grid-4 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-top: 18px !important;
}
.public-share-card .respectful-share a,
.public-share-card .respectful-share button {
    min-height: 104px !important;
    padding: 14px 10px !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg, #ffffff 0%, #fbf8ff 100%) !important;
    border: 1px solid rgba(124, 92, 255, .15) !important;
    box-shadow: 0 14px 30px rgba(61, 47, 88, .08) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    color: #30283d !important;
    text-decoration: none !important;
}
.public-share-card .respectful-share a:hover,
.public-share-card .respectful-share button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 18px 38px rgba(61, 47, 88, .12) !important;
}
.public-share-card .respectful-share i {
    width: 54px !important;
    height: 54px !important;
    border-radius: 999px !important;
    display: grid !important;
    place-items: center !important;
    background: #f3eeff !important;
    color: #7c5cff !important;
    box-shadow: inset 0 0 0 1px rgba(124,92,255,.08) !important;
}
.public-share-card .respectful-share i svg {
    width: 27px !important;
    height: 27px !important;
    display: block !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.1 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}
.public-share-card .respectful-share a:nth-child(3) i {
    background: #ecfff5 !important;
    color: #20b86a !important;
}
.public-share-card .respectful-share a:nth-child(4) i {
    background: #eef5ff !important;
    color: #316ff6 !important;
}
.public-share-card .respectful-share span {
    font-size: .82rem !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
}

.candle-card.equal-side-card {
    text-align: center !important;
    padding: 28px 22px !important;
}
.candle-card.equal-side-card .memorial-candle-img {
    width: min(245px, 100%) !important;
    max-height: 170px !important;
    object-fit: contain !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    filter: drop-shadow(0 18px 20px rgba(107, 67, 35, .13)) !important;
    margin: 0 auto 16px !important;
}
.candle-memory-text {
    max-width: 240px !important;
    margin: 0 auto !important;
    padding: 12px 14px !important;
    border-radius: 18px !important;
    background: linear-gradient(180deg, #fff8ee 0%, #fffaf6 100%) !important;
    border: 1px solid rgba(239, 195, 143, .55) !important;
    color: #6c5139 !important;
    font-size: .94rem !important;
    line-height: 1.45 !important;
    font-weight: 800 !important;
}
.candle-memory-text strong {
    color: #7c5cff !important;
    font-size: 1.08rem !important;
}

.candle-wall-section .section-title-row .btn,
.candle-wall-section .section-title-row .btn-soft,
.candle-wall-section .section-title-row button {
    display: none !important;
}
.candle-carousel.is-static {
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
.candle-carousel.is-static .candle-carousel-track {
    justify-content: flex-start !important;
    animation: none !important;
    transform: none !important;
}
.candle-carousel.is-looping .candle-carousel-track {
    width: max-content !important;
    animation: candleCarouselLoopSmooth 42s linear infinite !important;
    will-change: transform;
}
.candle-carousel.is-looping:hover .candle-carousel-track,
.candle-carousel.is-looping:focus-within .candle-carousel-track {
    animation-play-state: paused !important;
}
.candle-carousel .candle-memory-card.candle-memory-card-v281 {
    flex: 0 0 calc((100% - 48px) / 3) !important;
    min-width: calc((100% - 48px) / 3) !important;
    max-width: calc((100% - 48px) / 3) !important;
}
@keyframes candleCarouselLoopSmooth {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(calc(-50% - 12px),0,0); }
}

.create-memorial-card.equal-side-card {
    position: relative !important;
    overflow: hidden !important;
    text-align: left !important;
    padding: 28px !important;
    background:
        radial-gradient(circle at 86% 90%, rgba(124, 92, 255, .20) 0 0, rgba(124, 92, 255, .20) 44px, transparent 45px),
        radial-gradient(circle at 105% 82%, rgba(179, 140, 255, .20) 0 0, rgba(179, 140, 255, .20) 70px, transparent 71px),
        linear-gradient(145deg, #ffffff 0%, #fbf8ff 58%, #f2ecff 100%) !important;
    border: 1px solid rgba(124,92,255,.18) !important;
    box-shadow: 0 22px 55px rgba(61,47,88,.10) !important;
}
.create-memorial-card.equal-side-card::after {
    content: '';
    position: absolute;
    right: 18px;
    bottom: 16px;
    width: 100px;
    height: 88px;
    opacity: .32;
    background:
        linear-gradient(135deg, transparent 46%, #7c5cff 47% 53%, transparent 54%) 45px 18px/18px 58px no-repeat,
        radial-gradient(ellipse at center, #b38cff 0 55%, transparent 57%) 14px 40px/52px 38px no-repeat,
        radial-gradient(ellipse at center, #7c5cff 0 55%, transparent 57%) 54px 28px/42px 62px no-repeat;
    pointer-events: none;
}
.create-memorial-card .create-card-icon {
    margin: 0 0 14px !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, #7c5cff, #9b7cff) !important;
    color: #fff !important;
    box-shadow: 0 16px 30px rgba(124,92,255,.25) !important;
}
.create-memorial-card h2 {
    color: #7c5cff !important;
    font-size: 1.55rem !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
}
.create-memorial-card ul {
    position: relative !important;
    z-index: 2 !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 18px 0 !important;
    display: grid !important;
    gap: 10px !important;
}
.create-memorial-card li {
    color: #3b3148 !important;
    font-weight: 800 !important;
    font-size: .9rem !important;
}
.create-memorial-card li::before {
    content: '✓';
    margin-right: 9px;
    color: #30283d;
    font-weight: 1000;
}
.create-memorial-card .create-memorial-btn {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    justify-content: center !important;
    border-radius: 14px !important;
    min-height: 48px !important;
    background: linear-gradient(135deg,#7c5cff,#6a43ed) !important;
    color: #fff !important;
    box-shadow: 0 16px 32px rgba(124,92,255,.24) !important;
}

.public-gallery-grid.gallery-lightbox-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.gallery-lightbox-trigger {
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    cursor: zoom-in !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 14px 28px rgba(61,47,88,.10) !important;
}
.gallery-lightbox-trigger img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    transition: transform .24s ease, filter .24s ease !important;
}
.gallery-lightbox-trigger:hover img {
    transform: scale(1.045) !important;
    filter: saturate(1.05) contrast(1.02) !important;
}
.gallery-pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    margin-top: 18px !important;
}
.gallery-pagination span {
    color: #766b84 !important;
    font-weight: 900 !important;
    font-size: .86rem !important;
}
@media (max-width: 700px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 640px) {
    .public-share-card .respectful-share,
    .public-share-card .respectful-share.share-grid-2x2,
    .public-share-card .respectful-share.share-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* v2.9.5 owner-on-page management + gallery/lightbox/share cleanup */
.candle-card.equal-side-card .candle-memory-text {
    max-width: 260px !important;
    margin: 4px auto 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #6d617c !important;
    font-size: .96rem !important;
    line-height: 1.55 !important;
    font-weight: 700 !important;
}
.candle-card.equal-side-card .candle-memory-text strong {
    color: inherit !important;
    font-size: inherit !important;
}
.candle-card.equal-side-card .memorial-candle-img {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    object-fit: contain !important;
}
.candle-card-actions:empty,
.candle-love-form,
.candle-report-form,
.public-report-form {
    display: none !important;
}
.owner-inline-actions,
.owner-gallery-delete-form {
    display: flex;
    justify-content: center;
    margin-top: 10px;
}
.owner-delete-button {
    border: 1px solid rgba(212, 82, 82, .18);
    background: #fff5f5;
    color: #b44242;
    border-radius: 999px;
    padding: 8px 13px;
    font: inherit;
    font-size: .78rem;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(128, 58, 58, .06);
}
.owner-delete-button:hover {
    background: #ffecec;
    transform: translateY(-1px);
}
.family-manage-link {
    display: inline-flex;
    width: fit-content;
    margin-top: 14px;
    color: #7c5cff;
    font-weight: 900;
    font-size: .82rem;
    text-decoration: none;
}
.family-manage-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.gallery-lightbox-item {
    position: relative;
    min-width: 0;
}
.gallery-lightbox-item[hidden] {
    display: none !important;
}
.gallery-lightbox-item .gallery-lightbox-trigger {
    width: 100% !important;
    height: 100% !important;
}
.gallery-lightbox-item .owner-gallery-delete-form {
    position: absolute;
    right: 8px;
    top: 8px;
    margin: 0;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .18s ease, transform .18s ease;
}
.gallery-lightbox-item:hover .owner-gallery-delete-form,
.gallery-lightbox-item:focus-within .owner-gallery-delete-form {
    opacity: 1;
    transform: translateY(0);
}
.owner-photo-delete {
    padding: 7px 10px !important;
    font-size: .72rem !important;
    background: rgba(255,255,255,.94) !important;
    border-color: rgba(212, 82, 82, .26) !important;
}
.public-gallery-grid.gallery-lightbox-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.gallery-lightbox[hidden] {
    display: none !important;
}
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 28px;
    background: rgba(30, 24, 42, .82);
    backdrop-filter: blur(8px);
}
.gallery-lightbox figure {
    margin: 0;
    max-width: min(980px, 86vw);
    max-height: 86vh;
    display: grid;
    gap: 12px;
    place-items: center;
}
.gallery-lightbox img {
    max-width: 100%;
    max-height: 78vh;
    object-fit: contain;
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(0,0,0,.36);
    background: #fff;
}
.gallery-lightbox figcaption {
    color: #fff;
    font-weight: 800;
    text-align: center;
}
.gallery-lightbox-close,
.gallery-lightbox-nav {
    position: absolute;
    border: 0;
    background: rgba(255,255,255,.95);
    color: #30283d;
    display: grid;
    place-items: center;
    cursor: pointer;
    box-shadow: 0 18px 45px rgba(0,0,0,.22);
}
.gallery-lightbox-close {
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    font-size: 1.7rem;
    line-height: 1;
}
.gallery-lightbox-nav {
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 62px;
    border-radius: 18px;
    font-size: 2.4rem;
}
.gallery-lightbox-prev { left: 22px; }
.gallery-lightbox-next { right: 22px; }
.public-share-card .respectful-share,
.public-share-card .respectful-share.share-grid-2x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
}
.public-share-card .respectful-share a,
.public-share-card .respectful-share button {
    min-height: 118px !important;
    border-radius: 26px !important;
}
.public-share-card .respectful-share i {
    width: 62px !important;
    height: 62px !important;
}
.public-share-card .respectful-share i svg {
    width: 31px !important;
    height: 31px !important;
}
.public-share-card .share-icon-x {
    background: #f2f0f7 !important;
    color: #201929 !important;
}
.public-share-card .share-icon-x svg path:first-child,
.public-share-card .share-icon-facebook svg path {
    fill: currentColor !important;
    stroke: none !important;
}
.public-share-card .share-icon-facebook {
    background: #eef5ff !important;
    color: #316ff6 !important;
}
.public-share-card .share-icon-whatsapp {
    background: #ecfff5 !important;
    color: #20b86a !important;
}
.create-memorial-card.equal-side-card {
    min-height: 320px !important;
}
.create-memorial-card.equal-side-card p {
    max-width: 210px;
}
@media (max-width: 700px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .gallery-lightbox-nav {
        width: 42px;
        height: 52px;
    }
    .gallery-lightbox-prev { left: 10px; }
    .gallery-lightbox-next { right: 10px; }
}

/* v2.9.6 owner view-page controls + hero/candle copy polish */
.public-profile-card .premium-title-block {
    padding-bottom: 0 !important;
}
.public-profile-card .premium-title-block .plain-meta {
    margin-top: 22px !important;
}
.public-profile-card .premium-title-block .public-subtitle {
    margin-top: 10px !important;
}

.candle-card.equal-side-card .candle-memory-text {
    max-width: 280px !important;
    margin: 8px auto 0 !important;
    color: #65586f !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: .98rem !important;
    line-height: 1.72 !important;
    font-weight: 600 !important;
    letter-spacing: -.01em !important;
}
.candle-card.equal-side-card .candle-memory-text strong {
    display: block !important;
    margin-bottom: 5px !important;
    color: #30283d !important;
    font-size: 1.08rem !important;
    font-weight: 900 !important;
}

.family-manage-link {
    margin-top: 16px !important;
    padding: 9px 13px !important;
    border-radius: 999px !important;
    background: #f2edff !important;
    color: #6a43ed !important;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(124, 92, 255, .10) !important;
}
.family-manage-link:hover {
    background: #ebe3ff !important;
    text-decoration: none !important;
}

.public-gallery-grid.gallery-lightbox-grid {
    grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
    gap: 8px !important;
}
.gallery-lightbox-trigger {
    border-radius: 10px !important;
}
.gallery-lightbox-trigger img {
    border-radius: 10px !important;
}
@media (max-width: 1000px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}
@media (max-width: 700px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

.owner-confirm-modal[hidden] {
    display: none !important;
}
.owner-confirm-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 22px !important;
    background: rgba(42, 34, 55, .58) !important;
    backdrop-filter: blur(8px) !important;
}
.owner-confirm-box {
    width: min(420px, 100%) !important;
    position: relative !important;
    padding: 30px !important;
    border-radius: 30px !important;
    background: linear-gradient(180deg, #ffffff 0%, #fbf8ff 100%) !important;
    border: 1px solid rgba(124, 92, 255, .16) !important;
    box-shadow: 0 30px 90px rgba(36, 28, 48, .28) !important;
    text-align: center !important;
}
.owner-confirm-close {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    width: 36px !important;
    height: 36px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f5efff !important;
    color: #6a43ed !important;
    font-size: 1.35rem !important;
    cursor: pointer !important;
}
.owner-confirm-icon {
    width: 54px !important;
    height: 54px !important;
    margin: 0 auto 14px !important;
    border-radius: 18px !important;
    display: grid !important;
    place-items: center !important;
    background: #fff0f0 !important;
    color: #b44242 !important;
    font-size: 1.55rem !important;
}
.owner-confirm-box h2 {
    margin: 0 0 8px !important;
    color: #30283d !important;
    font-size: 1.45rem !important;
    letter-spacing: -.035em !important;
}
.owner-confirm-box p {
    margin: 0 auto 22px !important;
    color: #766b84 !important;
    line-height: 1.55 !important;
    max-width: 300px !important;
}
.owner-confirm-actions {
    display: flex !important;
    gap: 12px !important;
    justify-content: center !important;
}
.owner-confirm-delete {
    background: #b44242 !important;
    color: #fff !important;
    box-shadow: 0 12px 28px rgba(180, 66, 66, .22) !important;
}
@media (max-width: 560px) {
    .owner-confirm-actions {
        flex-direction: column !important;
    }
    .owner-confirm-actions .btn {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* v2.9.7 owner controls + compact candle carousel/card cleanup */
.owner-view-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    max-width: var(--memorial-shell-width, 1180px);
    margin: 18px auto 22px;
    padding: 16px 18px;
    border: 1px solid rgba(124, 92, 255, .16);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,244,255,.94));
    box-shadow: 0 18px 40px rgba(47, 40, 61, .08);
}
.owner-view-toolbar strong {
    display: block;
    color: #30283d;
    font-size: .98rem;
    letter-spacing: -.01em;
}
.owner-view-eyebrow {
    display: block;
    color: #7c5cff;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .09em;
    text-transform: uppercase;
    margin-bottom: 2px;
}
.owner-view-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}
.owner-view-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid rgba(124, 92, 255, .16);
    color: #6b4dff;
    font-size: .8rem;
    font-weight: 950;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(47, 40, 61, .06);
}
.owner-view-actions a:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(124, 92, 255, .14);
}

.candle-wall-section {
    padding: 26px 26px 28px !important;
    overflow: hidden !important;
}
.candle-wall-section .section-title-row {
    margin-bottom: 16px !important;
}
.candle-carousel {
    overflow: hidden !important;
    padding: 2px 0 4px !important;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%) !important;
    mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%) !important;
}
.candle-carousel.is-static {
    -webkit-mask-image: none !important;
    mask-image: none !important;
}
.candle-carousel-track {
    display: flex !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: max-content !important;
}
.candle-carousel.is-static .candle-carousel-track {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    animation: none !important;
    transform: none !important;
}
.candle-carousel.is-looping .candle-carousel-track {
    animation: candleCarouselSeamlessV297 36s linear infinite !important;
    will-change: transform;
}
.candle-carousel.is-looping:hover .candle-carousel-track,
.candle-carousel.is-looping:focus-within .candle-carousel-track {
    animation-play-state: paused !important;
}
.candle-carousel .candle-memory-card.candle-memory-card-v281,
.candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
    flex: 0 0 174px !important;
    width: 174px !important;
    min-width: 174px !important;
    max-width: 174px !important;
    min-height: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 28px rgba(47, 40, 61, .06) !important;
}
.candle-carousel.is-static .candle-memory-card.candle-memory-card-v281 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
}
.candle-card-image-wrap {
    height: 92px !important;
    padding: 10px 10px 0 !important;
    background: radial-gradient(circle at 50% 62%, rgba(255, 214, 147, .18), rgba(255,255,255,0) 58%) !important;
}
.candle-card-image {
    width: 136px !important;
    max-width: 96% !important;
    height: 82px !important;
    object-fit: contain !important;
    filter: drop-shadow(0 8px 12px rgba(107, 67, 35, .12)) !important;
}
.candle-card-body {
    padding: 6px 13px 14px !important;
}
.candle-card-person,
.candle-memory-card.candle-memory-card-v281 strong.candle-card-person {
    display: block !important;
    font-size: .9rem !important;
    line-height: 1.12 !important;
    margin-bottom: 5px !important;
}
.candle-memory-card.candle-memory-card-v281 p {
    min-height: 0 !important;
    margin: 0 0 7px !important;
    font-size: .76rem !important;
    line-height: 1.28 !important;
}
.candle-memory-card.candle-memory-card-v281 small {
    margin: 0 !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
}
.candle-memory-card .owner-inline-actions {
    margin-top: 8px !important;
}
.candle-memory-card .owner-delete-button {
    padding: 6px 10px !important;
    font-size: .68rem !important;
}
@keyframes candleCarouselSeamlessV297 {
    from { transform: translate3d(0,0,0); }
    to { transform: translate3d(calc(-50% - 8px),0,0); }
}

.candle-card.equal-side-card {
    padding: 20px 18px 22px !important;
    min-height: 0 !important;
}
.candle-card.equal-side-card .memorial-candle-img {
    width: min(176px, 100%) !important;
    max-height: 118px !important;
    margin: 0 auto 10px !important;
    object-fit: contain !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: drop-shadow(0 10px 16px rgba(107, 67, 35, .12)) !important;
}
.candle-card.equal-side-card .candle-memory-text {
    max-width: 210px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #6d617c !important;
    font-size: .86rem !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
}
.candle-card.equal-side-card .candle-memory-text strong {
    display: block !important;
    margin-bottom: 4px !important;
    color: #30283d !important;
    font-size: .92rem !important;
    font-weight: 950 !important;
}

.owner-inline-actions,
.owner-gallery-delete-form {
    display: flex !important;
    justify-content: center !important;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
}
.owner-gallery-delete-form {
    position: absolute !important;
    top: 7px !important;
    right: 7px !important;
    margin: 0 !important;
    z-index: 4 !important;
}
.owner-delete-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
}

@media (max-width: 860px) {
    .owner-view-toolbar {
        flex-direction: column;
        align-items: flex-start;
    }
    .owner-view-actions {
        justify-content: flex-start;
    }
    .candle-carousel.is-static .candle-carousel-track {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .candle-carousel .candle-memory-card.candle-memory-card-v281,
    .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
        flex-basis: 160px !important;
        width: 160px !important;
        min-width: 160px !important;
        max-width: 160px !important;
    }
}
@media (max-width: 560px) {
    .candle-carousel {
        -webkit-mask-image: none !important;
        mask-image: none !important;
        overflow-x: auto !important;
    }
    .candle-carousel.is-static .candle-carousel-track {
        grid-template-columns: 1fr !important;
    }
}

/* v2.9.8 owner controls visibility + compact candle spacing fix */
.owner-view-toolbar {
    position: relative !important;
    z-index: 20 !important;
    border: 1px solid rgba(124, 92, 255, .24) !important;
    background: linear-gradient(135deg, #ffffff, #f7f1ff) !important;
}
.owner-view-actions a,
.owner-delete-button {
    visibility: visible !important;
    opacity: 1 !important;
}

.candle-wall-section .candle-carousel {
    overflow: hidden !important;
    padding: 0 !important;
}
.candle-wall-section .candle-carousel-track {
    display: flex !important;
    align-items: stretch !important;
    gap: 14px !important;
    width: max-content !important;
}
.candle-wall-section .candle-carousel.is-looping .candle-carousel-track {
    display: flex !important;
    grid-template-columns: none !important;
}
.candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281,
.candle-wall-section .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
    flex: 0 0 168px !important;
    width: 168px !important;
    min-width: 168px !important;
    max-width: 168px !important;
    min-height: 222px !important;
    height: auto !important;
}
.candle-wall-section .candle-carousel.is-static .candle-memory-card.candle-memory-card-v281 {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}
.candle-card-image-wrap {
    height: 86px !important;
    padding: 7px 8px 0 !important;
}
.candle-card-image {
    width: 132px !important;
    height: 78px !important;
}
.candle-card-body {
    padding: 5px 12px 12px !important;
}
.candle-memory-card.candle-memory-card-v281 p {
    margin-bottom: 6px !important;
}

.candle-card.equal-side-card {
    padding: 16px 18px 18px !important;
    gap: 0 !important;
}
.candle-card.equal-side-card .memorial-candle-img {
    width: min(230px, 100%) !important;
    max-height: 155px !important;
    margin: 0 auto 2px !important;
    display: block !important;
}
.candle-card.equal-side-card .candle-memory-text {
    margin-top: 0 !important;
    max-width: 235px !important;
    font-size: .88rem !important;
    line-height: 1.48 !important;
    font-weight: 650 !important;
}
.candle-card.equal-side-card .candle-memory-text strong {
    margin-bottom: 2px !important;
    font-size: .98rem !important;
}

@media (max-width: 860px) {
    .candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281,
    .candle-wall-section .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
        flex-basis: 158px !important;
        width: 158px !important;
        min-width: 158px !important;
        max-width: 158px !important;
    }
}

/* v2.9.15 candle choice + detail modal polish */
.candle-wall-section {
    overflow: visible;
}

.candle-carousel {
    min-height: 345px;
    padding: 18px 0 30px;
    overflow: hidden;
}

.candle-carousel .candle-memory-card.candle-memory-card-v281 {
    cursor: pointer;
    min-height: 285px;
    height: 285px;
    justify-content: flex-start;
    padding: 18px 16px 16px;
    overflow: visible;
}

.candle-carousel .candle-memory-card.candle-memory-card-v281:hover,
.candle-carousel .candle-memory-card.candle-memory-card-v281:focus {
    transform: translateY(-8px);
    outline: none;
}

.candle-carousel .candle-card-image-wrap {
    height: 150px;
    margin-bottom: 8px;
    background: transparent;
    box-shadow: none;
}

.candle-carousel .candle-card-image {
    max-height: 150px;
    object-fit: contain;
    background: transparent;
}

.candle-carousel .candle-memory-card.candle-memory-card-v281 p.candle-small-standard {
    margin: 5px 0 7px;
    font-size: .9rem;
    line-height: 1.35;
    color: #665c72;
}

.candle-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.candle-choice-card {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 10px 8px;
    border: 1px solid #e8deef;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #fbf7ff);
    cursor: pointer;
    color: #42364e;
    font-size: .86rem;
    font-weight: 800;
    text-align: center;
}

.candle-choice-card input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
}

.candle-choice-card:has(input:checked),
.candle-choice-card.is-selected {
    border-color: #9b74d0;
    box-shadow: 0 12px 28px rgba(109, 74, 148, .16);
    background: #fff;
}

.candle-choice-preview {
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
}

.candle-choice-preview img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: transparent;
}

#candleDetailModal[hidden] {
    display: none !important;
}

#candleDetailModal.is-open {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 24px;
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: rgba(32, 24, 44, .58);
    backdrop-filter: blur(4px);
}

.candle-detail-card {
    width: min(520px, calc(100vw - 36px));
    border-radius: 30px;
    padding: 32px;
    text-align: center;
}

.candle-detail-image {
    width: 180px;
    height: 180px;
    object-fit: contain;
    display: block;
    margin: 0 auto 12px;
    background: transparent;
}

.candle-detail-card h2 {
    margin: 6px 0 4px;
    color: #30283d;
    font-size: 1.75rem;
}

.candle-detail-date {
    margin: 0 0 14px;
    color: #8b8196;
    font-weight: 800;
}

.candle-detail-message {
    padding: 18px;
    border-radius: 22px;
    background: #fbf7ff;
    color: #4c4359;
    line-height: 1.65;
    font-size: 1rem;
    border: 1px solid #eee5f5;
}

@media (max-width: 640px) {
    .candle-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .candle-carousel {
        min-height: 335px;
    }
}

/* v2.9.16 candle image set + carousel hover-space correction */
.candle-wall-section {
    overflow: visible !important;
    padding-bottom: 26px !important;
}
.candle-wall-section .candle-carousel {
    min-height: 0 !important;
    padding: 12px 0 6px !important;
    overflow: hidden !important;
}
.candle-wall-section .candle-carousel-track {
    padding-top: 10px !important;
    padding-bottom: 2px !important;
    align-items: stretch !important;
}
.candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281,
.candle-wall-section .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
    min-height: 214px !important;
    height: 214px !important;
    padding: 12px 12px 13px !important;
    overflow: visible !important;
}
.candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281:hover,
.candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281:focus {
    transform: translateY(-7px) !important;
}
.candle-wall-section .candle-carousel .candle-card-image-wrap {
    height: 88px !important;
    margin-bottom: 4px !important;
    padding: 0 !important;
    background: transparent !important;
}
.candle-wall-section .candle-carousel .candle-card-image {
    width: 138px !important;
    height: 88px !important;
    max-height: 88px !important;
    object-fit: contain !important;
    background: transparent !important;
}
.candle-wall-section .candle-carousel .candle-card-body {
    padding: 4px 8px 0 !important;
}
.candle-wall-section .candle-carousel .candle-card-person {
    font-size: .84rem !important;
    margin-bottom: 4px !important;
}
.candle-wall-section .candle-carousel .candle-small-standard {
    font-size: .72rem !important;
    line-height: 1.2 !important;
    margin: 0 0 6px !important;
}
.candle-wall-section .candle-carousel small {
    font-size: .68rem !important;
}
.candle-choice-preview {
    width: 82px !important;
    height: 58px !important;
}
.candle-choice-card {
    min-height: 104px !important;
}
.candle-choice-card span:last-child {
    font-size: .78rem !important;
    line-height: 1.15 !important;
}
@media (max-width: 860px) {
    .candle-wall-section .candle-carousel .candle-memory-card.candle-memory-card-v281,
    .candle-wall-section .candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
        height: 210px !important;
        min-height: 210px !important;
    }
}

/* v2.9.17 candle chooser + candle wall spacing polish */
.candle-wall-section .candle-carousel,
.candle-carousel {
    padding-top: 28px !important;
    padding-bottom: 10px !important;
    min-height: 0 !important;
    overflow: hidden !important;
}
.candle-carousel .candle-memory-card.candle-memory-card-v281,
.candle-carousel.is-looping .candle-memory-card.candle-memory-card-v281 {
    margin-top: 0 !important;
}
.candle-choice-grid {
    gap: 9px !important;
}
.candle-choice-card {
    display: grid !important;
    grid-template-columns: 22px 76px 1fr !important;
    align-items: center !important;
    justify-content: start !important;
    min-height: 76px !important;
    padding: 9px 12px !important;
    gap: 10px !important;
    text-align: left !important;
}
.candle-choice-card::before {
    content: '';
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid #a397b4;
    background: #fff;
    box-shadow: inset 0 0 0 3px #fff;
}
.candle-choice-card:has(input:checked)::before,
.candle-choice-card.is-selected::before {
    background: #7c4dff;
    border-color: #7c4dff;
}
.candle-choice-preview {
    width: 72px !important;
    height: 58px !important;
}
.candle-choice-preview img {
    max-width: 72px !important;
    max-height: 58px !important;
}
.candle-choice-card > span:last-child {
    line-height: 1.15 !important;
}
@media(max-width:640px){
    .candle-choice-card {
        grid-template-columns: 20px 68px 1fr !important;
        min-height: 72px !important;
    }
}

/* v2.9.18 candle chooser modal + social sharing polish */
.candle-choice-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.candle-choice-card {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 72px 18px 1fr !important;
    align-items: center !important;
    justify-content: start !important;
    gap: 9px !important;
    min-height: 82px !important;
    padding: 10px 12px !important;
    text-align: left !important;
    overflow: hidden !important;
}
.candle-choice-card::before {
    display: none !important;
    content: none !important;
}
.candle-choice-card .candle-choice-input,
.candle-choice-card input[type="radio"] {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
.candle-choice-preview {
    grid-column: 1 !important;
    width: 72px !important;
    height: 58px !important;
    display: grid !important;
    place-items: center !important;
}
.candle-choice-preview img {
    max-width: 72px !important;
    max-height: 58px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    background: transparent !important;
}
.candle-choice-dot {
    grid-column: 2 !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 999px !important;
    border: 2px solid #a99db7 !important;
    background: #fff !important;
    box-shadow: inset 0 0 0 3px #fff !important;
}
.candle-choice-card:has(input:checked) .candle-choice-dot,
.candle-choice-card.is-selected .candle-choice-dot {
    background: #7c4dff !important;
    border-color: #7c4dff !important;
}
.candle-choice-name {
    grid-column: 3 !important;
    font-size: .82rem !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    color: #30283d !important;
}
@media(max-width: 700px) {
    .candle-choice-grid {
        grid-template-columns: 1fr !important;
    }
    .candle-choice-card {
        grid-template-columns: 76px 18px 1fr !important;
    }
}

/* v2.9.19 compact candle selector fix */
#candleModal .candle-choice-field {
    margin-top: 6px !important;
}
#candleModal .candle-choice-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
#candleModal .candle-choice-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 10px 9px 11px !important;
    border: 1px solid #eadff4 !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #ffffff 0%, #fcf8ff 100%) !important;
    box-shadow: none !important;
    text-align: center !important;
    cursor: pointer !important;
    overflow: visible !important;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease !important;
}
#candleModal .candle-choice-card::before,
#candleModal .candle-choice-card::after,
#candleModal .candle-choice-dot {
    display: none !important;
    content: none !important;
}
#candleModal .candle-choice-card .candle-choice-input,
#candleModal .candle-choice-card input[type="radio"] {
    display: none !important;
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
#candleModal .candle-choice-preview {
    width: 92px !important;
    height: 58px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
}
#candleModal .candle-choice-preview img {
    width: 92px !important;
    height: 58px !important;
    max-width: 92px !important;
    max-height: 58px !important;
    object-fit: contain !important;
    background: transparent !important;
}
#candleModal .candle-choice-name,
#candleModal .candle-choice-card > span:last-child {
    display: block !important;
    font-size: .78rem !important;
    line-height: 1.15 !important;
    font-weight: 900 !important;
    color: #30283d !important;
    margin: 0 !important;
}
#candleModal .candle-choice-card:hover {
    transform: translateY(-2px) !important;
    border-color: rgba(124, 77, 255, .45) !important;
    box-shadow: 0 12px 24px rgba(54, 40, 72, .08) !important;
}
#candleModal .candle-choice-card:has(input:checked),
#candleModal .candle-choice-card.is-selected {
    border-color: #7c4dff !important;
    background: linear-gradient(180deg, #ffffff 0%, #f3edff 100%) !important;
    box-shadow: 0 14px 30px rgba(124, 77, 255, .18) !important;
    transform: translateY(-2px) !important;
}
#candleModal .candle-choice-card:has(input:checked) .candle-choice-name,
#candleModal .candle-choice-card.is-selected .candle-choice-name {
    color: #6841df !important;
}
@media(max-width: 700px) {
    #candleModal .candle-choice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media(max-width: 440px) {
    #candleModal .candle-choice-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v2.9.20 full story/about layout polish */
.story-left-create,
.story-bottom-back {
    display: none !important;
}

.public-layout.story-focus {
    align-items: start !important;
}

.public-layout.story-focus .left-sidebar {
    position: sticky;
    top: 26px;
}

.public-layout.story-focus .about-card,
.public-layout.story-focus .side-tributes,
.public-layout.story-focus .side-photos,
.public-layout.story-focus .right-sidebar .create-memorial-card,
.public-layout.story-focus .candle-wall-section,
.public-layout.story-focus #tributes {
    display: none !important;
}

.public-layout.story-focus .family-card {
    order: 1;
}

.public-layout.story-focus .story-left-create {
    display: block !important;
    order: 2;
}

.public-layout.story-focus .composer-card {
    order: 1;
}

.public-layout.story-focus .full-story-card {
    order: 2;
    display: block !important;
}

.public-layout.story-focus #gallery {
    order: 3;
}

.public-layout.story-focus .story-bottom-back {
    display: flex !important;
    order: 4;
    width: 100%;
    min-height: 56px;
    align-items: center;
    justify-content: center;
    border-radius: 22px !important;
    background: linear-gradient(135deg, #f4efff, #fff9f4) !important;
    border: 1px solid rgba(124, 92, 255, .18) !important;
    color: #6f50ef !important;
    box-shadow: 0 14px 34px rgba(61, 47, 88, .08) !important;
}

.public-layout.story-focus .full-story-card .section-title-row #closeFullStory {
    display: none !important;
}

.public-layout.story-focus .create-memorial-card.story-left-create {
    min-height: auto !important;
}

.public-layout.story-focus .create-memorial-card.story-left-create p {
    margin-bottom: 14px;
}

.public-layout.story-focus .create-memorial-card.story-left-create .create-memorial-btn {
    width: 100%;
    justify-content: center;
}

@media (max-width: 1180px) {
    .public-layout.story-focus .left-sidebar {
        position: static;
    }
}

/* v2.9.21 story navigation and candle modal hover polish */
.candle-modal-form .modal-actions .btn-soft:hover,
.candle-modal-form .modal-actions .btn-soft:focus,
#candleModal .modal-actions .btn-soft:hover,
#candleModal .modal-actions .btn-soft:focus {
    color: #ffffff !important;
}
.public-layout.story-focus .composer-card {
    order: 1;
    scroll-margin-top: 24px;
}
.public-layout.story-focus .full-story-card {
    order: 2;
}
.public-layout.story-focus .timeline-content:not(.composer-card):not(#gallery) {
    display: none !important;
}

/* v2.9.22 modal cancel hover fix */
.ah-modal .modal-actions .btn-soft:hover,
.ah-modal .modal-actions .btn-soft:focus,
.ah-modal .candle-actions-safe .btn-soft:hover,
.ah-modal .candle-actions-safe .btn-soft:focus,
#tributeModal .btn-soft:hover,
#tributeModal .btn-soft:focus,
#candleModal .btn-soft:hover,
#candleModal .btn-soft:focus {
    color: #ffffff !important;
}

/* v2.9.26 stronger modal/button hover text fix */
.btn:hover,
.btn:focus,
button.btn:hover,
button.btn:focus,
a.btn:hover,
a.btn:focus,
.btn-soft:hover,
.btn-soft:focus,
.btn-danger:hover,
.btn-danger:focus,
.modal-actions .btn:hover,
.modal-actions .btn:focus,
.modal-actions .btn-soft:hover,
.modal-actions .btn-soft:focus,
#tributeModal .modal-actions .btn:hover,
#tributeModal .modal-actions .btn:focus,
#candleModal .modal-actions .btn:hover,
#candleModal .modal-actions .btn:focus {
    color: #ffffff !important;
}
.btn:hover *,
.btn:focus *,
button.btn:hover *,
button.btn:focus *,
a.btn:hover *,
a.btn:focus * {
    color: #ffffff !important;
}


/* v2.9.27 public family avatar and story navigation polish */
.family-avatar-item .family-cropped-avatar,
.family-avatar-item .family-owner-avatar.family-cropped-avatar {
    background: linear-gradient(145deg, #fff7fb, #f1ecff) !important;
    border: 3px solid #ffffff !important;
    box-shadow: 0 12px 24px rgba(61, 47, 88, .14) !important;
    outline: none !important;
}

.family-avatar-item .family-cropped-avatar > img,
.family-avatar-item .family-owner-avatar.family-cropped-avatar > img {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: var(--family-photo-x, 50%) var(--family-photo-y, 50%) !important;
    transform: scale(var(--family-photo-zoom, 1)) !important;
    transform-origin: var(--family-photo-x, 50%) var(--family-photo-y, 50%) !important;
}

.family-owner-item .family-cropped-avatar::after,
.family-owner-item .family-owner-avatar::after,
.family-owner-badge {
    display: none !important;
}

.create-memorial-card .create-memorial-btn:hover,
.create-memorial-card .create-memorial-btn:focus-visible {
    color: #ffffff !important;
}

/* v2.10.3 public back-to-top floater aligned with owner admin style */
.back-to-top-floater {
    width: auto !important;
    height: auto !important;
    min-height: 44px !important;
    padding: 0 18px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #7c5cff, #6b46ee) !important;
    color: #ffffff !important;
    font-size: .9rem !important;
    font-weight: 900 !important;
    letter-spacing: -0.01em !important;
    box-shadow: 0 18px 42px rgba(124, 92, 255, .28) !important;
    border: 1px solid rgba(255,255,255,.45) !important;
}
.back-to-top-floater:hover,
.back-to-top-floater:focus {
    color: #ffffff !important;
    transform: translateY(-2px) !important;
}

/* v2.13.3 memorial hero leave tribute hover fix */
.premium-hero-actions .glass-btn:hover,
.premium-hero-actions .glass-btn:focus{
  background:#6f42e9!important;
  color:#ffffff!important;
  border-color:#6f42e9!important;
  box-shadow:0 18px 40px rgba(111,66,233,.26)!important;
}
.premium-hero-actions .glass-btn:hover *,
.premium-hero-actions .glass-btn:focus *{color:#ffffff!important;}

/* v2.13.5 family join + private profile gate */
.family-join-button{
  width:100%;
  margin:18px 0 0;
  border:0;
  border-radius:999px;
  padding:13px 18px;
  background:linear-gradient(135deg,#f2eaff,#fff7fb);
  color:#5b32c9;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 14px 30px rgba(95,57,181,.12);
  transition:.18s ease;
}
.family-join-button:hover{background:#7047ef;color:#fff;transform:translateY(-1px)}
.join-family-modal{max-width:620px!important}
.join-family-form{display:grid;gap:16px;margin-top:22px}
.join-family-form label{display:grid;gap:8px;color:#302047;font-weight:800}
.join-family-form input{min-height:52px;border:1px solid #e2d7f0;border-radius:16px;padding:0 16px;font:600 15px/1.2 Poppins,Arial,sans-serif;color:#302047;background:#fff}
.join-family-form input[type=file]{padding:13px 16px;height:auto}
.private-profile-gate{min-height:70vh;display:grid;place-items:center;padding:90px 22px;background:linear-gradient(135deg,#fff,#faf7ff 55%,#fff7f2)}
.private-profile-card{width:min(680px,100%);background:rgba(255,255,255,.96);border:1px solid #eadff4;border-radius:34px;padding:48px;box-shadow:0 36px 90px rgba(58,35,89,.14);text-align:center;font-family:Poppins,Arial,sans-serif}
.private-profile-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;border-radius:50%;background:#f1eaff;color:#7047ef;font-size:30px}
.private-profile-card h1{font-size:clamp(34px,5vw,56px);line-height:1.04;margin:0 0 14px;color:#302047;font-weight:900;letter-spacing:-.04em}
.private-profile-card p{color:#655b72;line-height:1.65;margin:0 auto 24px;max-width:520px}
.private-access-form{display:grid;gap:12px;max-width:340px;margin:0 auto;text-align:left}
.private-access-form label{font-weight:900;color:#302047}
.private-access-form input{height:58px;border:1px solid #ded2ef;border-radius:18px;text-align:center;font:900 24px/1 Poppins,Arial,sans-serif;letter-spacing:.22em;color:#302047}
.private-access-form button{margin-top:8px;width:100%}


/* v1.0.13: View memorial gallery - 6 larger images per page */
.public-gallery-grid.gallery-lightbox-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
}
.public-gallery-grid.gallery-lightbox-grid .gallery-lightbox-trigger {
    border-radius: 20px !important;
}
.public-gallery-grid.gallery-lightbox-grid .gallery-lightbox-trigger img {
    aspect-ratio: 4 / 3 !important;
    border-radius: 20px !important;
    min-height: 220px !important;
}
.gallery-pagination {
    margin-top: 24px !important;
}
@media (max-width: 900px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .public-gallery-grid.gallery-lightbox-grid .gallery-lightbox-trigger img {
        min-height: 190px !important;
    }
}
@media (max-width: 560px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: 1fr !important;
    }
    .public-gallery-grid.gallery-lightbox-grid .gallery-lightbox-trigger img {
        min-height: 230px !important;
    }
}


/* v1.0.16 family join placement, popup preview and 5x2 gallery grid */
.family-card .family-avatar-row {
    order: 2 !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 auto 0 !important;
}
.family-join-button-wrap {
    order: 3 !important;
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 16px auto 0 !important;
    clear: both !important;
}
.family-card .family-join-button {
    width: auto !important;
    min-width: 220px !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
}
.family-card .family-manage-link {
    order: 4 !important;
    margin-top: 12px !important;
    text-align: center !important;
}
.join-family-photo-preview {
    width: 124px !important;
    height: 124px !important;
    margin: 4px auto 2px !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    display: grid !important;
    place-items: center !important;
    background: #f4ecff !important;
    border: 4px solid #ffffff !important;
    box-shadow: 0 18px 44px rgba(87, 54, 150, .16) !important;
}
.join-family-photo-preview img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center center !important;
    border-radius: 999px !important;
}
.public-gallery-grid.gallery-lightbox-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 16px !important;
}
.public-gallery-grid.gallery-lightbox-grid .gallery-lightbox-trigger img {
    aspect-ratio: 1 / 1 !important;
    min-height: 0 !important;
    height: auto !important;
    object-fit: cover !important;
}
@media (max-width: 1200px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 900px) {
    .public-gallery-grid.gallery-lightbox-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .family-card .family-join-button {
        min-width: 0 !important;
        width: 100% !important;
    }
}


/* v3.0.64 - polished unavailable/private memorial states */
.ah-state-page{
  min-height:calc(100vh - 220px);
  display:grid;
  place-items:center;
  padding:clamp(54px,7vw,96px) 18px;
  background:linear-gradient(135deg,#fffaf7 0%,#fbf7ff 54%,#fff 100%);
  overflow:hidden;
}
.ah-state-page .container{width:min(980px,100%);}
.ah-state-card{
  position:relative;
  width:min(720px,100%);
  margin:0 auto;
  padding:clamp(34px,5vw,58px);
  border:1px solid rgba(226,214,240,.95);
  border-radius:34px;
  background:rgba(255,255,255,.96);
  box-shadow:0 34px 90px rgba(55,35,82,.13);
  text-align:center;
  font-family:Poppins,Arial,sans-serif;
  overflow:hidden;
}
.ah-state-card:before{
  content:"";
  position:absolute;
  inset:auto -80px -110px auto;
  width:260px;
  height:260px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(124,92,255,.12),rgba(255,255,255,0) 68%);
  pointer-events:none;
}
.ah-state-graphic{
  position:relative;
  z-index:1;
  width:132px;
  height:132px;
  margin:0 auto 22px;
  display:grid;
  place-items:center;
  color:#7c5cff;
  border-radius:32px;
  background:linear-gradient(145deg,#f6efff,#fff8fb);
  box-shadow:inset 0 0 0 1px rgba(124,92,255,.13),0 18px 42px rgba(84,50,140,.12);
}
.ah-state-graphic svg{width:92px;height:92px;display:block;}
.ah-state-card .eyebrow{
  position:relative;
  z-index:1;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  margin:0 auto 12px;
  padding:8px 14px;
  border-radius:999px;
  background:#f3ecff;
  color:#6f43d6;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.ah-state-card h1{
  position:relative;
  z-index:1;
  margin:0 0 14px;
  color:#302047;
  font-size:clamp(32px,5vw,54px);
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.04em;
  text-align:center;
}
.ah-state-copy,
.ah-state-card p:not(.eyebrow){
  position:relative;
  z-index:1;
  max-width:540px;
  margin:0 auto 22px;
  color:#645970;
  font-size:16px;
  line-height:1.7;
  text-align:center;
}
.private-profile-gate.ah-state-page{min-height:calc(100vh - 220px);}
.private-profile-card.ah-state-card{width:min(720px,100%);}
.private-profile-card.ah-state-card .private-access-form{
  position:relative;
  z-index:1;
  max-width:380px;
  margin:26px auto 0;
  text-align:left;
}
.private-profile-card.ah-state-card .private-access-form label{
  text-align:center;
  color:#34214c;
  font-weight:900;
}
.private-profile-card.ah-state-card .private-access-form input{
  width:100%;
  height:58px;
  border:1px solid #ded2ef;
  border-radius:18px;
  background:#fff;
  text-align:center;
  font:900 24px/1 Poppins,Arial,sans-serif;
  letter-spacing:.22em;
  color:#302047;
  box-shadow:0 12px 28px rgba(55,35,82,.06);
}
.private-profile-card.ah-state-card .private-access-form button{
  margin-top:10px;
  width:100%;
  min-height:54px;
}
@media (max-width:640px){
  .ah-state-page{padding:42px 14px;place-items:start center;}
  .ah-state-card{border-radius:26px;padding:30px 20px;}
  .ah-state-graphic{width:104px;height:104px;border-radius:26px;margin-bottom:18px;}
  .ah-state-graphic svg{width:76px;height:76px;}
  .ah-state-card h1{font-size:32px;}
  .ah-state-copy,.ah-state-card p:not(.eyebrow){font-size:15px;line-height:1.65;}
}

/* v9.0.18 restore memorial candle image card without touching popup/menu logic */
.candle-card.equal-side-card#candles {
    position: relative !important;
    text-align: center !important;
}
.candle-card.equal-side-card#candles .memorial-candle-img {
    display: block !important;
    width: min(230px, 92%) !important;
    height: 142px !important;
    max-height: 142px !important;
    object-fit: contain !important;
    object-position: center center !important;
    margin: 0 auto 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    filter: drop-shadow(0 10px 16px rgba(107, 67, 35, .12)) !important;
}
.candle-card.equal-side-card#candles .memorial-candle-img[src=""],
.candle-card.equal-side-card#candles .memorial-candle-img:not([src]) {
    display: none !important;
}
.candle-card.equal-side-card#candles::before {
    content: "";
    display: none;
}


/* v2.9.2 public memorial keepsake card order section */
.memorial-keepsake-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff 0%,#fbf8ff 54%,#fff5fb 100%);border:1px solid #eadff4!important;text-align:left;display:flex;flex-direction:column;gap:16px;padding:20px!important;box-shadow:0 22px 58px rgba(45,28,72,.10), inset 0 1px 0 rgba(255,255,255,.9)}
.memorial-keepsake-card:before{content:"";position:absolute;right:-56px;top:-64px;width:168px;height:168px;border-radius:50%;background:radial-gradient(circle,rgba(124,77,255,.18),rgba(255,255,255,0) 70%);pointer-events:none}
.memorial-keepsake-card:after{content:"";position:absolute;left:-44px;bottom:-52px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(255,210,238,.48),rgba(255,255,255,0) 68%);pointer-events:none}
.keepsake-card-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px}
.keepsake-card-icon{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#efe5ff,#fff3fb);color:#6f42f5;font-weight:900;box-shadow:0 12px 28px rgba(111,66,245,.13)}
.memorial-keepsake-card .eyebrow{margin:0;color:#7b55f3;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.memorial-keepsake-card h2{margin:0;color:#30243d;font-size:23px;line-height:1.12;letter-spacing:-.025em}
.memorial-keepsake-card p{margin:0;color:#6c6178;font-size:13.5px;line-height:1.58}
.keepsake-card-features{display:grid;gap:8px;margin:2px 0 0}
.keepsake-card-features span{display:flex;align-items:center;gap:8px;color:#4f435e;font-size:12.5px;font-weight:850}
.keepsake-card-features span:before{content:"";width:7px;height:7px;border-radius:999px;background:#8b5cf6;box-shadow:0 0 0 5px rgba(139,92,246,.12)}
.memorial-keepsake-button{display:none}
.memorial-keepsake-graphic-button{position:relative;z-index:2;display:block;width:100%;padding:0;border:0;background:transparent;border-radius:22px;cursor:pointer;box-shadow:0 18px 40px rgba(87,52,140,.16);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.memorial-keepsake-graphic-button picture,.memorial-keepsake-graphic-button img{display:block;width:100%}
.memorial-keepsake-graphic-button img{height:auto;border-radius:22px}
.memorial-keepsake-graphic-button:hover,.memorial-keepsake-graphic-button:focus-visible{transform:translateY(-2px);box-shadow:0 24px 54px rgba(87,52,140,.22);filter:saturate(1.04)}
.memorial-keepsake-graphic-button:focus-visible{outline:3px solid rgba(124,77,255,.26);outline-offset:4px}
.public-card-preview-modal{max-width:min(1120px,calc(100vw - 34px));width:100%;padding:24px;border-radius:30px;max-height:calc(100vh - 44px);overflow:auto}
.card-preview-modal-grid{display:grid;grid-template-columns:minmax(300px,360px) minmax(420px,1fr);gap:26px;align-items:start}
.card-preview-stage{display:grid;gap:14px;justify-items:center;align-content:start}
.customer-card-preview-frame{position:relative;width:min(315px,100%);aspect-ratio:54/85.6;border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(45,28,72,.22);overflow:hidden;border:1px solid #eadff4}
.customer-card-preview-image{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .35s ease}
.customer-card-preview-image.is-loaded{opacity:1}
.customer-card-preview-loading{position:absolute;inset:0;z-index:2;display:grid;place-items:center;align-content:center;gap:14px;background:linear-gradient(145deg,#fff,#fbf7ff);color:#6b6077;text-align:center;padding:24px}
.customer-card-preview-loading span{width:42px;height:42px;border-radius:50%;border:4px solid #eee5fb;border-top-color:#7b55f3;animation:ahSpin .9s linear infinite}
.customer-card-preview-loading strong{font-size:14px}.customer-card-preview-loading.is-finished{opacity:0;pointer-events:none;transition:opacity .28s ease}.customer-card-preview-loading.is-error span{display:none}
@keyframes ahSpin{to{transform:rotate(360deg)}}
.card-dimensions-box{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid #eadff4;border-radius:20px;padding:16px 18px 18px;box-shadow:0 16px 38px rgba(45,28,72,.08);width:min(315px,100%);box-sizing:border-box;overflow:visible}
.card-dimensions-box-under-preview{margin-top:2px}
.card-dimension-diagram{width:58px;height:92px;border:2px solid #7b55f3;border-radius:10px;position:relative;display:grid;place-items:center;color:#7b55f3;background:#fbf7ff;flex:0 0 auto;margin-right:10px;margin-bottom:16px}
.card-dimension-diagram b{font-size:12px}.card-dimension-diagram span{position:absolute;left:50%;bottom:-21px;transform:translateX(-50%);font-size:10px;font-weight:800;white-space:nowrap}.card-dimension-diagram em{position:absolute;right:-38px;top:50%;transform:translateY(-50%) rotate(90deg);font-size:10px;font-style:normal;font-weight:800;white-space:nowrap}
.card-dimensions-box p{margin:0 0 0 2px;color:#675b73;font-size:12px;line-height:1.45}.card-dimensions-box strong{color:#30243d}
.card-preview-copy{display:flex;flex-direction:column;gap:14px}.card-preview-copy .eyebrow{margin:0;color:#7b55f3;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.card-preview-copy h2{margin:0;color:#2f2340;font-size:clamp(28px,2.7vw,40px);line-height:1.05;letter-spacing:-.035em}.card-preview-copy p{margin:0;color:#665b72;line-height:1.58}.card-feature-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card-feature-strip span{display:block;background:#fbf7ff;border:1px solid #eadff4;border-radius:16px;padding:11px}.card-feature-strip strong{display:block;color:#30243d;font-size:13px}.card-feature-strip em{display:block;color:#7a7085;font-size:12px;font-style:normal;margin-top:4px;line-height:1.3}.card-showcase-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card-showcase-grid figure{margin:0;background:#fff;border:1px solid #eadff4;border-radius:18px;overflow:hidden;box-shadow:0 16px 38px rgba(45,28,72,.08)}.card-showcase-grid img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover}.card-showcase-grid figcaption{display:block;padding:10px 11px 11px}.card-showcase-grid figcaption strong{display:block;color:#30243d;font-size:13px}.card-showcase-grid figcaption span{display:block;color:#70657c;font-size:12px;line-height:1.38;margin-top:3px}.card-order-button{width:100%;justify-content:center;background:linear-gradient(135deg,#7b55f3,#9b7bff);color:#fff!important;border:0;border-radius:999px;opacity:.72}.card-order-note{display:none!important}
@media(max-width:900px){.card-preview-modal-grid{grid-template-columns:1fr}.public-card-preview-modal{padding:20px;max-height:calc(100vh - 28px)}.card-feature-strip,.card-showcase-grid{grid-template-columns:1fr}.customer-card-preview-frame{width:min(280px,84vw)}.card-dimensions-box{width:min(280px,84vw)}}

/* Warm protected/draft memorial states */
.ah-warm-gate{
  min-height:calc(100vh - 220px);
  display:grid;
  place-items:center;
  padding:86px 20px;
  background:
    radial-gradient(circle at 16% 18%, rgba(216,190,235,.36), transparent 30%),
    radial-gradient(circle at 84% 12%, rgba(255,214,178,.34), transparent 32%),
    linear-gradient(135deg,#fffaf6 0%,#fbf7ff 54%,#fff 100%);
  font-family:Poppins,Arial,sans-serif;
}
.ah-warm-gate-card{
  width:min(760px,100%);
  text-align:center;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(214,190,232,.68);
  border-radius:38px;
  padding:46px 48px 44px;
  box-shadow:0 30px 80px rgba(67,45,88,.13), inset 0 1px 0 rgba(255,255,255,.9);
  position:relative;
  overflow:hidden;
}
.ah-warm-gate-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:8px;
  background:linear-gradient(90deg,#d8bee8,#f2c89f,#d8bee8);
}
.ah-warm-gate-art{
  width:190px;
  height:156px;
  display:grid;
  place-items:center;
  margin:0 auto 18px;
  color:#8e6ab7;
  filter:drop-shadow(0 18px 24px rgba(142,106,183,.15));
}
.ah-warm-gate-art svg{width:100%;height:100%;display:block;}
.ah-warm-gate-card .eyebrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 16px;
  border-radius:999px;
  background:#f6effb;
  color:#7653a0;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  margin:0 0 14px;
}
.ah-warm-gate-card h1{
  max-width:650px;
  margin:0 auto 16px;
  color:#342448;
  font-size:clamp(34px,4.4vw,54px);
  line-height:1.06;
  letter-spacing:-.045em;
  font-weight:850;
}
.ah-warm-gate-card .ah-state-copy{
  max-width:590px;
  margin:0 auto 28px;
  color:#655b72;
  font-size:16px;
  line-height:1.78;
}
.ah-warm-access-form{
  width:min(440px,100%);
  margin:24px auto 0;
  padding:20px;
  border-radius:26px;
  background:linear-gradient(180deg,#fff,#fbf7ff);
  border:1px solid #eee4f7;
  box-shadow:0 14px 34px rgba(69,45,91,.08);
  display:grid;
  gap:12px;
  text-align:left;
}
.ah-warm-access-form label{font-weight:700;color:#443252;font-size:13px;}
.ah-warm-access-form input{
  width:100%;
  min-height:50px;
  border:1px solid #dfd0ee;
  border-radius:16px;
  padding:0 16px;
  color:#342448;
  background:#fff;
  font:600 16px Poppins,Arial,sans-serif;
  outline:none;
}
.ah-warm-access-form input:focus{border-color:#9b73c5;box-shadow:0 0 0 4px rgba(155,115,197,.13);}
.ah-warm-access-form .btn{
  min-height:52px;
  border-radius:16px;
  background:linear-gradient(135deg,#8e6ab7,#6f4a99);
  color:#fff;
  box-shadow:0 14px 26px rgba(111,74,153,.22);
}
@media (max-width:680px){
  .ah-warm-gate{padding:48px 14px;align-items:start;}
  .ah-warm-gate-card{border-radius:30px;padding:34px 20px 28px;}
  .ah-warm-gate-art{width:156px;height:128px;}
  .ah-warm-gate-card .ah-state-copy{font-size:15px;line-height:1.68;}
}

/* v3.0.50 private access code boxes */
.ah-private-gate-card{border-top:0!important;max-width:980px!important;padding-top:42px!important;padding-bottom:42px!important;}
.ah-private-state-page .ah-warm-gate-card h1{font-size:clamp(30px,3.5vw,48px)!important;margin-bottom:12px!important;}
.ah-private-state-page .ah-warm-gate-card .ah-state-copy{margin-bottom:18px!important;line-height:1.62!important;}
.ah-code-box-form{width:min(720px,100%)!important;max-width:720px!important;text-align:center!important;padding:22px 24px!important;margin-top:18px!important;}
.ah-code-box-form label{display:block;text-align:center!important;font-weight:800!important;color:#3b2b4c!important;margin-bottom:4px!important;}
.ah-code-submit-row{display:flex!important;align-items:center!important;justify-content:center!important;gap:14px!important;width:100%!important;flex-wrap:nowrap!important;}
.ah-code-boxes{display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;flex:0 0 auto!important;}
.ah-code-box-form .ah-code-box{width:54px!important;height:58px!important;min-height:58px!important;flex:0 0 54px!important;padding:0!important;text-align:center!important;border-radius:17px!important;border:1px solid #dac8ee!important;background:#fff!important;box-shadow:0 8px 18px rgba(75,45,101,.06)!important;font:800 24px/1 Poppins,Arial,sans-serif!important;letter-spacing:0!important;color:#332044!important;}
.ah-code-box-form .ah-code-box:focus{border-color:#8e6ab7!important;box-shadow:0 0 0 4px rgba(142,106,183,.15),0 10px 22px rgba(75,45,101,.08)!important;}
.ah-code-box-form .ah-code-submit{width:auto!important;min-width:178px!important;margin:0!important;white-space:nowrap!important;padding:0 24px!important;height:58px!important;min-height:58px!important;border-radius:18px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
@media (max-width:720px){
  .ah-code-box-form{padding:18px 14px!important;}
  .ah-code-submit-row{flex-direction:column!important;gap:13px!important;}
  .ah-code-boxes{gap:7px!important;}
  .ah-code-box-form .ah-code-box{width:43px!important;flex-basis:43px!important;height:52px!important;min-height:52px!important;border-radius:15px!important;font-size:21px!important;}
  .ah-code-box-form .ah-code-submit{width:100%!important;min-width:0!important;}
}
