/* ── Block wrapper ───────────────────────────────────────────────────────────── */
.fb-block { overflow: hidden; }

/* When a block wrapper has an explicit --fb-color CSS variable set by the renderer,
   headings inside that block inherit it. Blocks without a color set are unaffected. */
.fb-block[style*="color:"] h1,
.fb-block[style*="color:"] h2,
.fb-block[style*="color:"] h3,
.fb-block[style*="color:"] h4,
.fb-block[style*="color:"] p,
.fb-block[style*="color:"] li { color: inherit; }

/* ── Rich text output (from Quill) ──────────────────────────────────────────── */
.fb-richtext p          { margin-bottom: .85em; }
.fb-richtext p:last-child { margin-bottom: 0; }
.fb-richtext h2         { font-size: 1.5rem; font-weight: 700; margin-bottom: .5em; }
.fb-richtext h3         { font-size: 1.25rem; font-weight: 600; margin-bottom: .4em; }
.fb-richtext ul,
.fb-richtext ol         { padding-left: 1.5rem; margin-bottom: .85em; }
.fb-richtext li         { margin-bottom: .3em; }
.fb-richtext strong,
.fb-richtext b          { font-weight: 700; }
.fb-richtext em,
.fb-richtext i          { font-style: italic; }
.fb-richtext a          { color: var(--color-primary, #3b82f6); }
.fb-richtext blockquote { border-left: 4px solid var(--color-primary, #3b82f6); padding-left: 1rem; margin: 1em 0; color: var(--color-secondary, #64748b); font-style: italic; }
.fb-richtext img        { max-width: 100%; height: auto; border-radius: var(--border-radius, 6px); margin: .75rem 0; }
.fb-richtext pre        { background: #f1f5f9; padding: 1rem; border-radius: 6px; overflow-x: auto; font-size: .875rem; margin-bottom: .85em; }
.fb-richtext .ql-align-center  { text-align: center; }
.fb-richtext .ql-align-right   { text-align: right; }
.fb-richtext .ql-align-justify { text-align: justify; }

/* ── Hero Banner ─────────────────────────────────────────────────────────────── */
.fb-hero {
    padding: 80px 0;
    min-height: 400px;
    display: flex;
    align-items: center;
}
.fb-hero .site-container { width: 100%; }
.fb-hero__heading {
    font-size: clamp(2rem, 5vw, 3.5rem);
    margin-bottom: .75rem;
    color: inherit;
}
.fb-hero__sub {
    font-size: clamp(1rem, 2vw, 1.3rem);
    opacity: .88;
    margin-bottom: 2rem;
    color: inherit;
}
.fb-hero__badge {
    display: inline-block;
    background: rgba(245,200,66,0.15);
    border: 1px solid rgba(245,200,66,0.4);
    color: var(--color-primary, #F5C842);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    padding: 0.4rem 1.2rem;
    border-radius: 2rem;
    margin-bottom: 1.5rem;
}
.fb-hero__cta-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 1.5rem;
}
.fb-btn-outline {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.35);
    padding: 0.75rem 1.75rem;
    border-radius: 3px;
    font-size: 0.95rem;
    text-decoration: none;
    display: inline-block;
    transition: border-color 0.2s, color 0.2s;
}
.fb-btn-outline:hover {
    border-color: var(--color-primary, #F5C842);
    color: var(--color-primary, #F5C842);
}

/* ── Image Split (left/right) ─────────────────────────────────────────────────── */
.fb-image-split {
    display: grid;
    grid-template-columns: var(--img-width, 50%) 1fr;
    gap: 3rem;
    align-items: center;
    padding: 3rem 0;
}
.fb-image-split--reverse {
    grid-template-columns: 1fr var(--img-width, 50%);
}
.fb-image-split__img img {
    width: 100%;
    border-radius: var(--border-radius, 8px);
    object-fit: cover;
}
.fb-image-split__text h2 { margin-bottom: .875rem; }
.fb-image-split__text p  { color: var(--color-secondary, #64748b); }

/* ── Two Column ──────────────────────────────────────────────────────────────── */
.fb-two-col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    padding: 2rem 0;
}
.fb-two-col__item {
    background: var(--card-bg, rgba(255,255,255,0.05));
    border-radius: 10px;
    padding: 1.75rem 1.5rem;
    border-top: 3px solid var(--card-top-color, var(--card-border, var(--color-accent, #d4a017)));
    transition: transform .15s, box-shadow .15s;
}
.fb-two-col__item:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.fb-two-col__img { width: 100%; max-height: 280px; object-fit: cover; border-radius: var(--border-radius,8px); margin-bottom: 1rem; }
.fb-two-col__item h3 { margin-bottom: .5rem; font-size: 1.25rem; }
@media (max-width: 768px) { .fb-two-col { grid-template-columns: 1fr; } }

/* ── Three Column ────────────────────────────────────────────────────────────── */
.fb-three-col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    padding: 2rem 0;
}
.fb-three-col__item {
    text-align: left;
    background: var(--card-bg, rgba(255,255,255,0.05));
    border-radius: 10px;
    padding: 1.75rem 1.5rem;
    border-top: 3px solid var(--card-top-color, var(--card-border, var(--color-accent, #d4a017)));
    transition: transform .15s, box-shadow .15s;
}
.fb-three-col__item:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
/* On light backgrounds, give cards a visible border instead */
.fb-block[style*="background: #fff"] .fb-three-col__item,
.fb-block[style*="background:#fff"] .fb-three-col__item,
.fb-block[style*="background: #f9"] .fb-three-col__item,
.fb-block[style*="background: #fa"] .fb-three-col__item,
.fb-block[style*="background: #fb"] .fb-three-col__item,
.fb-block[style*="background: #fc"] .fb-three-col__item,
.fb-block[style*="background: #fd"] .fb-three-col__item,
.fb-block[style*="background: #fe"] .fb-three-col__item,
.fb-block[style*="background: #ff"] .fb-three-col__item {
    background: #fff;
    border: 1px solid #e8e0f0;
    border-top: 3px solid var(--card-top-color, var(--card-border, var(--color-accent, #d4a017)));
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.fb-three-col__icon {
    font-size: 2.5rem;
    margin-bottom: .875rem;
    display: block;
}
.fb-three-col__img {
    width: 100%;
    max-height: 220px;
    object-fit: cover;
    border-radius: var(--border-radius, 8px);
    margin-bottom: 1rem;
}
.fb-three-col__item h3 { margin-bottom: .5rem; font-size: 1.2rem; }

/* ── Borders off ─────────────────────────────────────────────────────────── */
.fb-col--no-borders .fb-three-col__item,
.fb-col--no-borders .fb-two-col__item {
    background: transparent;
    border-top: none;
    border: none;
    box-shadow: none;
    padding-left: 0;
    padding-right: 0;
}
.fb-three-col__item p  { font-size: .95rem; line-height: 1.6; }

/* ── H1 Block ─────────────────────────────────────────────────────────────────── */
.fb-h1-block { padding: 2.5rem 0 1rem; }
.fb-h1-block h1 { margin-bottom: .5rem; }
.fb-h1-block__sub { font-size: 1.1rem; opacity: .75; margin-bottom: 0; }

/* ── Featured column ─────────────────────────────────────────────────────────── */
.fb-col--featured {
    border: 2px solid var(--card-top-color, var(--color-accent, #d4a017));
    position: relative;
    padding-top: 2rem;
}
.fb-col__badge {
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--color-accent, #d4a017);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: .3rem 1rem;
    border-radius: 2rem;
    white-space: nowrap;
    pointer-events: none;
}

/* ── Profile Card ────────────────────────────────────────────────────────────── */
.fb-profile-card { padding: .5rem 0; }
.fb-profile-card__label {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-accent, #d4a017);
    margin-bottom: 1rem;
}
.fb-profile-card__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: 1.25rem;
    flex-shrink: 0;
}
.fb-profile-card__name {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: .5rem;
    line-height: 1.2;
}
.fb-profile-card__divider {
    width: 48px;
    height: 3px;
    background: var(--color-accent, #d4a017);
    margin-bottom: 1.25rem;
}
.fb-profile-card__bio { font-size: 1rem; line-height: 1.75; }

/* ── Feature List ─────────────────────────────────────────────────────────────── */
.fb-feature-list { padding: .5rem 0; }
.fb-feature-list__label {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-accent, #d4a017);
    margin-bottom: .75rem;
}
.fb-feature-list__heading {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.25rem;
    line-height: 1.25;
}
.fb-feature-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: .875rem 1rem;
    border-radius: var(--border-radius, 8px);
    background: var(--card-bg, rgba(255,255,255,0.04));
    border: 1px solid var(--card-border, rgba(255,255,255,0.1));
    margin-bottom: .625rem;
}
.fb-feature-item:last-child { margin-bottom: 0; }
.fb-feature-item__icon {
    font-size: 1.4rem;
    flex-shrink: 0;
    width: 2.25rem;
    text-align: center;
    line-height: 1;
    padding-top: .1rem;
}
.fb-feature-item__title {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: .3rem;
}
.fb-feature-item__desc {
    font-size: .9rem;
    opacity: .75;
    line-height: 1.55;
}

/* ── Info Bar ────────────────────────────────────────────────────────────────── */
.fb-info-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 1.25rem 1.75rem;
}
.fb-info-bar__item {
    flex: 1;
    min-width: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: .75rem 1.25rem;
    border-right: 1px solid rgba(255,255,255,0.08);
}
.fb-info-bar__item:last-child { border-right: none; }
.fb-info-bar__label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-accent, #d4a017);
    margin-bottom: .4rem;
    display: block;
}
.fb-info-bar__value {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--color-text, #ffffff);
    line-height: 1.3;
}
@media (max-width: 768px) {
    .fb-info-bar { flex-direction: column; padding: .75rem 1rem; }
    .fb-info-bar__item {
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.08);
        padding: .875rem .5rem;
    }
    .fb-info-bar__item:last-child { border-bottom: none; }
}

/* ── Carousel ────────────────────────────────────────────────────────────────── */
.fb-carousel {
    position: relative;
    overflow: hidden;
    user-select: none;
}
.fb-carousel__track {
    display: flex;
    transition: transform .4s ease;
}
.fb-carousel__slide {
    flex: 0 0 100%;
    position: relative;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fb-carousel__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
    z-index: 0;
}
.fb-carousel__caption {
    position: relative;
    z-index: 1;
    padding: 2rem;
    text-align: center;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
    max-width: 700px;
}
.fb-carousel__heading { color: inherit; margin-bottom: .5rem; }
.fb-carousel__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,.4);
    color: #fff;
    border: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-size: 1.2rem;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .15s;
}
.fb-carousel__arrow:hover { background: rgba(0,0,0,.7); }
.fb-carousel__arrow--prev { left: 1rem; }
.fb-carousel__arrow--next { right: 1rem; }
.fb-carousel__dots {
    position: absolute;
    bottom: .875rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: .4rem;
    z-index: 10;
}
.fb-carousel__dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    background: rgba(255,255,255,.5);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background .15s;
}
.fb-carousel__dot.active { background: #fff; }

/* ── Text Block ──────────────────────────────────────────────────────────────── */
.fb-text-block { padding: 2.5rem 0; }
.fb-text-block h2 { margin-bottom: .75rem; }
.fb-text-block h3 { margin-bottom: .5rem; }
.fb-text-block ul, .fb-text-block ol { padding-left: 1.5rem; margin-bottom: 1em; }
.fb-text-block li { margin-bottom: .3em; }
.fb-text-block a  { color: var(--color-primary); }

/* ── Button (front-end sizes) ────────────────────────────────────────────────── */
.fb-btn-lg    { padding: .9rem 2rem; font-size: 1.1rem; }
.fb-btn-sm-fe { padding: .4rem .9rem; font-size: .85rem; }

/* ── Contact Form ────────────────────────────────────────────────────────────── */
.fb-contact-form { max-width: 640px; margin: 0 auto; padding: 2.5rem 0; }
.fb-form-group { margin-bottom: 1.25rem; }
.fb-form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: .35rem;
    font-size: .9rem;
}
.fb-form-group input[type=text],
.fb-form-group input[type=email],
.fb-form-group textarea,
.fb-form-group select {
    width: 100%;
    padding: .6rem .8rem;
    border: 1px solid #d1d5db;
    border-radius: var(--border-radius, 6px);
    font-size: 1rem;
    font-family: var(--font-body, sans-serif);
    background: #fff;
    outline: none;
    transition: border-color .15s;
}
.fb-form-group input:focus,
.fb-form-group textarea:focus,
.fb-form-group select:focus { border-color: var(--color-primary, #3b82f6); }
.fb-form-group textarea { resize: vertical; }
.fb-checkbox-label { display: flex; align-items: center; gap: .5rem; cursor: pointer; font-weight: 400; }
.fb-req { color: #ef4444; }
.fb-form-success {
    background: #f0fdf4; border: 1px solid #86efac; color: #166534;
    padding: 1rem; border-radius: 6px; margin-bottom: 1rem;
}
.fb-form-error {
    background: #fef2f2; border: 1px solid #fca5a5; color: #b91c1c;
    padding: 1rem; border-radius: 6px; margin-bottom: 1rem;
}

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .fb-image-split,
    .fb-image-split--reverse {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .fb-image-split--reverse .fb-image-split__img { order: -1; }

    .fb-three-col {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .fb-hero { padding: 48px 0; min-height: 260px; }
}
