/* ============================================================
   Funerals Live standalone site — page design system.
   Faithful to Agam's Figma "Funerals Live Design v2"
   (SryxvxM6MwQ41yeVoH7xYz). Loaded AFTER styles.css (which
   provides Poppins/Taviraj @font-face, the .fl-* chrome and
   Bootstrap). Everything here is Poppins-based per the design.

   Tokens:
     Green #1D4641 (section headings)   Plum #463351 (titles/body)
     Text #180026   Magenta #8B104E   Off-white #F7F6F3
     Mint #D9EFDE   Border #C0BAC4
     Radii 8 / 32 / 48px   Letter-spacing -0.018em on all copy
   ============================================================ */

:root {
    --fl-green: #1D4641;
    --fl-plum: #463351;
    --fl-ink: #180026;
    --fl-magenta: #8B104E;
    --fl-magenta-hover: #6E0C3D;
    --fl-offwhite: #F7F6F3;
    --fl-mint: #D9EFDE;
    --fl-border: #C0BAC4;
}

.fl-site {
    background: var(--fl-offwhite);
    font-family: "Poppins", sans-serif;
    letter-spacing: -0.018em;
}

/* Layout ---------------------------------------------------- */
.fl-section {
    padding: 80px 0;
}
.fl-section--tight {
    padding: 56px 0;
}
.fl-container {
    max-width: 1360px;
    margin: 0 auto;
    padding: 0 80px;
}

/* Typography ------------------------------------------------ */
.fl-h1 {
    font-weight: 600;
    font-size: 56px;
    line-height: 72px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 0;
}
.fl-h2 {
    font-weight: 600;
    font-size: 48px;
    line-height: 64px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 0;
}
.fl-lede {
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-kicker {
    font-weight: 500;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: -0.018em;
    margin: 0;
}

/* Buttons --------------------------------------------------- */
.fl-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 500;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    border-radius: 8px;
    padding: 16px 24px;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
    cursor: pointer;
}
.fl-btn--sm {
    padding: 12px 16px;
}
.fl-btn--fill {
    background: var(--fl-magenta);
    color: #fff;
    border: 1.5px solid var(--fl-magenta);
}
.fl-btn--fill:hover,
.fl-btn--fill:focus-visible {
    background: var(--fl-magenta-hover);
    border-color: var(--fl-magenta-hover);
    color: #fff;
}
.fl-btn--outline {
    background: #fff;
    color: var(--fl-magenta);
    border: 1.5px solid var(--fl-magenta);
}
.fl-btn--outline:hover,
.fl-btn--outline:focus-visible {
    background: var(--fl-magenta);
    color: #fff;
}

/* Header — reuses the Gaia header layout (.navbar/.container/.gnav/
   .gnav-link) with Funerals Live branding + magenta theme. ------ */
.fl-header.static-header,
.fl-header.static-header .navbar {
    background: var(--fl-offwhite);
}
.fl-header.static-header {
    border-bottom: 0;
}
/* Wide brand box for the FL wordmark logo (overrides the 64x64 Gaia
   beacon box) */
.fl-header.static-header .navbar .navbar-brand.fl-navbar-brand {
    width: auto;
    height: auto;
    padding: 0.5rem 0;
}
.fl-logo {
    height: 40px;
    width: auto;
    display: block;
}
.offcanvas .fl-logo { height: 34px; }

/* Magenta nav pills (Gaia .gnav-link spacing, FL colour) */
.fl-header .navbar .nav-link.gnav-link.fl-gnav-link {
    color: var(--fl-magenta);
    font-weight: 500;
}
.fl-header .navbar .nav-link.gnav-link.fl-gnav-link:hover,
.fl-header .navbar .nav-link.gnav-link.fl-gnav-link:focus-visible,
.fl-header .navbar .nav-item.dropdown.show > .nav-link.gnav-link.fl-gnav-link {
    background-color: rgba(139, 16, 78, 0.08);
    color: var(--fl-magenta);
}
.fl-header .gnav-chevron {
    border-color: var(--fl-magenta);
}
/* Mobile offcanvas links */
.offcanvas .nav-link.fl-gnav-link {
    color: var(--fl-magenta);
    font-weight: 500;
}

/* Packages dropdown */
.fl-header .fl-dropdown,
.offcanvas .fl-dropdown {
    border: 1px solid var(--fl-border);
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 18px 40px -20px rgba(77, 28, 52, 0.28);
}
.fl-header .fl-dropdown .dropdown-item,
.offcanvas .fl-dropdown .dropdown-item {
    border-radius: 8px;
    color: var(--fl-plum);
    padding: 10px 12px;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 16px;
    white-space: normal;
}
.fl-header .fl-dropdown .dropdown-item:hover,
.fl-header .fl-dropdown .dropdown-item:focus,
.offcanvas .fl-dropdown .dropdown-item:hover,
.offcanvas .fl-dropdown .dropdown-item:focus {
    background: var(--fl-offwhite);
    color: var(--fl-magenta);
}
/* Compact nav "Call us now" button */
.fl-btn--nav {
    padding: 10px 18px;
    font-size: 16px;
    line-height: 22px;
}
.fl-header .navbar .nav-link.btn.fl-btn--fill,
.fl-header .navbar .nav-link.btn.fl-btn--nav,
.fl-header .navbar .nav-link.btn.fl-btn--fill:hover,
.fl-header .navbar .nav-link.btn.fl-btn--fill:focus-visible,
.offcanvas .nav-link.btn.fl-btn--fill {
    color: #fff;
}

/* Mega-menu — reuses the Gaia Wise-style panel mechanism (.mega-panel/
   .mega-viewport/.mega-content driven by initMegaMenu in main.js) but
   re-themed to the Funerals Live magenta/plum palette. ------------- */
/* Open-trigger pill: FL magenta tint instead of Gaia green (the header
   flips white while a panel is open, so the pill reads on white). */
.fl-header:has(.mega-panel.is-open) .nav-mega.is-mega-open > .nav-link.gnav-link,
.fl-header .navbar .nav-mega.is-mega-open > .nav-link.gnav-link.fl-gnav-link {
    background-color: rgba(139, 16, 78, 0.08);
    color: var(--fl-magenta);
}
/* Panel + overlay: plum-tinted shadow */
.fl-site .mega-panel {
    box-shadow: 0 24px 24px -16px rgba(77, 28, 52, 0.16);
}
/* Featured card */
.fl-site .mega-card:hover {
    border-color: var(--fl-magenta);
    box-shadow: 0 8px 24px rgba(77, 28, 52, 0.16);
}
.fl-site .mega-card__title {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
}
.fl-site .mega-card__desc { color: var(--fl-plum); opacity: 0.75; }
.fl-site .mega-card__cta { color: var(--fl-magenta); }
.fl-site .mega-card__cta:hover { color: var(--fl-magenta-hover); }
/* Columns */
.fl-site .mega-subheader { color: var(--fl-plum); opacity: 0.6; }
.fl-site .mega-col-title { color: var(--fl-magenta); }
.fl-site .mega-col:hover .mega-col-title,
.fl-site .mega-col:focus-visible .mega-col-title { color: var(--fl-magenta-hover); }
.fl-site .mega-link { color: var(--fl-plum); }
.fl-site .mega-link:hover,
.fl-site .mega-link:focus-visible,
.fl-site .mega-pricing-link:hover,
.fl-site .mega-pricing-link:focus-visible {
    background: var(--fl-offwhite);
    color: var(--fl-magenta);
}
.fl-site .mega-sep { background: var(--fl-border); }

/* Hero ------------------------------------------------------ */
.fl-hero__media img {
    width: 100%;
    height: auto;
    display: block;
}

/* What is FLS ----------------------------------------------- */
.fl-round-img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 48px;
    object-fit: cover;
}

/* Why choose us --------------------------------------------- */
.fl-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    text-align: center;
}
.fl-tile__img {
    width: 224px;
    height: 240px;
    object-fit: contain;
}
.fl-tile .fl-lede {
    text-align: center;
}

/* Testimonials ---------------------------------------------- */
.fl-testimonials {
    background: var(--fl-green);
    padding: 88px 0;
    text-align: center;
    color: #fff;
}
.fl-testimonials .fl-h2 {
    color: #fff;
    margin-bottom: 48px;
}
.fl-quote {
    font-weight: 500;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: #fff;
    margin: 0 0 24px;
}
.fl-quote-by {
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    color: #fff;
    margin: 0;
}

/* Packages -------------------------------------------------- */
.fl-pkg {
    display: flex;
    flex-direction: column;
    gap: 24px;
    height: 100%;
}
.fl-pkg__img {
    width: 100%;
    aspect-ratio: 408 / 360;
    object-fit: cover;
    border-radius: 32px;
    display: block;
}
.fl-pkg__title {
    font-weight: 500;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0 0 16px;
}
.fl-pkg__text {
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-pkg__body {
    display: flex;
    flex-direction: column;
    gap: 32px;
    flex: 1 0 auto;
}
.fl-pkg__cta {
    margin-top: auto;
}

/* FAQs ------------------------------------------------------ */
.fl-faq .accordion {
    --bs-accordion-border-color: var(--fl-border);
}
.fl-faq .accordion-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--fl-border);
}
.fl-faq .accordion-button {
    background: transparent;
    box-shadow: none;
    padding: 24px 8px;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: -0.018em;
    color: var(--fl-magenta);
}
.fl-faq .accordion-button:not(.collapsed) {
    color: var(--fl-magenta);
    box-shadow: none;
}
.fl-faq .accordion-button::after,
.fl-faq .accordion-button:not(.collapsed)::after {
    width: 24px;
    height: 24px;
    background-size: 24px;
}
/* Full-bleed page hero photo (FAQs / About) — 1280x560, radius 48 */
.fl-hero-photo {
    aspect-ratio: 1280 / 560;
    object-fit: cover;
}
.fl-faq .accordion-button::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%238B104E' viewBox='0 0 16 16'%3E%3Cpath d='M8 1a.75.75 0 0 1 .75.75v5.5h5.5a.75.75 0 0 1 0 1.5h-5.5v5.5a.75.75 0 0 1-1.5 0v-5.5h-5.5a.75.75 0 0 1 0-1.5h5.5v-5.5A.75.75 0 0 1 8 1'/%3E%3C/svg%3E");
}
.fl-faq .accordion-button:not(.collapsed)::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%238B104E' viewBox='0 0 16 16'%3E%3Cpath d='M1.75 7.25h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5'/%3E%3C/svg%3E");
    transform: none;
}
.fl-faq .accordion-body {
    padding: 0 0 24px;
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    color: var(--fl-plum);
}
.fl-faq a { color: var(--fl-magenta); }

/* Split offering ------------------------------------------- */
.fl-split-card {
    border: 1px solid var(--fl-border);
    border-radius: 48px;
    padding: 40px 32px;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.fl-split-card--mint { background: var(--fl-mint); }
.fl-split-card--white { background: #fff; }
.fl-split-card__illus {
    width: 280px;
    max-width: 100%;
    height: auto;
    display: block;
}
.fl-split-card__title {
    font-weight: 700;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-split-card__desc {
    font-weight: 400;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: -0.018em;
    color: var(--fl-ink);
    margin: 0;
}
.fl-check-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fl-check-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-ink);
}
.fl-check-list li::before {
    content: "";
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%238B104E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}
.fl-split-card__cta { margin-top: auto; padding-top: 8px; }

/* Package detail pages -------------------------------------- */
.fl-eyebrow {
    font-weight: 600;
    font-size: 16px;
    line-height: 22px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0 0 8px;
}
.fl-package__desc {
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-package__desc strong { font-weight: 600; }
.fl-feature-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.fl-feature-list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
}
.fl-feature-list li strong { font-weight: 600; }
.fl-feature-list li::before {
    content: "";
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='12' cy='12' r='12' fill='%238B104E'/%3E%3Cpath d='M7 12.5 10.5 16 17 8.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
}

/* Checkout modal */
.fl-modal .modal-content {
    border: 0;
    border-radius: 24px;
    padding: 8px;
}
.fl-modal .modal-title {
    font-weight: 600;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
}
.fl-modal .modal-body p { color: var(--fl-plum); }

/* About page ------------------------------------------------ */
.fl-subheading {
    font-weight: 600;
    font-size: 24px;
    line-height: 32px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 0;
}
.fl-values {
    background: var(--fl-mint);
    border-radius: 48px;
    padding: 56px 40px;
}
.fl-value-icon { width: 88px; height: 88px; }
.fl-value__title {
    font-weight: 600;
    font-size: 20px;
    line-height: 28px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 16px 0 8px;
}
.fl-value__text {
    font-weight: 400;
    font-size: 18px;
    line-height: 24px;
    color: var(--fl-ink);
    margin: 0;
}
.fl-team-img {
    width: 100%;
    max-width: 280px;
    aspect-ratio: 280 / 336;
    object-fit: cover;
    border-radius: 24px;
}
.fl-team__name {
    font-weight: 600;
    font-size: 22px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0 0 4px;
}
.fl-team__role {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    color: var(--fl-plum);
    margin: 0 0 8px;
}

@media (max-width: 991.98px) {
    .fl-values { border-radius: 32px; padding: 40px 24px; }
}

/* Memorial listing (Past funerals) -------------------------- */
.fl-memorial {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid var(--fl-border);
    border-radius: 24px;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.fl-memorial:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 48px -24px rgba(77, 28, 52, 0.30);
}
.fl-memorial__cover {
    aspect-ratio: 4 / 3;
    width: 100%;
    object-fit: cover;
    display: block;
}
.fl-memorial__cover--empty {
    aspect-ratio: 4 / 3;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fl-mint);
    color: var(--fl-green);
}
.fl-memorial__cover--empty i { font-size: 44px; opacity: 0.7; }
.fl-memorial__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 24px;
    flex: 1 0 auto;
}
.fl-memorial__kicker {
    font-weight: 500;
    font-size: 13px;
    line-height: 18px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fl-magenta);
    margin: 0;
}
.fl-memorial__name {
    font-weight: 600;
    font-size: 22px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 2px 0 0;
}
.fl-memorial__dates {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    color: var(--fl-plum);
    margin: 0;
}
.fl-memorial__cta { margin-top: 16px; }

/* Past-funerals directory: compact rows + search ------------
   Scales to hundreds of services without a wall of large photos.
   Most entries have no portrait, so a small thumbnail + soft
   placeholder keeps every row calm and equal-weight. */
.fl-search-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 12px;
}
.fl-search {
    width: 100%;
    max-width: 440px;
    padding: 14px 20px;
    border: 1.5px solid var(--fl-border);
    border-radius: 100px;
    font-family: "Poppins", sans-serif;
    font-size: 16px;
    line-height: 22px;
    color: var(--fl-plum);
    background: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.fl-search::placeholder { color: var(--fl-plum); opacity: 0.5; }
.fl-search:focus {
    outline: none;
    border-color: var(--fl-magenta);
    box-shadow: 0 0 0 3px rgba(139, 16, 78, 0.12);
}
.fl-search-count {
    text-align: center;
    font-size: 14px;
    color: var(--fl-plum);
    opacity: 0.7;
    margin: 0 0 28px;
}
.fl-mrow {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 100%;
    background: #fff;
    border: 1px solid var(--fl-border);
    border-radius: 20px;
    padding: 16px;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.fl-mrow:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(77, 28, 52, 0.28);
}
.fl-mrow__thumb {
    flex: 0 0 auto;
    width: 76px;
    height: 76px;
    border-radius: 16px;
    object-fit: cover;
    display: block;
}
.fl-mrow__thumb--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fl-mint);
    color: var(--fl-green);
}
.fl-mrow__thumb--empty i { font-size: 30px; opacity: 0.75; }
.fl-mrow__body { flex: 1 1 auto; min-width: 0; }
.fl-mrow__kicker {
    font-weight: 500;
    font-size: 11px;
    line-height: 16px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fl-magenta);
    margin: 0 0 2px;
}
.fl-mrow__name {
    font-weight: 600;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-mrow__dates {
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: var(--fl-plum);
    opacity: 0.8;
    margin: 2px 0 0;
}
.fl-mrow__cta { flex: 0 0 auto; }
@media (max-width: 439.98px) {
    .fl-mrow { flex-wrap: wrap; }
    .fl-mrow__cta { flex-basis: 100%; }
    .fl-mrow__cta .fl-btn { width: 100%; }
}

/* Service badges + watch page ------------------------------- */
.fl-memorial__badges { display: flex; gap: 8px; align-items: center; }
.fl-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 100px;
}
.fl-badge--upcoming { background: var(--fl-mint); color: var(--fl-green); }
.fl-badge--live { background: var(--fl-magenta); color: #fff; }
.fl-badge--live .fl-dot {
    width: 8px; height: 8px; border-radius: 50%; background: #fff;
    animation: fl-pulse 1.4s ease-in-out infinite;
}
@keyframes fl-pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }

.fl-video-wrap {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    border-radius: 24px;
    overflow: hidden;
    background: #000;
}
.fl-video-wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.fl-watch-note {
    background: var(--fl-mint);
    border-radius: 24px;
    padding: 48px 32px;
    text-align: center;
}
/* Memorial detail page: portrait + service context + per-recording label */
.fl-watch-portrait {
    display: block;
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: 24px;
    margin: 0 auto 20px;
    box-shadow: 0 18px 40px -22px rgba(77, 28, 52, 0.35);
}
.fl-watch-service {
    font-size: 16px;
    line-height: 24px;
    color: var(--fl-plum);
    opacity: 0.85;
    margin: 8px 0 0;
}
.fl-video-label {
    font-weight: 600;
    font-size: 16px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
    text-align: center;
}
/* Online-memorial cross-sell (links to the free Gaia memorial) */
.fl-h3 {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0;
}
.fl-memorial-cta {
    background: var(--fl-mint);
    border-radius: 24px;
    padding: 40px 32px;
    text-align: center;
}
.fl-mrow__memorial {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--fl-magenta);
    text-decoration: none;
}
.fl-mrow__memorial:hover,
.fl-mrow__memorial:focus-visible {
    color: var(--fl-magenta-hover);
    text-decoration: underline;
}

/* Live tribute rail (watch page × online memorial) ---------- */
.fl-trib-live {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--fl-mint);
    color: var(--fl-green);
    border-radius: 16px;
    padding: 14px 20px;
    font-weight: 500;
    font-size: 15px;
    line-height: 22px;
    margin-bottom: 24px;
}
.fl-trib-live .fl-dot {
    flex: 0 0 8px;
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--fl-magenta);
    animation: fl-pulse 1.4s ease-in-out infinite;
}
.fl-trib-form-card {
    background: #fff;
    border: 1px solid var(--fl-border);
    border-radius: 24px;
    padding: 28px 24px;
}
.fl-trib-sub {
    font-size: 15px;
    line-height: 22px;
    color: var(--fl-plum);
    margin: 0 0 8px;
}
.fl-trib-sub a { color: var(--fl-magenta); }
.fl-trib-input {
    width: 100%;
    border: 1.5px solid var(--fl-border);
    border-radius: 12px;
    padding: 12px 14px;
    font-family: "Poppins", sans-serif;
    font-size: 15px;
    color: var(--fl-ink);
    background: #fff;
    margin-bottom: 12px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.fl-trib-input:focus {
    outline: none;
    border-color: var(--fl-magenta);
    box-shadow: 0 0 0 3px rgba(139, 16, 78, 0.12);
}
.fl-trib-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.fl-trib-candle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1.5px solid var(--fl-border);
    border-radius: 100px;
    padding: 10px 16px;
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: var(--fl-plum);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.fl-trib-candle:hover,
.fl-trib-candle:focus-visible { border-color: var(--fl-magenta); color: var(--fl-magenta); }
.fl-trib-candle.is-on {
    background: var(--fl-magenta);
    border-color: var(--fl-magenta);
    color: #fff;
}
.fl-trib-status {
    font-size: 14px;
    line-height: 20px;
    color: var(--fl-green);
    background: var(--fl-mint);
    border-radius: 12px;
    padding: 10px 14px;
    margin: 12px 0 0;
}
.fl-trib-chip {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--fl-plum);
    background: var(--fl-offwhite);
    border: 1px solid var(--fl-border);
    border-radius: 100px;
    padding: 2px 8px;
    margin-right: 6px;
}
.fl-trib-flower-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.fl-trib-flower-btn {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: #FBF3F1;
    border: 1.5px solid var(--fl-border);
    border-radius: 16px;
    padding: 12px 8px;
    font-family: "Poppins", sans-serif;
    font-size: 12px;
    line-height: 16px;
    color: var(--fl-plum);
    cursor: pointer;
    transition: border-color 0.2s ease, transform 0.2s ease;
}
.fl-trib-flower-btn:hover,
.fl-trib-flower-btn:focus-visible { border-color: var(--fl-magenta); transform: translateY(-2px); }
.fl-trib-flower-btn:disabled { opacity: 0.6; cursor: wait; transform: none; }
.fl-trib-flower-btn img { width: 40px; height: 40px; }
.fl-trib-flower-btn b { font-size: 14px; color: var(--fl-magenta); }
.fl-trib-gifts { margin-top: 16px; }
.fl-trib-gift-row { display: flex; gap: 8px; }
.fl-trib-gift-btn {
    flex: 1 1 0;
    background: #fff;
    border: 1.5px solid var(--fl-magenta);
    border-radius: 12px;
    padding: 10px 8px;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 15px;
    color: var(--fl-magenta);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.fl-trib-gift-btn:hover,
.fl-trib-gift-btn:focus-visible { background: var(--fl-magenta); color: #fff; }
.fl-trib-gift-btn:disabled { opacity: 0.6; cursor: wait; }
.fl-trib-fine {
    font-size: 12px;
    line-height: 17px;
    color: var(--fl-plum);
    opacity: 0.75;
    margin: 8px 0 0;
}
.fl-trib-fine a { color: var(--fl-magenta); }
.fl-trib-wall-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 12px;
}
.fl-trib-count { font-size: 14px; color: var(--fl-plum); opacity: 0.75; }
.fl-trib-wall {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-height: 640px;
    overflow-y: auto;
    padding-right: 4px;
}
.fl-trib {
    background: #fff;
    border: 1px solid var(--fl-border);
    border-radius: 16px;
    padding: 16px 18px;
}
.fl-trib__head {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 15px;
    color: var(--fl-ink);
    margin-bottom: 4px;
}
.fl-trib__head .bi-fire { color: var(--fl-magenta); }
.fl-trib__head .bi-gift { color: var(--fl-green); }
.fl-trib__head time { font-size: 12px; color: var(--fl-plum); opacity: 0.7; margin-left: auto; }
.fl-trib p { font-size: 14px; line-height: 22px; color: var(--fl-plum); margin: 0; }
.fl-trib__note { opacity: 0.75; font-style: italic; }
.fl-trib--flowers { display: flex; gap: 14px; background: #FBF3F1; }
.fl-trib__flower { flex: 0 0 48px; width: 48px; height: 48px; }
.fl-trib__body { flex: 1 1 auto; min-width: 0; }
@media (max-width: 991.98px) {
    .fl-trib-wall { max-height: 480px; }
}

/* Responsive ------------------------------------------------ */
@media (max-width: 991.98px) {
    .fl-container { padding: 0 24px; }
    .fl-section { padding: 56px 0; }
    .fl-h1 { font-size: 40px; line-height: 48px; }
    .fl-h2 { font-size: 32px; line-height: 40px; }
    .fl-quote { font-size: 22px; line-height: 30px; }
    .fl-testimonials { padding: 56px 0; }
    .fl-split-card { border-radius: 32px; padding: 32px 24px; }
    .fl-round-img { border-radius: 32px; }
}
@media (max-width: 575.98px) {
    .fl-h1 { font-size: 34px; line-height: 42px; }
}

/* Footer + newsletter — v2 design (two dark bands, Figma 2376:25069).
   Newsletter band #180026 sits directly on the #4D1C34 links band.
   Overrides the shared styles.css versions (fl-site.css loads after). */
.fl-site .fl-newsletter {
    background: var(--fl-ink);
    padding: 48px 0;
}
.fl-site .fl-newsletter-inner {
    background: transparent;
    border-radius: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    flex-wrap: wrap;
}
.fl-site .fl-newsletter-title {
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: #fff;
    margin: 0;
}
.fl-site .fl-newsletter-group {
    min-width: 300px;
    width: 380px;
    max-width: 100%;
    border-radius: 36px;
    padding: 8px 8px 8px 24px;
}
.fl-site .fl-newsletter-btn { width: 48px; height: 48px; }
.fl-site .fl-newsletter-msg { color: #F0C6DD; }

.fl-site .fl-footer {
    background: #4D1C34;
    padding: 64px 0;
    margin-top: 0;
}
.fl-site .fl-footer-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}
.fl-site .fl-footer-links {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: 40px;
    row-gap: 12px;
    padding-left: 0;
    list-style: none;
    margin: 0;
}
.fl-site .fl-footer-links li { width: auto; }
.fl-site .fl-footer-links li a {
    font-family: "Poppins", sans-serif;
    color: #fff;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    letter-spacing: -0.018em;
    text-decoration: none;
}
.fl-site .fl-footer-links li a:hover { color: #FFCCCF; }
.fl-site .fl-footer-social {
    display: flex;
    gap: 16px;
    justify-content: center;
}
.fl-site .fl-social-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    font-size: 15px;
}
.fl-site .fl-footer-copy {
    color: #fff;
    font-size: 12px;
    line-height: 16px;
    letter-spacing: -0.018em;
}

/* About v2 — full-width dark green "What we value" band (Figma 2376:25193) */
.fl-values-band {
    background: var(--fl-green);
    padding: 56px 0;
}
.fl-values-band .fl-h2 { color: #fff; }
.fl-values-band .fl-value__title {
    font-weight: 500;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: #fff;
    margin: 24px 0 16px;
}
.fl-values-band .fl-value__text {
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: #fff;
    margin: 0;
}

/* Team v2 (Figma 2376:25212): 48px-radius portraits, 28px ink names */
.fl-team-img { border-radius: 48px; }
.fl-team__name {
    font-weight: 500;
    font-size: 28px;
    line-height: 36px;
    color: var(--fl-ink);
}
.fl-team__role {
    font-size: 18px;
    line-height: 24px;
}

/* Blog landing v2 (Figma 2376:25075): 2-col tiles, 32px-radius images */
.fl-blog-tile__img {
    width: 100%;
    aspect-ratio: 628 / 360;
    object-fit: cover;
    border-radius: 32px;
    display: block;
}
.fl-blog-tile__title {
    font-weight: 500;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 24px 0 16px;
}
.fl-blog-tile__desc {
    font-size: 18px;
    line-height: 24px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0 0 32px;
}

/* Blog article pages (Phase 1b — articles migrated natively).
   Long-form reading column; generous line-height for body copy. */
.fl-article {
    max-width: 800px;
    margin: 0 auto;
}
.fl-article__date {
    font-weight: 500;
    font-size: 13px;
    line-height: 18px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fl-magenta);
    margin: 0 0 12px;
}
.fl-article__title {
    font-weight: 600;
    font-size: 40px;
    line-height: 52px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 0 0 32px;
}
.fl-article__hero {
    width: 100%;
    aspect-ratio: 800 / 440;
    object-fit: cover;
    border-radius: 32px;
    display: block;
    margin: 0 0 40px;
}
.fl-article__body p {
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 0 0 20px;
}
.fl-article__body h2 {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.018em;
    color: var(--fl-green);
    margin: 40px 0 16px;
}
.fl-article__body h3 {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 22px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
    margin: 32px 0 12px;
}
.fl-article__body ul,
.fl-article__body ol {
    margin: 0 0 20px;
    padding-left: 24px;
}
.fl-article__body li {
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
    letter-spacing: -0.018em;
    color: var(--fl-plum);
}
.fl-article__body li p { margin: 0; }
.fl-article__body strong { font-weight: 600; color: var(--fl-ink); }
.fl-article__body a { color: var(--fl-magenta); }
.fl-article__body a:hover,
.fl-article__body a:focus-visible { color: var(--fl-magenta-hover); }
.fl-article__back { margin-top: 24px; }
@media (max-width: 575.98px) {
    .fl-article__title { font-size: 30px; line-height: 40px; }
    .fl-article__hero { border-radius: 24px; }
}
