
:root{
    --rbfd-navy:#0A1A2F;
    --rbfd-midnight:#12233F;
    --rbfd-gold:#CF9F55;
    --rbfd-warm-gold:#C8A55A;
    --rbfd-champagne:#E6DCC1;
    --rbfd-stone:#F5F2EC;
    --rbfd-white:#FFFFFF;
    --rbfd-ink:#1A1A1A;
    --rbfd-serif:"Cormorant Garamond",Georgia,serif;
    --rbfd-sans:"Barlow",system-ui,sans-serif;
}

.rbfd-section,
.rbfd-section *{box-sizing:border-box}

.rbfd-section{
    overflow:hidden!important;
    background:var(--rbfd-stone)!important;
    padding:110px 0!important;
}

/* =========================================================
   FIXED HEADING — supplied original spacing
   ========================================================= */
.rbfd-heading-row{
    margin-bottom:54px!important;
}

.rbfd-eyebrow{
    margin-bottom:20px!important;
}

.rbfd-eyebrow p{
    display:flex!important;
    align-items:center!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    color:var(--rbfd-warm-gold)!important;
    font-family:var(--rbfd-sans)!important;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:500!important;
    letter-spacing:3.5px!important;
    text-transform:uppercase!important;
}

.rbfd-eyebrow p::before{
    content:"";
    width:38px;
    height:1px;
    background:currentColor;
    flex:none;
    opacity:.75;
}

.rbfd-heading h2{
    margin:0!important;
    padding:0!important;
    color:var(--rbfd-navy)!important;
    font-family:var(--rbfd-serif)!important;
    font-size:clamp(30px,4vw,44px)!important;
    line-height:1.15!important;
    font-weight:600!important;
    letter-spacing:-.01em!important;
}

.rbfd-intro{
    margin-top:14px!important;
    max-width:720px!important;
}

.rbfd-intro p{
    margin:0!important;
    padding:0!important;
    color:#555!important;
    font-family:var(--rbfd-sans)!important;
    font-size:16px!important;
    line-height:1.75!important;
    font-weight:300!important;
}

/* =========================================================
   DESKTOP — copied structurally from the supplied original

   Original logic:
   .department-rail = grid / 4 equal columns / 26px gap / stretch
   .department-card = height:100% / 38px 30px / flex column
   .department-list = margin-top:auto

   NO fixed 600/650/710/viewport-based height.
   The tallest natural card defines the row height.
   ========================================================= */
@media (min-width:901px){
    .rbfd-slider-row,
    .rbfd-slider-column,
    .rbfd-rail-host{
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
        overflow:visible!important;
    }

    .rbfd-rail-host{
        display:grid!important;
        grid-template-columns:repeat(4,minmax(0,1fr))!important;
        gap:26px!important;
        align-items:stretch!important;
    }

    .rbfd-rail-host > *{
        min-width:0!important;
        height:100%!important;
        min-height:0!important;
        max-height:none!important;
        align-self:stretch!important;
    }

    /* The supplied original has generous vertical breathing room. At wide
       desktop this resolves to ~690px; it scales down gently on smaller
       desktops and can still grow naturally if DSB adds more content. */
    .rbfd-card{
        min-width:0!important;
        width:100%!important;
        max-width:100%!important;
        height:100%!important;
        min-height:clamp(620px,34vw,700px)!important;
        max-height:none!important;
        margin:0!important;
        padding:38px 30px!important;
        background:#fff!important;
        border-top:2px solid var(--rbfd-gold)!important;
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
        align-items:stretch!important;
        align-self:stretch!important;
        gap:0!important;
        row-gap:0!important;
    }

    /* Divi 5 Group modules can insert an inner wrapper. JS marks the actual
       common content wrapper with this class so margin-top:auto works exactly
       like the original CSS flex card. */
    .rbfd-card-stack{
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
        align-items:stretch!important;
        flex:1 1 auto!important;
        width:100%!important;
        height:100%!important;
        min-height:0!important;
    }
}

/* =========================================================
   CARD TYPOGRAPHY / RHYTHM — supplied original
   ========================================================= */
.rbfd-card > *,
.rbfd-card .et_pb_module,
.rbfd-card .et_pb_text,
.rbfd-card .et_pb_text_inner{
    min-height:0!important;
    max-height:none!important;
}

.rbfd-card > .et_pb_module,
.rbfd-card > .et_pb_text,
.rbfd-card .et_pb_module{
    margin-top:0!important;
    margin-bottom:0!important;
}

.rbfd-number{
    margin-bottom:14px!important;
}

.rbfd-number p{
    margin:0!important;
    padding:0!important;
    color:var(--rbfd-warm-gold)!important;
    font-family:var(--rbfd-sans)!important;
    font-size:11px!important;
    line-height:1.35!important;
    letter-spacing:2.4px!important;
    font-weight:600!important;
}

.rbfd-card-heading{
    margin-bottom:18px!important;
}

.rbfd-card .rbfd-card-heading,
.rbfd-card .rbfd-card-heading .et_pb_text_inner,
.rbfd-card .rbfd-card-heading h3,
.rbfd-card .rbfd-card-heading .et_pb_text_inner h3{
    opacity:1!important;
}

.rbfd-card .rbfd-card-heading h3,
.rbfd-card .rbfd-card-heading .et_pb_text_inner h3{
    margin:0!important;
    padding:0!important;
    color:#0A1A2F!important;
    font-family:var(--rbfd-serif)!important;
    font-size:21px!important;
    line-height:1.25!important;
    font-weight:600!important;
    opacity:1!important;
    -webkit-text-fill-color:#0A1A2F!important;
}

.rbfd-description{
    margin-bottom:18px!important;
}

.rbfd-description p{
    margin:0!important;
    padding:0!important;
    color:#666!important;
    font-family:var(--rbfd-sans)!important;
    font-size:14px!important;
    line-height:1.7!important;
    font-weight:300!important;
}

.rbfd-roles{
    margin-top:auto!important;
}

.rbfd-roles ul{
    margin:0!important;
    padding:0!important;
    list-style:none!important;
}

.rbfd-roles li{
    margin:0!important;
    padding:7px 0!important;
    border-top:1px solid rgba(10,26,47,.07)!important;
    color:#555!important;
    font-family:var(--rbfd-sans)!important;
    font-size:13px!important;
    line-height:1.55!important;
    font-weight:300!important;
}

.rbfd-link{
    margin-top:20px!important;
}

.rbfd-link p{
    margin:0!important;
    padding:0!important;
}

.rbfd-link a{
    color:var(--rbfd-gold)!important;
    font-family:var(--rbfd-sans)!important;
    font-size:11px!important;
    line-height:1.5!important;
    letter-spacing:1.8px!important;
    text-transform:uppercase!important;
    font-weight:500!important;
    text-decoration:none!important;
}

/* =========================================================
   MOBILE / TABLET SLIDER
   Preserve the version the user accepted.
   ========================================================= */
@media (max-width:900px){
    .rbfd-section{
        padding:64px 0!important;
    }

    .rbfd-heading-row{
        margin-bottom:34px!important;
    }

    .rbfd-slider-row,
    .rbfd-slider-column,
    .rbfd-rail-host{
        overflow:visible!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
    }

    .rbfd-rail-host{
        display:block!important;
    }

    .rbfd-live-rail{
        display:flex!important;
        flex-direction:row!important;
        flex-wrap:nowrap!important;
        align-items:stretch!important;
        justify-content:flex-start!important;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        scroll-snap-type:x mandatory!important;
        -webkit-overflow-scrolling:touch!important;
        overscroll-behavior-x:contain!important;
        touch-action:pan-x pan-y!important;
        gap:14px!important;
        scrollbar-width:none!important;
        margin-left:-24px!important;
        margin-right:-24px!important;
        padding:4px 24px 10px!important;
        width:auto!important;
        max-width:none!important;
        height:auto!important;
        min-height:0!important;
        max-height:none!important;
    }

    .rbfd-live-rail::-webkit-scrollbar{
        display:none!important;
    }

    .rbfd-live-card-root{
        flex:0 0 84%!important;
        width:84%!important;
        min-width:84%!important;
        max-width:84%!important;
        align-self:stretch!important;
        scroll-snap-align:center!important;
    }

    .rbfd-live-card{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
        align-items:stretch!important;
        align-self:stretch!important;
        padding:38px 30px!important;
        background:#fff!important;
        border-top:2px solid var(--rbfd-gold)!important;
        gap:0!important;
        row-gap:0!important;
    }

    .rbfd-live-card .rbfd-roles{
        margin-top:auto!important;
    }
}

@media (max-width:600px){
    .rbfd-heading h2{font-size:30px!important}
    .rbfd-intro p{font-size:15.5px!important}
    .rbfd-card{padding:38px 26px!important}
}


/* 0.1.5 desktop fidelity safeguards */
@media (min-width:901px){
    .rbfd-card .rbfd-roles,
    .rbfd-card-stack .rbfd-roles{
        margin-top:auto!important;
    }

    .rbfd-card .rbfd-number,
    .rbfd-card .rbfd-card-heading,
    .rbfd-card .rbfd-description,
    .rbfd-card .rbfd-roles,
    .rbfd-card .rbfd-link{
        flex:0 0 auto!important;
    }
}
