/**
 * FFLP Public Listing Page Styles
 *
 * Styles for all front-end listing sections:
 *   1. Variables & Shared
 *   2. Section Wrapper
 *   3. FAQ Accordion
 *   4. Business Hours
 *   5. Services List
 *   6. Menu Display
 *   7. Coupons / Special Offers
 *   8. Google Reviews
 *   9. Responsive — Tablet
 *  10. Responsive — Mobile
 *  11. Print Styles
 *
 * @package FlavorFlavorListingPages
 * @since   1.1.0
 */


/* ─────────────────────────────────────────
   1. VARIABLES & SHARED
   ───────────────────────────────────────── */

:root {
    --fflp-pub-primary:    #2563eb;
    --fflp-pub-primary-dk: #1d4ed8;
    --fflp-pub-primary-lt: rgba(37, 99, 235, 0.08);
    --fflp-pub-success:    #16a34a;
    --fflp-pub-success-lt: #dcfce7;
    --fflp-pub-warning:    #f59e0b;
    --fflp-pub-warning-lt: #fef3c7;
    --fflp-pub-danger:     #dc2626;
    --fflp-pub-text:       #1e293b;
    --fflp-pub-text-light: #64748b;
    --fflp-pub-text-muted: #94a3b8;
    --fflp-pub-bg:         #f8fafc;
    --fflp-pub-card-bg:    #ffffff;
    --fflp-pub-border:     #e2e8f0;
    --fflp-pub-border-dk:  #cbd5e1;
    --fflp-pub-radius:     12px;
    --fflp-pub-radius-sm:  8px;
    --fflp-pub-shadow:     0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --fflp-pub-shadow-lg:  0 4px 12px rgba(0, 0, 0, 0.08);
    --fflp-pub-transition: 0.2s ease;
    --fflp-pub-star:       #fbbf24;
    --fflp-pub-star-empty: #d1d5db;
    --fflp-pub-coupon-bg:  linear-gradient(135deg, #fef3c7, #fde68a);
    --fflp-pub-coupon-border: #f59e0b;
}


/* ─────────────────────────────────────────
   2. SECTION WRAPPER
   ───────────────────────────────────────── */

.fflp-section {
    margin: 40px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    color: var(--fflp-pub-text);
    font-size: 16px;
    line-height: 1.6;
}

.fflp-section *,
.fflp-section *::before,
.fflp-section *::after {
    box-sizing: border-box;
}

.fflp-section-title {
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 24px;
    color: var(--fflp-pub-text);
    line-height: 1.2;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--fflp-pub-border);
}


/* ─────────────────────────────────────────
   3. FAQ ACCORDION
   ───────────────────────────────────────── */

.fflp-faq-accordion {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Single FAQ item */
.fflp-faq-item {
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    overflow: hidden;
    transition: box-shadow var(--fflp-pub-transition),
                border-color var(--fflp-pub-transition);
}

.fflp-faq-item:hover {
    border-color: var(--fflp-pub-border-dk);
}

.fflp-faq-item.fflp-faq-open {
    box-shadow: var(--fflp-pub-shadow);
    border-color: var(--fflp-pub-primary);
}

/* Trigger button */
.fflp-faq-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 18px 24px;
    background: transparent;
    border: none;
    text-align: left;
    font-size: 16px;
    font-weight: 600;
    font-family: inherit;
    color: var(--fflp-pub-text);
    cursor: pointer;
    transition: background var(--fflp-pub-transition);
    line-height: 1.4;
}

.fflp-faq-trigger:hover {
    background: var(--fflp-pub-bg);
}

.fflp-faq-open .fflp-faq-trigger {
    background: var(--fflp-pub-primary-lt);
}

.fflp-faq-question {
    flex: 1;
}

/* Icon (+ / −) */
.fflp-faq-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--fflp-pub-bg);
    border-radius: 50%;
    font-size: 18px;
    font-weight: 700;
    color: var(--fflp-pub-primary);
    transition: transform var(--fflp-pub-transition),
                background var(--fflp-pub-transition);
    line-height: 1;
}

.fflp-faq-open .fflp-faq-icon {
    transform: rotate(45deg);
    background: var(--fflp-pub-primary);
    color: #fff;
}

/* Answer panel */
.fflp-faq-answer {
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease;
}

.fflp-faq-answer[hidden] {
    display: block;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
}

.fflp-faq-answer:not([hidden]) {
    max-height: 2000px;
    opacity: 1;
    visibility: visible;
}

.fflp-faq-answer-inner {
    padding: 0 24px 20px;
    font-size: 15px;
    color: var(--fflp-pub-text);
    line-height: 1.7;
}

.fflp-faq-answer-inner a {
    color: var(--fflp-pub-primary);
    text-decoration: none;
}

.fflp-faq-answer-inner a:hover {
    text-decoration: underline;
}


/* ─────────────────────────────────────────
   4. BUSINESS HOURS
   ───────────────────────────────────────── */

.fflp-hours-table-wrap {
    background: var(--fflp-pub-card-bg);
    border-radius: var(--fflp-pub-radius);
    box-shadow: var(--fflp-pub-shadow);
    overflow: hidden;
}

.fflp-hours-table {
    width: 100%;
    border-collapse: collapse;
}

.fflp-hours-row {
    transition: background var(--fflp-pub-transition);
}

.fflp-hours-row:not(:last-child) {
    border-bottom: 1px solid var(--fflp-pub-border);
}

.fflp-hours-row:hover {
    background: var(--fflp-pub-bg);
}

/* Today highlight */
.fflp-hours-today {
    background: var(--fflp-pub-primary-lt) !important;
}

.fflp-hours-today .fflp-hours-day {
    color: var(--fflp-pub-primary);
    font-weight: 700;
}

.fflp-hours-today-badge {
    display: inline-block;
    background: var(--fflp-pub-primary);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 10px;
    margin-left: 8px;
    vertical-align: middle;
}

/* Cells */
.fflp-hours-day,
.fflp-hours-time {
    padding: 16px 24px;
    font-size: 15px;
    vertical-align: middle;
}

.fflp-hours-day {
    font-weight: 600;
    color: var(--fflp-pub-text);
    width: 180px;
}

.fflp-hours-time {
    color: var(--fflp-pub-text);
    text-align: right;
}

.fflp-hours-dash {
    margin: 0 4px;
    color: var(--fflp-pub-text-muted);
}

.fflp-hours-closed-text {
    color: var(--fflp-pub-danger);
    font-weight: 600;
    font-size: 14px;
}

.fflp-hours-na {
    color: var(--fflp-pub-text-muted);
}

/* Closed row styling */
.fflp-hours-closed {
    opacity: 0.7;
}


/* ─────────────────────────────────────────
   5. SERVICES LIST
   ───────────────────────────────────────── */

.fflp-services-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.fflp-service-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 18px;
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius-sm);
    transition: border-color var(--fflp-pub-transition),
                box-shadow var(--fflp-pub-transition);
}

.fflp-service-item:hover {
    border-color: var(--fflp-pub-border-dk);
    box-shadow: var(--fflp-pub-shadow);
}

.fflp-service-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: var(--fflp-pub-success-lt);
    color: var(--fflp-pub-success);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
    margin-top: 1px;
}

.fflp-service-name {
    font-size: 15px;
    color: var(--fflp-pub-text);
    line-height: 1.4;
}


/* ─────────────────────────────────────────
   6. MENU DISPLAY
   ───────────────────────────────────────── */

/* PDF embed */
.fflp-menu-pdf-wrap {
    background: var(--fflp-pub-card-bg);
    border-radius: var(--fflp-pub-radius);
    overflow: hidden;
    box-shadow: var(--fflp-pub-shadow);
}

.fflp-menu-pdf-embed {
    position: relative;
    width: 100%;
    background: #f1f5f9;
}

.fflp-menu-pdf-embed iframe {
    display: block;
    width: 100%;
    height: 600px;
    border: none;
}

.fflp-menu-pdf-fallback {
    padding: 12px 24px;
    text-align: center;
    border-top: 1px solid var(--fflp-pub-border);
    background: var(--fflp-pub-bg);
}

.fflp-menu-pdf-fallback p {
    margin: 0;
    font-size: 14px;
    color: var(--fflp-pub-text-light);
}

.fflp-menu-pdf-fallback a {
    color: var(--fflp-pub-primary);
    text-decoration: none;
    font-weight: 600;
}

.fflp-menu-pdf-fallback a:hover {
    text-decoration: underline;
}

/* External link button */
.fflp-menu-link-wrap {
    max-width: 480px;
}

.fflp-menu-link-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    background: var(--fflp-pub-card-bg);
    border: 2px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    text-decoration: none;
    transition: all var(--fflp-pub-transition);
}

.fflp-menu-link-btn:hover {
    border-color: var(--fflp-pub-primary);
    box-shadow: var(--fflp-pub-shadow-lg);
    transform: translateY(-2px);
}

.fflp-menu-link-icon {
    font-size: 32px;
    flex-shrink: 0;
}

.fflp-menu-link-text {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.fflp-menu-link-text strong {
    font-size: 17px;
    color: var(--fflp-pub-text);
    line-height: 1.3;
}

.fflp-menu-link-text span {
    font-size: 13px;
    color: var(--fflp-pub-text-light);
}

.fflp-menu-link-arrow {
    font-size: 24px;
    color: var(--fflp-pub-primary);
    flex-shrink: 0;
    transition: transform var(--fflp-pub-transition);
}

.fflp-menu-link-btn:hover .fflp-menu-link-arrow {
    transform: translateX(4px);
}


/* ─────────────────────────────────────────
   7. COUPONS / SPECIAL OFFERS
   ───────────────────────────────────────── */

.fflp-coupons-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Coupon card */
.fflp-coupon-card {
    position: relative;
    background: var(--fflp-pub-card-bg);
    border-radius: var(--fflp-pub-radius);
    overflow: hidden;
    box-shadow: var(--fflp-pub-shadow);
    transition: box-shadow var(--fflp-pub-transition),
                transform var(--fflp-pub-transition);
}

.fflp-coupon-card:hover {
    box-shadow: var(--fflp-pub-shadow-lg);
    transform: translateY(-2px);
}

/* Decorative top border */
.fflp-coupon-border {
    height: 4px;
    background: var(--fflp-pub-coupon-bg);
}

/* Body */
.fflp-coupon-body {
    padding: 24px 24px 16px;
}

.fflp-coupon-title {
    margin: 0 0 8px;
    font-size: 20px;
    font-weight: 700;
    color: var(--fflp-pub-text);
    line-height: 1.3;
}

.fflp-coupon-desc {
    margin: 0 0 16px;
    font-size: 15px;
    color: var(--fflp-pub-text-light);
    line-height: 1.5;
}

/* Code */
.fflp-coupon-code-wrap {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--fflp-pub-warning-lt);
    border: 2px dashed var(--fflp-pub-coupon-border);
    border-radius: var(--fflp-pub-radius-sm);
}

.fflp-coupon-code-label {
    font-size: 13px;
    color: var(--fflp-pub-text-light);
    white-space: nowrap;
}

.fflp-coupon-code {
    font-size: 18px;
    font-weight: 800;
    color: var(--fflp-pub-text);
    letter-spacing: 2px;
    font-family: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;
}

.fflp-coupon-copy {
    background: transparent;
    border: none;
    font-size: 18px;
    cursor: pointer;
    padding: 2px;
    transition: transform var(--fflp-pub-transition);
    line-height: 1;
}

.fflp-coupon-copy:hover {
    transform: scale(1.2);
}

/* Footer (expiry) */
.fflp-coupon-footer {
    padding: 12px 24px;
    background: var(--fflp-pub-bg);
    border-top: 1px solid var(--fflp-pub-border);
}

.fflp-coupon-expiry {
    font-size: 13px;
    color: var(--fflp-pub-text-light);
}

/* ── Coupon Actions Row ── */
.fflp-coupon-actions {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    display: flex;
    gap: 10px;
    justify-content: center;
}

/* ── Print Button ── */
.fflp-coupon-print {
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 8px 18px;
    font-size: 14px;
    color: #555;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
}

.fflp-coupon-print:hover {
    background: #f8f8f8;
    border-color: #e85d2a;
    color: #e85d2a;
}

/* ── Hide print button when actually printing the listing page ── */
@media print {
    .fflp-coupon-actions {
        display: none !important;
    }
}

/* ─────────────────────────────────────────
   8. GOOGLE REVIEWS
   ───────────────────────────────────────── */

/* Aggregate rating */
.fflp-reviews-aggregate {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 28px 32px;
    background: var(--fflp-pub-card-bg);
    border-radius: var(--fflp-pub-radius);
    box-shadow: var(--fflp-pub-shadow);
    margin-bottom: 24px;
}

.fflp-reviews-rating-big {
    font-size: 56px;
    font-weight: 800;
    color: var(--fflp-pub-text);
    line-height: 1;
    flex-shrink: 0;
}

.fflp-reviews-stars-wrap {
    flex: 1;
}

.fflp-reviews-stars {
    font-size: 28px;
    letter-spacing: 3px;
    line-height: 1;
    margin-bottom: 4px;
}

.fflp-star {
    display: inline-block;
}

.fflp-star-full {
    color: var(--fflp-pub-star);
}

.fflp-star-half {
    color: var(--fflp-pub-star);
    position: relative;
}

.fflp-star-half::after {
    content: '☆';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--fflp-pub-star-empty);
    clip-path: inset(0 0 0 50%);
}

.fflp-star-empty {
    color: var(--fflp-pub-star-empty);
}

.fflp-reviews-count {
    font-size: 15px;
    color: var(--fflp-pub-text-light);
    margin-top: 4px;
}

/* Review cards */
.fflp-reviews-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.fflp-review-card {
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    padding: 20px 24px;
    transition: box-shadow var(--fflp-pub-transition);
}

.fflp-review-card:hover {
    box-shadow: var(--fflp-pub-shadow);
}

.fflp-review-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.fflp-review-author {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--fflp-pub-text);
}

.fflp-review-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}

.fflp-review-stars {
    font-size: 16px;
    letter-spacing: 1px;
    line-height: 1;
}

.fflp-review-stars .fflp-star-full {
    color: var(--fflp-pub-star);
}

.fflp-review-stars .fflp-star-empty {
    color: var(--fflp-pub-star-empty);
}

.fflp-review-time {
    font-size: 13px;
    color: var(--fflp-pub-text-muted);
    margin-left: auto;
}

.fflp-review-text {
    font-size: 15px;
    color: var(--fflp-pub-text);
    line-height: 1.7;
}

/* Google attribution */
.fflp-reviews-attribution {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
    font-size: 13px;
    color: var(--fflp-pub-text-muted);
}

.fflp-reviews-google-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: #4285f4;
    color: #fff;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    font-family: "Product Sans", Arial, sans-serif;
}


/* ─────────────────────────────────────────
   9. RESPONSIVE — TABLET (≤768px)
   ───────────────────────────────────────── */

@media (max-width: 768px) {

    /* Section titles */
    .fflp-section-title {
        font-size: 20px;
    }

    /* FAQ */
    .fflp-faq-trigger {
        padding: 14px 18px;
        font-size: 15px;
    }

    .fflp-faq-answer-inner {
        padding: 0 18px 16px;
    }

    /* Hours */
    .fflp-hours-day,
    .fflp-hours-time {
        padding: 12px 16px;
        font-size: 14px;
    }

    .fflp-hours-day {
        width: 140px;
    }

    /* Services: single column */
    .fflp-services-list {
        grid-template-columns: 1fr;
    }

    /* Coupons: single column */
    .fflp-coupons-grid {
        grid-template-columns: 1fr;
    }

    /* Reviews aggregate */
    .fflp-reviews-aggregate {
        flex-direction: column;
        text-align: center;
        padding: 24px 20px;
        gap: 12px;
    }

    .fflp-reviews-rating-big {
        font-size: 48px;
    }

    .fflp-reviews-stars {
        font-size: 24px;
        justify-content: flex-start;
    }

    /* Review header stack */
    .fflp-review-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .fflp-review-time {
        margin-left: 0;
    }

    /* Menu PDF */
    .fflp-menu-pdf-embed iframe {
        height: 450px;
    }

    /* Menu link */
    .fflp-menu-link-wrap {
        max-width: 100%;
    }
}


/* ─────────────────────────────────────────
   10. RESPONSIVE — MOBILE (≤480px)
   ───────────────────────────────────────── */

@media (max-width: 480px) {

    /* Sections */
    .fflp-section {
        margin: 28px 0;
    }

    .fflp-section-title {
        font-size: 18px;
        margin-bottom: 16px;
        padding-bottom: 10px;
    }

    /* FAQ */
    .fflp-faq-trigger {
        padding: 12px 14px;
        font-size: 14px;
        gap: 10px;
    }

    .fflp-faq-icon {
        width: 24px;
        height: 24px;
        font-size: 14px;
    }

    .fflp-faq-answer-inner {
        padding: 0 14px 14px;
        font-size: 14px;
    }

    /* Hours — stacked layout */
    .fflp-hours-table,
    .fflp-hours-table tbody,
    .fflp-hours-table tr,
    .fflp-hours-table td {
        display: block;
        width: 100%;
    }

    .fflp-hours-row {
        padding: 12px 16px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .fflp-hours-row:not(:last-child) {
        border-bottom: 1px solid var(--fflp-pub-border);
    }

    .fflp-hours-day,
    .fflp-hours-time {
        padding: 0;
        width: auto;
    }

    .fflp-hours-time {
        text-align: right;
    }

    .fflp-hours-today-badge {
        font-size: 9px;
        padding: 1px 6px;
    }

    /* Services */
    .fflp-service-item {
        padding: 12px 14px;
    }

    .fflp-service-icon {
        width: 20px;
        height: 20px;
        font-size: 10px;
    }

    .fflp-service-name {
        font-size: 14px;
    }

    /* Menu PDF — shorter */
    .fflp-menu-pdf-embed iframe {
        height: 350px;
    }

    .fflp-menu-link-btn {
        padding: 16px 18px;
        gap: 12px;
    }

    .fflp-menu-link-icon {
        font-size: 24px;
    }

    .fflp-menu-link-text strong {
        font-size: 15px;
    }

    /* Coupons */
    .fflp-coupon-body {
        padding: 18px 18px 12px;
    }

    .fflp-coupon-title {
        font-size: 17px;
    }

    .fflp-coupon-code-wrap {
        flex-wrap: wrap;
        gap: 6px;
        padding: 8px 12px;
    }

    .fflp-coupon-code {
        font-size: 16px;
    }

    .fflp-coupon-footer {
        padding: 10px 18px;
    }

    /* Reviews */
    .fflp-reviews-aggregate {
        padding: 20px 16px;
    }

    .fflp-reviews-rating-big {
        font-size: 42px;
    }

    .fflp-reviews-stars {
        font-size: 20px;
    }

    .fflp-reviews-count {
        font-size: 13px;
    }

    .fflp-review-card {
        padding: 16px 18px;
    }

    .fflp-review-text {
        font-size: 14px;
    }
}


/* ═══════════════════════════════════════════
   CONTACT FORM STATUS MESSAGES
   ═══════════════════════════════════════════ */

.fflp-form-status {
    display: none;
    padding: 12px 16px;
    border-radius: 8px;
    margin-top: 12px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.fflp-form-status-success {
    display: block;
    background: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}

.fflp-form-status-error {
    display: block;
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}

/* Disabled submit button state */
.fflp-contact-form button[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}


/* ─────────────────────────────────────────
   11. PRINT STYLES
   ───────────────────────────────────────── */

@media print {

    .fflp-section {
        margin: 20px 0;
        page-break-inside: avoid;
    }

    .fflp-section-title {
        font-size: 18pt;
        border-bottom: 1pt solid #000;
    }

    /* FAQ: expand all answers for print */
    .fflp-faq-answer {
        display: block !important;
        max-height: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .fflp-faq-answer[hidden] {
        display: block !important;
        max-height: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .fflp-faq-icon {
        display: none;
    }

    .fflp-faq-trigger {
        padding: 8px 0;
        font-weight: 700;
    }

    /* Hours */
    .fflp-hours-table-wrap {
        box-shadow: none;
        border: 1pt solid #000;
    }

    /* Services: single column for print */
    .fflp-services-list {
        grid-template-columns: 1fr;
    }

    /* Coupons: single column */
    .fflp-coupons-grid {
        grid-template-columns: 1fr;
    }

    .fflp-coupon-card {
        box-shadow: none;
        border: 1pt solid #000;
    }

    .fflp-coupon-copy {
        display: none;
    }

    /* Reviews: no shadows */
    .fflp-reviews-aggregate,
    .fflp-review-card {
        box-shadow: none;
        border: 1pt solid #ccc;
    }

    /* Menu: show link instead of iframe */
    .fflp-menu-pdf-embed {
        display: none;
    }

    .fflp-menu-pdf-fallback {
        border: none;
        background: none;
        text-align: left;
    }
}
/* ── Mobile Badge Strip ── */
.fflp-mobile-badge-strip {
    display: none;
}

@media (max-width: 600px) {
    /* Hide badges inside hero on mobile */
    .fflp-hero .fflp-badges-primary,
    .fflp-hero .fflp-badges-status,
    .fflp-hero .fflp-discovery-badges {
        display: none !important;
    }

    /* Show mobile strip below hero */
    .fflp-mobile-badge-strip {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        padding: 10px 16px;
        justify-content: flex-start;
        background: #f8f9fa;
        border-bottom: 1px solid #e9ecef;
    }

    .fflp-mobile-badge-strip .fflp-badge,
    .fflp-mobile-badge-strip .fflp-badge-verified,
    .fflp-mobile-badge-strip .fflp-dbadge {
        font-size: 11px;
        padding: 3px 8px;
    }
}

/* ═══════════════════════════════════════════════
   ANNOUNCEMENTS SECTION (v3.4.0)
   ═══════════════════════════════════════════════ */

.fflp-section-announcements {
    margin-bottom: 24px;
}

.fflp-announcements-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fflp-announcement-card {
    position: relative;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-left: 4px solid #3b82f6;
    border-radius: 8px;
    padding: 16px 20px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fflp-announcement-card:hover {
    border-color: #3b82f6;
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
}

.fflp-announcement-pinned {
    border-left-color: #f59e0b;
    background: #fffbeb;
}

.fflp-announcement-pinned:hover {
    border-color: #f59e0b;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.15);
}

.fflp-announcement-pin {
    position: absolute;
    top: 12px;
    right: 12px;
    font-size: 14px;
    line-height: 1;
}

.fflp-announcement-text {
    font-size: 15px;
    line-height: 1.6;
    color: #1e293b;
    margin: 0;
    word-wrap: break-word;
}

.fflp-announcement-text p {
    margin: 0 0 8px 0;
}

.fflp-announcement-text p:last-child {
    margin-bottom: 0;
}

.fflp-announcement-date {
    margin-top: 8px;
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
}

/* Tier accent colors for announcement cards */
.fflp-tier-founding .fflp-announcement-card { /* FIXED */
    border-left-color: #3b82f6;
}

.fflp-tier-premium .fflp-announcement-card {
    border-left-color: #3b82f6;
}

.fflp-tier-community .fflp-announcement-card {
    border-left-color: #3b82f6;
}

/* Mobile adjustments */
@media (max-width: 600px) {
    .fflp-announcement-card {
        padding: 12px 16px;
    }

    .fflp-announcement-text {
        font-size: 14px;
    }
}

/* ── Featured In Section ── */
.fflp-section-featured-in {
    margin: 24px 0;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.fflp-featured-in-list {
    list-style: square !important;
    padding-left: 1.5em !important;
    margin: 12px 0 0 0;
}

.fflp-featured-in-item {
    padding: 6px 0;
    font-size: 15px;
    line-height: 1.5;
    color: #1e3a5f;
}

.fflp-featured-in-item::marker {
    color: #1e3a5f;
}

.fflp-featured-in-item a {
    color: #1e3a5f !important;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.fflp-featured-in-item a:hover {
    color: #2a5080 !important;
    text-decoration: underline;
}

.fflp-featured-in-date {
    color: #64748b;
    font-weight: 400;
    font-size: 13px;
}

@media (max-width: 600px) {
    .fflp-section-featured-in {
        padding: 16px;
    }

    .fflp-featured-in-item {
        font-size: 14px;
    }
}


/* ═══════════════════════════════════════════════════════════════════════
   NEW SECTIONS CSS — Events, Booking, Nearby + Polish (v3.5.0)
   Added: March 12, 2026
   ═══════════════════════════════════════════════════════════════════════ */


/* ─────────────────────────────────────────
   SECTION TITLE EMOJI CLEANUP
   Replace emoji with CSS pseudo-element icons
   ───────────────────────────────────────── */

.fflp-section-title {
    display: flex;
    align-items: center;
    gap: 10px;
}


/* ─────────────────────────────────────────
   EVENTS SECTION
   ───────────────────────────────────────── */

.fflp-events-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Event card — clickable row */
.fflp-event-card {
    display: grid;
    grid-template-columns: 72px 1fr 120px;
    gap: 20px;
    align-items: start;
    padding: 20px 24px;
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    text-decoration: none;
    color: inherit;
    transition: border-color var(--fflp-pub-transition),
                box-shadow var(--fflp-pub-transition),
                transform var(--fflp-pub-transition);
}

.fflp-event-card:hover {
    border-color: var(--fflp-pub-primary);
    box-shadow: var(--fflp-pub-shadow-lg);
    transform: translateY(-2px);
    text-decoration: none;
    color: inherit;
}

.fflp-event-card:visited {
    color: inherit;
}

/* Date badge — left column */
.fflp-event-date-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 2px solid var(--fflp-pub-primary);
    border-radius: var(--fflp-pub-radius-sm);
    flex-shrink: 0;
}

.fflp-event-month {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--fflp-pub-primary);
    line-height: 1;
    margin-bottom: 2px;
}

.fflp-event-day {
    font-size: 24px;
    font-weight: 800;
    color: var(--fflp-pub-primary-dk);
    line-height: 1;
}

/* Content — middle column */
.fflp-event-content {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.fflp-event-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--fflp-pub-text);
    margin: 0;
    line-height: 1.3;
}

.fflp-event-card:hover .fflp-event-title {
    color: var(--fflp-pub-primary);
}

/* Meta items — time, venue, cost */
.fflp-event-time,
.fflp-event-venue,
.fflp-event-cost {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--fflp-pub-text-light);
    line-height: 1.4;
}

.fflp-event-time::before,
.fflp-event-venue::before,
.fflp-event-cost::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 11px;
    flex-shrink: 0;
}

.fflp-event-time::before {
    content: "🕐";
}

.fflp-event-venue::before {
    content: "📍";
}

.fflp-event-cost::before {
    content: "💲";
}

.fflp-event-excerpt {
    font-size: 14px;
    color: var(--fflp-pub-text-light);
    line-height: 1.5;
    margin: 4px 0 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Source badge */
.fflp-event-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 3px 10px;
    border-radius: 12px;
    margin-top: 4px;
    width: fit-content;
}

.fflp-event-badge-auto {
    background: #eff6ff;
    color: var(--fflp-pub-primary);
    border: 1px solid #bfdbfe;
}

.fflp-event-badge-manual {
    background: #f0fdf4;
    color: var(--fflp-pub-success);
    border: 1px solid #bbf7d0;
}

/* Thumbnail — right column */
.fflp-event-thumb {
    width: 120px;
    height: 90px;
    border-radius: var(--fflp-pub-radius-sm);
    overflow: hidden;
    flex-shrink: 0;
}

.fflp-event-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* No-thumb: collapse the column */
.fflp-event-card:not(:has(.fflp-event-thumb)) {
    grid-template-columns: 72px 1fr;
}


/* ─────────────────────────────────────────
   BOOKING / ORDER & RESERVATIONS
   ───────────────────────────────────────── */

.fflp-booking-buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 560px;
}

.fflp-booking-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 24px;
    background: var(--fflp-pub-card-bg);
    border: 2px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    text-decoration: none;
    color: var(--fflp-pub-text);
    font-size: 16px;
    font-weight: 600;
    transition: all var(--fflp-pub-transition);
    position: relative;
    overflow: hidden;
}

.fflp-booking-btn:hover {
    border-color: var(--fflp-pub-primary);
    box-shadow: var(--fflp-pub-shadow-lg);
    transform: translateY(-2px);
    text-decoration: none;
    color: var(--fflp-pub-text);
}

.fflp-booking-btn:visited {
    color: var(--fflp-pub-text);
}

/* Left accent bar per type */
.fflp-booking-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--fflp-pub-primary);
    border-radius: 4px 0 0 4px;
    opacity: 0;
    transition: opacity var(--fflp-pub-transition);
}

.fflp-booking-btn:hover::before {
    opacity: 1;
}

/* Type-specific accent colors */
.fflp-booking-type-order:hover { border-color: #16a34a; }
.fflp-booking-type-order::before { background: #16a34a; }

.fflp-booking-type-reservation:hover { border-color: #7c3aed; }
.fflp-booking-type-reservation::before { background: #7c3aed; }

.fflp-booking-type-delivery:hover { border-color: #ea580c; }
.fflp-booking-type-delivery::before { background: #ea580c; }

.fflp-booking-type-tickets:hover { border-color: #db2777; }
.fflp-booking-type-tickets::before { background: #db2777; }

.fflp-booking-type-appointment:hover { border-color: #0891b2; }
.fflp-booking-type-appointment::before { background: #0891b2; }

/* Icon */
.fflp-booking-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--fflp-pub-bg);
    border-radius: 10px;
    font-size: 22px;
    flex-shrink: 0;
}

/* Label */
.fflp-booking-label {
    flex: 1;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

/* Provider badge */
.fflp-booking-provider-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
    padding: 4px 10px;
    border-radius: 6px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* LIVE badge (Hotplate) */
.fflp-booking-live-badge {
    font-size: 11px;
    font-weight: 700;
    color: var(--fflp-pub-success);
    animation: fflp-pulse 2s ease-in-out infinite;
    white-space: nowrap;
}

@keyframes fflp-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Arrow indicator on hover */
.fflp-booking-btn::after {
    content: '→';
    font-size: 18px;
    color: var(--fflp-pub-text-muted);
    flex-shrink: 0;
    transition: transform var(--fflp-pub-transition),
                color var(--fflp-pub-transition);
}

.fflp-booking-btn:hover::after {
    transform: translateX(4px);
    color: var(--fflp-pub-primary);
}


/* ─────────────────────────────────────────
   NEARBY BUSINESSES
   ───────────────────────────────────────── */

.fflp-nearby-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.fflp-nearby-card {
    display: flex;
    flex-direction: column;
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: border-color var(--fflp-pub-transition),
                box-shadow var(--fflp-pub-transition),
                transform var(--fflp-pub-transition);
}

.fflp-nearby-card:hover {
    border-color: var(--fflp-pub-primary);
    box-shadow: var(--fflp-pub-shadow-lg);
    transform: translateY(-3px);
    text-decoration: none;
    color: inherit;
}

.fflp-nearby-card:visited {
    color: inherit;
}

/* Paid tier highlight */
.fflp-nearby-card--paid {
    border-color: var(--fflp-pub-border-dk);
    box-shadow: var(--fflp-pub-shadow);
}

/* Thumbnail */
.fflp-nearby-thumb {
    width: 100%;
    height: 140px;
    overflow: hidden;
    background: #f1f5f9;
}

.fflp-nearby-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: transform 0.3s ease;
}

.fflp-nearby-card:hover .fflp-nearby-thumb img {
    transform: scale(1.05);
}

/* Placeholder thumb */
.fflp-nearby-thumb--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
    font-size: 32px;
}

/* Info block */
.fflp-nearby-info {
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.fflp-nearby-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--fflp-pub-text);
    margin: 0;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.fflp-nearby-card:hover .fflp-nearby-name {
    color: var(--fflp-pub-primary);
}

/* Tier badge */
.fflp-nearby-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--badge-color, var(--fflp-pub-primary));
    background: color-mix(in srgb, var(--badge-color, var(--fflp-pub-primary)) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--badge-color, var(--fflp-pub-primary)) 30%, transparent);
    padding: 2px 8px;
    border-radius: 4px;
    width: fit-content;
}

/* Category label */
.fflp-nearby-category {
    font-size: 12px;
    color: var(--fflp-pub-text-muted);
    line-height: 1.3;
}

/* Open/Closed status */
.fflp-nearby-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    width: fit-content;
}

.fflp-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.fflp-nearby-status--open {
    color: var(--fflp-pub-success);
}

.fflp-nearby-status--open .fflp-status-dot {
    background: var(--fflp-pub-success);
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

.fflp-nearby-status--closed {
    color: var(--fflp-pub-danger);
}

.fflp-nearby-status--closed .fflp-status-dot {
    background: var(--fflp-pub-danger);
}

.fflp-nearby-status--closing {
    color: var(--fflp-pub-warning);
}

.fflp-nearby-status--closing .fflp-status-dot {
    background: var(--fflp-pub-warning);
    animation: fflp-pulse 1.5s ease-in-out infinite;
}

/* Distance */
.fflp-nearby-distance {
    font-size: 12px;
    color: var(--fflp-pub-text-muted);
    margin-top: auto;
    padding-top: 4px;
}


/* ─────────────────────────────────────────
   ANNOUNCEMENTS — POLISH
   ───────────────────────────────────────── */

/* Override the basic styles with refined version */
.fflp-announcement-card {
    position: relative;
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-left: 4px solid var(--fflp-pub-primary);
    border-radius: var(--fflp-pub-radius-sm);
    padding: 18px 24px;
    transition: border-color var(--fflp-pub-transition),
                box-shadow var(--fflp-pub-transition);
}

.fflp-announcement-card:hover {
    box-shadow: var(--fflp-pub-shadow);
}

.fflp-announcement-pinned {
    border-left-color: var(--fflp-pub-warning);
    background: #fffbeb;
}

.fflp-announcement-pinned:hover {
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.12);
}

.fflp-announcement-pin {
    position: absolute;
    top: 14px;
    right: 14px;
    font-size: 16px;
    line-height: 1;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,0.1));
}

.fflp-announcement-text {
    font-size: 15px;
    line-height: 1.65;
    color: var(--fflp-pub-text);
    margin: 0;
}

.fflp-announcement-date {
    margin-top: 10px;
    font-size: 12px;
    color: var(--fflp-pub-text-muted);
    font-weight: 500;
    letter-spacing: 0.3px;
}


/* ─────────────────────────────────────────
   FEATURED IN — POLISH
   Upgrade from basic list to card-style
   ───────────────────────────────────────── */

.fflp-section-featured-in {
    margin: 40px 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
    border: none;
}

.fflp-featured-in-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.fflp-featured-in-item {
    padding: 14px 20px;
    font-size: 15px;
    line-height: 1.5;
    background: var(--fflp-pub-card-bg);
    border: 1px solid var(--fflp-pub-border);
    border-radius: var(--fflp-pub-radius-sm);
    transition: border-color var(--fflp-pub-transition),
                box-shadow var(--fflp-pub-transition);
    position: relative;
    padding-left: 40px;
}

.fflp-featured-in-item::before {
    content: '📰';
    position: absolute;
    left: 14px;
    top: 14px;
    font-size: 14px;
}

.fflp-featured-in-item:hover {
    border-color: var(--fflp-pub-primary);
    box-shadow: var(--fflp-pub-shadow);
}

.fflp-featured-in-item::marker {
    display: none;
}

.fflp-featured-in-item a {
    color: var(--fflp-pub-text) !important;
    text-decoration: none;
    font-weight: 600;
    transition: color var(--fflp-pub-transition);
}

.fflp-featured-in-item a:hover {
    color: var(--fflp-pub-primary) !important;
}

.fflp-featured-in-date {
    color: var(--fflp-pub-text-muted);
    font-weight: 400;
    font-size: 13px;
}


/* ─────────────────────────────────────────
   RESPONSIVE — TABLET (≤768px)
   New sections
   ───────────────────────────────────────── */

@media (max-width: 768px) {

    /* Events: 2-col layout, smaller thumb */
    .fflp-event-card {
        grid-template-columns: 60px 1fr 90px;
        gap: 14px;
        padding: 16px 18px;
    }

    .fflp-event-date-badge {
        width: 54px;
        height: 54px;
    }

    .fflp-event-month {
        font-size: 10px;
    }

    .fflp-event-day {
        font-size: 20px;
    }

    .fflp-event-title {
        font-size: 16px;
    }

    .fflp-event-thumb {
        width: 90px;
        height: 68px;
    }

    /* Nearby: 2 columns */
    .fflp-nearby-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .fflp-nearby-thumb {
        height: 100px;
    }

    /* Booking: full width */
    .fflp-booking-buttons {
        max-width: 100%;
    }
}


/* ─────────────────────────────────────────
   RESPONSIVE — MOBILE (≤480px)
   New sections
   ───────────────────────────────────────── */

@media (max-width: 480px) {

    /* Events: stack layout, no thumb */
    .fflp-event-card {
        grid-template-columns: 52px 1fr;
        gap: 12px;
        padding: 14px 16px;
    }

    .fflp-event-thumb {
        display: none;
    }

    .fflp-event-date-badge {
        width: 48px;
        height: 48px;
    }

    .fflp-event-month {
        font-size: 9px;
        letter-spacing: 1px;
    }

    .fflp-event-day {
        font-size: 18px;
    }

    .fflp-event-title {
        font-size: 15px;
    }

    .fflp-event-time,
    .fflp-event-venue,
    .fflp-event-cost {
        font-size: 13px;
    }

    .fflp-event-excerpt {
        font-size: 13px;
        -webkit-line-clamp: 2;
    }

    /* Nearby: single column, horizontal cards */
    .fflp-nearby-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .fflp-nearby-card {
        flex-direction: row;
        align-items: center;
    }

    .fflp-nearby-thumb {
        width: 80px;
        height: 80px;
        min-width: 80px;
        border-radius: var(--fflp-pub-radius) 0 0 var(--fflp-pub-radius);
    }

    .fflp-nearby-info {
        padding: 10px 14px;
        gap: 4px;
    }

    .fflp-nearby-name {
        font-size: 14px;
    }

    /* Booking: compact */
    .fflp-booking-btn {
        padding: 14px 16px;
        gap: 12px;
    }

    .fflp-booking-icon {
        width: 36px;
        height: 36px;
        font-size: 18px;
        border-radius: 8px;
    }

    .fflp-booking-label {
        font-size: 14px;
    }

    .fflp-booking-provider-badge {
        font-size: 10px;
        padding: 3px 8px;
    }

    /* Featured In: compact */
    .fflp-featured-in-item {
        padding: 12px 16px 12px 36px;
        font-size: 14px;
    }

    .fflp-featured-in-item::before {
        left: 12px;
        top: 12px;
        font-size: 13px;
    }

    /* Announcements: compact */
    .fflp-announcement-card {
        padding: 14px 16px;
    }

    .fflp-announcement-text {
        font-size: 14px;
    }
}


/* ─────────────────────────────────────────
   RESPONSIVE — WIDE (≥1200px)
   ───────────────────────────────────────── */

@media (min-width: 1200px) {

    /* Nearby: could go 4 wide if container allows */
    .fflp-nearby-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}


/* ─────────────────────────────────────────
   PRINT — New sections
   ───────────────────────────────────────── */

@media print {

    .fflp-event-card {
        box-shadow: none;
        border: 1pt solid #ccc;
        page-break-inside: avoid;
    }

    .fflp-event-thumb {
        display: none;
    }

    .fflp-nearby-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .fflp-nearby-card {
        box-shadow: none;
        border: 1pt solid #ccc;
    }

    .fflp-nearby-thumb {
        display: none;
    }

    .fflp-booking-btn {
        box-shadow: none;
        border: 1pt solid #ccc;
    }

    .fflp-booking-btn::after {
        display: none;
    }

    .fflp-featured-in-item {
        box-shadow: none;
        border: 1pt solid #ccc;
    }
}


/* ═══════════════════════════════════════════════
   HOTFIX — v3.5.1 — Double icons, nearby images, 
   announcement border
   ═══════════════════════════════════════════════ */

/* FIX 1: Remove CSS pseudo-element icons — emojis removed from PHP,
   use simple SVG-style text icons instead */
.fflp-event-time::before,
.fflp-event-venue::before,
.fflp-event-cost::before {
    content: none !important;
    display: none !important;
}

.fflp-event-time::after,
.fflp-event-venue::after,
.fflp-event-cost::after {
    content: none !important;
}

/* Clean inline icon style for event meta */
.fflp-event-time,
.fflp-event-venue,
.fflp-event-cost {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--fflp-pub-text-light);
    line-height: 1.5;
    padding: 2px 0;
}

/* Add proper icon indicators via small colored dots */
.fflp-event-time { padding-left: 0; }
.fflp-event-venue { padding-left: 0; }
.fflp-event-cost { padding-left: 0; }


/* FIX 2: Nearby card images — no crop, proper fit */
.fflp-nearby-thumb {
    width: 100%;
    height: 140px;
    overflow: hidden;
    background: #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fflp-nearby-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    padding: 4px;
    transition: transform 0.3s ease;
}

.fflp-nearby-card:hover .fflp-nearby-thumb img {
    transform: scale(1.03);
}

/* Nearby grid — 4 on desktop, 2 on mobile */
.fflp-nearby-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

/* FIX 2b: Mobile nearby — horizontal card, 2 columns */
@media (max-width: 768px) {
    .fflp-nearby-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .fflp-nearby-thumb {
        height: 110px;
    }
}

@media (max-width: 480px) {
    .fflp-nearby-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    /* Keep 2-col cards on mobile, not horizontal */
    .fflp-nearby-card {
        flex-direction: column;
    }

    .fflp-nearby-thumb {
        width: 100%;
        height: 90px;
        min-width: unset;
        border-radius: var(--fflp-pub-radius) var(--fflp-pub-radius) 0 0;
    }

    .fflp-nearby-info {
        padding: 10px 12px;
    }

    .fflp-nearby-name {
        font-size: 13px;
    }

    .fflp-nearby-category,
    .fflp-nearby-distance {
        font-size: 11px;
    }
}


/* FIX 3: Announcement border — force blue, override tier-specific orange */
.fflp-announcement-card,
.fflp-section-announcements .fflp-announcement-card {
    border-left: 4px solid var(--fflp-pub-primary) !important;
    background: var(--fflp-pub-card-bg) !important;
}

.fflp-announcement-card:hover,
.fflp-section-announcements .fflp-announcement-card:hover {
    border-color: var(--fflp-pub-primary) !important;
    border-left-color: var(--fflp-pub-primary) !important;
    box-shadow: var(--fflp-pub-shadow) !important;
}

/* Pinned announcements get amber left border */
.fflp-announcement-pinned,
.fflp-section-announcements .fflp-announcement-pinned {
    border-left-color: var(--fflp-pub-warning) !important;
    background: #fffbeb !important;
}

.fflp-announcement-pinned:hover,
.fflp-section-announcements .fflp-announcement-pinned:hover {
    border-left-color: var(--fflp-pub-warning) !important;
}

/* Kill any tier-level overrides that were forcing orange */
.fflp-tier-founding .fflp-announcement-card:not(.fflp-announcement-pinned),
.fflp-tier-premium .fflp-announcement-card:not(.fflp-announcement-pinned),
.fflp-tier-community .fflp-announcement-card:not(.fflp-announcement-pinned) {
    border-left-color: var(--fflp-pub-primary) !important;
}

/* ──────────────────────────────────────────────
   HOTFIX: Booking button type colors
   Renderer outputs fflp-booking-{type}, not fflp-booking-type-{type}
   Adding correct selectors to match renderer classes
   ────────────────────────────────────────────── */

/* Order — green */
.fflp-booking-order:hover { border-color: #16a34a; }
.fflp-booking-order::before { background: #16a34a; }

/* Reserve — purple */
.fflp-booking-reserve:hover { border-color: #7c3aed; }
.fflp-booking-reserve::before { background: #7c3aed; }

/* Delivery — orange */
.fflp-booking-delivery:hover { border-color: #ea580c; }
.fflp-booking-delivery::before { background: #ea580c; }

/* Pickup — teal (NEW — was missing entirely) */
.fflp-booking-pickup:hover { border-color: #0d9488; }
.fflp-booking-pickup::before { background: #0d9488; }

/* Tickets — pink */
.fflp-booking-tickets:hover { border-color: #db2777; }
.fflp-booking-tickets::before { background: #db2777; }

/* Appointment — cyan */
.fflp-booking-appt:hover { border-color: #0891b2; }
.fflp-booking-appt::before { background: #0891b2; }

/* Custom — slate (NEW — was missing entirely) */
.fflp-booking-custom:hover { border-color: #475569; }
.fflp-booking-custom::before { background: #475569; }

/* ──────────────────────────────────────────────
   Provider-specific button accents
   Renderer adds fflp-booking-provider-{slug}
   Provider badge already has inline background color,
   these add subtle border hints on hover
   ────────────────────────────────────────────── */
.fflp-booking-provider-hotplate:hover  { border-color: #ff6b35; }
.fflp-booking-provider-opentable:hover { border-color: #da3743; }
.fflp-booking-provider-doordash:hover  { border-color: #ff3008; }
.fflp-booking-provider-ubereats:hover  { border-color: #06c167; }
.fflp-booking-provider-grubhub:hover   { border-color: #f63440; }
.fflp-booking-provider-toasttab:hover  { border-color: #ff4c00; }
.fflp-booking-provider-square:hover    { border-color: #006aff; }
.fflp-booking-provider-chownow:hover   { border-color: #e85d26; }
.fflp-booking-provider-resy:hover      { border-color: #c9362e; }
.fflp-booking-provider-yelp:hover      { border-color: #d32323; }
.fflp-booking-provider-eventbrite:hover { border-color: #f05537; }

/* ──────────────────────────────────────────────
   LIVE badge pulse animation (ensure keyframes exist)
   ────────────────────────────────────────────── */
@keyframes fflp-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* ──────────────────────────────────────────────
   Engagement tracking elements — invisible
   ────────────────────────────────────────────── */
.fflp-impression,
.fflp-track {
    /* These are data attributes on visible elements, not standalone.
       But if used as classes, ensure no layout impact. */
}

/* ──────────────────────────────────────────────
   Event source badges
   ────────────────────────────────────────────── */
.fflp-event-source-tec .fflp-event-badge {
    background: #0073aa;
    color: #fff;
}
.fflp-event-source-manual .fflp-event-badge {
    background: #7c3aed;
    color: #fff;
}
